我想用包含条件的命令设置某个部分的标题\ifthenelse
:
\documentclass{article}
\usepackage{ifthen}
\newcommand{\region}{Germany}
\newcommand{\getValue}{
\ifthenelse{\equal{\region}{Germany}}{
Kapitel 1
}{
Chapter 1
}
}
\begin{document}
\section{\getValue}
\end{document}
然而,这不起作用,我想知道为什么它不起作用以及如何让它工作。我在编译最小工作示例时收到很多错误,我不知道如何修复。我可以通过以下方法轻松解决示例中的问题:
\begin{document}
\ifthenelse{\equal{\region}{Germany}}{
\section{Kapitel 1}
}{
\section{Chapter 1}
}
\end{document}
但是,这种解决方法不适合我在生产中使用,因为我想getValue
在这种情况下更频繁地使用该命令。我看了看这个问题然而,除了标题之外,这个问题与这个问题没有太多共同之处。
答案1
使用 ifthen 进行语言切换不是一个好主意。它的扩展性不好:想象一下,你想添加法语、意大利语、俄语、日语等选项……
但除此之外:\section 参数的内容在多个地方使用,这意味着您想要在那里使用的命令应该是健壮的。您可以定义这样的健壮命令,例如从\NewDocumentCommand
xparse 中定义:
\documentclass{article}
\usepackage{ifthen,xparse}
\newcommand{\region}{Germany}
\NewDocumentCommand{\getValue}{}{%
\ifthenelse{\equal{\region}{Germany}}{%
Kapitel 1
}{%
Chapter 1
}%
}
\begin{document}
\section{\getValue}
\end{document}