与 ifthen 包结合使用开括号和闭括号

与 ifthen 包结合使用开括号和闭括号

相关这个问题但是,我却无法解决我的问题。

让我先介绍一下背景知识。我想在文章样式和特定期刊样式之间切换。期刊样式有用于摘要、证明、附录等的特定命令。变量\var表示我使用的是文章样式 (0) 还是期刊样式 (1)。让我们假设该命令\ABSTRACT由期刊使用,并且它接受一个参数作为实际摘要。因此,通常您会将摘要打印为\ABSTRACT{This is my abstract.}

以下 MWE 不起作用,错误在于它缺少结束论点 }。

平均能量损失

\documentclass{article}

\usepackage{ifthen}

\newcommand{\var}{1}
\newcommand{\ABSTRACT}[1]{\begin{abstract}#1\end{abstract}}

\begin{document}

\ifthenelse{\var = 1}{\ABSTRACT\bgroup}{\begin{abstract}}%
This is my abstract.%
\ifthenelse{\var = 1}{\egroup}{\end{abstract}}%

Some other text below the abstract.

\end{document}

答案1

宏分隔符括号必须是明确的 catcode 1 和 2 个字符,(通常{})它们不能是\bgroup\egroup。你可以这样做

\documentclass{article}

\usepackage{ifthen}

\newcommand{\var}{1}
\newcommand{\ABSTRACT}[1]{\begin{abstract}#1\end{abstract}}

\begin{document}

\ifthenelse{\var = 1}
{\newcommand\myabstract[1]{\ABSTRACT{#1}}}
{\newcommand\myabstract[1]{\begin{abstract}#1\end{abstract}}}


\myabstract{This is my abstract.}

Some other text below the abstract.

\end{document}

相关内容