niszetの日記

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

Pandoc

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

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

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

RStudioでもodt形式のファイルが出力できる(メモ)

新規作成時の画面には出てこないので自分で書きかえる必要がある点に注意 ちょっとODT(OpenDocument)形式について調べていて、RStudio上から出来たら便利なのになぁ…ないなら作るかぁ…と思ってちょっと調べたらrmarkdownパッケージに含まれていたのでその…

(Pandoc)BulletListの探索順序(メモ)

Lua filter特有かもしれないが… Lua filterでBulletListの処理順序を確認するために、下記のようなコードを書いた。 function BulletList(el) print(pandoc.utils.stringify(el)) end 子要素が全部潰されて1つの文字列になってしまうが、そこは目をつぶると…

(Pandoc)BulletListの挙動についてメモ

仕様を理解すれば怖いことはない(はず) なんかタイトルが記事内容とあってないので変えました…。元は Pandoc 2.7以前/以降でBulletListの挙動が異なるので注意 でした。が、実際2.7より前では挙動が違うので、この記事の結果と違う挙動のはずです。 なお、…

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

ようやくPandocのIssueウォッチが出来るようになってきた…(?) 最近追いかけているIssueがコレ。 github.com Pandocのdocxに関する質問は、MLやIssueで見かけてわかるものはコメントをしたりしています。直接問題解決には至ってないので実力が足りませんが…

(Word)Wordからpdfをエクスポートすると画像の解像度が落ちる問題

仕様? 小ネタです。Wordは手軽にpdfに変換できて良いですね。ツールバーの「ファイル」から、「エクスポート」、「PDF/XPSの作成」でpdfの作成ができます。 しかし、問題が少なくとも1つあり、画像の解像度が落ちてしまいます。今回は画像形式としてpngを使…

(Pandoc)ODTメンテナ不在ぽい問題…

なんとかしたいがスキルがなさすぎる…。 Pandocのことを色々調べていて気付いたんですが、ODT周りはdocxと違ってメンテナが不在な状態になってしまっていますね。Pandoc全体に関する仕様の変更や小さなbug fixはされていますが、過去数年を見ても大きな機能…

(Pandoc) デフォルトファイルの項目名を突き合わせる作業

コードを読むのが一番。 Pandoc 2.8からデフォルト設定をまとめたファイルを扱うことが出来るようになりました。これについては去年のアドカレにてsky_y氏ががっつりまとめていますのでそちらを参照してください。 qiita.com しかし、この記事でも言われてい…

(Pandoc) ブロック引用の罠(?)

仕様がちょっとわかりづらいよね… Pandoc方言のMarkdownではブロック引用を>で始まる行であらわすことが出来ます。 > 引用だよ ちょっと気をつけないといけないのが、このブロック要素は改行を無視してしまうことです。例えば以下のような書き方をすると、引…

(Pandoc) docx -> md への逆変換のメモ。メタデータについて

メタデータに関して PandocによるMarkdownからdocxへの変換は、Titleなどのドキュメントの見た目やooxml中で定義されているタグがあるような項目だけでなく、任意のメタデータを出力ファイルに入れることが可能です。たとえば、RMarkdownで出力した場合はout…

(Pandoc) docx -> md への逆変換のメモ(4回目)

コード周りは一旦これでおしまい。 さて、前回はテンプレートファイルに"Source Code R"のようなスタイルを追加し、CodeBlockはその外側にこのスタイルを持ったDivを配置することで、生成されたdocxの見た目に影響なく、元となった言語情報を保存することを…

(Pandoc) docx -> md への逆変換のメモ(3回目)

まずはdocxにする際に細工をする。 さて、前回の考察の結果として、docx生成時にCodeBlockの言語情報が失われているので再生しようがないため、docx生成時になんとか情報を残す方法を考えねばならぬことがわかりました。 やろうと思えば色々とデータをdocxフ…

(Pandoc) docx -> md への逆変換のメモ(2回目)

CodeBlockまわりが面倒くさい… さて、前回の続きです。CodeBlock周りの扱いをどうにかしないといけないのですが…長くなりそうなので複数回にまたがる予定です。 前回の記事にも訂正を入れましたが、docxからMarkdownに変換する際、スタイルがSource Codeにな…

(Pandoc) docx -> md への逆変換のメモ(1回目)

可逆にしたい。 さて、塩漬けにしていた課題、PandocでMarkdownからdocxを生成した後、docxからMarkdownに再変換をする話です。 準備 ひとまずRMarkdownから生成することにします。rmarkdownでデフォルトで生成されるテンプレートからとりあえずdocxに変換し…

RStudioから日本語入りpdfを作る云々の作業履歴。

