\newcommand 命令是否带有内置方法来设置多个默认参数?

\newcommand 命令是否带有内置方法来设置多个默认参数?

使用 LaTeX。尝试了解\newcommand命令的工作方式。是否可以使用内置语法为第一个参数以外的多个参数设置默认值?我找不到设置超过 1 个的示例。

嗯,我发现使用地图的示例,但我真的只是想学习语言。现在还不需要发疯。

答案1

您确实想使用\NewDocumentCommand而不是,\newcommand但是,如果您考虑的是默认参数,那么您应该查看包keyval。很大程度上取决于您到底想做什么。

答案2

由于问题是关于学习如何\newcommand处理可选参数,答案是\newcommand构造可以间接地消化多个可选参数,但方式不可扩展。该技术涉及调用第二个辅助宏来吸收第二个可选参数。

还要注意,如果没有定义第一个可选参数,就无法定义第二个可选参数。

这里,\first是用户宏,带有两个可选参数和一个强制参数。它使用辅助宏\Second来吸收第二个可选参数(和强制参数)。还请注意,\firstarg如果需要恢复第一个可选参数的实际标记,则必须将其展开一次。

\documentclass{article}
\newcommand\first[1][optA]{\def\firstarg{#1}\Second}
\newcommand\Second[2][optB]{The arguments are \firstarg, #1, and #2}
\begin{document}
\first{X}

\first[Z]{X}

\first[Z][Y]{X}
\end{document}

在此处输入图片描述

相关内容