我正在尝试为包创建一个新的短命令。虽然 环境内部dialogue
的常规使用有效,但我用它创建的却不行。\speak{}
\newcommand
\newcommand*\tchr{{\speak{Teacher}}}
编译时出现错误
LaTeX Error: Something's wrong--perhaps a missing \item.
我确信问题出在我对newcommand
使用的定义上\speak
,但不确定如何解决它。
MWE 附于下方。
\documentclass{article}
\usepackage{dialogue}
% custom commands for speaking
\newcommand*\tchr{{\speak{Teacher}}}
\newcommand*\std{{\speak{Student}}}
\begin{document}
% this works
\begin{dialogue}
\speak{Teacher} This is going to be fun
\speak{Student} How so?
\end{dialogue}
% this doesn't
\begin{dialogue}
\tchr This is going to be fun
\std How so?
\end{dialogue}
\end{document}
答案1
使用时\newcommand
,我认为格式应该是这样的:
\newcommand{\nameofcommand}{<commandaction>}
因此,对于你来说,它看起来像:
\newcommand{\tchr}{\speak{Teacher}}
\newcommand{\std}{\speak{Student}}
您的代码的问题在于\speak
应该出现在外层,而额外的括号会阻碍其工作。