带星号的命令版本无法编译

带星号的命令版本无法编译

我使用以下命令数学工具手册,第 29 页,以及巨大的论文模板来自 Matthias Pospiech。

\newcommand\MTkillspecial[1]{% helper macro
    \bgroup
    \catcode‘\&=9
    \let\\\relax%
    \scantokens{#1}%
    \egroup
    }
\DeclarePairedDelimiter\brkts()
\reDeclarePairedDelimiterInnerWrapper\brkts{star}{
    \mathopen{#1\vphantom{\MTkillspecial{#2}}\kern-\nulldelimiterspace\right.}
    #2
    \mathclose{\left.\kern-\nulldelimiterspace\vphantom{\MTkillspecial{#2}}#3}
    }

在独立文档中,该命令运行良好,但在论文模板中,带星号的版本会导致以下错误:

! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.115 $\brkts*{a}
                 $
? error: cannot find startxref
warning: trying to repair broken xref
warning: repairing PDF document
warning: object missing 'endobj' token

有什么想法可能导致这种情况吗?我不想把所有东西一分为二。

答案1

您的代码有误。使用

\newcommand\MTkillspecial[1]{% helper macro
    \bgroup
    \catcode`\&=9
    \let\\\relax%
    \scantokens{#1}%
    \egroup
    }

它是`(ascii 字符)而不是某些 unicode 字符。

相关内容