2012-04-08 5 views
7

表面的には、簡単な質問:XML文書からすばらしいPDFを取得するにはどうすればよいですか?実際、私の入力は、いくつかのカスタム属性が追加されたXHTMLのサブセットです(引用元などに関するいくつかの情報を保存するため)。私はいくつかのルートを探索していて、誰かがこれまでにいくつかのことを試していたら、いくつかのフィードバックを得たいと思っています。XML to TeX、またはXHTMLのようなソースから美しいPDFを入手する方法

注:私はXSL-FOを使ってPDFを生成すると考えましたが、オープンソースツールの印刷品質はまだTeXに比べると劣っています。最も進んだものがApache FOPだと思います。しかし、私は本当にすばらしいPDFに興味があります(それ以外の場合はブラウザの印刷ダイアログを使用できます)。どんな考え、これに関する更新?

だから私はDocBook形式への私のカスタマイズされたXML/XHTMLの方言に変換し、そこから行くためにXSLTを使用して考えてきた(DocBook via XSLT適切なHTMLにはかなりうまく動作しているようですので、私は同様にそのためにそれを使用する場合があります)。しかしDocBookからTeXにどうやって行くのですか?私はいくつかの解決策を見つけました。

  • dblatex LaTeXを出力する一連のXSLTスタイルシート。
  • db2latex dblatexのクローンとして開始されましたが、LaTexパッケージとの統合が強化され、PDFを出力するスクリプトが1つ用意されています。
  • passiveTex XSLTではなく、TeXで書かれたXMLパーサを使用します。
  • TeXMLは基本的にLaTeX言語のXMLシリアル化であり、中間形式とそのXML形式からLaTeX/ConTeXtに変換する付随するpythonツールとして使用できます。彼らはclaimedは、既存のソリューションの特殊記号の問題、いくつかの中かっこやスペースを失ったり、latin-1エンコーディングのみをサポートしたりすることを避けていることを示しています。 (これはまだですか?)

私の入力XMLには、Unicodeで表現されるいくつかの特殊文字が含まれている可能性があるため、最後の点は特に重要です。私はこの問題を回避するためにpdfTeXの代わりにXeTeXを使用することも考えていました。 (しかし、いくつかの印字品質を失うかもしれませんが、現在のオープンソースのXSL-FOプロセッサよりも優れているのでしょうか?)だから、db2latexとTeXMLがお気に入りのようです。だから誰も彼らの頑強さについてコメントできますか?

さらに、interest in the ConTeXt community in 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年からである)第2の文書・ノート:

あなたは私たちがTEXでこれらの操作を行う理由を疑問に思うし、代わりにXSLTを使用することはできません。 統合されたアプローチの利点は、使用を簡素化することです。 ドキュメントを処理するだけでなく、xmlを使用して同じ実行でリソースを管理することも考えてください。 xslt のアプローチはまったく冗長で(結局のところ、TEXコードを生成する必要があります)、おそらく の読みやすさは劣ります。 MkIVの場合、統合されたアプローチも高速で、 は、Luaを使用して実行時にコンテンツを操作するオプションを提供します。

あなたはこれについてどう思いますか?私はXSLTとTeXの両方でいくつかの経験を持っていますが、どちらにも深く関わったことはありません。異なるLaTeXのパッケージや、コンテキスト(またはXeTeX/LuaTeXの代わりに、pdfTeXの)としての選択肢の多くを試していないが、私は最後に私の美しいPDFファイルを取得するために、いくつかの新しいものを学ぶために喜んで決して;)

はまた、私はPandocつまずいたが、それが他の言及されたアプローチと比較してどのように情報を見つけることができませんでした。そして、最後に、how to use TeXML with ConTeXtの非常に豊富な文書へのリンク。

+0

この質問は、私は明示的にTeXへの代替を探していたhttp://tex.stackexchange.com/ –

+0

@DaveJarvisに良く適していることが表示されます。 – mb21

+0

ああ、そうではないだろうか。理想的にはWebサービスです。詰まったドックブックをアップロードして、美しい、校正済みの出版準備済みの単一文書を得る;) –

答えて

1

、私はPandocで行くことに決めました、非常に洗練された固体のコードベースであるように思われます。 1つの潜在的な欠点は、基本的に1対1をextended markdownにマッピングするPandocの内部表現で使用できるマークアップ機能の数に制限する必要があることです。

XHTMLのようなソースからマークダウンを生成することは良い考えではないと思ったので、私は現在Pandocの開発リポジトリのマスターブランチにあるpandoc component that reads DocBookを開始することに成功しました。だから、私はXHTMLの方言をDocBook(これもXMLです)に変換するシンプルなXSLTスタイルシートを持っていますし、Pandocを使ってConTeXt経由のPDFを含む他のフォーマットのホイストにエクスポートします。

1

あなたは特にthis 1、questions tagged with XML on TeX.sxをチェックすることをお勧めします。 ConTeXtを使うことをお勧めします。現在のバージョンはUnicodeに問題がなく、OpenTypeを完全に扱うことができます - そしてそれはLuaでプログラム可能です。 LaTeXでもっともよく使われるのはXMLTeXですが、TeX fooがたくさん必要です。

ドキュメントをpandocで処理できる場合は、次のコマンドを使用します。TeXベースのシステムよりも複数の出力オプションがあります。

+0

フィードバックありがとう!私はpandocを詳しく見てきました。本当に有望です。出力フォーマットの数は大きなプラスになります。しかし、脚注などでは、おそらくXHTML-方言をpandocの拡張Markdown(テーブルなど)を生成するのに苦労するように見えるように、XSLT(または何か)を書く必要があります。 – mb21

+0

とにかくConTeXtを使って直接解析する必要があります。そして、私が得たいと思う他の出力フォーマットのためのXSLTスタイルシートを入手してください。多くの堅牢なスタイルシートを持つ標準フォーマットがないとは信じられません。:/私はかつてDocBookがそうであると思っていましたが、おそらくそうではありません。 – mb21

2

私は過去にこのような何かをやった(つまり、XML文書内のマスターバージョンを維持すること、およびそれらからLaTeXの出力を生成したいです)。

私は過去にPassiveTeXを使用しましたが、私はハードワークするスタイルシートを作成した - 一度に2つの言語を書くの通常の結果。私はそれを働かせて、結果はとても良く見えましたが、おそらくそれは価値があったよりももっと努力していました。それは、あなたが追加する必要があるスタイリングの量がである場合、それは単一のステップであるため、これは良いルートかもしれないと言いました。

最も成功したルート(読みやすく、柔軟性があり、魅力的)は、XSLTを使用してドキュメントを構造的LaTeXに変換することでした。これは結果ドキュメントの意図した構造に一致しますが、最小限のフォーマット。あなたの文書によっては、普通の見た目のLaTeXかもしれないし、特製の構造を持っているかもしれない。そして、その出力を魅力的なものにフォーマットするLaTeXスタイルシートやクラスファイルを書いたり、改変したりしてください。そうすれば、LaTeXを使っての強みを持ち、あなた自身を混乱させないようにXSLTをその強みに(そしてそれを超えず、急速に非常に不満になる)使用しています。

これは、最初の2つの選択肢のアプローチにマッチします。LaTeXで気に入ったLaTeXスタイルシートを作成するかどうかは、スタイルシート、および複雑で特殊な書式設定の必要性があります。

あなたが入力にUnicode文字を処理する必要があると言うので、[はい、XeLaTeXは、パイプラインのLaTeXの一部のために選ぶとよいでしょう。最後に

関連する問題