看多了对Tex和DocBook的吹捧、对MS Word的批判之后,我也对前者作了许多尝试,因而有了一些自己的体验。总的来说,虽然Tex和DocBook的确有一些让我心动的特性,但是对我来说它们的缺陷更为致命。
如果说Tex和DocBook最大的优点,当然是数据和显示的分离。而事实是,很多时候数据和显示根本就无法分离。比如表格,很多时候表格需要专门调整以适应排版,根本就不存在一个模版能够保证所有的表格都能被恰当地显示。因此在你的Tex或者DocBook的源文件里很可能会留下对表格的显示进行调节的代码,而这是与数据和显示相分离的原则相违背的。另外,在对表格进行微调时,用户当然希望能有一个可视化的编辑环境,而不是不断编辑源码再去编译然后发布,然后再回头修改,这太恶心了。
使用Tex和DocBook最大的牺牲就是个性化的显示。如果你要制作自己的显示风格,就要去学习复杂的模版制作知识,其复杂程度令人难以想象,事实上这些平台的忠实使用者也极少掌握相关知识。更过分的是,即便你掌握了相关的知识,由于没有一个所见即所得的编辑环境,对模版的修改仍需要不断用试误的方式进行,这成了一项体力劳动。因此,Tex和DocBook的使用者发布的文档都是千篇一律的排版。
总体来说,Tex和DocBook的用户对他们使用的平台过于吹嘘,其中不排除对MS的反感情绪。另外,这些人绝大多数是数学界或IT界人士,他们的使用经验并不适合于大多数人。
就我个人来说,我并不害怕学习Tex和DocBook的相关知识,但我知道当真要使用Tex或DocBook得到自己想要的排版结果是一件巨难的事,不值得为其付出太多时间。
如果能够出现WYTIWYG和WYSIWYG的结合体,也就是前台如MS Word般易用,后台如Tex和DocBook般可靠,那是最好。否则还是先用MS Word好了。
一直希望写作时能够把显示和数据分离,在网上发现了DocBook似乎可以满足我的这一需要,因此试用了一下。
第一个感觉就是虽然想法很好,但是真正实现起来太麻烦。如果要发布为HTML还好一点,经过XSL转换一下即可;但是如果要定制为自己想要的形式,就要用到XSL、CSS、HTML的知识,对了,还要DTD或者XSD的知识。如果发布为PDF,那就复杂得比较荒谬了,还要用上XSL-FO;如果要定制为自己想要的形式,晕,真不知道要用到多少知识才行。对了,对了,还要掌握每个转换步骤所用到的工具的知识。
第二个感觉就是太不保险。随着时间的推移,DocBook的规范还会不断发生变化,你现在按照DocBook4.x或者DocBook5.x写出来的东西,将来就未必能用了。也许变化不会很大,但是会牵扯到XSL或者XSL-FO这些转换过程,出了问题你还不一定找到毛病在哪里,想想就头大了吧。
另外,DocBook对表格没有制定自己的规范,使用的是CALS或者HTML的表格,总让我觉得有点怪怪的。
最后,总结一下。一句话概括,DocBook离实用还太远。
由此引申出的结论就是:还是老老实实用好MS Word吧。
Word 2007进一步增强了对XML的支持。Word 2007缺省的文件后缀是.docx,它本身就是XML格式,你把.docx改为.zip就可解压出许多xml文件出来,这所谓的Office XML格式。我这里想说的不是Office XML,我指的是普通的XML,或者说用户自己的XML。
使用Word 2007基本上可以进行XML的所有操作。Office 2007自身的帮助文档对XML相关功能的介绍比较简略,示例代码也不完整,感兴趣的朋友可以使用我这里给出的示范文件尝试一下。
创建XML
你需要一个XML Schema,这在Word 2007里面叫“XML架构”,点开“开发工具”工作区就可以找到了。点击“架构”,你就可以添加xsd文件。利用“XML结构”侧边栏,你可以很容易的添加内容,同时也获得了针对相应xsd的校验。
编辑XML
直接打开XML文件即可编辑。
校验XML
仍然是用XML Schema,也就是所谓的“XML架构”。
保存XML
点开“XML选项”窗口,如果校验还没有通过就想保存,那么勾选“允许另存为XML(即使无效)”。另存为“Word 2003 XML文档”即可保存。这里要注意,在保存时一定要勾选“仅保存数据”——否则就变成WordProcessingML文件,原来的内容可就回不来了。
转换XML
直接打开XML文件,会出现一个“XML文档”侧边栏,里面有个“XML数据试图”列表框,可以添加XSL文件。接下来就比较爽了,你可以另存为HTML就获得了HTML格式的输出,另存为WORD就获得了WORD格式的输出。更爽的是Word 2007有一个SaveAsPDFandXPS插件,安装了它以后,你就可以另存为PDF了。
以上这些功能如果用开源软件来实现,也不是不可能,但肯定要麻烦得多。
但是Word 2007操作XML也有一个缺陷,就是保存的时候非常危险。我的建议是尽可能不要用它编辑你的XML文件,万一保存为Word XML文件,那会把你郁闷死的。