Pandoc:在自定义乳胶序言中使用变量
Pandoc: use variables in custom latex preamble
我有文件 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
你可以看到我想做什么。我试图让文本 "this is in the header" 显示在页眉中,但它没有,它只显示字符串 "headertext"(页脚也有同样的问题)。
我做错了什么?
编辑:好的,我想我明白了。显然,变量仅在模板中可用,在包含的开始或结束代码块(如我正在使用的)或 md 本身中不可用。那么新的问题:这是为什么?它不直观、不方便且记录不完整。
您可以轻松修改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
我有文件 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
你可以看到我想做什么。我试图让文本 "this is in the header" 显示在页眉中,但它没有,它只显示字符串 "headertext"(页脚也有同样的问题)。
我做错了什么?
编辑:好的,我想我明白了。显然,变量仅在模板中可用,在包含的开始或结束代码块(如我正在使用的)或 md 本身中不可用。那么新的问题:这是为什么?它不直观、不方便且记录不完整。
您可以轻松修改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