学习 DocBook
这是 Kardinal 所著《开源世界旅行手册》中的一部分──《学习 DocBook》。本部分从 XML 讲起,包含 DocBook 介绍、DocBook 环境搭建、创建 DocBook 文档、DocBook 编辑软件、发布 DocBook 文档等内容。新手阅读此部分,可以快速进入 DocBook 之门;而老手也可以从中找到实用的参考,并从作者的经验中获益。现 Kardinal 决定予以提前放出,以飨读者。
《学习 DocBook》目录如下:
XML简介 XML语法
- 标记
- 元素
- 处理指令
- 文件头部
- 实体
- Callout列表
- 跨行表格
- 跨列表格
- 内部链接
- 外部链接
- 脚注
- 参考
- 代码块的样式
- 简单表格的样式
- 关于表格
- 交叉引用
- calloutlist自动编号问题
- 断行符
- 内部链接
你可以从这里进入《学习 DocBook》的在线阅读页面。或者下载《学习 DocBook》的打包文件,以便离线阅读。其中,打包文件中也包含《学习 DocBook》的源文档,感兴趣的朋友可自行研究。
Read More:
用docbook有甚麼好處? 如果我直接寫HTML的話?
tks,what is docbook?
粗略的浏览了下介绍,应该是适合做文档的源文件,利用合适的转换器可以生成各类文档。适合科技文档
好东西支持一下
好东西支持一下 顺便看了一下reStructuredText,觉得那个更诱人啊。有可能做个比较?
reStructuredText相比之下更适合写一般的文章 而DocBook更适合大论文和书籍 当然reStructuredText更适合人类书写 DocBook更适合电脑处理
docbook比TeX简单多了,更适合写些技术文档、软件说明书,论文还是TeX索王道
reStructuredText看来简单多了
不错,讲的挺清晰,很适合我这种菜鸟阅读:)
我一直没掌握编写docbook文档的正确方式,总觉得一前一后的tag输入太累人,不如TeX来得方便……如果把docbook用作TeX的前端,输入起来还不如直接用TeX快。
谢谢changqe1984
另外,说来惭愧,LaTeX的CJK从来没成功过,所以考虑还是要换一个更方便的写作工具。ReST确实比xml更适合人书写。出了emacs以外(当然也排除Vim),有什么方便写xml的工具吗?一前一后的tag确实比较费劲。
个人觉得tex还是不错的,尤其是emacs+auctex,写文章非常的方便,我觉得docbook还是不错的,转换格式最多,troff也还不错。
@allbluedream:我用reStructuredText写过一个关于reStructuredText的文档,现在用Docbook写关于Docbook的文档:)reStructuredText写起来确实比较省事,结果就是,我现在得费劲的把以前的文档整理成Docbook…… 类似reStructuredText的有很多,Muse,txt2tags等,因为语法简洁,源文件比较有可读性,这是优点;缺点是语法太简洁导致功能不够强,而且扩展性比较差;简洁的语法往往对源文件的排版有一定的要求,一个自己都查觉不到的小小疏忽就可能产生莫明其妙的问题 方便的工具似乎还得是Emacs,我用的是docbook-xml-mode这个扩展,它比较简单,稍加改造就很顺手,配合大纲模式,写起来还是比较轻松的。 所谓方便的XML工具包括自动补全和语法检查的功能吧?Emacs有nxml-mode就是这样的扩展;其实对于XML来说,这种模式并不实用,因为常用的标签你可以轻松的掌握它的用法,语法检查在有些地方挺一根筋的;而自动补全效率又低。 对于多数人来说,写的时候最常见的是拼写错误,使用docbook-xml-mode自动插入代码片断,完全可以避免这个问题;再就是特殊字符造成的问题,发布的时候会有提示,使用Emacs可以方便的定位修改
@bigclean: tex的强项应该是排版,对于结构的控制应该不如Docbook(我不会用,只是听一个老鸟说过)。像我现在写的这个文档,在里面大约占2-3%的篇幅,如果用tex,估计很难有效控制 而且tex的工具链很复杂,难以配置。Docbook也可以使用fop输出PDF(最新版的fop对中文支持据说很好),我在AUR上找到fop的PKGBUILD,依赖6-7个JAVA的包,其中还是4-5个还需要PKGBUILD,不知道会不会依赖更多,这样一个嘎吱作响的工具链让人望而生畏,于是我就知难而退了……我想tex的工具链应该更加猥琐
写技术文档我还是喜欢viki...
tex对于结构的控制还是很方便的(很结构化),如果是要自己定制版面的话,那会有点繁琐,但还是有大量的模板供参考,另外,tex的软件以及各种宏包的关系是有点复杂,有时侯会发生一些版本的冲突,但是个人觉得配置还是比较快的,自己用的是gentoo的portage里面的texlive,也可以用texlive2008的光盘安装。
reStructuredText 输出中文 PDF,一小段 Python 程序就足够了。
@bigclean:我一般用尖括号代替书名号,说的话WordPress给理解错了--!!我是说,如果有50篇《学习 DocBook》这样篇幅的文档,要求可以方便的选择发布哪些,组成书的时候控制目录的深度等选项,Tex能作到么? 况且Tex太占地方了,我的系统压缩一下才几百兆……俺得时常把系统压缩一下当模板,好装在别的机器上,装个Tex一张光盘就放不下了--!! @雪梨:老大,俺服了U,上回怎么分页就死活不肯说,这回又是一段没见过的脚本……有什么好东西拿出来看看再说,光说不练假把式……弄个教程哈:D reStructuredText 能支持CalloutList么,我全指着它了
@Kardinal: CalloutList这么重要么?说实话看了你的文档,也上网查了,还是不大明白它的用途。你就是因为这个原因把过去的ReST转成DocBook的?我感觉一般用footnote就OK了啊。
这个是不是你要找的呢? http://docutils.sourceforge.net/docs/user/rst/quickref.html#hyperlink-targets 这里面有个call-out form
@Kardinal: http://docutils.sourceforge.net/docs/user/rst/quickref.html#hyperlink-targets
@allbluedream:哥们儿,这个页面我太眼熟了,以前我写过一个文档,这个页面我参考了很多…… http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=20245
footnote和calloutlist作用完成不一样的,举一个最明显的例子吧,假如我不是分页输出,而一个很长的单独的页面,页面顶部有几个地方需要注释,看解释却要到页面的底部,这样就很麻烦…… calloutlist 适合需要密集注释的地方,脚注一般用在稀疏注释的地方 calloutlist 每一部分包含的解释都重新编号,更容易的区分各个不同的概念。footnote是从头到尾编号的
ReST的call-out其实和脚注差不多,只不过用的不是编号 而Calloutlist要求 标记和注释离的不能太远,以便于阅读
…………这个得用了才知道,这样空口说很难说清楚的…… 文档里的很多的Calloutlist用ReST是不能够以这种清晰度解释出来的
CalloutList很重要,但不是用DocBook的全部理由,还有其它很多的特点 比如语义清晰(ReST对于缩进有特殊要求,如果换用一个不同的编辑器,对缩进的处理可能就不同,就有可能产生混乱) 扩展能力强(ReST的行内元素就要少很多,它的语法特点决定了它弄不出更多的东西来表示标记,要是扩展成类似这种形式(假设) ..::userinput::,那它还不如Docbook方便了) ………… 还有一些特点,一下子真是说不出这么多,我会在Org-mode上弄一个条目,想起一条记一条^__^!!
@Kardinal 你真是耐心!看来必须自己试过才知道了,记笔记的话先从ReST开始,希望不用痛苦地转到DocBook啊。其他一些东西现在是写xhtml的,也许用DocBook更省事。
如果是写xhtml的话,真不如直接用Docbook得了,可以输出xhtml 记笔记用Org-mode,也可以输出为html什么的,不过我只用Org-mode整理一些想法,输出用不到,所以没试这个功能
其实就写作工具链来说,写作和排版的工序已经很好的解决了;还有一环就是前期酝酿阶段,比如收集灵感什么的。你所说的记笔记应该属于这一阶段 Org-mode可以很好的整理混乱的思维,但却不能帮助产生灵感;往往你很随便的回个帖子却能文思泉涌……这好比有些人在宽敞明亮的书房可能什么也写不出来,在人声鼎沸的闹市、酒肆、咖啡馆却灵感如潮……可能灵感需要某种催化剂,得研究下这个问题^_^!!
txt2tags比rest还要简单一些,是py的程序,有简单的GUI转换文档界面
请问,如何在programlisting插入HTML代码?如果直接插入,它显示得不太对。
FOP中文输出别人费解,以前0.20的时候用过,中文不是很理想,一直没有再用。直到0.95发布之后,中文字体配置依然需要额外的配置。这次不知道什么原因,输出的中文全部是框框。
@toy 学习docbook 的链接要更新了
@avenger: thx, 已更新。
@Xhacker 用CDATA,或者将用entity代替