niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

Pandoc 2.10からODT形式の出力でもcustom-styleが使用可能になっていた!

タイトルで言い切ったとおりです。

すっかり見逃していましたが、Pandoc 2.10から(現最新バージョンは2.10.1)docx形式と同様に、odt形式でもcustom-styleの使用が可能となりました。

以下リリースノートからの引用。

OpenDocument (and ODT) writer:

Add custom-style “Abstract” in metadata abstract. This ensures that the abstract is rendered with style Abstract.
Enable custom-style attribute on a Div. This allows you to apply a custom style to contained paragraphs.

その他、更新内容の詳細はReleaseのページを確認してください。

pandoc.org

マニュアルの方はまだ更新されていないので、odt形式でもcustom-styleが使えるとはここからはわからないので注意ですが、使用方法はdocx等と同様です。

pandoc.org

書くまでもない気がしますが、記述例としてはこんな感じです。

::: {custom-style="Heading_20_1"}
ここに書いた文字は見出し1のスタイルになるよ
:::

注意点としてはdocxと同様に、アプリケーション上で表示されるスタイル名と文書中で保存されているスタイル名には差異があるという点です。これはひょっとしたら言語設定を英語にすればよいのかもしれませんが(未確認)

あと、仕様を確認してませんが、スタイル名は上記のように"20"のような文字列が入ります。これは表示名のspaceが変換されたものだと思われます。なので、概ね予想がつきますが、内部でどういうスタイル名になっているのか?は確認したいところですよね。

ということで、officerパッケージを真似したlibrerパッケージ(名前は暫定)を作ってスタイル名の確認だけでも簡単に出来るようにしたい気持ちがあります。Rユーザ以外にウケないのが残念ですが。

まぁ一旦出来上がれば他の言語にも移植は可能なんじゃないかな…。

昨日今日でODTの仕様を読み解いていますが、docxとはまたちょっと違う癖があるので、どのように作るのが効率的か?というのはdocxのそれとはおそらく異なります。まとまった文章にするべきかなーという感じですね。docxはMSが内部の仕様を見せてくれるとは限らないですが、Libreならまだ可能性があるかなと思っているので、もう少しODT形式について調べていく予定です。ブログに書くのかは気持ち次第…。