表面的には簡単な質問です。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 で表現されたかなりの数の特殊文字が含まれている可能性があるため、最後の点は特に重要です。この問題を回避するために、pdfTeX の代わりに XeTeX を使用することも考えています。(ただし、タイポグラフィの品質はいくらか失われるかもしれませんが、それでも現在のオープン ソースの XSL-FO プロセッサよりは優れているのでしょうか?) したがって、db2latex と TeXML がお気に入りのようです。では、それらの堅牢性についてコメントできる人はいますか?
あるいは、 XML の ConTeXt コミュニティにかなりの関心が寄せられているように見えるので、ConTeXt を直接使用する方がうまくいくかもしれません。特に、「My Way: Getting Web Content and pdf-Output from One Source」と「Dealing with XML in ConTeXt MkIV」を詳しく見てみるとよいでしょう。どちらのドキュメントも、LuaTeX と組み合わせた ConTeXt を使用するアプローチについて説明しています。( DocBook In ConTeXtもほぼ同じように見えますが、最新バージョンは 2003 年のものです。) 2 番目のドキュメントには次のように記載されています。
これらの操作を TEX で行い、代わりに xslt を使用しない理由を不思議に思うかもしれません。統合アプローチの利点は、使用が簡単になることです。ドキュメントを処理するだけでなく、xml を使用して同じ実行でリソースを管理することも考えてください。xslt のアプローチも同様に冗長で (結局のところ、TEX コードを生成する必要があります)、おそらく読みにくいでしょう。MkIV の場合、統合されたアプローチも高速であり、Lua を使用して実行時にコンテンツを操作するオプションが提供されます。
これについてあなたはどう思いますか?私は XSLT と TeX の両方についてある程度の経験がありますが、どちらにも深く踏み込んだことはありません。多くの異なる LaTeX パッケージや、ConTeXt (または pdfTeX の代わりに XeTeX/LuaTeX) などの代替手段を試したことはありませんが、最終的に美しい PDF を取得するためにいくつかの新しいことを学びたいと思っています;)
また、私はPandocに出くわしましたが、それが他の言及されたアプローチとどのように比較されるかについての情報を見つけることができませんでした. そして最後に、TeXML を ConTeXt で使用する方法に関する非常に広範なドキュメントへのリンクです。