iftoggle 与 minted

iftoggle 与 minted

etoolbox我在使用 minted 包与's结合使用时遇到了问题iftoggle。它应该与这个beamer问题相关(或基本上是相同的错误):框架中的铸造环境导致错误但是那里提出的解决方案(使用框架fragile)不能以这种方式应用于标准文档。

以下 MWE 在以下情况下会出现错误\toggletrue{test}

\documentclass{report}%
\usepackage{etoolbox}
\newtoggle{test}
\toggletrue{test}
\usepackage{minted}
\begin{document}
\iftoggle{test}{
    \begin{minted}
    test
    \end{minted}
}{}
test
\end{document}

错误是

(./mwe.aux)
(/usr/local/texlive/2016/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
)
! Missing \endcsname inserted.
<to be read again>
                   \def
l.15 }
      {}

我该如何解决这个问题?

答案1

您不能minted在另一个命令的参数中包含环境。

对于这种特殊情况,你可以这样做

\iftoggle{test}{\iftrue}{\iffalse}
\begin{minted}
test
\end{minted}
\fi

完整示例

\documentclass{report}
\usepackage{minted}
\usepackage{etoolbox}
\newtoggle{test}
\toggletrue{test}

\begin{document}
\iftoggle{test}{\iftrue}{\iffalse}
\begin{minted}{text}
test
\end{minted}
\fi

test

\togglefalse{test}
\iftoggle{test}{\iftrue}{\iffalse}
\begin{minted}{text}
test
\end{minted}
\fi

test

\end{document}

在此处输入图片描述

相关内容