niszetの日記

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

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

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

asciidoctor出力結果のチェックのために環境を整える

先人がいるのはありがたいことです。 asciidoc/asciidoctor形式の出力ファイルを見るために、指定したツールで正しくレンダリングされるかどうかが判断基準になるため、環境を作っていました。以下はメモ。 環境そのものは下記のブログの記事を参考に入れま…

(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) 各ファイルの役割はCONTRIBUTINGの中に簡単な説明があった…(メモ)

見落としていた… ODT Writerに関するPRを投げるために、CONTRIBUTINGのページを見ていたのですが、そこの最後の方にPandoc のソースコードの各ファイルについて簡単な説明が書いてありました。 pandoc.org 最初に概観するときに知っておきたかった…。 まぁ今…

(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)captionerパッケージがArchivedになっていたのでForkしておいた(メモ)

R

CRANから落ちてしまったらどうしようかねコレ…。 先日、色々見ていたら気づいたのですが、captionerパッケージがArchivedになっていました。 github.com ので、さっそくFork... github.com このパッケージはRMarkdownでWord文書を作ろうのときに使っていたの…

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

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

(R)Localeを英語設定に変更すると日本語を扱うとabortするので注意…(メモ)

R

考えてみれば当たり前なんだけども… こちらの記事とまったく同じモチベーションで、エラーメッセージを英語にして報告したいな、と。 dichika.hateblo.jp で、これを設定すると以降は英語でエラーメッセージが出てきて便利。 Sys.setlocale("LC_CTYPE","Engl…

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

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

LibreOfficeのスタイルに関係する資料が分かりやすそうなので収集中…(メモ)

先人に感謝… ODT形式について調べていると、Wordのそれに比べるとすべてがスタイルで作られている、という設計思想が垣間見えるのでLibreOffice関係でスタイル関係の資料がないか検索したところ、いくつか良い資料が見つかったのでここにまとめておきます。…

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

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

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

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

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

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

ODT形式のzipがちょっと特殊なので気を付けること…

根本的な解決をまだしていない…。 LibreOffice6.0のころから、下記のページにあるようにODTファイルをunzipしてzipしなおすとLOWで開けないよ~という話があったようです。 ask.libreoffice.org これは、ドキュメント内のmimetypeというファイルがStoreで他…

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>

9月の目標

先月は読書量は増えたが、手を動かす時間が減っていたので今月は手を動かす方を重視したい。 今月は忘れずに目標を立てる。 技術同人誌 ODTについて書く。RMarkdownでODTを作ろう、かな? docxについて書く。スタイルを設定して書く、という話。 Rのパッケー…

(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が扱いやすくするためのデータ構造に一旦データを持ち直します。この中間デ…

8月の振り返り

目標も立てずに…? 8月は目標を立てるのを放置していましたが、結果だけは振り返ります。 今月は暑かったものの、先月に比べればやりやすかった。低気圧による頭痛がなかったので。 今月は自分の身の回りのことを結構やらねばならなかったのであまり本を読ん…

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

タイトルで言い切ったとおりです。 すっかり見逃していましたが、Pandoc 2.10から(現最新バージョンは2.10.1)docx形式と同様に、odt形式でもcustom-styleの使用が可能となりました。 以下リリースノートからの引用。 OpenDocument (and ODT) writer: Add c…