niszetの日記

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

Pandoc

(R)revealjsパッケージが古い

CRANにあるものは4年前のリリースのもの。 まえがき 久々にPandocのことをやろうと思って。Pandocの変遷はissueを読むと大変なので、取り込まれたPRを見るか、release noteを追うのが良い。今回は後者。 最近はpatchがぽつぽつ出ているが、2.14になったとこ…

(Pandoc) Pandocのtest時に出るエラーメッセージについて(開発者向けメモ)

まずは過去issueを検索しろって言うよね。それね。 Pandoc はstack testでテストが一式走るので、手元でFAILが出ないことを確認してからcommitします(当たり前だ…) が、test時のlogを見るとこんなメッセージが。 Error: Circular defaults file reference …

(Pandoc) ODT Readerでtabが無視される問題の対応をしています

PRは出した。 元になるissueはこれ。 github.com これによると、ODTを入力ファイルとしたときにtabが全部無視されてしまうということでした。 コードを読んで対応する場所がわかったのでいじってたら出来たのでPRを出しました。 github.com 年度末なので(な…

(Pandoc) docx出力の脚注の区切り文字をテンプレートから反映させる修正をしています。

マージされたら褒めてくれ。 issueはこれ。 github.com そういえば、テンプレートから反映されないなコレ…ってことでここ2-3日うにょうにょHaskell書いてPRを投げました。 github.com さてどうなるかなー… 今回のことでまた理解が深まったので、ODT形式の方…

(Pandoc) Pandocでdocxなどのバイナリ形式のファイルのテンプレートを出力するときは>ではなくて-oを使おう

一応書いておく ちょっと前のissueですが、Pandocでテンプレートを出力する--print-default-data-fileを使う際に pandoc --print-default-data-file reference.docx > custom-reference.docxで出力するとファイルが壊れることがあります(下記issue) github…

(Pandoc) Emojiは外部のライブラリに切り出されていた(メモ)

収録している(?)絵文字の数が格段に増えてました 以前Pandocのemojiについて調べていた時は、Pandoc本体に取り込まれていて対応する文字の数も少なかったのですが、下記のcommitで外部のパッケージに切り出されていたようです。 github.com そのライブラ…

(Pandoc) Pandocは脚注の設定をreference.docxから持ってこれない

...と思う。 Pandocのバージョンは2.11.4です。いつの間にこんなにバージョン上がってるの…。 久々にPandocのissueでも見るかーって見た一個目がこれだったので、これをやることにした。 github.com Wordの脚注の線と脚注の文字の間のスペースを詰めたいとい…

Pandocの情報収集、どうする?

遅刻です。 この記事はPandoc Advent Calendar 2020の19日目の記事です。 adventar.org 今回はPandocの情報収集、どうやっていく?というお話です。あんまりまとまりのない記事になりますが…。 マニュアル類 まずは基本から。他のソフトウェアと同様に、まず…

Japan.R で 日本Pandocユーザー会の紹介LTをしてきました

あっさりした内容で申し訳ない…。 12/5のJapan.R 2020で"日本Pandocユーザー会の紹介" というタイトルでLTしてきました。 connpassのページはこちらに、 japanr.connpass.com 資料はこちらにあります。 niszet.github.io 今回は特に変態芸(?)もなく普通に…

(Pandoc) docx 出力の場合、BlockQuote 中の HorizontalRule は別段落になる

コード読んだけどまだよくわかってない。 HRはそもそもBlock要素なんですが、ParaなどのBlock要素は正しくBlockQuote中に取り込まれるので、段落要素であることが原因ではないとはわかっていますが、コード見てもまだよくわかってません。docx形式で出力する…

(Pandoc)Pandoc内では`--to asciidoc`と`--to asciidoctor`が区別されている件

そういえばそんなこともあったわね…。 先の記事に書いた通り、Pandocは拡張子を見ているんですが、asciidoctorにはならないようです。 しかし、この形式たちは内部で差異があり、出力ファイルの文法が異なるので注意です。ていうかasciidoctorの方が標準でい…

(Pandoc)Pandocはファイルの拡張子を見ている

でも明示されていなくない? いつものことデスね…。 対応するコードはここにあります。 github.com で、変換対応を抜粋。以下が対応関係になっています。なお、docとpdfの拡張子はサポート外なので、エラーとなります。また、--toや--fromを指定していればそ…

(Pandoc)2.11が出ましたね!

一応書いておこうかなと。 ずっとリリース待ってたんですが、(日本時間の)深夜になるとは読みが浅かったけど、リリース直後に反応できたので、ヨシ! 今回の一番大きな変更は、citeprocのPandoc内部への取り込みでしょう。今まではフィルタで動いていたも…

(Pandoc)出力ファイルのチェックをするならテストに使っているファイルを使うのが一番。

そらそうだ。 PandocもCI使ってテストをしています。手元でもstack testとかでテストできますけどね。 この際に使っているファイルがコレ。native形式で書かれているので、native parserがしくじってなければ、コレが一番Readerに依存しない形ですね。賢い。…

(Pandoc) VerbatimChar文字スタイルはスタイル一覧に表示されないが、これはSourceCode段落スタイルのリンクスタイルなのであった。

linkスタイル死すべし慈悲はない 以前からPandocのdocxのスタイルについて調べていましたが、最近はHaskellのコードも読んでいるので以前よりもさらにわかってきました。 以前… niszet.hatenablog.com いつかちゃんとまとめたいですね…。 でもそれは大変なの…

(Pandoc)OpenDocument形式出力でsyntax highlightingを(ただしインラインCodeかつODTではない)

簡単とは思っていなかったけどやっぱり大変…。 ODT形式の出力はシンタックスハイライトに対応できていません。そのため、これに対応するべくPandocの修正を試みています。 とりあえずissue建てた。 github.com PRを1個出していて、これはOpenDocument形式で…

(Pandoc)Docx/ODT Writer中の文字コードの確認処理

時間を無駄に溶かしたのでメモをする。 はじめにPandocじゃない話を書いておくと、Rは"\uxxxx"でunicode文字を入れることが出来る。"\u2603"とかやれば☃だ。大文字のUを使えば、4桁で済まない文字も入れられるし、上4つを0で詰めておけば先と等価な文字コー…

(Pandoc)Span記法を使うとdocx出力にコメントを残すことが出来る

誰得だよ… マニュアルの何処にも書いてないと思いますが、docxに出力するときにSpanに特定のclassを与えることでWordのコメント機能を使えるということに気づきました。 入力にこんな感じの文を与えてdocxに変換します。 aaa[bbb]{.comment-start}ccc[ddd]{.…

(Pandoc)ODT出力にtoc-depthが設定できるようにしました

修正は2行だけ Pandocの、ODT形式での出力をdocx形式での出力と同程度のコトが出来るようにしたく、調査等をしています。 とりあえず手が付けられそうなtoc-depthの修正を試みました。 修正自体は2行だけなのですが、PR出すのは初めてなので色々手間取りまし…

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

仕様を追い切れていないが…。 Pandoc 2.10.1 から docx の出力で --number-sections オプションがサポートされました。 これをodtにも入れたいなぁと思ってコードを見ていましたが、Writerにべったり依存なのでコードをかなり追わないといけないなということ…

(Pandoc)複数のdocx/odtを結合する、をWordやLOWの機能でやるべきか…?(メモ)

検討中の話…。 docxはMS Word上で結合できます。リンク形式にする場合は下記のページの説明が分かりやすいです。 www.koikikukan.com これをunzipして見てみると、_relsに実際のファイル名を入れているため、word/document.xml単体では処理できないので、Pan…

(Pandoc)MANUALの更新を追っていけば良いのではという気づき(メモ)

簡単なことだったね(?) Pandocは日々進化しています。自分が使うファイル形式の更新はなくてもそれ以外の形式に対しては後進が入っていたりするので、マニュアルは日々更新されて行きます。 これを、releaseのたびに見ていくと大変なんですが、よくよく考…

(R/OOXML)namespaceがないとw:を入れられない…

という気付きが結構前にあったらしい… 下書きのまま放置していたので、忘れてしまわないうちに書く。 stylexパッケージ、docxのstyleをR上で加工しやすくしようと思って作っていたのですが、docxファイルを記述しているOOXMLは、w:nameのようにw:のnamespace…

(Pandoc)PandocのシンタックスハイライトはWriter依存

読み解くの大変っす…。 Pandocのシンタックスハイライトはskylightingが担っています。これはPandoc内に埋め込まれているので、フィルタ等で制御できる奴ではないです。 github.com で、Pandocは特定の出力形式にのみハイライト対応しています。 Currently h…

(Pandoc)ODT形式での出力はraw記法もフォローしているのでやりたいことが大体出来る

ODT出力の場合に出来ることがどこまであるかを全部チェックしていく 他のファイル形式の出力と同様に、PandocでODT形式で出力する場合にも、generic-raw-attributeを使用して出力ファイルに直接文字列を埋め込むようなことが可能です。これは対象のファイル…

(Pandoc)PandocのODT出力はシンタックスハイライト未対応

マニュアルに書いてあるけど実際やってみてダメなのを確認。 docx出力では出来るがODT出力ではできないことのひとつに、シンタックスハイライトの対応があります。ODT出力では未対応。 マニュアルのシンタックスハイライトの箇所、 pandoc.org より引用。対…

(Pandoc)ODT形式は改ページ挿入のためのスタイルの指定が必要。

段々わかってきましたね…。 ODT形式は基本的に全てスタイルでやってしまおうという感じがありますが、改ページも改ページを指定したスタイルを使うことで実現しているようです。 PandocのpagebreakのLuaフィルタを使うことで、改ページを簡単に挿入できるこ…

PandocのODT形式のTOC出力は「目次と索引の更新」をしないと中身が空になる

対処法?があるかは確認中ですが…。 docx形式の場合、目次はフィールドコードが入ってます。一部抜粋するとこういうタグが…。 <w:fldChar w:fldCharType="begin" w:dirty="true" /> <w:instrText xml:space="preserve">TOC \o &quot;1-3&quot; \h \z \u</w:instrText> <w:fldChar w:fldCharType="separate" /> <w:fldChar w:fldCharType="end" /> ODT形式の場合は全てがstyleになっているようです。値はひょっ…</w:fldchar></w:fldchar></w:fldchar>

(Haskell)Pandocコード読み: make-reference-files.hs

とりあえずわかるところを増やしていく。 今日読んでいるのはコレ。 github.com コレはreference.docxなどのテンプレート(正確にはtemplateは別にあるので、referenceと呼んだ方が良さそうだが)を作るためのHaskellのコード。 これは単体で実行できる(mai…

いつの間にかrmarkdownでpagebreakのlua filterが使われていたので簡単に紹介する。

各ファイル形式に対応している。 Pandocは、内部的にはファイルを読み込むReaderと書き出すWriterに機能が分けられており、Readerで読んだ文書は内部的にはPandoc's ASTというPandocが扱いやすくするためのデータ構造に一旦データを持ち直します。この中間デ…