注释 quantikz 电路

注释 quantikz 电路

我正在尝试注释我的量化一些门周围的电路和绘图框:

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

\begin{document}

\begin{quantikz}[row sep={20pt,between origins},column sep=.2cm,font=\small]
\lstick{\ket{0}} & \qw & \qw & \qw & \qw & \qw &[1cm] \qw & \qw \\
\lstick{\ket{0}} & \qw & \qw\qwbundle{} & \qw & \qw & \qw &[1cm] \qw & \gate[3]{U_2} \\
\lstick{\ket{0}} & \qw & \qw\qwbundle{} & \qw & \qw & \qw &[1cm] \qw & \qw \\
\lstick{\ket{0}} & \qw & \qwbundle{} & \gate{H}\gategroup[wires=2,steps=3,style={dashed,rounded corners,fill=white,inner xsep=2pt},background]{mylabel}  & \ctrl{1} & \gate{U_1} &[1cm] \qw & \qw \\
\lstick{\ket{b}} & \qw & \qw\qwbundle{} & \qw & \gate{Z} & \qw &[1cm] \qw & \qw \\
\end{quantikz} 

\end{document}

我希望它看起来像:

在此处输入图片描述

我读过quantikz 文档并调整了gategroup第 13 页上的示例,但我收到了一个我无法理解的错误:l.76 I think the culprit is a tikzcd arrow in cell 5-8. \errmessage ...currentrow -\tikzcd@currentcolumn }

答案1

在此处输入图片描述

我认为最好尝试直接进行绘图,而不要使用专门的库。我建议使用下面的解决方案,该解决方案基于fit将节点分组到矩形中的命令。

代码

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{fit, math}

\begin{document}

\newcommand{\ket}[1]{$|#1\rangle$}
\tikzset{%
  box/.style={draw, fill=white,
    minimum width=2em, minimum height=4ex,
    inner sep=1ex, outer sep=.2ex%
  },
    hbox/.style={draw, fill=white,
    minimum width=2em, minimum height=#1 ex,
    inner sep=1ex, outer sep=.2ex%
  },
  dot/.style={circle, fill=black, minimum size=1ex,
    inner sep=0pt, outer sep=2pt}
}
\begin{tikzpicture}[evaluate={real \a, \posl; \a=6; \posl=.75;}]
  \draw (0, 1) node {\ket{0}} ++(.5, 0) -- ++(.5, 0) -- ++(\a, 0);
  \draw (0, 0) node {\ket{0}} ++(.5, 0) -- ++(.5, 0) node {$/$} -- ++(\a, 0);
  \draw (0, -1) node {\ket{0}} ++(.5, 0) -- ++(.5, 0) node {$/$} -- ++(\a, 0)
  coordinate (U1);
  \draw (0, -2) node {\ket{0}} ++(.5, 0) -- ++(.5, 0) node {$/$} -- ++(\a, 0)
  node[pos=.15, box] (H) {$H$} node[pos=.3, dot] {} node[pos=.45, box] (U) {$U_1$}
  node[pos=\posl, red, above] (a) {\ket{a}};
  \draw (0, -3) node {\ket{b}} ++(.5, 0) -- ++(.5, 0) node {$/$} -- ++(\a, 0)
  node[pos=.3, box] (Z) {$Z$}
  node[pos=\posl, blue, above] (b) {$\beta$\/\ket{b}}
  node[pos=\posl, blue, below=1ex] (ab) {$\beta\,${\color{red}\ket{a}}\ket{b}};
  
  \path node[draw, dashed, fit={(H) (U) (Z)}, inner sep=1.5ex,
  label={270: my label}] {}
  node[fill=gray, opacity=.15, fit={(a) (b)}, inner sep=.5ex] {};
  \path (U1) node[hbox=15] {$U_1$};
\end{tikzpicture}
\end{document}

答案2

问题是你把它放在\\电路最后一行的末尾。

此外,对门组在标签定位和框尺寸方面进行了一些细微的改动。

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

\begin{document}

\begin{quantikz}[row sep={20pt,between origins},column sep=.2cm,font=\small]
\lstick{\ket{0}} & \qw & \qw & \qw & \qw & \qw &[1cm] \qw & \qw \\
\lstick{\ket{0}} & \qw & \qw\qwbundle{} & \qw & \qw & \qw &[1cm] \qw & \gate[3]{U_2} \\
\lstick{\ket{0}} & \qw & \qw\qwbundle{} & \qw & \qw & \qw &[1cm] \qw & \qw \\
\lstick{\ket{0}} & \qw & \qwbundle{} & \gate{H}\gategroup[wires=2,steps=3,style={dashed,rounded corners,fill=white,inner xsep=0pt},background,label style={label position=below,anchor=
north,yshift=-0.2cm}]{mylabel}  & \ctrl{1} & \gate{U_1} &[1cm] \qw & \qw \\
\lstick{\ket{b}} & \qw & \qw\qwbundle{} & \qw & \gate{Z} & \qw &[1cm] \qw & \qw
\end{quantikz} 

\end{document}

在此处输入图片描述

相关内容