alexqxp 发表于 2005-7-5 17:06:21

转-对E书制作的建议

对E书制作的建议

作者:马健
邮箱:stronghorse@tom.com
主页:http://stronghorse.yeah.net

看书多年,算下来我从网上下载的E书也不少。这些E书中有不少是制作精良的上品,当然也不乏粗制滥造的劣货,有些甚至让我看到忍无可忍的地步,所以想就E书制作提出一些看法,供各位制书人参考,当然也仅仅只是参考而已。

另外由于我本人不是美工,看书的口味可能也和各位不同,所以下面的建议主要针对一些具有共性的技术问题,不涉及选材、美工等。

一、内容整理

我个人认为,E书制作应该是一个在原有素材基础上,加入自己创意的过程。因此我对于那些直接将网站内容打包的行为比较鄙视。虽然不能要求所有人都对原来的网页重新美化、设计,但是我认为至少应该进行如下处理:

   1. 去掉原网页中的广告链接。这个步骤的必要性虽然人人都懂,但我还是见过不少一打开就开始下载页面中广告图片的电子书。当然有的广告链接隐藏在js代码里,可能需要对网页源码进行分析才能找到。
   2. 对页面进行适当的调整。我曾经看到过几本连环画电子书,由于没有对页面进行统一调整,翻页的时候,感觉中央的图片在上窜下跳,很是不爽。对于在线浏览来说,由于页面刷新需要时间,所以这种感觉可能不是很明显,但是对于所有内容都在本地的电子书来说,翻页刷新几乎是不需要时间的,因此感觉会特别明显。
   3. 在内容完整表达的基础上,形式应该尽量简捷。我曾经见过一本电子书,是直接用Word另存为HTML文件后做出来的,结果每一段文字前面,都有大量重复的字体描述、段落描述,这些无聊的废话甚至比正文还长几倍,真是下载的时候耗带宽,保存的时候耗硬盘。
   4. 打包前至少自己先把书读一遍,顺便改正一下明显的错别字。这个与技术无关,但是与职业道德有关。

二、文件命名规范

在电子书制作中,最容易被忽视的可能就是电子书中文件名的命名,因为这个问题最不容易表现出来。但是还是有必要说上两句。

   1. 请不要在网页文件名中使用中文,应该坚持使用英文(哪怕是汉语拼音)字母和数字。这个主要考虑的是非简体中文Windows环境下的读者,包括港澳台及海外的读者。对于使用IE内核的电子书来说,由于IE内核本身支持多内码,因此只要在网页中指定使用GB字符集,即使在非简体中文Windows环境下,也可以正常显示出简体中文网页的内容,当然第一次显示的时候IE可能会要求下载相应的简体中文字体。但是当点击网页中的链接时,IE内核需要将链接进行编码,发送给电子书,电子书解码后,在电子书内含的目录中查找对应的网页,提取出来返回给IE内核。这个编码/解码过程通常与本机的内码设置有关,因此对于按照 GB编码的网页文件名来说,在非GB内码的机器上可能就会出现网页找不到的错误。如果电子书的首页本身就是简体中文文件名,那么这本电子书在非简体中文环境下可能根本就打不开。
   2. 如果可能,请尽量遵循约定俗成的文件命名规范。按照网站建设规范,通常主页文件名为 index.htm,或default.htm,前者用得多一些,后者越来越少了。但是对于电子书来说,通常将目录页命名为index.htm或 contents.htm,封面页命名为cover.htm,其它页面按照章节号用数字命名。数字一般有规定的位数,不足的在前面补零。使用统一命名规范的好处,一个是便于定位、维护,如果需要改哪一章的内容,按照命名规范立刻就可以知道需要打开哪一个文件;另一个是便于使用js代码,从本页URL构造出上一页、下一页的URL,从而实现翻页链接的自动生成,不用自己一页一页地去改,详见本文附录部分的实例分析。

三、屏幕分辨率

随着技术的发展,大家手上的显示器也在不断更新换代,以前用15寸就可以对用14寸的兄弟臭显一番,现在17寸都略显过时,将来19、21寸也必有过时的一天。而随着屏幕的越来越大,分辨率也必然会随之增加。如果在制作E书时对此不加以考虑,换个显示器看可能就会觉得很难受。

   1. 行长的问题。如果在页面中对显示宽度不做限制,单纯靠电子书窗口宽度做限制,那么在高分辨率的大屏幕上,将电子书窗口点到最大,就可以看到长长的一行行文字从左排到右,看完一行回过头来,可能已经搞不清下一行从哪开始了。对行长进行限制的方法不止一种,最简单的就是创建一个固定宽度的表格单元,将内容全部塞到这个单元里去。本文就是用这种方法限制宽度的,各位看一下源代码就知道了。
   2. 居中显示。在固定行长的情况下,还有一个需要注意的问题就是显示区域的居中。如果将内容全部靠左显示,在大屏幕下看起来会很不舒服。如果是用表格解决行长问题,将表格属性指定为“水平居中”即可。
   3. 字体大小的问题。这个问题也是一个比较容易忽视的问题,我甚至见过有人为自己“完美”的字体搭配而洋洋得意。但是从我看到的情况来看,在800×600分辨率下看起来很好的字体大小,到1024×768下可能就已经有点小了,到1280×1024下则可以用来测视力。所以我一贯反对将网页中的字体大小设置死。

四、适当利用网页特效

