在函数调用中使用变量

在函数调用中使用变量

我需要根据一些条件组合来调用各种命令。由于可能的情况数量巨大,在调用的命令名称中使用变量会非常方便。可以吗?

以下是一个简化的示例:

假设我定义了一组具有组合名称的命令,例如:

\newcommand{\mycommandUpLeft}[1]{...something using #1...}
\newcommand{\mycommandUpRight}[1]{...something else using #1...}
\newcommand{\mycommandDownLeft}[1]{...something else using #1...}
\newcommand{\mycommandDownRight}[1]{...something else using #1...}

我想从另一个元命令调用它们,例如:

\newcommand{\metacommand}[3]{%
   \mycommand#1#2{#3}   % wished behavior, but not possible using this syntax
}%

其中参数 1 和 2 分别是垂直和水平方向。使用方法如下:

\metacommand{Down}{Left}{some content}

期望它充当

\mycommandDownLeft{some content}

笔记 :

使用\ifthenelsefromifthen包可能是一种解决方法,但并不理想,因为它需要非常长且冗余的树结构。

谢谢!

答案1

\documentclass{article}
\newcommand{\mycommandUpRight}[1]{Up Right of #1...}
\newcommand{\mycommandDownLeft}[1]{Down Left of #1...}
\newcommand\metacommand[3]{\csname mycommand#1#2\endcsname{#3}}
\begin{document}
\mycommandDownLeft{some content}

\metacommand{Down}{Left}{other content}

\metacommand{Up}{Right}{third content}
\end{document}

在此处输入图片描述

相关内容