Pandoc 允许用户将多个 Markdown 输入文件翻译为一个 PDF 文件。
pandoc --pdf-engine=xelatex -o test.pdf *.md
通过此调用,所有 Markdown 页面都会在 PDF 输出中连续列出,而不会出现任何新页面。我想为每个 Markdown 文件创建一个新的 PDF 页面。
如何在每个插入的 Markdown 文件之后或之前添加
\newpage
?
如果您使用 GNU awk,即
gawk
,具有多个文件,它有一个在每个文件末尾触发的扩展名,因此您可以使用它来插入 “newpage” 命令,如下所示:
gawk '1; ENDFILE{print "\\newpage"}' *.md | pandoc --pdf-engine=xelatex -o test.pdf
1
中的gawk
计算结果为“True”,这会导致gawk
执行其默认操作,即打印当前行,这意味着除了“newpage”之外,所有行都会被打印每个文件末尾的命令。
如果您添加
sed
选项来将每个文档视为单独的文档,那么您可能可以使用 GNU -s
获得相同的结果,这样您就可以为每个文档获得单独的 “最后一行”:
sed -se '$a\\\newpage' doc*.md | pandoc ...
您可以使用简单的 Python 脚本,无需 Pandoc,如下所示:
pip install markdown-pdf
from markdown_pdf import Section, MarkdownPdf
pdf = MarkdownPdf()
# each section (content of single md file) starts from new page in pdf file
pdf.add_section(Section(open("file1.md").read())) # page 1
pdf.add_section(Section(open("file2.md").read())) # page 2
pdf.save("out.pdf")