我认为电子书可以大致分成两种,一种追求的是与纸质出版物的尽量一致,另一种则更强调通过动态网页等技术增加阅读的方便性。前者以pdf为代表,不在本文讨论范围之内。后者以各种基于IE内核的电子书为代表,正是本文需要讨论的东西。

   1. 适当使用层。一般人制作的电子书,都是在页首、页尾才有上一页、下一页、回目录的跳转链接,这样如果看到一半的时候想跳转,会很不方便。而我见过的一本电子书,则使用层定义了一个很方便的菜单:用户在页面的任何地方点右键,都会弹出菜单,菜单包含上一页、下一页、回目录的跳转链接。另外在制作技术性书籍的时候,也有人用层弹出对关键词的注解,如微软的MSDN。
   2. 巧用动画增加页面趣味性。这方面做得最出名的无疑是钱建文先生,E书首页缓缓拉开的动态效果,已经成为钱氏藏书的经典标志了。
   3. 利用js代码实现一些繁琐、重复性的工作,如上面说过的自动生成上一页、下一页的链接。钱氏藏书的动态效果其实也是靠js代码实现的。

五、选择适当的表现形式

对于HTML格式的素材来说,一般人考虑的制作方式都是直接制作成EXE格式的电子书。但是我觉得其实也可以考虑其它的表现形式,根据需要进行选择。

   1. mht格式。我曾经见到过有人将一个网页直接用IE另存为“网页,全部”,然后打包成EXE格式的电子书,结果一个1MB多的文件,实际内容不过区区10多KB。对于这种只需要保存一个网页及其中图片的情况,我一般是在另存为“网页,全部”后,先用Dreamweaver进行编辑,去掉所有不必要的内容,然后再另存为“Web档案,单一文件”,即mht格式。与其它格式相比,mht文件同样只有一个文件就可以放下全部内容,鼠标双击就能打开,而且用IE就可以直接生成,不需要额外的制作工具,还没有EXE文件的目录打开慢、容易染毒的毛病。
   2. chm格式。大多数人使用chm格式,其实只是使用了chm的皮毛功能,即网页压缩、打包的功能,顶多再用到一个“目录”功能实现导航。其实在制作某些具有学术性质的电子书时,chm格式独有的索引、搜索功能,将会大大增加读者检索资料的方便性。我一直认为这方面做得最好的是MSDN,不过这个不是人人都能看到的。有兴趣的人也可以进入Windows XP的帮助目录(C:\WINDOWS\Help),仔细看一下其中chm文件对索引、搜索功能的使用。至少到目前为止,我还没有见到过哪个EXE格式的电子书提供全文搜索功能。

六、工欲善其事,必先利其器

如果各位制作电子书,只是抱着“玩玩而已”的态度,那么可以忽略下面的建议,否则可以参考一下。

   1. 至少学会看HTML源代码,可能的话再学会看css、js源代码。我想可以这么说:一个人如果只会用所见即所得的编辑器编辑网页,那么他这辈子大概都只能在电子书制作的大门口打转,很难登堂入室。原因无它:很多隐藏在代码里的东西,在页面上是看不出来的。
   2. 就算自己学不会js编程,至少也应该多到相关站点看看,搜集一些特效代码。原因也很简单:熟读唐诗三百首,不会作诗也会吟。

附录 实例分析

本附录以“幻剑书盟(http://www.hjsm.net/)”中的书为例,分析其页面命名规范及使用js代码实现翻页链接自动生成的方法。

一、页面命名规范

幻剑书盟的页面命名规则是:

   1. 目录页命名为contents.html。
   2. 内容页文件名=部号+章节号.html
      所谓部号,指的是书的第几部,如玄雨的《梦幻空间》就有三部。当然大多数书只有一部。部号从1开始。
      章节号从1开始,顺序增加,不足3位数的在前面补零,凑足三位数。
      如某套书的第2部第3章,则其文件名为2003.html;而1023.html则表示某本书的第23章。注意即使整套书只有1部,其部号也不能省略,如果文件名以0开头,则下面的js代码会失效。
   3. 一套书的所有页面放在同一个文件夹下,包括下面说的pagescript.js文件。

二、页面设置

在内容页中,在每一页底部需要显示跳转链接的地方插入如下代码:

<script language="javascript" src="pagescript.js">

三、生成页面跳转链接的js文件

文件pagescript.js的内容如下:

var pages=document.URL ;
var pagep=pages.lastIndexOf("\\");
if (pagep<1) {pagep=pages.lastIndexOf("/");}
var pagec = pages.substring(pagep+1) ;
pagep=pagec.lastIndexOf(".");
var pagebare = pagec.substring(0,pagep) ;
var pagepre = pagebare-1 ;
var pagenext = pagebare -0 + 1 ;
if (pagepre%1000!=0)
{document.write("<TD width=33% align=center><A HREF="+pagepre+".html><FONT COLOR=BLUE>上一页</font></a>") ;}
else
{document.write("<TD width=33% align=center> ");}
document.write("</td><td width=34% align=center><A HREF=contents.html><font color=blue>目录</font></a>") ;
document.write("</td><td width=33% align=center><A HREF="+pagenext+".html><font color=blue>下一页</font></a></td></tr>") ;

从这段代码可以看出,在提取出当前页面的URL后,减1即为上一页的文件号,加1则为下一页的文件号。

就这样,幻剑书盟通过规范的页面命名方式,简单的js代码,巧妙地解决了页面跳转链接的自动生成问题。
页: [1]
查看完整版本: 转-对E书制作的建议