我是 LaTeX 新手,想用 minted 添加一些代码,只有当 \boolean 变量为真时才会渲染这些代码。这是我的代码:
\documentclass{article}
\usepackage {minted}
\usepackage {ifthen}
\newboolean{printCode}
\setboolean{printCode}{true}
\begin{document}
\ifthenelse{\boolean{printCode}}{
\begin{minted}{c}
// comment
int i = 1;
\end{minted}
}{}
\end{document}
这会导致错误:
! FancyVerb Error:
Extraneous input ` // comment int i = 1; \end {minted} ' between \begin{minte
d}[<key=value>] and line end
.
\FV@Error ... {FancyVerb Error:
\space \space #1
}
l.15 }{}
当我删除 \ifthenelse 部分时,它工作正常。此外,如果 printCode 为 false,它也可以工作(不会打印代码)。所以问题是:我在这里做错了什么?
谢谢!Ingo。
答案1
您不能将minted
环境作为其他命令的参数:这是对每种“逐字”事物的限制,因此verbatim
,lstlisting
和minted
。
您可以使用更基本的语法来避免该参数:
\documentclass{article}
\usepackage {minted}
\usepackage {ifthen}
\newboolean{printCode}
\setboolean{printCode}{true}
\begin{document}
Text to be printed so there's output even if the \verb|\setboolean|
line is commented out.
\ifprintCode
\begin{minted}{c}
// comment
int i = 1;
\end{minted}
\fi
\end{document}