9

表面的には簡単な質問です。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 で使用する方法に関する非常に広範なドキュメントへのリンクです。

4

4 に答える 4

2

私は過去にこのようなことをしたことがあります (つまり、ドキュメントのマスター バージョンを XML で維持し、それらから LaTeX 出力を生成したいと考えています)。

過去に PassiveTeX を使用したことがありますが、スタイルシートを作成するのは大変な作業であることがわかりました。これは、2 つの言語を同時に作成する通常の結果です。私はそれを機能させ、結果は非常に良いように見えましたが、おそらくそれ以上の努力が必要でした. とはいえ、追加する必要があるスタイリングの量が少ない場合、これは 1 つのステップであるため、適切な方法である可能性があります。

最も成功した方法 (読みやすく、柔軟で魅力的) は、XSLT を使用してドキュメントを構造化された LaTeX に変換することでした。これは、結果ドキュメントの意図した構造に一致しますが、最小限の書式設定以上のことを試みません。ドキュメントによっては、見た目が通常の LaTeX である場合もあれば、特注の構造を持っている場合もあります。次に、出力を魅力的なものにフォーマットする LaTeX スタイルシートまたはクラス ファイルを作成または適合させます。そうすれば、XSLT をその長所を生かして (そして、すぐに非常に苛立たしいものになる限界を超えることはありません)、LaTeX をその長所を生かして使用することができ、混乱することもありません。

つまり、これは多かれ少なかれ最初の 2 つの選択肢のアプローチと一致し、それらを使用するか、カスタム出力で LaTeX スタイルシートを作成/カスタマイズするかは、LaTeX スタイルシートにどれだけ慣れているか、およびどのように感じているかの関数です。非常に複雑または特殊な書式設定が必要です。

入力でUnicode文字を処理する必要があると言うので、パイプラインのLaTeX部分にはXeLaTeXが適しています。

于 2012-04-09T11:31:26.833 に答える
1

TeX.sx の XML でタグ付けされた質問、特にこれを確認することをお勧めします。ConTeXt を使用することをお勧めします。現在のバージョンは Unicode に問題がなく、OpenType を完全に処理できます。また、Lua でプログラム可能です。LaTeX で最も頻繁に使用される代替手段はXMLTeXですが、これには大量の TeX foo が必要です。

ドキュメントが pandoc で処理できる場合は、それを使用してください。TeX ベースのシステムよりも多くの複数の出力オプションがあります。

于 2012-04-08T18:17:36.400 に答える