替换尖括号内的变量的命令

替换尖括号内的变量的命令

在我当前的文档中,我有很多尖括号,它们是通过以下方式计算的:

\langle a, b \rangle

有没有什么办法我可以创建一个新的命令,看起来像这样:

\newcommand{\dotproduct{ab}}{\langle a, b \rangle}

这样我就可以用其他变量替换ab?更具体地说,我希望该命令模板也适用于:

\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}

相关内容