找回密码
 注册
Simdroid-非首页
查看: 342|回复: 0

[Simwe资源光盘] 转-对E书制作的建议

[复制链接]
发表于 2005-7-5 17:06:21 | 显示全部楼层 |阅读模式 来自 湖北武汉
对E书制作的建议
4 L0 m* i; u6 v, n* U9 M9 a$ s; R1 R
作者:马健
3 d  Z1 N% h& }7 }7 O邮箱:stronghorse@tom.com/ j- ~& V5 J, Y) E' v0 o. A* r
主页:http://stronghorse.yeah.net
( m: Q- r4 B9 y( v" J9 o
0 f& I2 b6 B4 D8 n看书多年,算下来我从网上下载的E书也不少。这些E书中有不少是制作精良的上品,当然也不乏粗制滥造的劣货,有些甚至让我看到忍无可忍的地步,所以想就E书制作提出一些看法,供各位制书人参考,当然也仅仅只是参考而已。
8 r, ^* V, ]  p* m9 t8 s
2 T8 X% S1 B0 _. z2 ?另外由于我本人不是美工,看书的口味可能也和各位不同,所以下面的建议主要针对一些具有共性的技术问题,不涉及选材、美工等。, S; Q4 \$ d& L: |* ^

8 d: p+ L, F) t, @6 t3 f0 C% x: o一、内容整理) @) q( S( w: c! D
+ a- s, l- R& x6 _- o; `  o
我个人认为,E书制作应该是一个在原有素材基础上,加入自己创意的过程。因此我对于那些直接将网站内容打包的行为比较鄙视。虽然不能要求所有人都对原来的网页重新美化、设计,但是我认为至少应该进行如下处理:- F) i; ?, [# l; C, r( y4 O' ]

0 i0 `# v' ^& Q$ Y* R4 G/ E   1. 去掉原网页中的广告链接。这个步骤的必要性虽然人人都懂,但我还是见过不少一打开就开始下载页面中广告图片的电子书。当然有的广告链接隐藏在js代码里,可能需要对网页源码进行分析才能找到。+ i2 R; G  f- S: d& \- I# j8 F
   2. 对页面进行适当的调整。我曾经看到过几本连环画电子书,由于没有对页面进行统一调整,翻页的时候,感觉中央的图片在上窜下跳,很是不爽。对于在线浏览来说,由于页面刷新需要时间,所以这种感觉可能不是很明显,但是对于所有内容都在本地的电子书来说,翻页刷新几乎是不需要时间的,因此感觉会特别明显。
% o6 {+ X2 Z& a% w9 v8 o   3. 在内容完整表达的基础上,形式应该尽量简捷。我曾经见过一本电子书,是直接用Word另存为HTML文件后做出来的,结果每一段文字前面,都有大量重复的字体描述、段落描述,这些无聊的废话甚至比正文还长几倍,真是下载的时候耗带宽,保存的时候耗硬盘。
& h* w: j- C3 n   4. 打包前至少自己先把书读一遍,顺便改正一下明显的错别字。这个与技术无关,但是与职业道德有关。2 a7 b9 ?& o2 c8 `5 [
6 V$ J$ }# B& B4 R! |( S* `1 a7 ?
二、文件命名规范
% m) n- e7 S# ?. c7 F4 K0 W7 V5 C9 V3 j2 g
在电子书制作中,最容易被忽视的可能就是电子书中文件名的命名,因为这个问题最不容易表现出来。但是还是有必要说上两句。
1 P. b* s( l" l$ {% w! C2 c; ^4 v# ?2 a+ Q+ a
   1. 请不要在网页文件名中使用中文,应该坚持使用英文(哪怕是汉语拼音)字母和数字。这个主要考虑的是非简体中文Windows环境下的读者,包括港澳台及海外的读者。对于使用IE内核的电子书来说,由于IE内核本身支持多内码,因此只要在网页中指定使用GB字符集,即使在非简体中文Windows环境下,也可以正常显示出简体中文网页的内容,当然第一次显示的时候IE可能会要求下载相应的简体中文字体。但是当点击网页中的链接时,IE内核需要将链接进行编码,发送给电子书,电子书解码后,在电子书内含的目录中查找对应的网页,提取出来返回给IE内核。这个编码/解码过程通常与本机的内码设置有关,因此对于按照 GB编码的网页文件名来说,在非GB内码的机器上可能就会出现网页找不到的错误。如果电子书的首页本身就是简体中文文件名,那么这本电子书在非简体中文环境下可能根本就打不开。
: B* z4 u0 R( p# j# `9 B7 ^6 V1 p   2. 如果可能,请尽量遵循约定俗成的文件命名规范。按照网站建设规范,通常主页文件名为 index.htm,或default.htm,前者用得多一些,后者越来越少了。但是对于电子书来说,通常将目录页命名为index.htm或 contents.htm,封面页命名为cover.htm,其它页面按照章节号用数字命名。数字一般有规定的位数,不足的在前面补零。使用统一命名规范的好处,一个是便于定位、维护,如果需要改哪一章的内容,按照命名规范立刻就可以知道需要打开哪一个文件;另一个是便于使用js代码,从本页URL构造出上一页、下一页的URL,从而实现翻页链接的自动生成,不用自己一页一页地去改,详见本文附录部分的实例分析。8 T- z2 `5 g6 m

$ W! p1 {5 w' N+ V三、屏幕分辨率# _7 V- q- j+ E" h& U
) P* x' m& s2 A/ [$ b# C4 P
随着技术的发展,大家手上的显示器也在不断更新换代,以前用15寸就可以对用14寸的兄弟臭显一番,现在17寸都略显过时,将来19、21寸也必有过时的一天。而随着屏幕的越来越大,分辨率也必然会随之增加。如果在制作E书时对此不加以考虑,换个显示器看可能就会觉得很难受。
, }+ M4 |( V4 I0 ?5 r  \3 X" A' S" h6 z& }( r
   1. 行长的问题。如果在页面中对显示宽度不做限制,单纯靠电子书窗口宽度做限制,那么在高分辨率的大屏幕上,将电子书窗口点到最大,就可以看到长长的一行行文字从左排到右,看完一行回过头来,可能已经搞不清下一行从哪开始了。对行长进行限制的方法不止一种,最简单的就是创建一个固定宽度的表格单元,将内容全部塞到这个单元里去。本文就是用这种方法限制宽度的,各位看一下源代码就知道了。
7 B0 I# M! c% X; x9 p9 R   2. 居中显示。在固定行长的情况下,还有一个需要注意的问题就是显示区域的居中。如果将内容全部靠左显示,在大屏幕下看起来会很不舒服。如果是用表格解决行长问题,将表格属性指定为“水平居中”即可。
2 V2 B' X' ?; [: ]1 t7 R   3. 字体大小的问题。这个问题也是一个比较容易忽视的问题,我甚至见过有人为自己“完美”的字体搭配而洋洋得意。但是从我看到的情况来看,在800×600分辨率下看起来很好的字体大小,到1024×768下可能就已经有点小了,到1280×1024下则可以用来测视力。所以我一贯反对将网页中的字体大小设置死。
" b2 u6 p( T& r/ `: K% b9 x; w
4 U8 m3 k! c4 Z  @四、适当利用网页特效
) v9 S& U# Z6 C$ I- {7 d0 e* R
5 `2 Z! X$ P, n- F5 n1 w我认为电子书可以大致分成两种,一种追求的是与纸质出版物的尽量一致,另一种则更强调通过动态网页等技术增加阅读的方便性。前者以pdf为代表,不在本文讨论范围之内。后者以各种基于IE内核的电子书为代表,正是本文需要讨论的东西。; M) V' _: y* x5 K+ P, U& F9 A( M
# n6 v7 c5 n* N2 Q
   1. 适当使用层。一般人制作的电子书,都是在页首、页尾才有上一页、下一页、回目录的跳转链接,这样如果看到一半的时候想跳转,会很不方便。而我见过的一本电子书,则使用层定义了一个很方便的菜单:用户在页面的任何地方点右键,都会弹出菜单,菜单包含上一页、下一页、回目录的跳转链接。另外在制作技术性书籍的时候,也有人用层弹出对关键词的注解,如微软的MSDN。, A' ]! A  {  G  Z& k
   2. 巧用动画增加页面趣味性。这方面做得最出名的无疑是钱建文先生,E书首页缓缓拉开的动态效果,已经成为钱氏藏书的经典标志了。
; G" `! m" D5 b3 [; u& N   3. 利用js代码实现一些繁琐、重复性的工作,如上面说过的自动生成上一页、下一页的链接。钱氏藏书的动态效果其实也是靠js代码实现的。; l9 m# J0 x& r% o& i$ N

' ]4 T9 F& M7 |) {. d1 V( {五、选择适当的表现形式1 o7 [( h1 `" \, p# p' \; i

; Y7 H- d2 q7 b- |对于HTML格式的素材来说,一般人考虑的制作方式都是直接制作成EXE格式的电子书。但是我觉得其实也可以考虑其它的表现形式,根据需要进行选择。) l0 U+ V7 a! N: q
! g5 o- n) \5 S0 w6 i
   1. mht格式。我曾经见到过有人将一个网页直接用IE另存为“网页,全部”,然后打包成EXE格式的电子书,结果一个1MB多的文件,实际内容不过区区10多KB。对于这种只需要保存一个网页及其中图片的情况,我一般是在另存为“网页,全部”后,先用Dreamweaver进行编辑,去掉所有不必要的内容,然后再另存为“Web档案,单一文件”,即mht格式。与其它格式相比,mht文件同样只有一个文件就可以放下全部内容,鼠标双击就能打开,而且用IE就可以直接生成,不需要额外的制作工具,还没有EXE文件的目录打开慢、容易染毒的毛病。
3 `# j. t  t7 t2 }  b   2. chm格式。大多数人使用chm格式,其实只是使用了chm的皮毛功能,即网页压缩、打包的功能,顶多再用到一个“目录”功能实现导航。其实在制作某些具有学术性质的电子书时,chm格式独有的索引、搜索功能,将会大大增加读者检索资料的方便性。我一直认为这方面做得最好的是MSDN,不过这个不是人人都能看到的。有兴趣的人也可以进入Windows XP的帮助目录(C:\WINDOWS\Help),仔细看一下其中chm文件对索引、搜索功能的使用。至少到目前为止,我还没有见到过哪个EXE格式的电子书提供全文搜索功能。
* B6 _1 A8 F. y9 I. i7 v! k  ^. D1 I
六、工欲善其事,必先利其器% U, m3 f* p& t* Q) l- O9 j4 b

6 K2 S0 h8 w* x: _$ ]$ O如果各位制作电子书,只是抱着“玩玩而已”的态度,那么可以忽略下面的建议,否则可以参考一下。
+ H1 B6 R6 N  _5 j9 m9 d
5 ]5 Z: t% ~5 T; X& [3 O   1. 至少学会看HTML源代码,可能的话再学会看css、js源代码。我想可以这么说:一个人如果只会用所见即所得的编辑器编辑网页,那么他这辈子大概都只能在电子书制作的大门口打转,很难登堂入室。原因无它:很多隐藏在代码里的东西,在页面上是看不出来的。* t1 h2 o. g  d( Z. u3 n: ~
   2. 就算自己学不会js编程,至少也应该多到相关站点看看,搜集一些特效代码。原因也很简单:熟读唐诗三百首,不会作诗也会吟。
1 A+ f. l4 l; N, e
) q. |9 `* \' a1 q0 f附录 实例分析
$ v+ s! _2 b' b! c/ Y
9 T$ x; ]6 F8 m' O本附录以“幻剑书盟(http://www.hjsm.net/)”中的书为例,分析其页面命名规范及使用js代码实现翻页链接自动生成的方法。) E7 @: c! |9 u0 Y& H% E

) z7 F3 P2 S8 @% N% Q$ S一、页面命名规范
. D& {4 j- [" z8 d2 j. T
" M% Z/ M" r1 A/ o幻剑书盟的页面命名规则是:2 x1 I. J6 }, q

2 w+ _+ \4 f& Z' s8 P' s   1. 目录页命名为contents.html。
' R! i5 z4 w5 Q' M% W   2. 内容页文件名=部号+章节号.html) `6 X& Q# ]! z+ e" s, @
      所谓部号,指的是书的第几部,如玄雨的《梦幻空间》就有三部。当然大多数书只有一部。部号从1开始。; l& e2 {6 h# j! i; C3 E6 Z+ ^% N
      章节号从1开始,顺序增加,不足3位数的在前面补零,凑足三位数。
+ y! H+ y. x9 y: j8 d$ O      如某套书的第2部第3章,则其文件名为2003.html;而1023.html则表示某本书的第23章。注意即使整套书只有1部,其部号也不能省略,如果文件名以0开头,则下面的js代码会失效。
( Y0 g% o; ~0 D0 N# h  v* k   3. 一套书的所有页面放在同一个文件夹下,包括下面说的pagescript.js文件。. j; C0 }9 I8 h7 p0 X- g

7 N/ M- u  Z6 s" @) z! @, Q二、页面设置3 u- Z) l# v$ `6 O5 _+ m: t
5 I% b+ n7 Q: G$ X
在内容页中,在每一页底部需要显示跳转链接的地方插入如下代码:) ~: z6 A) x2 q/ x% l

