mb2*_*b21 8 xml xsl-fo docbook tex
从表面上看,一个简单的问题是:如何从我的XML文档中获得外观漂亮的PDF?实际上,我的输入是XHTML的一个子集,添加了一些自定义属性(以保存引用源的一些信息等).我一直在探索一些路线,并希望得到一些反馈,如果有人之前尝试了一些.
注意:我已经考虑过XSL-FO生成PDF但是听说开源工具的印刷质量仍然落后于TeX.猜猜最先进的是Apache FOP.但我真的对看起来很棒的PDF感兴趣(否则我可以使用浏览器的打印对话框).有什么想法,更新吗?
所以我一直在考虑使用XSLT将我的自定义XML/XHTML方言转换为DocBook并从那里开始(DocBook通过XSLT到正确的HTML似乎工作得很好,所以我也可以使用它).但是如何从DocBook转到TeX?我遇到了很多解决方案.
由于我的输入XML可能包含Unicode中表示的很多特殊字符,因此最后一点对我来说尤为重要.我一直在考虑使用XeTeX而不是pdfTeX来解决这个问题.(虽然我可能会放弃一些印刷质量,但可能仍然比现有的开源XSL-FO处理器更好?)所以db2latex和TeXML似乎是最受欢迎的.那么有人可以评论那些的稳健性吗?
或者,我可能会更直接地使用ConTeXt,因为似乎对XML中的ConTeXt社区非常感兴趣.特别是,我可能会更深入地研究"我的方式:从一个来源获取Web内容和pdf输出"和"在ConTeXt MkIV中处理XML".两篇文档都描述了使用ConTeXt结合LuaTeX的方法.(DocBook In ConTeXt似乎做的大致相同,但最新版本是2003年.)第二份文件说明:
您可能想知道为什么我们在TEX中进行这些操作而不是使用xslt.集成方法的优点是简化了使用.不仅要考虑处理文档,还要使用xml来管理同一次运行中的资源.xslt方法同样冗长(毕竟,您仍然需要生成TEX代码)并且可能性较差.对于MkIV,集成方法也更快,并且允许我们使用Lua在运行时操作内容.
你怎么看待这件事?请记住,我对XSLT和TeX都有一些经验,但从来没有深入到其中任何一个.从来没有尝试过许多不同的LaTeX软件包或替代品,如ConTeXt(或XeTeX/LuaTeX而不是pdfTeX),但我愿意学习一些新东西,最终得到我漂亮的PDF文件;)
此外,我偶然发现Pandoc,但无法找到任何有关它与其他提到的方法相比的信息.最后,链接到一些关于如何将TeXML与ConTeXt一起使用的相当广泛的文档.
最后,我决定使用Pandoc,它似乎是非常完善和可靠的代码库。一个潜在的缺点是,您必须限制自己在 Pandoc 内部表示中可用的标记功能的数量,该内部表示基本上一对一地映射到其扩展 markdown。
因为我认为从类似 XHTML 的源代码生成 markdown 不是一个好主意,所以我成功启动了一个读取 DocBook 的 pandoc 组件,该组件当前位于 Pandoc 开发存储库的 master 分支中。现在我有了一个简单的 XSLT 样式表,可以将 XHTML 方言转换为 DocBook(也是 XML),然后使用 Pandoc 导出到其他格式的提升机,包括通过 ConTeXt 的 PDF。