我的文件test.md包含:
---
footertext: some text for the footer
headertext: this is in the header
---
here is the text body.
文件format.tex包含:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{$headertext$}
\fancyfoot[L]{$footertext$}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\setlength{\headsep}{0.25in}
我运行命令:
pandoc -H format.tex test.md -o test.pdf
你可以看到我想做的事。我正在尝试获取文本"这是在标题"要显示在标题中,但它没有,它只显示字符串" headertext" (同样的页脚问题)。
我做错了什么?
编辑:好的,我想我明白了。显然,变量仅在模板中可用,而不是在包含的开始或结束代码块(如我正在使用)或md本身中。所以新问题:这是为什么?它不直观,不方便,记录不完整。
答案 0 :(得分:1)
您可以轻松修改pandoc模板。使用
访问默认模板pandoc -D latex > new_template.latex
将format.tex
的内容粘贴到序言中。如果要将此模板用于多个文档,则应使用$if$
在使用之前检查变量是否存在:
\usepackage{fancyhdr}
\pagestyle{fancy}
$if(headertext)$\fancyhead[L]{$headertext$}$endif$
$if(footertext)$\fancyfoot[L]{$footertext$}$endif$
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\setlength{\headsep}{0.25in}
然后编译:
pandoc test.md -o test.pdf --template=new_template.latex