/ q& f( i+ x# o1 O- K<script language="javascript" src="pagescript.js">
: S1 d( J9 K7 M  g. U( T6 r, P/ i% z: T) C' c) q# n
三、生成页面跳转链接的js文件
  y# b, V  t) A" `" z& v& n; t$ p- s3 _; }
文件pagescript.js的内容如下:
: F+ g0 P7 X* ^& m  g' H& `, n5 B: i, R" Y( q
var pages=document.URL ;
: R* x4 F! \. r2 Mvar pagep=pages.lastIndexOf("\\");
4 G) T' J' ~  I% t; G* fif (pagep<1) {pagep=pages.lastIndexOf("/");}$ O0 D, b9 X( d3 _) A" s1 ?
var pagec = pages.substring(pagep+1) ;) ]0 X3 {4 C! p/ c
pagep=pagec.lastIndexOf(".");' X9 k# _+ \, N2 I
var pagebare = pagec.substring(0,pagep) ;4 k4 i# I" G9 J
var pagepre = pagebare-1 ;
& w$ N# b* V2 K" @" Ovar pagenext = pagebare -0 + 1 ;
0 P$ D2 {/ p1 d9 Iif (pagepre%1000!=0). @9 s3 S! p9 x. h
{document.write("<TD width=33% align=center><A HREF="+pagepre+".html><FONT COLOR=BLUE>上一页</font></a>") ;} ) F. E  f: w8 |7 S2 F2 F0 N
else, H& C, ?) u/ \. E
{document.write("<TD width=33% align=center> ");} " X3 Q: M8 @; O; c) k- v
document.write("</td><td width=34% align=center><A HREF=contents.html><font color=blue>目录</font></a>") ; 3 u( B! H; f! r9 G9 `1 |8 o) E. z" G
document.write("</td><td width=33% align=center><A HREF="+pagenext+".html><font color=blue>下一页</font></a></td></tr>") ;3 d$ t1 v" j4 s' R( t5 @

( p5 N% v9 ~/ o6 e从这段代码可以看出,在提取出当前页面的URL后,减1即为上一页的文件号,加1则为下一页的文件号。+ C1 w7 b0 L; Z) W; n3 @# G

0 ]* A6 S) p) E1 s  F. y% C就这样,幻剑书盟通过规范的页面命名方式,简单的js代码,巧妙地解决了页面跳转链接的自动生成问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 20:48 , Processed in 0.031225 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表