Pandoc CMD 调用 tex 模板并传递变量

Pandoc CMD 调用 tex 模板并传递变量

我正在尝试将变量传递给 tex 模板,以通过 pandoc 生成使用这些值的 PDF。

这是我的模板:

\documentclass[15pt]{article}

\usepackage{sectsty}

% Margins
\topmargin=-0.45in
\evensidemargin=0in
\oddsidemargin=0in
\textwidth=6.5in
\textheight=9.0in
\headsep=0.25in

\newcommand{\Ticket}{}
\newcommand{\Autor}{}
\newcommand{\Erstelldatum}{}

\title{Ticket: \Ticket}
\author{Erstellt von: \Autor}
\date{Erstellt am: \Erstelldatum}

\begin{document}
\maketitle

\end{document}

我尝试运行这些命令但变量仍然为空:

pandoc.exe -o test.pdf -s template.tex --variable Ticket=12345
pandoc.exe -o test.pdf -s template.tex --variable=Ticket=12345
pandoc.exe -o test.pdf -s template.tex --variable=Ticket:12345

答案1

正如 @dexteritas 已经指出的那样:模板变量包含在 中$。这记录在手动的

您还需要使用选项加载模板--template=,并且必须确保加载了pandoc实际需要的所有包。最好获取默认模板pandoc -D latex并对其进行修改。

让我们调用你的文件template.latex


\documentclass[15pt]{article}

\usepackage{sectsty}

% Margins
\topmargin=-0.45in
\evensidemargin=0in
\oddsidemargin=0in
\textwidth=6.5in
\textheight=9.0in
\headsep=0.25in


\title{Ticket: $Ticket$}
\author{Erstellt von: $Autor$}
\date{Erstellt am: $Erstelldatum$}

\begin{document}
\maketitle

\end{document}

然后调用 pandoc:

pandoc --template=template.latex \
       -V Ticket=12345 \
       -V Autor="Vorname Nachname" \
       -V Erstelldatum=2023-04-20
       --in test.md --out test.pdf

相关内容