pandoc + pandoc-crossrefフィルタを使ってdocxドキュメントを作ろうとしてちょっとめんどくさかったこととその解決策
このあたりを参考に、複数の画像に小番号を つけて並べたかったんだけど、縦積みはともかく横に並べるのはうまくいかない。
例えば次のコードは横並びに画像が3枚並んで下にそれぞれa、b、cという番号がついて(ところでこの番号付けルールは設定で変更できる。マニュアル見てね!)、
その下にFigure 1: Tiled Figures a - Subfigure 1、 b - Subfigure 2、 c - Subfigure 3
みたいなのができる。DOCX出力でなければね!
::: {#fig:tiled-figures}
{width=50mm #fig:tiled-figures-1}
{width=50mm #fig:tiled-figures-1}
{width=50mm #fig:tiled-figures-1}
Tiled Figures
:::
これを解決するのに役に立ったのが自作Luaフィルタコレクション の中のtable-width.lua。
このフィルタを使うと、GitHub風の表組を使って求めた結果が得られます。こんなかんじ
::: {#fig:tiled-figures}
::: {.table noheader=true}
| | | |
|---|---|---|
| {width=50mm #fig:tiled-figures-1} | {width=50mm #fig:tiled-figures-1} | {width=50mm #fig:tiled-figures-1} |
:::
Tiled Figures
:::
原稿が横に伸びるのが難点ですねー。IDEとかの自動折返し機能と相性悪いかも。 コマンドはこんな感じになります。
$ pandoc input.md output.html --lua-filter=table-width.lua --filter=pandoc-crossref
フィルタの適用順に注意が必要です。Luaフィルタが先、pandoc-crossrefが後。
以上!
(タイトルに(1)とついてるし続けるよ (続くとは言っていない) → 続いた!)