在我当前的文档中,我有很多尖括号,它们是通过以下方式计算的:
\langle a, b \rangle
有没有什么办法我可以创建一个新的命令,看起来像这样:
\newcommand{\dotproduct{ab}}{\langle a, b \rangle}
这样我就可以用其他变量替换a
和b
?更具体地说,我希望该命令模板也适用于:
\dotproduct{cd}, \dotproduct{Q,R}
答案1
标准 LaTeX 语法如下
\newcommand\dotproduct[2]{\langle#1,#2\rangle}
然后
\dotproduct{Q}{R}
答案2
我更喜欢建议的语法@DavidCarlisle。
如果您仍然想要您的语法(在我看来是不干净的)这个宏将测试您的参数是否包含逗号,如果是它就按原样使用它,如果不是它会在您输入的第一个项目后面放置一个逗号。
\documentclass[]{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand \dotproduct { m }
{
\langle
\tl_if_in:nnTF { #1 } { , }
{ #1 }
{ \tl_head:n { #1 } , \tl_tail:n { #1 } }
\rangle
}
\ExplSyntaxOff
\begin{document}
$\dotproduct{a,b} \dotproduct{cd} \dotproduct{abc}$
\end{document}