定义 latex 命令,其中参数是另一个命令的一部分

定义 latex 命令,其中参数是另一个命令的一部分

有没有办法定义一个 LaTeX 命令,其中参数构成命令的一部分,并在命令定义的文本内扩展?

例如,这是一个 MNWE(最小非工作示例——它不起作用,这是问题的基础):

\newcommand{\firstExclamation}{Yesiree!}
\newcommand{\secondExclamation}{No way!}

\newcommand{\firstExplanation}{You are our favorite customer.}
\newcommand{\secondExplanation}{We're all out of that product.}

\newcommand{\usesMyCommands}[1]{I said, ``\#1Exclamation \#1Explanation"}

然后\usesMyCommands{first}应该扩展为“是的!你是我们最喜欢的顾客。”,同时\usesMyCommands{second}应该扩展为“没办法!我们已经没有那个产品了。”

这个问题并且它的答案似乎非常相关,这个,但经过一些实验,我还没有弄清楚如何将他们的经验应用到我的案例中。这些问题是关于如何在命令中定义命令,我想使用命令中又包含命令。也许我只是没看到——也许答案就在那些答案中,只是我没有意识到。

我确信有一种方法可以在原始 TeX 中实现这一点。我希望不必陷入 TeX 沼泽。我尊重那些经常这样做的人。我也看过, 和,但希望我不需要理解它们。:-)

答案1

\documentclass{article}

\usepackage{amsmath}

\begin{document}
\newcommand{\firstExclamation}{Yesiree!}
\newcommand{\secondExclamation}{No way!}

\newcommand{\firstExplanation}{You are our favorite customer.}
\newcommand{\secondExplanation}{We're all out of that product.}

\newcommand{\usesMyCommands}[1]{I said, ``\csname #1Exclamation\endcsname\ \csname#1Explanation\endcsname"}
\usesMyCommands{first}, \usesMyCommands{second}
\end{document}

在此处输入图片描述

相关内容