Quantikz 移除门箱左侧的电线

Quantikz 移除门箱左侧的电线

我正在尝试绘制一个电路量化使用代码:

\documentclass{article}
\usepackage{graphicx}
\usepackage{amssymb,amsfonts,dsfont}
\usepackage{tikz}
\usetikzlibrary{quantikz}
\begin{document}

\begin{quantikz}
\lstick{$| 0 \rangle$} & \gate[wires=4,nwires=3][1cm]{U_1} & \gate[wires=4,nwires=3][1cm]{U_2} & \ctrl{1} & \qw && \\
\lstick{$| 0 \rangle$} & \qw & \qw & \ctrl{2} & \qw && \\
\ \vdots\ &&& \gate[nwires=0,style={fill=white,draw=white,text height=1cm}]{\vdots} &&& \\
\lstick{$| 0 \rangle$} & \qw & \qw & \ctrl{1} & \qw && \\
\lstick{$| 0 \rangle$} & \qw & \qw & \targ{} & \meter{} & \qwbundle[alternate=2]{} & \measure{\sqrt{x^2+y^2}} 
\end{quantikz}

\end{document}

这让我

在此处输入图片描述

vdots我想移除红色圆圈内的电线。它们来自包含和 的门框\measure{\sqrt{x^2+y^2}}。我故意将这些文本框绘制为带有白色框和白色轮廓的门,因为这样看起来比使用命令更好\text{}

这是编码的最佳方式吗?我该如何移除这些框左侧的电线?我看了看这个帖子但它没有帮助。

答案1

如果您想使用\gate,那么擦除线的正确方法是使用nwires=1,而不是nwires=0

至于\measure,没有简单的方法可以删除此行。但您可以利用\measure宏的实际定义,如下所示:

\DeclareExpandableDocumentCommand{\measure}{O{}{m}}{|[measure,#1]| {#2} \qw}

因此,由于此宏已放入\qw单元格中,因此您无法在之后放置另一个连接命令。但是,您可以直接使用|[measure]|将节点形状绘制到相关单元格中,在花括号中添加内容,最后添加相关连接命令:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{quantikz}

\begin{document}

\begin{quantikz}
\lstick{$| 0 \rangle$} & \gate[wires=4,nwires=3][1cm]{U_1} & \gate[wires=4,nwires=3][1cm]{U_2} & \ctrl{1} & \qw & \\
\lstick{$| 0 \rangle$} & \qw & \qw & \ctrl{2} & \qw & \\
\vdots &&& \gate[nwires=1,style={fill=white,draw=white,text height=1cm}]{\vdots} & \\
\lstick{$| 0 \rangle$} & \qw & \qw & \ctrl{1} & \qw & \\
\lstick{$| 0 \rangle$} & \qw & \qw & \targ{} & \meter{} & |[measure]| {\sqrt{x^2+y^2}} \qwbundle[alternate=2]{}
\end{quantikz}

\end{document}

在此处输入图片描述

相关内容