【发布时间】:2017-09-19 10:20:28
【问题描述】:
在将单个 Markdown 文件转换和编译为 PDF(通过 LaTeX)时,有没有办法告诉 Pandoc 将 \jobanme 设置为特定值? -最好是源*.md文件的名称。
背景:
我定义了自己的 LaTeX 文档类,它使用 \jobname。
它将它打印在文档页脚中,因此我很容易找到具有打印 PDF 的源文件/存储库。
我在编译脚本中将 jobname 设置为 pdfLaTeX 参数。
我目前正在尝试将我的文档类用作由 Pandoc 从 Markdown 源处理的文档的 LaTeX 模板。看来,Pandoc 总是将\jobname 设置为“输入”。
我可以在 Markdown 的 yaml 标头中设置任何变量,然后将其打印到 PDF 中,但是能够根据真实的 md 文件名进行设置将更不容易出错。
【问题讨论】:
-
您必须制作自己的模板,请参阅pandoc.org/MANUAL.html#templates
-
这正是我正在做的,我在我的 LaTeX 模板中使用了
\jobname。我唯一需要的是强制执行 Pandoc(调用 pdfLaTeX)来指定我需要的\jobname的值。你能提供更多细节吗,@mb21? -
您阅读手册了吗?听起来您想使用 pandoc 模板变量而不是 LaTeX 命令...
-
@mb21,谁说的?再一次:我有我自己的基于文章的 LaTeX 类“mydoc”。如果我编译一个以 \documentclass{mydoc} 开头的 LaTeX 文档,它看起来像文章,但我的徽标在顶部,
\jobname的值在每一页的底部。如果我将文档编译为pdflatex some_file.tex,我在页脚中打印了“some_file”。如果我在 git repo 中编译一个更大的文档,我会使用带有--jobname=repo_x的命令。我想将我的 markdown yaml 标头中的documentclass设置为“mydoc”,并将 md 文件名打印在我的文档的页脚中。 -
有一个选项
--latex-engine-opt可用于将--job-name参数设置为我需要的任何值。可悲的是,这不起作用。使用pandoc --latex-engine-opt=--job-name=xxx <...>我得到pandoc:生成PDF 时出错。我希望 pandoc 会查找input.pdf,因为临时输入文件是硬编码的let file = tmpDir </> "input.tex",并且 jobname 会更改生成的 PDF 文件的名称。作为解决方案,我将班级更改为使用srcrepovar。我用pandoc -V srcrepo:xx设置它。