Latex命令换行

4

我正在尝试在LaTeX中创建一个命令,当调用它时,例如\test{\ab}{TEST},将创建一个新的命令定义为\ab[1]{\raggedright TEST: \\ \hspace{0.5in} #1}

我的目标是类似于以下内容:

\newchar{\ab}{TEST}
\ab{This is a line TEST says.}

这将执行以产生结果

TEST:
     This is a line TEST says.

如果无法实现这一点(我希望这是可能的),我可以使用我起草的另一个命令。但问题在于,我需要一种方法在文本后面放置换行符,而不需要用户指定它。
非常感谢您的帮助!
2个回答

2

命令定义可以嵌套;每一层都要将#加倍。

\newcommand\newchar[2]{%
  \newcommand #1 [1] {%
    \raggedright #2: \\ \hspace{0.5in} ##1%
  }%
}

更新: 关于#加倍的注释。当使用\def原语定义宏时,这更有意义;在这种情况下,一般的构造是这样的:

\def\foo{%
  \def\bar##1{bar: ##1}%
}

1
这正是我正在寻找的。有趣的是,在互联网上我没有看到有关每个层级需要双'#'的部分。谢谢! - Luke Cycon
既然我理解了这些问题,我刚想建议尝试一下。又是新的一天,学到了新的东西。非常棒。 - dmckee --- ex-moderator kitten

1

我不完全清楚你想要什么,但也许是:

\newcommand{\ab}[1]{\\
#1:\\
\hspace{4em}This is a line #1 says.}

这是一个开始的地方(尤其是你的水平间距需要更清晰)。

有用的链接。


这个格式化方式是有效的。但我正在寻找一种方法来创建新的“别名”的命令。这样,我就可以有"\test"并调用它几次来创建"\ab1" "\ab2" "\ab3"(名称由传递给"\test"的内容决定)。如果我表达不够清楚,很抱歉,这有点难以解释:S - Luke Cycon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接