发新话题
打印

电子书制作经验交流专贴

电子书制作经验交流专贴

柴扉




本文所指电子书仅指那些建立在以HTML网页形式展现实体出版物内容基础上的电子文件,其他的,比如手机电子书、PDF什么的,不予讨论。

可以参考一些马健先生的“对E书制作的建议”
http://www.comicer.com/stronghorse/water/software/ebooktech.htm

下面是我的个人经验之谈。给入门朋友看看。

一、一般的工作流程及我用到的软件。

这些软件都可以在网上找到。

1,打字或校对排版。

UltraEdit32:用这个软件打字或对OCR出来的文字校对排版,非常方便。实体出版物上文字有时加重点号或者粗体显示,在UltraEdit32里都可以很方便的加上html标记,和后面的工作衔接上(这个在几个人分工的时候非常重要,工作衔接配合不上,就会造成大量的多余劳动)。

UltraEdit32对大文件的处理非常快。1M以上的txt文件,windows的记事本已经有点吃不消了,你可以用记事本替换一下文字试试,恐怕会崩溃。UltraEdit32一眨眼的功夫就搞完了。

我个人不赞成在word或其他文字编辑软件进行打字或校对的工作。原因很简单,粗体标记<b></b>、下划线标记<u></u>等,word上或许可以显示出来,但是把这个怎么搬到最后的产品HTML上呢?你说直接复制到frontpage或者干脆用word另存为网页就完了。这样做,HTML的文件体积至少会增大一倍,因为里面保留了大量的垃圾代码,而且对内容的控制也很不方便、灵活。我遇到过一次,一位朋友在word里用域公式显示带圈序号,如①等。这个在word里是看不出有什么不妥,往frontpage复制一看,域公式全变形了,多出来一堆字母。只能用word直接另存为网页,不过①还是变成了1。我想,当初校对的时候在特殊字符里直接输入①不就没这个麻烦了嘛。

2,把打完字或校对好的TXT文件转换成相应的HTML文件。

我用的是软景HTML制造机[Softscape HTML Builder]http://www.ruanjing.com/?a=hb1

它自带了一个详细的使用说明,我就不说怎么用了。

3,再校对一遍。

这个是我个人的步骤。有两个目的:把第一遍打的错别字挑出来,把网页的形式小小修正一下。校对两遍,我感觉还是有必要的,只弄一遍错误太多。而且,第二遍最好在网页做好以后再进行。因为这是最终的成品,可以顺遍看看链接有没有错误,把索引或目录页修改一下等等。

