在 /ifthenelse 块中包含使用铸造包的代码在 LATEX 中不起作用



我正在尝试生成一个通用文档并(使用\ifthenelse(具有不同的pdf版本。当我尝试使用铸造的包包含代码块时,pdf 是在没有代码的情况下生成的。

如果我在 \ifthenelse 块之外尝试它,则包含该代码。块内是唯一不工作的地方。\lstset 也会发生同样的情况。

documentclass{article}
usepackage{minted}
usepackage{xcolor}
usepackage{ifthen}

begin{document}
...
newboolean{xcpp}
setboolean{xcpp}{true}
ifthenelse{xcpp}{
Test
begin{listing}[ht] 
begin{minted}{cpp}
int main() {
int i=0;
for (i=1; i<10; i++){
int j=10;
std::cout<<i<<" j: "<<j<<std::endl;
}
std::cout<<"ni al salir del ciclo: "<<i; 
return 0;
}
end{minted}
caption{Minimal working example}
label{listing:1}
end{listing}
}{}
end{document}

脆弱的内容(如代码(在另一个宏的参数中总是很棘手 - 但与其尝试解决此问题,不如有一个简单的解决方法:

documentclass{article}
usepackage{minted}
usepackage{xcolor}
begin{document}
newififxcpp
xcpptrue % <- comment this line to switch between the two versions
ifxcpp
begin{listing}[ht] 
begin{minted}{cpp}
int main() {
int i=0;
for (i=1; i<10; i++){
int j=10;
std::cout<<i<<" j: "<<j<<std::endl;
}
std::cout<<"ni al salir del ciclo: "<<i; 
return 0;
}
end{minted}
caption{Minimal working example}
label{listing:1}
end{listing}
else
something else
fi
end{document}

相关内容

最新更新