Pandocの覚書です。
目次
PandocでPDFの書き出し(Wordのテンプレートにした方がよい!?)
PandocからPDFにする方法はいろいろとあります。
- LaTeXを使う
- Wordに変換してWordからPDFに変換する
- Pandocは使わずCSS組版を使う
PandocのLaTeXでPDFを書き出し
LaTeXを使う場合、PDFを書き出すことはすぐにできません。書き出そうとすると、次のエラーがでます。
pdflatex not found. Please select a different --pdf-engine or install pdflatex
公式サイトのpdfの作成をみると、pdf engineが必要なようです。
TeX Liveのリンクを辿ります。macの場合は
MacTeX distribution. > MacTeX Download. > MacTeX.pkg
をダウンロードします。このファイルは重たいですね。
簡易版のBasicTeX.pkgもでていました。重たさにびっくりして結局こちらを使いました。
ttp://tug.org/mactex/morepackages.html
中途半端ですいませんがここまでです。いろいろ考えた末、他の方法の方がよさそうという結論になり、やめました。
CSS組版VivliostyleでPDF化
CSS組版のVivliostyleをやるのがもう一つの選択肢です。もともとブロガーなので、CSSの方がわかりやすいです。デザインはそのうちこりたくなる気がしたため。
PandocのWordテンプレートでPDFを書き出し
個人的にWordに一度変換してPDFにする方法を選びました。
PandocのPDF化は一度、Wordに変換した方がよさそうです。その上で、MACのPagesを使ってPDF化するか、Windowsなら一太郎があたりがよさそうです。
PandocからWordに変換する特徴は次のとおりです。
- CSS組版と違い、すべてPandocで完結できる
- LaTeXの学習コストがない
- 一般的に知られたWordなので取っつきやすい(編集者とやりとりしやすいかも)
- CSS組版と違ってCSSは使えない。かわりにreference.docxというテンプレが使える
変換するだけなら簡単です。
pandoc md/test.md -o output.docx
テンプレファイルの作り方はこうです。
pandoc --print-default-data-file reference.docx > custom-reference.docx
意味はこんな感じです。
デフォルトデータファイルを出力、Wordのテンプレreference.docxを指定 > 任意の出力ファイル名
テンプレートを反映させます。
pandoc -s md/test.md --reference-doc=theme/custom-reference.docx -o output.docx
Wordのテンプレートが破損する
CursorやVsCodeがパワーシェルの場合、破損します!
cmd(コマンドプロンプト)で実行します。
pandoc --print-default-data-file reference.docx > custom-reference.docx
start .
フォルダを開いて生成ファイルをコピペします。もしくは移動したのち生成します。
VsCodeの設定を切り替えてもOKです。
pandocでWord変換の際に目次が表示されない
issuesで話し合いが行われていました。
残念ながらLibreOfficeの場合は、手動でインデックスを更新する必要がありそうです。
右クリック > 目次索引の更新
custom-reference.docxにページ数をいれる
WordやPagesの機能でいれます。
LibreOfficeの場合はこうです。
挿入 > ヘッダーとフッター > フッター > 標準ページスタイル
カーソルがフッターに表示されます。
挿入 > ページ番号
PandocのWord変換のデメリット
個人的に2日ほど、いろいろと模索したのですが、スタイルの反映が難しい気がしました。ePUBやHtmlの書き出しの際に利用していた設定をPandocを通してWordにどうやって反映させるか。
いいやり方があれば知りたいぐらいですが、今のところCSS組版Vivliostyleの方が楽そうです。
pandocとAffinity PublisherやInDesignの連携は?
調べたのですけど、手動になってしまいそうですね…。
ICML は IDML のサブセットらしいのに、InDesign を使うしかコンバートの方法がないのはなんでなん。
— 大岡由佳『りあクト! 第4版』BOOTHで販売中!紙本も (@oukayuka) June 29, 2021
なんとか Pandoc → Affinity Publisher ができる方法がないかと探したけどだめだった。
Affinity Publisher、InDesign 形式は .idml のみで Pandoc がサポートしてる .icml ファイルのインポートはできないのね。残念。https://t.co/YyTZs1usgd
— 大岡由佳『りあクト! 第4版』BOOTHで販売中!紙本も (@oukayuka) June 28, 2021
pandocのluaのフィルターの使い方
インストールする必要はありません。環境を用意しなくてもいいのはいいですね。
- luaのファイルにコードを追加する
- 呼び出しは–lua-filterでファイル名を指定すればいいだけです。
あとは、リファレンスを参照したらいいです。独自のルールがあります。
- pandoc.List:new()は空オブジェクトを作成する
- Paraは段落なので要はPタグ
ご参考になれば幸いです。
コメント