我正在尝试合并两个自定义\includegraphic
命令。第一个命令插入 a -->
,第二个命令插入 a <--
。它基本上看起来像这样:
-->这是一个示例<--
如何创建一个新命令,使我能够包含两个箭头并仍然输入任意文本?
目前,我的代码如下所示:\fa "Some Text \ba
。
\fa
包括使用命令的前箭头\includegraphics
和\ba
后箭头。我的目标是将两个命令合二为一,同时仍能够在两者之间添加一些文本。
答案1
如果我正确理解了您的要求,那么执行的方法是定义一个接受一个参数的宏,该参数将是“自定义文本”。
您可以使用 TeX 的\def
原语来定义新命令,或者使用 LaTeX 的\newcommand
。通常,后者是预先触发的,因为它会检查您定义的宏是否已经存在,然后拒绝再次定义它并发出错误。对于您的问题,答案是:
\newcommand{\faba}[1]{\fa#1\ba}
新命令名为\faba
,它需要一个 (1) 个参数(因此为[1]
)。然后是定义。在定义中,您可以使用其他先前定义的宏(例如 和 ,\fa
它们是用于生成箭头的命令),以及表示参数实际值的\ba
特殊符号(自定义文本)。#1
定义完此之后,你就可以写入\faba{This is an example}
你的文本了,该命令\faba
将会被扩展为#1
等于This is an example
。
我猜你的“自定义文本”将由几个单词组成,而不是包含几个段落。在这种情况下,你可以使用\newcommand*
(注意最后的星号)来定义它,如下所示:
\newcommand*{\faba}[1]{\fa#1\ba}
用法完全相同,不同之处\par
在于 中不允许有 (或空行) #1
。这有助于您尽早发现何时忘记在宏参数后关闭右括号。
如果你更喜欢 TeX 的\def
原始形式(不鼓励),语法如下:
\def\faba#1{\fa#1\ba}
它相当于带星号的版本\newcommand
,但不检查是否\faba
已定义,而是覆盖其先前的值。宏的使用方式相同。