Help us understand the problem. What is going on with this article?

複数の Markdown を 1枚の PDF に出力

More than 5 years have passed since last update.

印刷出力

pandoc を使用することで、様々なファイルフォーマットに出力可能です。

複数の Markdown ファイルを結合して、 pandoc に渡すことで、 1枚の PDF ファイルに出力することができます。

PDF出力

まず、体裁を整えるため、 preanble.tex ファイルを作成します。

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 用コメントを入れておくと、表紙の出力が可能です。

cover.md
% 文書のタイトル
% 著者名
% 日付

Pandoc ユーザーズガイド 日本語版 - タイトルブロック も参考にしてください。

参考

TODO

  • *.md ファイルの最終行に、改行コードが2つ以上ないと、 PDF にした際に正常に出力されない。 cat で連結した時に、ファイルの境界を改行させたいが、良いやり方が解らない。。。
nanasess
Emacs のアイコンを作った人です
https://skirnir.co.jp
ec-cube
日本No.1ECオープンソースのEC-CUBEのコミッターやユーザーのコミュニティです。
http://www.ec-cube.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした