XML到TeX或如何从类似XHTML的源获取漂亮的PDF

从表面上看,一个简单的问题是:如何从我的 XML文档中获得外观精美的PDF?实际上,我的输入是XHTML的一个子集,添加了一些自定义属性(以保存引用源上的一些信息等).我一直在探索一些路线,并希望得到一些反馈,如果有人之前已经尝试了一些.

注意:我已经考虑过XSL-FO生成PDF但是听说开源工具的排版质量仍然落后于TeX.猜猜最先进的是Apache FOP.但我真的对看起来很棒的PDF很感兴趣(否则我可以使用浏览器的打印对话框).有什么想法,更新吗?

所以我一直在考虑使用XSLT将我自定义的XML / XHTML方言转换为DocBook并从那里开始(DocBook via XSLT到正确的HTML似乎工作得很好,所以我也可以使用它).但是如何从DocBook转到TeX?我遇到了很多解决方案.

> dblatex一组输出LaTeX的XSLT样式表.
> db2latex作为dblatex的克隆开始,但现在提供与LaTex软件包更紧密的集成,并提供单个脚本来输出PDF,这非常好.
> passiveTex它使用用TeX编写的XML解析器而不是XSLT.
> TeXML本质上是LaTeX语言的XML序列化,可用作中间格式和随附的python工具,从该XML格式转换为LaTeX / ConTeXt.他们claimed这避免了现有解决方案的特殊符号问题,丢失了一些括号或空格,只支持latin-1编码. (这仍然是这样吗?)

由于我的输入XML可能包含很多用Unicode表示的特殊字符,因此最后一点对我来说尤其重要.我一直在考虑使用XeTeX而不是pdfTeX来解决这个问题. (虽然我可能会放弃一些印刷质量,但可能仍然比现有的开源XSL-FO处理器更好?)所以db2latex和TeXML似乎是最受欢迎的.那么有人可以评论那些的稳健性吗?

或者,我可能有更多的运气直接使用ConTeXt,因为似乎有相当多的interest in the ConTeXt community in XML.特别是,我可能会深入研究“My Way: Getting Web Content and pdf-Output from One Source”“Dealing with XML in ConTeXt MkIV”.这两个文档描述了使用ConTeXt结合LuaTeX的方法. (DocBook In ConTeXt似乎做同样的事情,但最新版本是2003年.)第二份文件说明:

You may wonder why we do these manipulations in TEX and not use xslt instead. The
advantage of an integrated approach is that it simplifies usage. Think of not only processing the a
document,but also using xml for managing resources in the same run. An xslt
approach is just as verbose (after all,you still need to produce TEX code) and probably
less readable. In the case of MkIV the integrated approach is is also faster and gives us
the option to manipulate content at runtime using Lua.

你怎么看待这件事?请记住,我对XSLT和TeX都有一些经验,但从来没有深入到其中任何一个.从未尝试过许多不同的LaTeX软件包或替代品,如ConTeXt(或XeTeX / LuaTeX而不是pdfTeX),但我愿意学习一些新东西,最终得到我漂亮的PDF文件;)

此外,我偶然发现了Pandoc,但找不到任何与其他提到的方法相比的信息.最后,链接到how to use TeXML with ConTeXt的一些相当广泛的文档.

我过去做过类似的事情(也就是说,用XML维护文档的主版本,并希望从中生成LaTeX输出).

我过去曾经使用过PassiveTeX,但我发现创建样式表是一项艰苦的工作 – 这是通常一次编写两种语言的结果.我得到了它的工作,结果看起来非常好,但它可能比它的价值更多的努力.也就是说,如果你需要添加的样式量很小,那么这可能是一条好路线,因为它只是一步.

最成功的路径(读取,灵活和有吸引力)是使用XSLT将文档转换为结构LaTeX,它与结果文档的预期结构相匹配,但不会尝试做最小的格式化.根据您的文档,可能是看似正常的LaTeX,或者它可能有定制的结构.然后编写或调整一个LaTeX样式表或类文件,将输出格式化为有吸引力的东西.这样,你就可以使用XSLT来发挥它的优势(并且不会超越它们,这会很快变得非常令人沮丧),使用LaTeX来发挥其优势,而不是让自己感到困惑.

也就是说,这或多或少与前两个选项的方法相匹配,无论您是使用它们,还是编写/自定义具有定制输出的LaTeX样式表,都取决于您对LaTeX样式表的感觉,以及如何您需要做的非常复杂或专门的格式化.

既然你说你需要在输入中处理Unicode字符,那么是的,XeLaTeX对于管道的LaTeX部分来说是个不错的选择.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