不知何故,无法结合tikzcd
和newcommand
结合起来,如下面的 MWE 所示:
\documentclass{paper}
\usepackage{tikz-cd}
\begin{document}
\newcommand{\dotheobvious}[1]{#1}
\dotheobvious{\[\begin{tikzcd}X\ar[r] & Y\end{tikzcd}\]}
\end{document}
我收到以下错误:
! Undefined control sequence.
<argument> \pgf@matrix@last@nextcell@options
l.7 ...{\[\begin{tikzcd}X\ar[r] & Y\end{tikzcd}\]}
输出如下所示,缺少 Y:
这里有什么问题?
答案1
\documentclass{paper}
\usepackage{tikz-cd}
\begin{document}
\newcommand{\dotheobvious}[1]{#1}
\dotheobvious{\[\begin{tikzcd}[ampersand replacement=\&]X\ar[r] \& Y\end{tikzcd}\]}
\end{document}
tikzcd
默认情况下,它tikzmatrix
使用活动字符&
,并且像所有 catcode 更改命令一样,它不在另一个命令的参数中起作用,但是它可以选择使用命令形式而不是&
传统那样使用\&
它。