よくわからんけど動いた! (La)TeXに入門しようと思って、[改訂第7版]LaTeX2ε美文書作成入門を買ってきました。 gihyo.jp とりあえず読み進めています。環境構築がほぼ何も考えずにTeXLiveでOKなので楽な時代なんだろうな…と思っています(niszetは(La)TeX…

PandocのHeadingについてメモ

いろいろ言いたいことがあるね…。 Pandocのデータ構造を改めて見直している。実際はPandocのデータ構造を見直すためではなくて、良い文書構造はどういうものであるか?を考えていた副生成物みたいなものなんだけど。 さて、Pandocの見出し、#や##で始まる行…

メモ(4/25)

最近はPandocのことを考えないようにしていたんですが、LT用の資料を作ろうと思って頭を使い始めたら色々出てきたので整理中です。 Pandocに関係して今考えていることは大きく分けるとこんな感じに分類されます。 「初心者にわかりやすい書籍」はどのように…

(Pandoc) VSCode向けにPandocのLuaフィルタ用のsnippetを作ってみた

VSCodeのExtensionってお手軽に作れますね… VSCodeの使いこなしが足りないと思ってちょっと最近 C&R出版のこの本を読んで使い方を学んでいます。 www.c-r.com これの最後に自作の拡張を登録するというのがあったのでやってみました。ひとまず自分がまだわか…

(Pandoc) テンプレートにあるスタイルの件の補足

一体何が正しいのでしょうか…。 以前こんな記事を書いたのですが、reference.docxをあらかじめ作っておく場合と-t docx でファイルを出力した場合とで、実際にはどの程度の差があるのかを見ておきます。 niszet.hatenablog.com あらかじめ、適当な入力ファイ…

(Pandoc) Pandoc 2.9.2 の _G(メモ)

Lua filterも色々と改良されているので常に調べていかねばならない。 Pandoc 2.9.2 で Luaフィルタ内から_Gに参照した際にアクセスできるモジュールやグローバル変数の一覧です。あとで自分で参照する用。 コードはこれ。 function Doc (e) -- print(_G) for…

(Pandoc) Pandoc 2.9.2 時点でLua filter側からPandocの実行時のオプション等は拾えない (メモ)

備忘録です 昨日数時間かけてLuaフィルタ中で使用できる各種モジュール、ログを生成してみるとか色々やってみましたが、現時点Pandoc 2.9.2 ではLuaフィルタの内部からPandocの実行時のオプション、引数その他を得る方法はなさそうです。 いくつかの情報、例…

(Pandoc) csvを取り込む表にcaptionをつけてみる

昨日のつづき caption付けられるようになりますか?ということで、出来ました。 あと、Pandoc 側で用意されていたList用の関数に一部置き換えています(コメントアウトしているところが以前の記述) 入力ファイルはこんな感じ。Div記法にcaption=キャプショ…

Lua filterでcsvの表の取り込みは難しいといったな。すまん、あれは嘘だ。

めっちゃ簡単だった… 前回の記事、 niszet.hatenablog.com ではlua filterでやるのアレかも…とか書いてましたが、アレではなかった。すごい簡単なことでした…。 私、めっちゃ勘違いしていて、io.read()でファイル読むもんだと思ってました…。これの引数は文…

Pandoc 2.9.2 で 入力ファイル形式にcsvが追加されました

仲間が増えたよ! 掲題のとおり、Pandoc 2.9.2 で 入力ファイル形式にcsvが追加されました。 https://pandoc.org/releases.html#pandoc-2.9.2-2020-02-15 他にも変更点多々ありますが、ひとまずcsvファイルを入力にしたときの挙動を見ておきます。 とりあえ…

(Pandoc) Wordの画像の回り込みの処理を入れるのはちょっとしんどい(メモ)

部分的にWriterを書き換える必要がある。 出来ないと断言はできないものの、現状私の能力では難しいです。Pandoc's ASTでいうところのImageはdocx中では<graphics>タグに置き換わりますが、これが結構複雑で…。この中に回り込みの処理を入れることになりそうですが、こ</graphics>…

(Pandoc) PandocのWordテンプレートはテンプレート出力よりも通常のファイル出力結果を使った方が良い。

2020年初Pandoc記事です(前の2記事も実質Pandocですが) さて、PandocでWord形式の出力ファイルが必要な場合、素の出力では見づらかったり自分なりにカスタマイズしたいということがよくありますね。 これは、--reference-doc であらかじめ見た目を調整した…

(Pandoc) Raw記法で各フォーマットが受け付けるFORMATの文字列

穴埋め記事だよ? この記事は Pandoc Advent Calendar 2019 の3日目が空いているので小ネタを入れていこうというつもりで作った記事ですが、22日、本日も空いているので22日に入れることにしました。 Pandoc Advent Calendar 2019 はこちらから行けます。 ad…