主要是之前写的不少帖子,都是用word编辑,然后转换为PDF后发布的,但是此法存在几个问题
此处说的不完美,不是表面看上去的效果不好,而是pdf本身内部所包含的内容,有点瑕疵。
主要是,当你选择一些内容,然后拷贝出来,粘贴到别的地方,比如word中,你会发现,几乎每一行的内容,都是对应的两行,第二行是重复第一行的,而且拷贝出来的内容,格式也是很乱的。
这让我很不爽,因为我要追求的是完美的效果,即你用Word 2007/2010导出的PDF,也应该是在内部的内容和格式上,都是和原先word一致的才对。
所以,后来有机会知道了Docbook,才决定不用word了
word作为基本的文字编辑工具,总体上来说,还是挺不错的,至少对于多数人如此。
而对于我,有时候会遇到单个word文件,包含内容太多,比如99页,而遇到过,在编辑过程中偶尔死掉,导致差点丢失了一些已经编辑的内容。
需要说明的是,我对于使用word和其他工具,已经养成了够好的习惯了,因为是编辑了任何地方,都是顺便Ctrl+S去保存一下的。保证不会出现由于没有及时保存而丢失内容的情况。
但是对于上述所说的word的偶尔死掉而导致文件内容丢失的可能性,却是无法排除的。
所以,还是觉得不太靠谱。
微软的东西,兼容性已经做得足够好了,包括Office系列工具中的word
但是对于之前使用word所遇到的情况,比如2003,2007,和2010等的兼容程度,以及从长远来看,都无法排除,用之前某个版本的word写的东西,无法用新的版本正常打开,且完全兼容旧版本,完全保留之前的所有的内容和设置。
所以,保险起见,还是换用Docbook等xml源码的形式,不用担心在未来任何时刻,都可以完整的打开原始文档,保留所有原始内容和设置。
如果只是写写一般短内容的帖子和文章,word的格式,排版等功能,算是非常好用的了。
但是如果是写的内容非常多,涉及到各个部分的格式调整,即使用了word的模板去统一格式,也显得很繁琐。
因此,内容比较多的话,用word去写,而且还要统一风格和设置,就显得效率比较低了。此时,换用Docbook等,就是很好的选择了。
之前的做法,都是用word写好,然后再转换为PDF。而新的2007/2010的word,支持直接导出PDF,而且已经支持页内链接,标签等(详见之前的帖子:【整理】制作pdf文件后,保持原先word文档中的页内链接和超链接+常见pdf打印机安装使用方法简介),已经算是蛮方便的了,但是还是只能发布PDF一种格式。
而发布PDF格式的文件,好处是利于下载阅读,而且无法更改原文内容,坏处是无法方便的拷贝粘贴所需要的内容,不利于内容的传播和分享。
因此,希望支持更多的格式,尤其是在线的HTML页面。
而后来自从知道了Docbook,才发现,终于找到了我所想要的,同样的原文内容(xml源码),可以支持多种格式发布,至少包括HTML和PDF,这样就方便发布文章,利于文章内容传播了。
然后就是遇到了Docbook,基本上完美解决了我之前的所有问题,相对有很多好处:
这个优点,对于我来说,是最看重的。
即,写任何帖子,文章,的时候,只需要写好对应的xml源码,然后用已经搭建好的环境,编译生成多种格式。
我目前已经搭建好的环境,是在Windows下面的Cygwin,已经自己写好了Makefile,这样,每次写完xml源码,直接make,就可以生成多种版本了,目前已经实现的有:单个的HTML网页文件,多个的HTML网页文件,PDF,RTF(即word文档,用word可以直接打开和编辑的),TXT的纯文本文件,微软的帮助文件CHM
这样,就方便了文章以多种格式发布,和统一设置各种风格(显示效果)了。
此所谓,一种输入,多种输出。
关于版本控制这一点,前面说word的缺点的时候,其实都没提到。那是因为此处我对写的帖子的版本控制,需求还不是特别高。
但是的确,对于更加专业的人员,多人协作写同一本书,这种时候,版本控制,就显得尤为重要了。
Docbook是原始输入,就是xml源码,都属于普通的文本Plain Text,所以很方便使用SVN等版本控制工具,对齐实现版本控制。
这样,任何时候的任何改动,都可以实现追溯和管理了。
当然,相对来说,Docbook,至少对于我来说,也有一些缺点:
此处所说的Docbook入门,指的是两方面
之前是一直多Docbook是啥,没太搞懂。
其实现在也不是完全清楚,因为想彻底搞清楚,得多花时间去搞懂很多概念,包括DTD,Schema等等。
不过,想要达到基本了解,够用,其实也就行了。更复杂的东西,可以在折腾的过程中去多了解了解。
其实折腾完毕后,才知道,想要搭建最基本的Docbook环境,能生成HTML和PDF,对于Docbook 5,其实并不难。
但是对于之前最开始接触的那个Docbook 4.5以及之前版本,其实还是蛮麻烦的。
然后搭建了最基本的Docbook 5的环境,在继续定制自己的配置,是需要一点点学习,了解,才能搞定如何配置的。还是需要花些精力的。
当前,搭建好了自己的Docbook开发环境后,以后写完帖子的发布工作,那就简单了,直接Make或者输入命令,实现转换即可。
Docbook本身的核心就在于,非所见即所得,内容和形式(显示)分开,即你所输入的文章的内容,都是在xml源码中,而具体对应的这些内容的显示效果,都是由相关的配置文件和参数,有工具转换后,才能看到具体显示效果的。即本身就不是所见即所得的。
而此处之所以把WYSIWYG列为Docbook的缺点之一,就是因为我们很多人,习惯了微软的Word等所见即所得的环境,突然换成了内容与显示效果分开的Docbook的环境,还真的需要一段时间的适应。
另外,至于我自己,有时候,也的确想要去控制某些内容的显示效果,而无法很方便的配置出来,的时候,也偶尔会觉得,Docbook(加上配置文件和转换工具)在(所得到的)显示效果方面,的确是没有word方便。
举个例子,就比如我想要源码高亮显示,目前所能找到的资料,除了官网的解释,是除了需要开启相应高亮的参数配置之外,还要添加相应extension,然后还需要是Saxon等环境和工具才可以,对于我所用的xsltproc+fop,竟然还不支持,所以很悲催的暂时放弃了代码高亮的功能。详见:【已放弃】给Docbook中代码programlisting实现高亮显示
不过总的来说,类似于这些显示效果的控制方面,即使有时候没法实现或者不方便实现,在可以保证内容完整的前提下,没了这些效果,基本也是可以接受的。