niszetの日記

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

(Pandoc)Wordのスタイルでbold/italicを指定した場合に、明示的にoff出来ない件のPR

ようやくPandocのIssueウォッチが出来るようになってきた…(?)

最近追いかけているIssueがコレ。

github.com

Pandocのdocxに関する質問は、MLやIssueで見かけてわかるものはコメントをしたりしています。直接問題解決には至ってないので実力が足りませんが…。

このIssueはこれで面白いのでまた別に書こうと思いますが、これに関連して、PR 6511が昨日出ました。

github.com

これが、タイトルにある件。Wordはスタイル中でBold/ItalicのEnable指定が出来ますが、Word上ではこれとは別に、ツールバーにあるBやIのボタンでBoldやItalicを別途on/offできますね。そのため、段落スタイルで指定されたBoldの一部を解除すると言ったことが可能です。

しかし、これは素のPandocの機能では対応できません。というか、docx+stylesを入力として、Markdownを出力としたような場合、Bold/Italicを明示的に出すことが出来ないんですね。そして、Markdownには***でItalic/Boldを付与することは出来ても、逆にそれを取り外すような記法はありません。なので、Boldを行うスタイルに囲まれた段落はBoldがずっと有効、みたいになります。これを、Boldをdisableしたスタイル名をno-をプレフィクスとして付けたスタイルであらわして、disableになっている範囲はこのスタイルを当てれば良いのでは?というのがこのPR。

パッと思いつくのはそのスタイルは誰が作るのか?(Pandocが作ってくれるのか?)、このスタイルは段落スタイルなのか、文字(Run)スタイルなのか?というところ…。

もうちょっと考えをまとめてからコメントをしようかなーと思っていますが、Pandoc/docx勢にも見てもらいたい気持ち。docxというか、Wordは難しいですね。Wordの表示の挙動から、docx(ooxml)のWordがどのように解釈するのか?の仕様を判断しないといけないので…。