有的时候要批量处理一些代码问题(下面我会详细说明),我用TextForever.exe(http://www.comicer.com/stronghorse/software/index.htm#TextForever)或Findstr.exe(http://www.comicer.com/stronghorse/software/index.htm#FindStr)批量文本替换功能处理。

4,打包封装。

EXE:我是绝对不会封装成EXE格式的(网上下载到这种格式的也反编译出html来)。

CHM:我认为如果封装成chm,而不给出搜索(这个最重要)、索引、书签功能,那可真是……还不如给我一个zip包呢。还有就是封装的速度很慢。一个共7M,几百个html文件封装成chm,带搜索、书签功能,我用了快一个小时才编译完。不知道我的软件问题,还是其他问题。有一个《马恩选集》的四卷合集chm,压缩完后还有7M大小。要我来干估计会把电脑跑死。

ZIP:我保存的网页电子书基本都是这个格式。可以用MyReader_chn(http://www.comicer.com/stronghorse/software/index.htm#MyReader)不解压,直接从ZIP中读取内容,用Findstr.exe搜索压缩包里的内容(和chm的搜索功能各有利弊)。


二、需要注意的几个问题。

1,我认为学学html语言(我能看懂大概四分之三)、css(我刚弄明白怎么回事)、js(js我一点不懂),对于提高电子书制作水平很有帮助。

也没必要买本书回来从第一页开始一页一页往下看,网上入门的讲解很多。而且我是用到哪,才去翻看,用不到的根本不看。

如果您一看代码就头疼,那也没关系,有模版,只要会打字就行。

不过我建议您还是搞明白像<p>和<br>的区别这样的,好处很大很大。

2,字体大小和行距的问题。

对中文来说,都设置成相对大小为好。怎么知道是不是相对大小呢?见下图

[ 本帖最后由 柴扉 于 2007-11-23 18:31 编辑 ]


图片附件: 查看.GIF (2007-11-23 18:31, 10.96 K)

TOP

柴扉



选择一下最大或最小,看看文字大小变不变。如果能变,就是相对大小。不变,就是被固定住了,绝对大小。

设成相对大小的好处是,老年人眼神不好就用大点字看。眼神一般,就用中等字体。

行距也是要相对大小。因为如果你设成了固定行距,可能中等字体还没什么,调成最大以后,两行文字就重叠了。

软景HTML制造机的自带的模版都是绝对大小和行距,所以我把控制内容大小、行距等样式的css改了。下面我们会小小分析一下一份样板的css代码的控制功能。

3,上一页、下一页、目录页是否处理成能跟随屏幕移动?

我用过一段时间这种形式的模版。不过后来发现firefox浏览器对那段移动代码不支持,根本不动(代码是我从别处抄的)。而且感觉也不是有多好,后来就放弃了。

4,实体书的脚注、注释如何处理?

这个问题困扰了我好久。

也许在word上编辑的唯一好处就是它能自动把脚注或尾注变成超链接。文库托洛茨基的论西班牙革命,就是那个样子的。相反,俄国革命史每章的脚注都没有链接,而且有的章节非常长,读者可能第一遍读的时候感觉不方便。不过这书多读几遍就能知道哪是哪了。

另一种处理方法就是像,比如《马恩选集》的四卷合集chm那样,把注释放在正文中间。不过我不得不说,那的处理方法实在是太乱了——把注释放在括号里,除此之外和正文没任何区别,不算开头结尾的“注”字。如果注释很长的话,阅读不停地被打断,读着读着就乱了。我是很难读下去。最起码,比如把注释的字体改成楷体,就清爽明白多了。

我看过一本小说《李自成》的chm文件,那里的注释做的不错。字体小了一号,而且放在段落中间,而不是紧随正文被注释的地方。见下图。

[ 本帖最后由 柴扉 于 2007-11-23 18:37 编辑 ]


图片附件: lizicheng.JPG (2007-11-23 18:32, 83.54 K)

TOP

柴扉



文库考茨基的《基督教之基础》这样处理注释,见下图:

图片附件: l.JPG (2007-11-23 18:32, 68.77 K)

TOP

字体小了一号,而且在银灰色背景里。

这样做,正文被注的地方和注释本身相隔不远,基本上不用拉滚动条就能看到,和实体书每页的脚注差不多,很方便。而且,读者的阅读不会被硬性打断,我试过,只要愿意,完全可以略过注释直接往下看。

我目前觉得这是比较妥当的处理方法。

但是这种处理方法,我认为比较适合那种引申解释性的注释。而对于引文出处性的注释,全放到文章最后为好。也就是实体书的尾注处理形式。这个就由制作者自己权衡吧。

三、如果我既不懂也不想学html语言,怎么做成那种注释样子?

模版啊!有了模版,就算您只会打字,也能搞出那种样子的注释来。

下面简单分析一下那份源文件开头的的样式表。您没兴趣的话,直接看(四)。
<STYLE>
<!--
.content {LINE-HEIGHT:165%; FONT-FAMILY: "宋体"}
.content IMG {MARGIN: 7px}
.TitleLinks {TEXT-ALIGN: center}
.TitleLinks .content {LINE-HEIGHT: 20pt}
.TitleLinks .content IMG {MARGIN-TOP: 7px; MARGIN-BOTTOM: 7px}
A:link {COLOR: #0033cc; TEXT-DECORATION: none}
A:visited {COLOR: #0033cc; TEXT-DECORATION: none}
A:active { COLOR: #0000ff; TEXT-DECORATION: none }
A:hover { COLOR: #ff0000; TEXT-DECORATION: underline }
table.footnote {border-style: none; width:100%; background-color:silver; font-size: smaller;line-height: 160%;}
.cite{font-family: 楷体_GB2312; margin-left:2em;}
-->
</STYLE>

.content {LINE-HEIGHT:165%; FONT-FAMILY: "宋体"}

这个表示行距为字体高度的1.65倍,字体是宋体。大小没有说,浏览器默认3号字,也就是相对大小。这里我顺便一提,我发现把LINE-HEIGHT:165%改成LINE-HEIGHT:"165%",也就是说加了引号,firefox立刻不认。也就是说不兼容。

接下来几个表示链接文字的样式,颜色还有下划线什么的。和这里没什么关系。

table.footnote {border-style: none; width:100%; background-color:silver; font-size: smaller;line-height: 160%;}

这个就表示注释文字的样式。注释文字放在表格里。border-style: none; 边框不显示,width:100%;表格宽度,也就是那个银灰色背景沾满行长。background-color:silver; 背景是银灰色。font-size: smaller;表示字体要小一号,也是相对大小。line-height: 160%;表示注释的文字行距是字高的1.6倍。

把注释性文字

  ①  哈特曼(Ludo M.Hartmann):《意大利中古史》,1897年版,第一卷,第七页。

前后加上代码:
<TABLE class=footnote><TR><TD>  </TD></TR></TABLE>

<TABLE class=footnote><TR><TD> 表示表格开始,其中class=footnote表示这是注释性表格,而不是其他表格。

</TD></TR></TABLE>表示表格结束。

也就是:

<TABLE class=footnote><TR><TD>  ①  哈特曼(Ludo M.Hartmann):《意大利中古史》,1897年版,第一卷,第七页。</TD></TR></TABLE>

为了美观,①前面有两个中文空格。当然这个功能也可以用代码实现,但是我考虑的结果是,还是加空格为好。因为对于文档的体积不会增加几K,而且复制到txt上的时候还可以保留空格的效果。

就成了。

把这份文件处理一下,按照软景HTML制造机模版的要求,我做了一份模版(把下楼内容全部复制到txt文件里,然后把后缀改为htm)

TOP

柴扉


<HTML><HEAD><TITLE>[PART1]</TITLE>
<META http-equiv=Content-Type c>
<STYLE>
<!--
.content {LINE-HEIGHT:165%; FONT-FAMILY: "宋体"}
.content IMG {MARGIN: 7px}
.TitleLinks {TEXT-ALIGN: center}
.TitleLinks .content {LINE-HEIGHT: 20pt}
.TitleLinks .content IMG {MARGIN-TOP: 7px; MARGIN-BOTTOM: 7px}
A:link {COLOR: #0033cc; TEXT-DECORATION: none}
A:visited {COLOR: #0033cc; TEXT-DECORATION: none}
A:active { COLOR: #0000ff; TEXT-DECORATION: none }
A:hover { COLOR: #ff0000; TEXT-DECORATION: underline }
table.footnote {border-style: none; width:100%; background-color:silver; font-size: smaller;line-height: 160%;}
.cite{font-family: 楷体_GB2312; margin-left:2em;}
-->
</STYLE>
</HEAD>
<BODY>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="84%" border=0>
<TBODY>
<TR>
<TD width="90%">
<TABLE height="100%" cellSpacing=1 cellPadding=6 width="100%" bgColor=#c0c0c0
border=0>
<TBODY>
<TR bgColor=#f5f7ee>
<TD height=30 bgcolor="#fffffd">
<table border="0" width="100%" cellspacing="1">
<tr>
<td></td>
<td>
<p align="right"><font size="-1">[GOPREV]  [GOINDEX]  [GONEXT]</font></td>
</tr></table></TD>
</TR>
<TR bgColor=#f5f7ee>
<TD width="100%">
<div align="center">
<TABLE  cellSpacing=0 cellPadding=0 width="90%"  border=0><TBODY>
<TR>
<TD height=21 width="100%">
</TD></TR>
<TR>
<th width="100%" height=21>
<P align=center ><h2>[PART1]</h2></P></th>
</TR>
<TR>
<TD height=21></TD>
</TR> <TR>
<TD height=21 width="100%">
<DIV class=content align=left>
<P>
[PART0]</P>
<br>
</DIV></TD></TR></TBODY></TABLE>
</div></TD></TR>
<TR>
<TD width="100%" bgColor=#f7f7f7 height=20>
<p align="center"></TD></TR>
<TR>
<TD bgColor=#fffffd height=32>
<table border="0" width="100%" cellspacing="1">
<tr>
<td></td>
<td>
<p align="right"><font size="-1">[GOPREV]  [GOINDEX]  [GONEXT]</font></td>
</tr></table></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV></DIV></BODY></HTML>

TOP

柴扉



四、难道打字的时候要把<TABLE class=footnote><TR><TD> </TD></TR></TABLE>都打上去?

当然不用。而且打字容易打错。我的方法是批量替换。

举例如下:

打字或校对排版的时候遇到如下情况:

在公元前五三年中,因为收买选票的进行大大增加了现金的需求的缘故,资本的利息一时大增,并且引起了一种财政危机①。

① 萨教奥里(salvioli):《古代社会的资本主义》,1906年版,第243页。

莫悟生说,“贵族(谋官职的贵族)是要出很高的价钱的。”


我们在注释文字的前后分别加上特殊标记。比如#、¥。这个绝对不能用容易混淆的标记。

处理成这个样子:

在公元前五三年中,因为收买选票的进行大大增加了现金的需求的缘故,资本的利息一时大增,并且引起了一种财政危机①。

#① 萨教奥里(salvioli):《古代社会的资本主义》,1906年版,第243页。¥

莫悟生说,“贵族(谋官职的贵族)是要出很高的价钱的。”


也就是说,您只需要在注释文字的前后多打两个字符#¥

然后用软景HTML制造机把这份txt文档成生html文件。要允许每段自动缩进两个汉字,段落间空一行,允许HTML单行。

最后,用TextForever.exe或Findstr.exe批量替换掉html文件里的

<br><br> ←→ <p> 你可以试试不替换这个的前后效果。

  #(前面有两个中文空格)←→ <TABLE class=footnote><TR><TD>  (后面加两个中文空格)

¥ ←→ </TD></TR></TABLE>

这样就完工了。但是,我还是建议您这时候再校对一遍,可以顺便看看有没有错误。

总结一遍:如果因为我说的太乱,您一看就头晕,您只需记住在注释文字的前后多打两个字符#(在开头)¥(在结尾)。这就是打字或校对排版时需要多做的唯一工作。


五、在把实体书内容以网页表现时,有时不能照搬照抄

虽然我觉得这是废话,不过经验说明,现在不说废话,将来就可能费事。

比如:

1,书上第300页上写着一句『见第123页图表』,你也照抄照搬到网页上去了,读者上哪找第123页去?遇到这种情况,如果你单独制作这本书,就可以在那个地方做个超链接,读者一点击,就跳到图表的位置上了。如果只负责分工中的打字校对部分,那就要和协调负责人说明这个情况,请他酌情处理。

2,注释的具体位置怎么放,你根据情况要会变通。我认为,一般可以把注释直接放在被注语句所在段落的后面。实体书上注释都放在页面最下脚,那个是纸张大小、分离的原因不能随便放。如果一个段落在两页都有,而第一页那个段落下面又有注释,那决不能让这个注释把这段分开(打字一般不会这么干,校对排版OCR文字时,可能有人就没想到需要调整一下注释位置)。

还有一种情况,如果两段内容连续紧密,比如第一段以“谁谁说:”结尾,第二段就是他说的内容。这时第一段后面的注释就不宜插在两个段落中。可以考虑调整到他说的话结束以后,或者把前一段在注释处分成两段。

再有,有时实体书一页上有两个或两个以上的注释。这个时候,一般没有必要把两个注释放在一起,除非它们注释的语句在同一个段落中。但是也有特殊情况,比如第二个注释说,同上书,第XX页。这时就最好放在一起。放在一起的话,我认为在两个注释间加一个断行标记<br>和两个中文空格为好。大家可以看看《基督教之基础》那里是怎么处理各种情况的。当然,也没必要以它为准。

TOP

柴扉


马恩选集的注释有两种,一种是脚注,一般是作者本人写的。一种是全书后面的编译者的注释,都很长。后一种注释,我琢磨采用层弹出技术比较合适。像微软的帮助文件那样。

TOP

柴扉



废柴。

这段代码更好一些。

.footnote{padding:0.5ex 1ex;background-color:#c0c0c0;font-size:smaller;line-height: 160%;text-indent: 2em;}

<div class=footnote>
注释内容
</div>




biaogang



我觉得如果做chm,也可以这样:脚注做在网页底部,全书注释用另一网页。都用链接往返(脚注和注释的链接样式不能一样)。

例:

test1.html

<BODY>

正文一<a name="[1]a"><a href="#[1]b">[1]</a></a>
<br>
正文二<a name="【37】a"><a href="test2.html#【37】b">【37】</a></a>
<br>
<hr>
<a name="[1]b"><a href="#[1]a">[1]</a></a>脚注

</BODY>



test2.html

<BODY>

<a name="【37】b"><a href="test1.html#【37】a">【37】</a></a>注释

</BODY>





..一种是全书后面的编译者的注释,都很长。后一种注释,我琢磨采用层弹出技术比较合适。像微软的帮助文件那样。
————————————————————————————
你是指hlp吗?




另外:俄革史的模板用一个Table把正文都框进去,这种方式适用于本地文件但不适用于网络浏览。table要等里面所有的内容都加载完毕后才显示出来的,如果某些内容无法访问,就会拖延整个页面的访问速度。

另外:推荐使用unicode。好处:只要操作系统支持unicode(现在基本上都支持),文档国际通用。在文档中包括中英法俄德多国文字的时候优势非常明显。









柴扉






我觉得如果做chm,也可以这样:脚注做在网页底部,全书注释用另一网页。都用链接往返(脚注和注释的链接样式不能一样)。
--------------
这个方式《震撼世界的十天》里采用过。其实怎么放无所谓,主要是我不想用word编辑,而不用word编辑,链接代码就得自己敲。本人懒……


你是指hlp吗?
------------
hlp是很老的格式了吧。我是说微软的软件的帮助文件,比如word,点击一下关键词,就把隐藏的文字显示出来了。不过这个太麻烦。


俄革史的模板用一个Table把正文都框进去,这种方式适用于本地文件但不适用于网络浏览。table要等里面所有的内容都加载完毕后才显示出来的,如果某些内容无法访问,就会拖延整个页面的访问速度。
------------------------------------------
我也注意到了这个问题。本地看的时候没感觉,网上看显示的有一段延迟。你说了我才弄明白是table的原因。看来模版得修改。不过本论坛也用了table,我怎么没感觉那种延迟?是不是因为每个table里的内容都不多,而且是显示完一个table,再显示下一个table?



另外:推荐使用unicode。好处:只要操作系统支持unicode(现在基本上都支持),文档国际通用。在文档中包括中英法俄德多国文字的时候优势非常明显。
--------------------------
使用unicode双字节编码,文档体积会增大一倍吧?我没试过网页,但试过txt文档,增大了一倍。当然也不是大问题。不过在网页里注明简体中文gb2312编码,浏览器不是一般都能正常显示吗?其实主要的问题是,我用的那些软件只认gb2312编码,unicode显示出来的是乱码。













biaogang








不过本论坛也用了table,我怎么没感觉那种延迟?是不是因为每个table里的内容都不多,而且是显示完一个table,再显示下一个table?
——————————————————————————————
对。我这儿网速慢,有时就可以感觉到。


hlp是很老的格式了吧。我是说微软的软件的帮助文件,比如word,点击一下关键词,就把隐藏的文字显示出来了。不过这个太麻烦。
————————————————————
那种帮助文件我压根不懂……我只会最简单的html,css、活动网页什么的都不会,编辑时只用EditPlus和Word的基础功能……



使用unicode双字节编码,文档体积会增大一倍吧?我没试过网页,但试过txt文档,增大了一倍。当然也不是大问题。不过在网页里注明简体中文gb2312编码,浏览器不是一般都能正常显示吗?其实主要的问题是,我用的那些软件只认gb2312编码,unicode显示出来的是乱码。
——————————————————————————————
哦,刚试了试,对于文档和网页,英文的增大1倍,中文的增大得少(控制字符什么的会增大)。我觉得多语种网页最好用这个,否则类似于ã 这种字符常常出问题。或者用GBK/GB18030,也挺好。







柴扉








我试验的结果是中文文档大约增加三分之一。

最近想了一个办法整理word生成的html,只保留超链接的代码(dreamware可以精简word的垃圾代码,不过只是一部分)。就是用正则表达式删去所有以“<”开头“>”结尾,而第二个字符不是a或者第二三个字符不是/a的字符串。

不过正则表达式

刚开始看怎么写













seabiscuit




你还不如做个视频教程!

google:视频录像工具

我头都看大了..........昏倒

TOP

发新话题