LaTeX vs DocBook

Pwn*_*Pwn 47 latex docbook

我对LaTeX,基本格式,基本数学公式等知之甚少.我发现LaTeX很难配置我自己的味道.最近,我听说过Docbook,它也是一种排版机制,但由于它使用XML,因此更容易.所以,如果我使用LaTeX/Docbook的主要工作是编写一个带有一些数学的简单文档(而不是一本类书),我想要简单的配置,以及一个高度可构建的应用程序,哪个更好,并且有关于Docbook的任何好书?

spl*_*cer 36

DocBook不是"排版机制".DocBook就是将表示与内容分离.DocBook仅处理内容; 它用于创建书籍,文章等的抽象表示.有许多工具可以根据预定义的模板布局DocBook.其中一些工具使用LaTeX.AFAIK,O'Reilly使用稍微修改过的DocBook语言版本来创作他们的内容,然后他们将这个XML提供给与Adobe FrameMaker集成的自定义脚本来布局他们的书籍.

LaTeX本质上是一种尝试将表示与TeX中的内容分开,但它并没有完全实现IMO的目标.在大多数情况下,演示文稿仍与内容混合在一起.我认为LaTeX是目前用于布局分页文档的最佳开源工具.但是,像InDesign这样的专有工具有很多功能(比如良好的 OpenType支持),TeX没有(XeTeX 增加了OpenType支持).无论哪种方式,如果您正在写一本书,我强烈建议使用DocBook来编写您的内容而不是LaTeX.

也就是说,听起来你正在写一些简短的,一次性的文档和一些数学.我认为LaTeX可能是你最好的选择.如果你需要大量的可定制性,你可能需要使用Plain TeX而不是LaTeX,但是你需要做很多工作.

  • +1用于解释它们之间的根本区别:DocBook用于内容; TeX用于排版. (3认同)
  • BTW:关于DocBook的评论是正确的.3年后,人们开始大力推动在HTMLBook中编写自己的书籍HTML5的锁定版本https://github.com/oreillymedia/HTMLBook (2认同)

Joh*_*uhy 34

好吧,我没有使用过DocBook,但是快速浏览一下维基百科和谷歌:

  1. DocBook没有描述数学的元素.
  2. 正如你所说,DocBook就是XML.对我而言,这使得手写(或者更确切地说,使用基本文本编辑器)变得非常糟糕.也许你喜欢编写XML,或者拥有一个好的IDE.我想你可以看看这个问题.

DocBook的维基百科页面列出了你可能想看的几本书,但我显然不能说它们是否是"好"的书.

我建议去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.
Run Code Online (Sandbox Code Playgroud)

谷歌是您的朋友,可以找到您可以从以下开始的基本模板:

要从源代码转到文档,你需要一个LaTeX的工作安装(这超出了这个答案的范围,但如果你在Linux上,这很容易).理想情况下,您的LaTeX安装将包括pdflatex.然后你运行:

pdflatex source.tex
Run Code Online (Sandbox Code Playgroud)

(如果您有参考书目,还有一些工作要做 - 但这是另一个问题的主题)

  • 我想强调乔纳森莱弗勒所说的话.他们在不同层面上工作.虽然仅LaTex足以生成DocBook需要的文档后端.这可能是LaTeX,但还有其他可能性,如Apache FOP或天线室.从质量的角度来看,其他产品远远落后于LaTeX.在这方面,只有一种可行的替代LaTex恕我直言,但它不适用于DocBook:InDesign. (4认同)

Uri*_*Uri 28

关于DocBook的好处在于它是基于XML的 - 因此章节是完整的子树,部分是完整的子树,等等.在LaTeX中,分离仅由线性扫描期间文档的结构决定.

关于Docbook最糟糕的事情是它是基于XML的 - 较低级别的东西非常脏并且手动编码很烦人.


Ada*_*icz 15

