Quantikz 在双线上拉击,在垂直线上拉箭头

Quantikz 在双线上拉击,在垂直线上拉箭头

我正在尝试画画这个电路使用quantikz。我不知道如何在双线上绘制打击符号,或者从以下位置绘制向下的箭头\meter

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

\begin{document}

\begin{quantikz}
\lstick{$q_0$} & \gate{H} & \ctrl{2} & \gate{H} & \meter{} & \qw \\
\lstick{$q_1$} & \qw & \targX{} & \qw & \qw \vcw{-1} & \qw & \\
\lstick{$q_2$} & \qw & \targX{} & \qw & \qw \vcw{-1} & \qw \\
\lstick{$c$} & \cw\qwbundle[nwires=2]{1} & \cw & \cw & \cw \vcw{-1} & \cw{} \\
\end{quantikz}

\end{document}

在此处输入图片描述

答案1

这很接近了。添加了两个命令:绘制双箭头和在双线上添加删除线。

注意第二行中使用了\swap{1}而不是。\targX{}

F

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

\tikzset{
    operator/.append style={fill=blue!20,  color=blue!20},
}

\newcommand{\vcwdouble}[3]{
    \arrow[from=#1,to=#2,arrows, Rightarrow, double distance=.2mm, line width=.2mm, ->, shorten >=1pt, >=latex, "#3" {anchor=south west, yshift=1pt,xshift=2pt},  at end ] 
}
    
\newcommand{\qwbundledouble}[1]{
            \arrow[phantom,strike arrow]{l}[xshift=\pgfkeysvalueof{/quantikz/Strike Width}, yshift=\pgfkeysvalueof{/quantikz/Strike Height},anchor=south east, inner sep=0pt, xshift=-2pt]{\scriptstyle #1}\cw
    }
\begin{document}
    
    \begin{quantikz}
        \lstick{$q_0$} & \gate{H} & \ctrl{2} & \gate{H} & \meter{}\vcwdouble{1-5}{4-5}{0} & \qw \\
        \lstick{$q_1$} & \qw & \swap{1} & \qw & \qw  & \qw & \\
        \lstick{$q_2$} & \qw & \targX{} & \qw & \qw  & \qw \\
        \lstick{$c$}    &\qwbundledouble{1} & \cw & \cw & \cw  &\cw{} \\
\end{quantikz}

\end{document}

选项单线箭头(看起来更好)。尝试

\newcommand{\vcwsingle}[3]{
    \arrow[from=#1,to=#2,arrows,  ->, shorten >=1pt, >=latex, "#3" {anchor=south west, yshift=1pt,xshift=2pt},  at end ] 
}

相关内容