Wordpress Export XML (wp xml) のコンテンツを解析して LaTex ドキュメントを生成する Python スクリプトを作成しています。これまでのところ、wp xml は を介して解析され、コードはtexmllxml.etree
によって処理される新しい xml ツリーを生成します。これにより、tex ファイルが生成されます。
現在、各投稿を特定のメタデータ (タイトル、公開日、タグ、コンテンツ) と共に抽出しています。メタデータは問題ありませんが、コンテンツ部分が少し問題です。wp xml 内では、コンテンツはプレーンな HTML/Wordpress マークアップの CDATA 構造として含まれています。それをラテックスに変換するには、 pandocを選択してコンテンツを解析します。TeXml はインライン LaTeX をサポートしているため、コンテンツはプレーンな LaTeX としてツリーに追加されます。
a
この場合、ほとんどの html タグ ( 、strong
、em
...)を既に適切に変換しているため、pandoc を使用することにしました。唯一の問題は、画像の処理方法です。
サブプロセスを使用して pandoc とやり取りします。
args = ['pandoc', '-f', 'html', '-t', 'latex']
p = Popen(args, stdout=PIPE, stdin=PIPE, stderr=PIPE)
tex_result = p.communicate(input=(my_html_string).encode('utf-8'))[0]
サンプル投稿は次のようになります
<strong>Lorem ipsum dolor</strong> sit amet, consectetur adipiscing elit.
<a href="http://link_to_source_image.jpg"><img class="alignnone size-medium wp-image-id" title="Title_text" src="http://link_to_scaled_down_version.jpg" alt="Some alt text" width="262" height="300" /></a>
Nam nulla ante, vestibulum a euismod sed, accumsan at magna. Cras non augue risus, vitae gravida quam.
キャプションが図として埋め込まれた画像が必要です。
\begin{figure}
\includegraphics{link_to_image.jpg}
\label{fig:some_label}
\caption{Some alt text}
\end{figure}
pandoc はimg
、タイトルや代替テキストを破棄して、html タグを単純なインライン画像に変換するようです。
\href{http://link\_to\_source\_image.jpg}{\includegraphics{http://link_to_scaled_down_version.jpg}}
ソースを覗いたところ、img
インライン要素としてのみ扱われているようです。(pandoc解析機能)。私はHaskellを知らないので、これが私が得た距離です。
ただし、html をマークダウンに変換すると、alt と title が保持され、結果は次のようになります。

マークダウンを使用すると、結果のラテックス ドキュメントにインライン画像または図を含めることができます。このマークダウンをラテックスに変換すると、結果は
\begin{figure}[htbp]
\centering
\includegraphics{http://link_to_scaled_down_version.jpg}
\caption{Some alt text}
\end{figure}
最初の pandoc は、コンテンツを解析するための簡単なソリューションのように見えましたが、pandoc は HTML のインライン ラテックスもサポートしていないため、最初にすべての画像と残りを pandoc で処理できたため、少し行き詰まりました。
img
キャプションを持つラテックスの図環境に埋め込むために、html のタグを (より適切に) 処理する方法について何か考えがありますか?