niszetの日記

細かい情報を載せていくブログ

(Pandoc) MS Word (docx) 出力でも --number-sections オプションに対応している(メモ)

仕様を追い切れていないが…。

Pandoc 2.10.1 から docx の出力で --number-sections オプションがサポートされました。

これをodtにも入れたいなぁと思ってコードを見ていましたが、Writerにべったり依存なのでコードをかなり追わないといけないなということが分かっています。

ひとまず挙動から確認しているので、その途中のメモ。

対応するコードはこのあたり。

github.com

このコードを見ればわかると思うのですが、Headerに対して処理を加えています。

また、実際のセクション番号はこのあたりで処理していて、

github.com

attributesにnumberがあればそれを利用することがわかります。

で、このnumberについてはPandoc's ASTで確認すると入っていません。なので、Writerの処理の中で附番されていることと考えられます。

一方で、Headerにnumber attributesをつけておけば、その値が入ることが予想できますね。

実際、

## R Markdown {number=100.1.1}

のようにすれば、

f:id:niszet:20200924125034p:plain

となり、値が反映されることがわかります。ただし、次の節などにはこの値は引き継がれないので注意。

一方で、unnumberedクラスは有効で、コレをつければ附番されません。

#### aaa {.unnumbered}

なお、{.unnumbered number=100}のようにすればnumberの方が勝ち、番号付きになります。