从表面上看,一个简单的问题:我如何从我的 XML 文档中获得漂亮的 PDF?实际上,我的输入是 XHTML 的一个子集,添加了一些自定义属性(以保存有关引用来源等的一些信息)。我一直在探索一些路线,如果有人以前尝试过这些路线,我想得到一些反馈。
注意:我考虑过 XSL-FO 来生成 PDF,但听说开源工具的排版质量仍然落后于 TeX 很多。猜猜最先进的是Apache FOP。但我真的对好看的 PDF 很感兴趣(否则我可以使用浏览器的打印对话框)。对此有何想法和更新?
所以我一直在考虑使用 XSLT 将我自定义的 XML/XHTML 方言转换为 DocBook 并从那里开始(通过 XSLT 的 DocBook到正确的 HTML 似乎工作得很好,所以我也可以使用它)。但是我如何从 DocBook 转到 TeX?我遇到了许多解决方案。
- dblatex一组输出 LaTeX 的 XSLT 样式表。
- db2latex 最初是 dblatex 的克隆,但现在提供了与 LaTex 包的更紧密集成,并提供了一个输出 PDF 的脚本,这非常好。
- PassiveTex代替 XSLT,它使用一个用 TeX 编写的 XML 解析器。
- TeXML本质上是 LaTeX 语言的 XML 序列化,可用作中间格式,以及从 XML 格式转换为 LaTeX/ConTeXt 的随附 Python 工具。他们声称这避免了现有解决方案的特殊符号问题,丢失了一些大括号或空格,并且仅支持 latin-1 编码。(现在还是这样吗?)
由于我的输入 XML 可能包含很多以 Unicode 表示的特殊字符,所以最后一点对我来说尤其重要。我也一直在考虑使用 XeTeX 而不是 pdfTeX 来解决这个问题。(虽然我可能会失去一些印刷质量,但可能仍然比当前的开源 XSL-FO 处理器更好?)所以 db2latex 和 TeXML 似乎是最受欢迎的。那么有人可以评论它们的稳健性吗?
或者,我可能会更幸运地直接使用 ConTeXt,因为似乎对XML 中的 ConTeXt 社区很感兴趣。特别是,我可能会更深入地了解“My Way: Getting Web Content and pdf-Output from One Source”和“Dealing with XML in ConTeXt MkIV”。两份文档都描述了一种结合使用 ConTeXt 和 LuaTeX 的方法。(DocBook In ConTeXt似乎做的差不多,但最新版本是 2003 年的。)第二个文档指出:
你可能想知道为什么我们在 TEX 中进行这些操作而不使用 xslt。集成方法的优势在于它简化了使用。不仅要处理文档,还要考虑在同一运行中使用 xml 来管理资源。xslt 方法同样冗长(毕竟,您仍然需要生成 TEX 代码)并且可能不太可读。在 MkIV 的情况下,集成方法也更快,让我们可以选择在运行时使用 Lua 操作内容。
你怎么看待这件事?请记住,我对 XSLT 和 TeX 都有一些经验,但从未深入了解其中任何一个。从未尝试过许多不同的 LaTeX 包或替代品,例如 ConTeXt(或 XeTeX/LuaTeX 而不是 pdfTeX),但我愿意学习一些新东西,最终得到我漂亮的 PDF;)
此外,我偶然发现了Pandoc,但找不到任何关于它与其他提到的方法相比的信息。最后,链接到一些关于如何将 TeXML 与 ConTeXt 一起使用的相当广泛的文档。