在 QCircuit 环境中使用下括号时出现“非法参数编号”错误

在 QCircuit 环境中使用下括号时出现“非法参数编号”错误

使用 QCircuit,以下代码

\documentclass{article}
\usepackage{amsmath}
\usepackage{qcircuit}
\usepackage{braket}
\begin{document}

\Qcircuit @C=0.5cm @R=.2cm {
\lstick{\ket{0}_n} & \gate{H_n} & \qw & \hdots && \gate{\mathsf{M}} & \rstick{\ket{y}_n} \qw \\
& & & \underbrace{}_{\text{some text}}
}

\end{document}

给出输出

这正是我想要的。但是,我在编译源文件时收到以下错误:

Illegal parameter number in definition of \lastprentry@@ }

为什么会出现此错误?我该如何修复它?

答案1

当你发现神秘的错误信息时,一个好的策略是尝试\protect

\Qcircuit @C=0.5cm @R=.2cm {
\lstick{\ket{0}_n} & \gate{H_n} & \qw & \hdots && \gate{\mathsf{M}} & \rstick{\ket{y}_n} \qw \\
& & & \protect\underbrace{}_{\text{some text}}
}

但是,如果条目以“危险”标记开头并\relax起作用,则这是 Xy-pic 的一个常见问题:它会停止扩展单元格中的第一个标记,这是本例中的问题所在。

\documentclass{article}
\usepackage{amsmath}
\usepackage{qcircuit}
\usepackage{braket}
\begin{document}

\Qcircuit @C=0.5cm @R=.2cm {
\lstick{\ket{0}_n} & \gate{H_n} & \qw & \hdots && \gate{\mathsf{M}} & \rstick{\ket{y}_n} \qw \\
& & & \relax\underbrace{}_{\text{some text}}
}

\end{document}

支撑物品也可以达到以下效果:

\Qcircuit @C=0.5cm @R=.2cm {
\lstick{\ket{0}_n} & \gate{H_n} & \qw & \hdots && \gate{\mathsf{M}} & \rstick{\ket{y}_n} \qw \\
& & & {\underbrace{}_{\text{some text}}}
}

在此处输入图片描述

相关内容