Quantikz 与 tikz-cd 不兼容?

Quantikz 与 tikz-cd 不兼容?

我想画量子电路和交换图,所以我想使用这两个包quantikztikz-cd

但不知何故quantikz覆盖了tikz-cd。看一下这段代码:

\documentclass[11pt,a4paper]{report}
\usepackage{tikz-cd}
\usepackage{quantikz}

\begin{document}
    
\begin{tikzcd}
    & B \\
    A \arrow[ru] &  
\end{tikzcd}

\end{document}

其结果是:

在此处输入图片描述

注释掉后quantikz,我得到了我想要的:

在此处输入图片描述

我怎样才能同时使用 usepackages 并绘制漂亮的交换图?

答案1

手册quantikz上说:

在此处输入图片描述

我不是这方面的专家,但在每一行或可选参数中quantikz设置它是有效的。\setwiretype{n}wire types={n,n}

顺便说一句,您不需要加载,tikz-cd因为它已经被加载了quantikz

请注意,您可以同时使用quantikztikzcd环境。

您还可以创建样式来为您的 CD 设置适当的间距。

\documentclass[11pt,a4paper]{report}
\usepackage{quantikz}
\tikzset{
  mystyle/.style={
    nodes={inner sep=4pt},
    row sep=1.8em, 
    column sep=2.4em
    }
  }
  
\begin{document}

\begin{quantikz}[wire types={n,n}, mystyle]
    & B \\
    A \arrow[ru] & 
\end{quantikz}
\begin{quantikz}[mystyle]
    \setwiretype{n} & B \\
    A \setwiretype{n}\ar[ru] &
\end{quantikz}

\begin{tikzcd}[wire types={n,n}, mystyle]
    & B \\
    A \arrow[ru] &  
\end{tikzcd}
\begin{tikzcd}[nodes={inner sep=2pt}, mystyle]
    \setwiretype{n}& B \\
    A \ar[ru]\setwiretype{n} &  
\end{tikzcd}

% The following code is taken from the quantikz manual
\begin{quantikz}
\lstick{\ket{0}\\initial state} & & \push{X} & &
\meter{0/1} \arrow[r] &
\rstick{\ket{1}}\setwiretype{n}
\end{quantikz}

\end{document}

在此处输入图片描述

答案2

我已经清楚地看到了量化记住tikz-cd。仔细阅读这两个包的手册,我们发现它们使用命令\arrow[r]

在此处输入图片描述

我认为将quantikz每个数组的行视为 中的一条线tikz-cd。如果您使用xy包进行切换,则不会有问题。的语法xy非常复杂,最初难以理解;您将能够创建与 几乎相同的切换图tikz-cd。在许多方面,xy对于简单的交换图,包与 相似tikz-cd。请参见下面的示例。

\documentclass[11pt,a4paper]{report}
\usepackage{quantikz}
\usepackage[all,cmtip]{xy}% to have the tips of tikz-cd
\begin{document}
\begin{xymatrix}{
    & B \\
    A \ar[ru] &}  
\end{xymatrix}
\end{document}

在此处输入图片描述

相关内容