在使用 enotez 的时候我遇到一个问题,比如

\docuementclass{ctexart}
\usepackage{enotez}
\setenotez{%
    mark-cs={\boxedenotecs},%
}
\newcommand{\boxedenotecs}[1]{\textsuperscript{\tcbox{#1}}}

这里的 mark-cs 用于修改命令 \enotezwritemark,这个命令接受一个参数,但是如果我直接写 

mark-cs={\textsuperscript{\tcbox{#1}}}

 就会报错,必须新定义一个命令放进去,不带参数,请问这是什么原理?

1 回答1

0
<p>enotez/mark-cs 这个选项的对应一个宏。这个宏展开一次之后,就是你填入选项的参数。继续再展开的时候,就才会去吃后面的参数。</p><p><br></p><p>你在选项里直接这么写,相当于展开之后是这样:</p><p><br></p><pre class="brush:cpp;toolbar:false" style="box-sizing: content-box; font-family: Menlo, Monaco, Consolas, ">\textsuperscript{\tcbox{#1}}{<原来的参数在这里>}</pre><p><br></p><p>然后 TeX 就疯掉了。</p>

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。