新命令第一个参数的可选值存在问题

新命令第一个参数的可选值存在问题
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}

%définition de variable texte pour compilation conditionnelle
\def\ChoixDeVersion{AB} %AB=Avec Barème, SB ou autre = sans bareme

\usepackage{ifthen}
\newcommand{\bareme}[1][2 ]{%
     \ifthenelse{\equal{\ChoixDeVersion}{AB}}%
     {#1 AB \ignorespaces}%
     {#1 \ignorespaces}%
}     
\begin{document}
\bareme{123 } 
\end{document}

\bareme即使我在调用命令时给出了参数, 该命令第一个参数的可选值也会一直显示

\bareme{123 }给出

在此处输入图片描述

我希望 123 AB。当我调用命令 (123) 时,参数的值应该取代第一个参数 (#1) 的可选值 (2)。

我的错误在哪里?

答案1

免责声明:我不建议滥用gG可选参数说明{}符。

LaTeX 只有等[]作为可选参数\newcommand。使用gG来自xparse(使用expl3LaTeX 3 的“即将推出”的格式),可以应用\NewDocumentCommand并提供可与G{2}一起使用的可选参数——如果根本没有指定,则是参数的默认值。{}[]2

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}

\usepackage{xparse}

%définition de variable texte pour compilation conditionnelle
\def\ChoixDeVersion{AB} %AB=Avec Barème, SB ou autre = sans bareme

\usepackage{ifthen}
\NewDocumentCommand{\bareme}{G{2}}{%
     \ifthenelse{\equal{\ChoixDeVersion}{AB}}%
     {#1 AB \ignorespaces}%
     {#1 \ignorespaces}%
}     
\begin{document}
\bareme{123} 

\bareme
\end{document}

在此处输入图片描述

相关内容