我对 LaTeX、基本格式、基本数学公式等知之甚少。我发现 LaTeX 很难配置成我自己的风格。最近听说过Docbook,它也是一种排版机制,但是因为使用了XML,所以容易很多。所以,如果我使用 LaTeX/Docbook 的主要工作是编写一个包含一些数学知识的简单文档(不是课堂书籍),并且我想要简单的配置和高度可定制的应用程序,那么哪个更好,有没有关于 Docbook 的好书?
12 回答
DocBook 不是“一种排版机制”。DocBook 就是将演示与内容分离。DocBook 只处理内容;它用于创建书籍、文章等的抽象表示。有许多工具可以根据预定义的模板布局 DocBook。其中一些工具使用 LaTeX。AFAIK,O'Reilly 使用稍微修改过的 DocBook 语言版本来创作他们的内容,然后他们将这个 XML 输入到与 Adobe FrameMaker 集成的自定义脚本中来布局他们的书籍。
LaTeX 本质上是一种尝试将 TeX 中的表示与内容分开,但它并没有完全实现 IMO 的目标。在大多数情况下,演示文稿仍然与内容混合在一起。我认为 LaTeX 是目前用于布局分页文档的最佳开源工具。然而,像 InDesign 这样的专有工具有许多TeX 所没有的特性(比如良好的OpenType 支持)(XeTeX增加了 OpenType 支持)。无论哪种方式,如果您正在写一本书,我强烈建议您使用 DocBook 而不是 LaTeX 来创作您的内容。
也就是说,听起来您正在编写简短的一次性文档,其中包含一些数学知识。我认为 LaTeX 可能是你最好的选择。如果你需要大量的可定制性,你可能需要使用Plain TeX而不是 LaTeX,但这需要你做很多工作。
好吧,我没有使用过 DocBook,但是快速浏览一下 wikipedia 和 google:
- DocBook 没有描述数学的元素。
- 正如您所说,DocBook 是 XML。对我来说,这使得手写(或者,更确切地说,使用基本的文本编辑器)是一件可怕的事情。也许您喜欢编写 XML,或者拥有一个好的 IDE。我想你可以看看这个问题。
DocBook 的Wikipedia 页面列出了几本您可能想看的书,但我显然不能说它们是否是“好”的书。
我建议使用 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 的伟大之处在于它是基于 XML 的——所以一章是完整的子树,一节是完整的子树,等等。在 LaTeX 中,分隔仅由线性扫描期间的文档结构决定。
Docbook 最糟糕的地方在于它是基于 XML 的——低级别的东西非常脏,而且手动编码很烦人。
尽管我已经相当广泛地使用了 LaTeX,但我对 DocBook 并不是很熟悉。LaTeX 的思想不是制作一个定制的文档,就是制作一个可读的、有吸引力的文档。它是一组围绕 TeX 的库、模板、宏等,由知道自己在文档设计方面做什么的人设置。当然,您有他们无法预料的特殊需求,因此您也必须进行一些调整。它是一种非常高级的声明性语言,旨在反映文档的内容和结构,而不是它应该是什么样子,其想法是您的想法及其组织方式是您应该关注的,不是页面上文本的布局。如果您需要更多控制,则存在一个包含额外样式和宏等的庞大库(CTAN),其中一些(想起回忆录)为您提供了很多控制权。
如果您将大量复杂的格式化内容塞入LaTeX 文档的正文中,那么您做错了。你需要做的是把你的内容放在那里,你的文档在语义上被组织成章节和小节,然后再回去担心格式。此时您不必过多地进入文档正文。它应该都是适用于整个文档的通用内容,最好以可重用的方式。这确保了一致性。
是的,LaTeX 很难配置以产生您想要的那种布局。我建议你看一下LaTeX 类回忆录的手册,看看它能让你产生什么样的布局。
网上有一本关于 DocBook 的书。也看一下,看看您可以生成什么样的布局,以及您是否可以使用 DocBook 轻松格式化您想要的数学内容。
如果您必须编写任何重要的数学,我的建议是使用 LaTeX,但当然这取决于您发现哪种格式更容易使用。
大约两年前,我尝试喜欢和使用 DocBook;但是,我回到了 LaTeX,因为至少在当时,LaTeX 产生了更好的质量输出(PDF)。我从来没有设法让 DocBook 到 LaTeX 到 PDF 翻译工作。我的问题很可能是“操作员错误”,但我建议在选择一些简单文档之前先尝试 DocBook(和 LaTeX)。
以下是导致我选择 LaTeX 的几点:
- 以JabREF作为 GUI 的BibTeX 参考书目
- 优质的PDF输出
- 网上很多例子,包括几个和我喜欢的格式差不多
- 好书,例如“LaTeX 指南”
如果您喜欢 GUI,请查看LyX。
我不想走“更简单”或更好的路线,因为我认为这是一个品味问题并习惯了。我认为 docbook 是 XML 的一个优势,因此它可以通过使用 XSLT 变成几乎任何你喜欢的东西。结合它的独立性,它感觉更像是 Latex 所做的结构化内容。尤其是记录开源软件 Docbook 确实被广泛使用。您可以轻松地获取例如 Hibernate 和/或 Spring 的模板和样式表,并根据您的需要对其进行调整。
我想指出的另一个方面是构建系统中的集成。对于 Maven,有一个名为 docbkx 的插件可用,它只会根据内容和适当的 XSLT 输出 PDF、HTML 和任何您喜欢的内容。无需进一步安装。我见过的使用 Latex 完成此任务的唯一方法是将一些软件包安装到构建操作系统并围绕 em 构建自己的脚本。恕我直言,这不是可行的方法,特别是如果您构建跨平台。
关于编辑器,我可以建议XMLmind XMLEditor,它会带来很多痛苦,并为 docbook 提供了相当不错的 WYSIWYG 方法。
如果您依赖数学表达式,我也更愿意选择 Latex,因为 docbook 中没有任何东西具有相同的功能。
使用 DocBook 的真正原因在于对您的文档进行有意义的标记,能够对其进行验证,并将其转换为多种用途,而不仅仅是发布。LaTeX 和其他宏集添加了一层语义标记,但您始终可以自由地引入 TeX 代码,并添加来自其他来源的宏。从根本上说,TeX 文档是只能由 TeX 处理器解析的计算机程序。
对于数学和 DocBook:DocBook 是 XML,它允许您酌情使用其他 XML 技术;在这种情况下,MathML。已经提到的 XMLmind XMLEditor 提供了一个 GUI 数学编辑器,并包含样式表以将它们格式化为 Web 并与 DocBook 内容一起打印。
还有一些工具可以将 XML 文档翻译成其他语言(xml2po 是一个简单的工具,http ://heartsome.net/EN/home.html 是一个完整的套件)。
FWIW 我通过 xmlmind ( http://xmlmind.com/ ) 使用 docbook 来生成 html 和 .chm 文件。我还设置了 fop up 来生成 pdf,但它们并不漂亮。
完成 docbook 源代码后,我使用xsltproc和docbook.xsl文件来编写它。这是漫长而痛苦的设置,但一旦它开始工作,它就很甜蜜。
另一种方法是使用pandoc(一种扩展的降价类型工具)从降价到 DocBook。这会切断 xml 编辑器,但您仍然需要对输出格式进行转换。
任何必须创建专业的科学文档(研究论文、书籍、技术指南等)的人都会知道为什么 TeX 是更好的选择。
对于那些不了解某些事实的人来说,这里是一个完美的例子:在好大学,如果他没有正确参考其他人的作品,他的作品可能会被完全拒绝。我相信,有数百种“官方”引用和引用方式,哈佛学校有自己的,ACM 有自己的,在计算机科学家中,数字(温哥华)符号是最常见的。很多专业机构都有自己的风格,并且坚持。据我所知,TeX 是唯一意识到这一点的排版系统,在 BiBTeX 的帮助下,它成为作者非常强大的工具。它可以节省数小时甚至数天的工作时间。
如果我是小说作家,或者一些非技术文档的作者,我可能会选择 DocBook。
你看过ConTeXt吗?与 LaTeX 相比,它更灵活、更容易配置。
Arbortext 支持本机 LaTeX。您可以发送发布引擎或打印作曲家 LaTeX,它会通过它。它还支持许多其他组合语言。