對E書(shū)制作的建議
作者:馬健
郵箱:stronghorse@tom.com主頁(yè):http://stronghorse.yeah.net
看書(shū)多年,算下來(lái)我從網(wǎng)上下載的E書(shū)也不少。這些E書(shū)中有不少是制作精良的上品,當然也不乏粗制濫造的劣貨,有些甚至讓我看到忍無(wú)可忍的地步,所以想就E書(shū)制作提出一些看法,供各位制書(shū)人參考,當然也僅僅只是參考而已。
另外由于我本人不是美工,看書(shū)的口味可能也和各位不同,所以下面的建議主要針對一些具有共性的技術(shù)問(wèn)題,不涉及選材、美工等。
一、內容整理
我個(gè)人認為,E書(shū)制作應該是一個(gè)在原有素材基礎上,加入自己創(chuàng )意的過(guò)程。因此我對于那些直接將網(wǎng)站內容打包的行為比較鄙視。雖然不能要求所有人都對原來(lái)的網(wǎng)頁(yè)重新美化、設計,但是我認為至少應該進(jìn)行如下處理:
- 去掉原網(wǎng)頁(yè)中的廣告鏈接。這個(gè)步驟的必要性雖然人人都懂,但我還是見(jiàn)過(guò)不少一打開(kāi)就開(kāi)始下載頁(yè)面中廣告圖片的電子書(shū)。當然有的廣告鏈接隱藏在js代碼里,可能需要對網(wǎng)頁(yè)源碼進(jìn)行分析才能找到。
- 對頁(yè)面進(jìn)行適當的調整。我曾經(jīng)看到過(guò)幾本連環(huán)畫(huà)電子書(shū),由于沒(méi)有對頁(yè)面進(jìn)行統一調整,翻頁(yè)的時(shí)候,感覺(jué)中央的圖片在上竄下跳,很是不爽。對于在線(xiàn)瀏覽來(lái)說(shuō),由于頁(yè)面刷新需要時(shí)間,所以這種感覺(jué)可能不是很明顯,但是對于所有內容都在本地的電子書(shū)來(lái)說(shuō),翻頁(yè)刷新幾乎是不需要時(shí)間的,因此感覺(jué)會(huì )特別明顯。
- 在內容完整表達的基礎上,形式應該盡量簡(jiǎn)捷。我曾經(jīng)見(jiàn)過(guò)一本電子書(shū),是直接用Word另存為HTML文件后做出來(lái)的,結果每一段文字前面,都有大量重復的字體描述、段落描述,這些無(wú)聊的廢話(huà)甚至比正文還長(cháng)幾倍,真是下載的時(shí)候耗帶寬,保存的時(shí)候耗硬盤(pán)。
- 打包前至少自己先把書(shū)讀一遍,順便改正一下明顯的錯別字。這個(gè)與技術(shù)無(wú)關(guān),但是與職業(yè)道德有關(guān)。
二、文件命名規范
在電子書(shū)制作中,最容易被忽視的可能就是電子書(shū)中文件名的命名,因為這個(gè)問(wèn)題最不容易表現出來(lái)。但是還是有必要說(shuō)上兩句。
- 請不要在網(wǎng)頁(yè)文件名中使用中文,應該堅持使用英文(哪怕是漢語(yǔ)拼音)字母和數字。這個(gè)主要考慮的是非簡(jiǎn)體中文Windows環(huán)境下的讀者,包括港澳臺及海外的讀者。對于使用IE內核的電子書(shū)來(lái)說(shuō),由于IE內核本身支持多內碼,因此只要在網(wǎng)頁(yè)中指定使用GB字符集,即使在非簡(jiǎn)體中文Windows環(huán)境下,也可以正常顯示出簡(jiǎn)體中文網(wǎng)頁(yè)的內容,當然第一次顯示的時(shí)候IE可能會(huì )要求下載相應的簡(jiǎn)體中文字體。但是當點(diǎn)擊網(wǎng)頁(yè)中的鏈接時(shí),IE內核需要將鏈接進(jìn)行編碼,發(fā)送給電子書(shū),電子書(shū)解碼后,在電子書(shū)內含的目錄中查找對應的網(wǎng)頁(yè),提取出來(lái)返回給IE內核。這個(gè)編碼/解碼過(guò)程通常與本機的內碼設置有關(guān),因此對于按照GB編碼的網(wǎng)頁(yè)文件名來(lái)說(shuō),在非GB內碼的機器上可能就會(huì )出現網(wǎng)頁(yè)找不到的錯誤。如果電子書(shū)的首頁(yè)本身就是簡(jiǎn)體中文文件名,那么這本電子書(shū)在非簡(jiǎn)體中文環(huán)境下可能根本就打不開(kāi)。
- 如果可能,請盡量遵循約定俗成的文件命名規范。按照網(wǎng)站建設規范,通常主頁(yè)文件名為index.htm,或default.htm,前者用得多一些,后者越來(lái)越少了。但是對于電子書(shū)來(lái)說(shuō),通常將目錄頁(yè)命名為index.htm或contents.htm,封面頁(yè)命名為cover.htm,其它頁(yè)面按照章節號用數字命名。數字一般有規定的位數,不足的在前面補零。使用統一命名規范的好處,一個(gè)是便于定位、維護,如果需要改哪一章的內容,按照命名規范立刻就可以知道需要打開(kāi)哪一個(gè)文件;另一個(gè)是便于使用js代碼,從本頁(yè)URL構造出上一頁(yè)、下一頁(yè)的URL,從而實(shí)現翻頁(yè)鏈接的自動(dòng)生成,不用自己一頁(yè)一頁(yè)地去改,詳見(jiàn)本文附錄部分的實(shí)例分析。
三、屏幕分辨率
隨著(zhù)技術(shù)的發(fā)展,大家手上的顯示器也在不斷更新?lián)Q代,以前用15寸就可以對用14寸的兄弟臭顯一番,現在17寸都略顯過(guò)時(shí),將來(lái)19、21寸也必有過(guò)時(shí)的一天。而隨著(zhù)屏幕的越來(lái)越大,分辨率也必然會(huì )隨之增加。如果在制作E書(shū)時(shí)對此不加以考慮,換個(gè)顯示器看可能就會(huì )覺(jué)得很難受。
- 行長(cháng)的問(wèn)題。如果在頁(yè)面中對顯示寬度不做限制,單純靠電子書(shū)窗口寬度做限制,那么在高分辨率的大屏幕上,將電子書(shū)窗口點(diǎn)到最大,就可以看到長(cháng)長(cháng)的一行行文字從左排到右,看完一行回過(guò)頭來(lái),可能已經(jīng)搞不清下一行從哪開(kāi)始了。對行長(cháng)進(jìn)行限制的方法不止一種,最簡(jiǎn)單的就是創(chuàng )建一個(gè)固定寬度的表格單元,將內容全部塞到這個(gè)單元里去。本文就是用這種方法限制寬度的,各位看一下源代碼就知道了。
- 居中顯示。在固定行長(cháng)的情況下,還有一個(gè)需要注意的問(wèn)題就是顯示區域的居中。如果將內容全部靠左顯示,在大屏幕下看起來(lái)會(huì )很不舒服。如果是用表格解決行長(cháng)問(wèn)題,將表格屬性指定為“水平居中”即可。
- 字體大小的問(wèn)題。這個(gè)問(wèn)題也是一個(gè)比較容易忽視的問(wèn)題,我甚至見(jiàn)過(guò)有人為自己“完美”的字體搭配而洋洋得意。但是從我看到的情況來(lái)看,在800×600分辨率下看起來(lái)很好的字體大小,到1024×768下可能就已經(jīng)有點(diǎn)小了,到1280×1024下則可以用來(lái)測視力。所以我一貫反對將網(wǎng)頁(yè)中的字體大小設置死。
四、適當利用網(wǎng)頁(yè)特效
我認為電子書(shū)可以大致分成兩種,一種追求的是與紙質(zhì)出版物的盡量一致,另一種則更強調通過(guò)動(dòng)態(tài)網(wǎng)頁(yè)等技術(shù)增加閱讀的方便性。前者以pdf為代表,不在本文討論范圍之內。后者以各種基于IE內核的電子書(shū)為代表,正是本文需要討論的東西。
- 適當使用層。一般人制作的電子書(shū),都是在頁(yè)首、頁(yè)尾才有上一頁(yè)、下一頁(yè)、回目錄的跳轉鏈接,這樣如果看到一半的時(shí)候想跳轉,會(huì )很不方便。而我見(jiàn)過(guò)的一本電子書(shū),則使用層定義了一個(gè)很方便的菜單:用戶(hù)在頁(yè)面的任何地方點(diǎn)右鍵,都會(huì )彈出菜單,菜單包含上一頁(yè)、下一頁(yè)、回目錄的跳轉鏈接。另外在制作技術(shù)性書(shū)籍的時(shí)候,也有人用層彈出對關(guān)鍵詞的注解,如微軟的MSDN。
- 巧用動(dòng)畫(huà)增加頁(yè)面趣味性。這方面做得最出名的無(wú)疑是錢(qián)建文先生,E書(shū)首頁(yè)緩緩拉開(kāi)的動(dòng)態(tài)效果,已經(jīng)成為錢(qián)氏藏書(shū)的經(jīng)典標志了。
- 利用js代碼實(shí)現一些繁瑣、重復性的工作,如上面說(shuō)過(guò)的自動(dòng)生成上一頁(yè)、下一頁(yè)的鏈接。錢(qián)氏藏書(shū)的動(dòng)態(tài)效果其實(shí)也是靠js代碼實(shí)現的。
五、選擇適當的表現形式
對于HTML格式的素材來(lái)說(shuō),一般人考慮的制作方式都是直接制作成EXE格式的電子書(shū)。但是我覺(jué)得其實(shí)也可以考慮其它的表現形式,根據需要進(jìn)行選擇。
- mht格式。我曾經(jīng)見(jiàn)到過(guò)有人將一個(gè)網(wǎng)頁(yè)直接用IE另存為“網(wǎng)頁(yè),全部”,然后打包成EXE格式的電子書(shū),結果一個(gè)1MB多的文件,實(shí)際內容不過(guò)區區10多KB。對于這種只需要保存一個(gè)網(wǎng)頁(yè)及其中圖片的情況,我一般是在另存為“網(wǎng)頁(yè),全部”后,先用Dreamweaver進(jìn)行編輯,去掉所有不必要的內容,然后再另存為“Web檔案,單一文件”,即mht格式。與其它格式相比,mht文件同樣只有一個(gè)文件就可以放下全部?jì)热?,鼠標雙擊就能打開(kāi),而且用IE就可以直接生成,不需要額外的制作工具,還沒(méi)有EXE文件的目錄打開(kāi)慢、容易染毒的毛病。
- chm格式。大多數人使用chm格式,其實(shí)只是使用了chm的皮毛功能,即網(wǎng)頁(yè)壓縮、打包的功能,頂多再用到一個(gè)“目錄”功能實(shí)現導航。其實(shí)在制作某些具有學(xué)術(shù)性質(zhì)的電子書(shū)時(shí),chm格式獨有的索引、搜索功能,將會(huì )大大增加讀者檢索資料的方便性。我一直認為這方面做得最好的是MSDN,不過(guò)這個(gè)不是人人都能看到的。有興趣的人也可以進(jìn)入Windows XP的幫助目錄(C:\WINDOWS\Help),仔細看一下其中chm文件對索引、搜索功能的使用。至少到目前為止,我還沒(méi)有見(jiàn)到過(guò)哪個(gè)EXE格式的電子書(shū)提供全文搜索功能。
六、工欲善其事,必先利其器
如果各位制作電子書(shū),只是抱著(zhù)“玩玩而已”的態(tài)度,那么可以忽略下面的建議,否則可以參考一下。
- 至少學(xué)會(huì )看HTML源代碼,可能的話(huà)再學(xué)會(huì )看css、js源代碼。我想可以這么說(shuō):一個(gè)人如果只會(huì )用所見(jiàn)即所得的編輯器編輯網(wǎng)頁(yè),那么他這輩子大概都只能在電子書(shū)制作的大門(mén)口打轉,很難登堂入室。原因無(wú)它:很多隱藏在代碼里的東西,在頁(yè)面上是看不出來(lái)的。
- 就算自己學(xué)不會(huì )js編程,至少也應該多到相關(guān)站點(diǎn)看看,搜集一些特效代碼。原因也很簡(jiǎn)單:熟讀唐詩(shī)三百首,不會(huì )作詩(shī)也會(huì )吟。
附錄 實(shí)例分析
本附錄以“幻劍書(shū)盟(http://www.hjsm.net/)”中的書(shū)為例,分析其頁(yè)面命名規范及使用js代碼實(shí)現翻頁(yè)鏈接自動(dòng)生成的方法。
一、頁(yè)面命名規范
幻劍書(shū)盟的頁(yè)面命名規則是:
- 目錄頁(yè)命名為contents.html。
- 內容頁(yè)文件名=部號+章節號.html
所謂部號,指的是書(shū)的第幾部,如玄雨的《夢(mèng)幻空間》就有三部。當然大多數書(shū)只有一部。部號從1開(kāi)始。
章節號從1開(kāi)始,順序增加,不足3位數的在前面補零,湊足三位數。
如某套書(shū)的第2部第3章,則其文件名為2003.html;而1023.html則表示某本書(shū)的第23章。注意即使整套書(shū)只有1部,其部號也不能省略,如果文件名以0開(kāi)頭,則下面的js代碼會(huì )失效。
- 一套書(shū)的所有頁(yè)面放在同一個(gè)文件夾下,包括下面說(shuō)的pagescript.js文件。
二、頁(yè)面設置
在內容頁(yè)中,在每一頁(yè)底部需要顯示跳轉鏈接的地方插入如下代碼:
<script language="javascript" src="pagescript.js"></script>
三、生成頁(yè)面跳轉鏈接的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>上一頁(yè)</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>下一頁(yè)</font></a></td></tr>") ;
從這段代碼可以看出,在提取出當前頁(yè)面的URL后,減1即為上一頁(yè)的文件號,加1則為下一頁(yè)的文件號。
就這樣,幻劍書(shū)盟通過(guò)規范的頁(yè)面命名方式,簡(jiǎn)單的js代碼,巧妙地解決了頁(yè)面跳轉鏈接的自動(dòng)生成問(wèn)題。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。