Pandocメモ
作成日時:2025-09-02
更新日時:2025-09-02
概要
DLsiteに小説を投稿する際、Markdownで書いた原稿をPDFに変換した。
Pandocインストール
手持ちのOSがWindowsなので、wslで実行。
# texインストール
sudo apt install texlive-full
# pandocインストール
sudo apt install pandoc
# 日本語フォント確認
fc-list | grep "jp"
# 無ければ好きなフォントをインストール
sudo apt install fonts-noto-cjk
# (自分でテンプレートを作成する場合)テンプレート作成
pandoc -D latex > mytemplate.tex
# 生成
pandoc -f markdown sample.md -o output.pdf \
--pdf-engine=lualatex \
# -Vでコマンド中に設定を記載できる
# templateのTeXに記載しているなら無用
# -V documentclass=ltjsarticle \
# -V CJKmainfont="Noto Serif CJK JP" \
--template=mytemplate.tex
テンプレートは自分で作ってもいいし、ネットで拾ってもいい。
pandoc-templates.org
おすすめのテンプレはこれ。
GitHub - Wandmalfarbe/pandoc-latex-template: A pandoc LaTeX template to convert markdown files to PDF or LaTeX.
examplesを見れば、大体やりたいことが載ってる。
YAMLマター
MarkdownのYAMLマターに余白とか表紙とかの設定を記載できる。
latexに直で書いてもいいし、生成コマンドの引数で渡してもよい。
papersize: a5
geometry:
- top=1cm
- bottom=2cm
- left=0.8cm
- right=0.8cm
改行
\newpage
リンクの記載
[文言](#見出し)
結合
pandoc file1.md file2.md file3.md -o combined.pdf
# pdfとの結合
# インストール(Ubuntu/Debian)
sudo apt install pdftk
# 結合
pdftk file1.pdf file2.pdf file3.pdf cat output merged.pdf
md-to-pdf
Pandocを使うまでもない簡易的な変換ならばこれを使う。
- MarkdownをPDFに変換する「md-to-pdf」は痒いところに手が届く素敵ツール | DevelopersIO
- md-to-pdfのコマンドラインオプションと実行例 #Markdown - Qiita
思ったこと
あたりまえだけども、MarkdownもLaTeXもただのフォーマットである。
pandocやptex2pdf、VS Codeのプレビューなどにおいて、フォーマットのルールに基づきレンダリング/変換されるだけ。
LaTeXは外部ファイルのデータを表現できる。
pandocがLaTeXテンプレートをもとにMarkdownをPDFに変換するのは、Markdownを外部データとして取り扱い、LaTexのフォーマットで解釈してPDFに変換しているだけ。