我正在尝试绘制一个电路量化使用代码:
\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}