虽然我已经相当广泛地使用了LaTeX,但我并不熟悉DocBook.LaTeX的想法不是生成一个定制的文档,而是生成一个可读的,有吸引力的文档.它是围绕TeX的一组库,模板,宏等,由知道他们在文档设计方面做了什么的人建立.当然,你有他们无法预料的特殊需求,所以你也需要做一些调整.它是一种非常高级的声明性语言,旨在反映文档的内容和结构,而不是它应该是什么样的,这个想法是你的想法和它们的组织方式是你应该关注的,不是页面上文字的布局.如果你需要更多的控制,那么存在一个巨大的额外样式和宏等库(CTAN),其中一些(回忆录浮现在脑海中)会给你很多控制权.

如果你将很多复杂的格式化内容推入 LaTeX文档的正文中,那么你做错了.您需要做的是将您的内容放在那里,并将文档结构化为章节,章节和子部分,然后重新进入并担心格式化.此时你不应该进入文档的主体; 它应该都是适用于整个文档的一般内容,最好是以可重用的方式.这确保了一致性.


Jou*_*nen 9

是的,LaTeX很难配置以生成您想要的那种布局.我建议你看一下LaTeX类回忆录的手册,看看它能让你制作出什么样的版面.

有一本书上的DocBook 可在网上.看一下,看看你可以制作什么样的布局,以及是否可以使用DocBook轻松格式化你想要的数学内容.

我的建议是如果你必须写任何非平凡的数学,那么就选择LaTeX,当然这取决于你发现哪种格式更容易使用.

  • +1回忆录手册对书籍创作过程有非常详尽的解释 (4认同)

小智 8

大约两年前,我试图喜欢和使用DocBook; 然而,我回到了LaTeX,因为至少在当时,LaTeX产生了更好的质量输出(PDF).我从未设法将DocBook转换为LaTeX到PDF翻译工作.我的问题可能是"操作员错误",但我建议在选择一个简单文档之前尝试DocBook(和LaTeX).

以下几点让我选择了LaTeX:

  • BibTeX用于参考书目,JabREF作为GUI
  • 优质的PDF输出
  • 互联网上有很多例子,包括几个与我喜欢的格式相似的例子
  • 好书,如"乳酸指南"

如果您喜欢GUI,请查看LyX.


Oli*_*ohm 7

我不想走"更容易"或更好的路线,因为我认为这是一种品味和习惯.我认为docbook是XML的优势,因为它可以通过使用XSLT变成你喜欢的几乎任何东西.结合其自包含性,感觉更像是构建Latex所做的内容.特别是记录开源软件Docbook的确被广泛使用.您可以轻松获取例如Hibernate和/或Spring的模板和样式表,并根据您的需要进行调整.

我想要指出的另一个方面是构建系统中的集成.对于Maven,有一个名为docbkx的插件,可以根据内容和适当的XSLT吐出PDF,HTML和任何你喜欢的内容.无需进一步安装.我已经看到用Latex完成这项工作的唯一方法是在构建操作系统中安装一些软件包并围绕它构建自己的脚本.恕我直言,这不是一个可行的方法,特别是如果你建立跨平台.

关于编辑器,我可以建议XMLmind XMLEditor,它会带来很多痛苦,并为docbook提供了一个很好的WYSIWYG方法.

如果你依赖于数学表达式,我也宁愿选择Latex,因为docbook中没有相同的功能.


Jea*_*aan 6

使用DocBook的真正原因在于让您的文档有意义地进行标记,能够对其进行验证,并将其转换为多种用途,而不仅仅是发布.LaTeX和其他宏集添加了一层语义标记,但您可以随时自由地引入TeX代码,并从其他源添加宏.从根本上说,TeX文档是一种只能由TeX处理器解析的计算机程序.

对于数学和DocBook:DocBook是XML,它允许您适当地使用其他XML技术; 在这种情况下MathML.已经提到的XMLmind XMLEditor提供了一个GUI数学编辑器,并包含样式表,用于格式化Web和打印以及DocBook内容.

还有一些工具可以将XML文档转换成其他语言(xml2po很简单,http://heartsome.net/EN/home.html 是一个完整的套件).