我目前正在运行以下命令来填充我的乳胶模板。
pandoc -s --top-level-division=chapter --template=template.tex metadata.md content/*.md -o frommarkdown.tex
经过 latex 处理的 *.md 文件的内容通过变量填充模板$body$
。然而,这是逐字发生的,$body$
变量被替换为从 md 文件生成的 tex 代码。这生成了一个巨大的 latex 文件,其中我的所有论文章节都连接在一个大文件中。
我的理想情况是,我可以将\include
全部动态生成的 tex 文件保存在我的文档中,这样我就可以保留一个干净的乳胶文档,这在调试或修改更大的项目(例如论文)时非常有用。
我理想情况下希望有这样的东西:
$for(include-chapters)$ \include($include-chapters$) $endfor$
我的想法是,通过两步解决方案实现此目的,首先为每个 *.md 文件生成独立的 tex 文件(不使用模板)。然后,我想将这些生成的 tex 文件动态包含到我的主要 tex“模板”中。
这可以通过 pandoc 实现吗?或者我需要为此编写自定义 shell 脚本?
答案1
我不明白您到底想做什么,但您可以修改模板并使其包含 tex 文件。
获取乳胶模板并保存至
template.tex
:pandoc -D latex > template.tex
打开模板文件并添加以下代码片段
$body$
:$for(include-chapters)$ \include{$include-chapters$} $endfor$
现在您可以将想要包含的文件添加到
metadata.md
:--- include-chapters: - content/chapter1 - content/chapter2 ---
跑步
pandoc
:pandoc -s -S --top-level-division=chapter \ --template=template.tex \ metadata.md -o frommarkdown.tex
这些步骤将导致:
\begin{document} \include{content/chapter1} \include{content/chapter2} \end{document}
但我还是不建议这么做。有很多非常强大的工具,可以做得更多更好,例如make