定义一个新命令,其参数不需要括号

定义一个新命令,其参数不需要括号

我创建了一个\newcommand以便能够快速创建单项列表。

\newcommand{\itemm}[1]{\begin{itemize}\item #1 \end{itemize}}

当我使用 时\item,我不必在文本周围添加括号。有没有办法让我的新宏在\itemm没有括号的情况下工作?

例如

\begin{itemize}
\item Pennsylvania    % no braces works fine
\end{itemize}


\itemm {Philadelphia}  % \itemm currently requires braces
                       % or only the first character is itemized
\itemm Pittsburg       % I would like \itemm to not require braces
                       % and to itemize the entire string

答案1

正如评论中所述,这可能是一个坏主意,因为它与 LaTeX 语法不一致。不使用括号的原因itemize是它已经处于环境中。文本不是的参数,\item因为它\item指示了文本应该在哪里划分。然而,在你的用法中,文本应该被看作是的参数\itemm,所以括号是合适的。

也就是说,可以使用纯 tex 来实现\def

\def\itemm #1 {\begin{itemize}\item #1\end{itemize}}

定义的命令将下一个空格(空格、制表符或换行符,但不是固定空格~)之前的所有内容作为参数。

相关内容