乳胶与DocBook
我对LaTeX,基本格式,基本的math公式等知之甚less。我发现LaTeX很难configuration我自己的风格。 最近,我听说过Docbook,它也是一种排版机制,但是因为它使用了XML,所以更容易。 所以,如果我使用LaTeX / Docbook的主要工作是用一些math书写一个简单的文档(不是课本),而且我想要简单的configuration和一个高度可定制的应用程序,哪一个更好,在Docbook上有没有好书?
那么,我没有使用DocBook,但从维基百科和谷歌快速浏览:
- DocBook没有描述math的元素。
- DocBook是XML,就像你说的那样。 对我来说,手写(或者基本的文本编辑器)是一件非常可怕的事情。 也许你喜欢写XML,或者有一个好的IDE。 我想你可以看看这个问题 。
DocBook的维基百科页面上列出了几本书,你可能想看看,但我显然不能说它们是否是“好”的书。
我会build议去LaTeX。 让别人给你一个基本的模板,然后写LaTeX就像这样简单:
\section{Introduction} This is my introduction. \section{Stuff} Here is some stuff. \subsection{Particular stuff} A particular type of stuff. With maths: $\int_{x=1}^n 3x^2$ % etc.
Google是您寻找可以从以下方面开始的基本模板的朋友:
- 一
- 二
- 三
从源代码到文档,你需要一个LaTeX的工作安装(这是超出了这个答案的范围,但是如果你在Linux上很容易)。 理想情况下,您的LaTeX安装将包含pdflatex
。 然后你运行:
pdflatex source.tex
(如果你有参考书目,还有更多的工作要做,但这是另外一个问题的话题)
DocBook不是“排版机制”。 DocBook是关于从内容分离的演示。 DocBook只处理内容; 它用于创build一本书,文章等的抽象表示。有很多工具 ,根据预定义的模板布局DocBook。 其中一些工具使用LaTeX 。 AFAIK,O'Reilly使用DocBook语言稍作修改的版本来编写他们的内容,然后将这些XML提供给与Adobe FrameMaker集成的自定义脚本来布置他们的书籍。
LaTeX本质上是一个试图将演示文稿与TeX内容分开的尝试,但是它并没有完全达到IMO的目标。 在大多数情况下,演示文稿仍然与内容混在一起。 我认为LaTeX是目前最好的分页分页文档的开源工具。 但是,像InDesign这样的专有工具有许多TeX没有的function(如良好的 OpenType支持)(XeTeX types增加了OpenType支持)。 无论哪种方式, 如果你正在写一本书 ,我强烈推荐使用DocBook来创作你的内容而不是LaTeX。
也就是说,这听起来就像是在写一些短小的一次性文件。 我认为乳胶可能是你最好的select。 如果您需要大量的可定制性,您可能需要使用Plain TeX而不是LaTeX,但是您需要做相当多的工作。
关于DocBook的好处在于它是基于XML的 – 所以一章是一个完整的子树,一个章节是一个完整的子树等等。在LaTeX中,分离只是由线性扫描期间的文档结构决定的。
关于Docbook最糟糕的是它是基于XML的 – 低层次的东西是非常脏的,烦人手动编码。
我对DocBook并不是很熟悉,尽pipe我已经相当广泛地使用了LaTeX。 LaTeX的想法不是生成定制的文档,而是生成可读的,有吸引力的文档。 它是围绕着TeX的一系列库,模板,macros等等,由那些在文档devise时知道自己在做什么的人build立起来的。 当然,你有他们无法预料的特殊需求,所以你也必须做一些调整。 这是一个非常高级的声明性语言,它反映了文档的内容和结构,而不是它应该是什么样子,这个想法是你的想法和它的组织方式是你应该关心的,而不是页面上文字的布局。 如果你需要更多的控制,那么就有一个巨大的额外的样式和macros等库(CTAN),其中一些(想到回忆录)会给你很多控制权。
如果你把很多复杂的格式化的东西放到你的LaTeX文档中,那么你做错了。 你需要做的是在那里获取你的内容,并且你的文档在语义上被分成章节,小节和小节, 然后再回去,担心格式化。 在这一点上,你不应该进入你的文档的主体。 它应该都是适用于整个文档的一般东西,最好是以可重用的方式。 这确保了一致性。
是的,LaTeX是一种很难configuration来产生你想要的布局。 我build议你看一下LaTeX类回忆录的手册,看看它能让你制作什么样的布局。
DocBook上有一本在线的书。 看看这个,看看你可以产生什么样的布局,如果你可以很容易地用DocBook格式化你想要的math内容。
我的build议是使用LaTeX,如果你必须写一些不重要的math,当然这取决于你使用哪种格式。
大约两年前,我试图喜欢和使用DocBook; 然而,我回到了LaTeX,因为至less在那个时候,LaTeX产生了更好的质量输出(PDF)。 我从来没有设法让DocBook到LaTeX到PDF翻译工作。 我的问题可能是“操作员错误”,但我build议在select一个之前尝试DocBook(和LaTeX)几个简单的文档。
这里有几点让我select了LaTeX:
- BibTeX用于JabREF作为GUI的参考书目
- 优秀的质量PDF输出
- 在互联网上的很多例子,包括几个类似于我的首选格式
- 好书,像“乳胶指南”
如果你喜欢graphics用户界面,看看LyX 。
我不想下去“更容易”或更好的路线,因为我认为这是一个习惯和习惯的问题。 我将docbook看作是一个优势,因为它可以通过使用XSLT变成几乎任何你喜欢的东西。 结合其独立性,更像是构buildLatex所做的内容。 尤其是logging开源软件Docbook的应用非常广泛。 您可以轻松获取例如Hibernate和/或Spring的模板和样式表,并根据您的需要调整它们。
另一个方面我想要看到的是在构build系统中的集成。 对于Maven来说,有一个名为docbkx的插件可用,它根据内容和适当的XSLT只是吐出PDF,HTML和任何你喜欢的东西。 不需要进一步的安装。 我已经看到用Latex完成这些工作的唯一方法是在构build操作系统上安装一些软件包,并围绕它们构build自己的脚本。 恕我直言,这不是一个可行的方式去,特别是如果你build立跨平台。
关于编辑,我可以build议XMLmind XMLEditor ,它需要很多的痛苦,并为docbook提供了一个很好的所见即所得的方法。
如果你依赖mathexpression式,我也宁愿selectLatex,因为在docbook中没有相同的function。
使用DocBook的真正原因在于让您的文档有意义地标记,能够validation它,并将其转换为多种用途,而不仅仅是发布。 LaTeX和其他macros集添加了一个语义标记层,但是您可以随意引入TeX代码,并从其他来源添加macros。 从根本上讲,TeX文档是一个只能由TeX处理器parsing的计算机程序。
对于math和DocBook:DocBook是XML,它允许您根据需要使用其他XML技术; 在这种情况下MathML。 已经提到的XMLmind XMLEditor提供了一个GUImath编辑器,并且包含样式表,以便将它们格式化为网页并与DocBook内容一起打印。
还有一些工具可以使XML文档翻译成其他语言(xml2po是一个简单的, http ://heartsome.net/EN/home.html是一个完整的套件)。
谁需要创build一个专业的,科学的文件(研究论文,书籍,技术指南等)将知道为什么TeX是一个更好的select。
对于那些不了解一些事实的人来说,这是一个很好的例子:好的大学生如果没有正确的引用别人的作品,就可能完全拒绝学生的作品。 我相信,有数百种“官方”的引用和参考方式,哈佛学院有自己的ACM,他们自己的计算机科学家之中,数字(温哥华)符号是最常见的。 许多专业组织都有自己的风格,坚持下去。 据我所知,TeX是唯一意识到这一点的排版系统,在BiBTeX的帮助下,它成为作者非常有力的工具。 它可以节省几个小时,甚至几天的工作时间。
如果我是一个小说作家,或者是一些非技术文档的作者,我可能会selectDocBook。
你看过ConText吗? 与LaTeX相比,configuration更灵活,更容易。
FWIW我通过xmlmind( http://xmlmind.com/ )使用docbook生成html和.chm文件。 我也设置了生成PDF文件,但他们不漂亮。
已经完成了docbook源代码,我用xsltproc和docbook.xsl文件来烹饪。 这是旷日持久和痛苦的build立,但一旦工作,它是甜蜜的。
另一种方法是使用pandoc (扩展降价types的工具)从减价到DocBook。 这将切断xml编辑器,但是您仍然需要对输出格式进行转换。
Arbortext支持原生LaTeX。 您可以发送发布引擎或打印composer phpLaTeX,它会通过它。 它也支持很多其他的组合语言。