Quantikz:门上方的注释文本

Quantikz:门上方的注释文本

对于 quantikz 包中给定的门符号,除了门标签之外,我还希望能够在门的上方或下方放置文本。

将文本向上移动并使用\n强制在门标签中使用多行会导致错误。另一个帖子如上所述,\gatequantikz 中的命令定义方式很奇怪。此外,我无法想出一种方法来将第二个标签分配给单个门(我会独立于第一个标签移动它)。

具体来说,我希望将文本放置在门符号的下方或上方,类似于此处看到的“0.003”:

文字显示在门符号下方,门符号是一个方框,方框内用单个字母标注。

有没有办法使用 quantikz 或者 tikz 来帮我自动化这个?

编辑 2-这是一个最小的工作示例代码片段,我尝试用它将其分成两行\n

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{quantikz2}

\begin{document}
\begin{centering}
\begin{quantikz}
\\
\lstick{$q_0$} & \gate[label style={yshift=0.4cm}]{0.003\n X} & \ctrl{1} & \meter{} \\
\lstick{$q_1$} & & \targ{} & \meter{}
\\
\end{quantikz}
\end{centering}
\end{document}

理想情况下,X会留在门内,而 0.003 会位于门上方或下方。但是,执行此代码会产生以下图像(在我这边): 在此处输入图片描述

更新 1-通过在代码片段中定义以下命令,能够实现目标:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{quantikz2}

\DeclareExpandableDocumentCommand{\errgate}{O{}O{2em}O{1.5em}mm}{
\gate[priority label=above,disable auto height,][0][0]{#5}
\gate[][0][0]{#4}
}

\begin{document}
\begin{centering}
\begin{quantikz}
\lstick{$q_0$} & \errgate{X}{0.001} & \ctrl{1} & \meter{} \\
\lstick{$q_1$} & & \targ{} & \meter{}
\end{quantikz}
\end{centering}
\end{document}

问题在于它会创建一个非常长而大的盒子,而不是一个整洁的小盒子。

又长又大的盒子

答案1

解决了:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{quantikz2}

\begin{document}
\begin{centering}
\begin{quantikz}
\lstick{$q_0$} & \gate[label style={label={[red]above:$0.001$}}]{X} & \ctrl{1} & \meter{} \\
\lstick{$q_1$} & & \targ{} & \meter{}
\end{quantikz}
\end{centering}
\end{document}

门框上方的红色文字

只需通过“标签样式”参数传递标签即可\gate就足够了(参考这个部分相关的 tikz 问题)。

相关内容