個人出版・AI校正

PandocでWord化!PDFでエクスポートする!Luaのフィルター

個人出版・AI校正

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なら一太郎があたりがよさそうです。

ジャストシステム
¥25,833 (2024/04/11 12:05時点 | Amazon調べ)

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の連携は?

調べたのですけど、手動になってしまいそうですね…。

スポンサーリンク

pandocのluaのフィルターの使い方

インストールする必要はありません。環境を用意しなくてもいいのはいいですね。

  1. luaのファイルにコードを追加する
  2. 呼び出しは–lua-filterでファイル名を指定すればいいだけです。

あとは、リファレンスを参照したらいいです。独自のルールがあります。

  • pandoc.List:new()は空オブジェクトを作成する
  • Paraは段落なので要はPタグ

ご参考になれば幸いです。

スポンサーリンク
neruをフォローする
スポンサーリンク

コメント

タイトルとURLをコピーしました