如何存储布尔值以供日后使用

如何存储布尔值以供日后使用

我想使用 为包定义一个新命令xparse。我的命令如下:

\NewDocumentCommand{\fancyCommand}{s o m}{
    \def\@optional{#2}
    \def\@mandatory{#3}
}

这是因为我需要强制和可选参数以供以后使用。我还想拥有 的布尔值#1。我该如何存储这个值?我尝试通过\newif\newtoggl使用该etoolbox包进行构造,但这两种方式都会引发错误Undefined control sequence.

答案1

注意这些命令默认在 latex 中,xparse仅在较旧的格式中才需要。提供了合适的测试,您不需要额外的软件包。

在此处输入图片描述

\documentclass{article}

\makeatletter
\NewDocumentCommand{\fancyCommand}{s o m}{%
    \let\@star#1%
    \def\@optional{#2}%
    \def\@mandatory{#3}%
}

\def\test{%
The last command
\IfBooleanTF\@star{had a star}{did not have a star},
\ExpandArgs{o}\IfNoValueTF\@optional{no option}{option: \@optional},
argument: \@mandatory.}


\makeatother
\begin{document}

\fancyCommand{aaa} \test

\fancyCommand*[jj]{bbb} \test

\fancyCommand*{ccc} \test


\end{document}

相关内容