印刷出力
pandoc を使用することで、様々なファイルフォーマットに出力可能です。
複数の Markdown ファイルを結合して、 pandoc に渡すことで、 1枚の PDF ファイルに出力することができます。
PDF出力
まず、体裁を整えるため、 preanble.tex ファイルを作成します。
%
% preanble.tex
% PDF出力用プリアンブル
%
\paperwidth210mm
\paperheight297mm
\usepackage{luatexja}
\usepackage[ipa]{luatexja-preset}
\usepackage{amsmath}
\usepackage{graphicx,color}
\usepackage[margin=2cm,truedimen]{geometry}
\def\baselinestretch{1.1}
\parindent=0pt
以下のようなコマンドで、カレントディレクトリ以下の *.md
ファイルを1枚の PDF に出力することが可能です。
pandoc の他、 lualatex を使用するため、 Tex Live が必要です。
Mac の場合は iconv で NFCに正規化しなおす 必要があります。
# Mac の場合
find . -name '*.md' | xargs iconv -f UTF-8-MAC -t UTF-8 | pandoc -f markdown -o output.pdf -V documentclass=ltjltxdoc -H preanble.tex --latex-engine=lualatex --toc -N
# Mac 以外の場合
find . -name '*.md' | xargs cat | pandoc -f markdown -o output.pdf -V documentclass=ltjltxdoc -H preanble.tex --latex-engine=lualatex --toc -N
- --toc を付与することで、目次を生成できます。
- -N を付与することで、項番を生成できます。
文書クラス
documentclass を変更することで、 --latex-engine
で指定した LaTeX エンジンの多彩な文書クラスを利用できます。
--latex-engine=lualatex を指定し、前出の preamble.tex を使用した場合、 article, book といった 8 ビット欧文 LaTeX 用の文書クラスでも、日本語で出力できるようです。ただし、 jarticle, jsarticle 等、 pLaTeX 専用のものは使用できません。
文書クラスについては、 「LaTeX 文書クラスについて 」が詳しいです。
表紙
以下のような pandoc 用コメントを入れておくと、表紙の出力が可能です。
% 文書のタイトル
% 著者名
% 日付
Pandoc ユーザーズガイド 日本語版 - タイトルブロック も参考にしてください。
参考
- 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう
- http://kreisel.fam.cx/webmaster/clog/2014-05-26-1.html
- Pandoc ユーザーズガイド 日本語版
- LaTeX 文書クラスについて
TODO
-
*.md
ファイルの最終行に、改行コードが2つ以上ないと、 PDF にした際に正常に出力されない。cat
で連結した時に、ファイルの境界を改行させたいが、良いやり方が解らない。。。