![如何同时使用 quantikz 和 zx-calculus 包?](https://linux22.com/image/466184/%E5%A6%82%E4%BD%95%E5%90%8C%E6%97%B6%E4%BD%BF%E7%94%A8%20quantikz%20%E5%92%8C%20zx-calculus%20%E5%8C%85%EF%BC%9F.png)
我是这个论坛讨论的长期用户。这是我的第一个问题,如果我没有遵循某些协议,请纠正我。
在我尝试使用这两个包时zx-微积分和量化我遇到了两个(可能相关的)问题。请注意,当我使用 TeXShop(我常用的)进行编译时,编译工作正常,但使用pdflatex或者乳胶从控制台(最初在尝试上传文章到论文和他们的自动TeX)。另请注意,我需要量化在同一文件中,但没有将其纳入 MWE,因为量化' 功能不受影响。
- 加载时zx-微积分首先和量化第二,ZX 图的所有行都有水平线。这显然是对命令的重新定义錄音作者:quantikz。然而,我无法确定并修复它。
最大能量损失 1:
\documentclass{standalone}
\usepackage{quantikz}
\usepackage{zx-calculus}
\begin{document}
\begin{ZX}
\leftManyDots{} \zxZ{}
\end{ZX}
\end{document}
结果是:
- 加载时量化首先和zx-微积分第二,zx-微积分/錄音/前列腺素命令失败
\leftManyDots{}
并给出错误
! Package pgf Error: Sorry, the requested layer 'edgelayer' is not part of the
layer list. Please verify that you provided \pgfsetlayers and that 'edgelayer'
is part of this list.
See the pgf package documentation for explanation.
Type H <return> for immediate help
...
l.10 I think the culprit is a tikzcd arrow in cell 1-1.
\errmessage ...currentrow -\tikzcd@currentcolumn }
l.11 \end{ZX}
我将错误归结为\leftManyDots{}
自动在新单元格和分隔&
符内创建新单元格的命令錄音。我已经尝试过包中的代码,但没有找到任何解决方案。
最大能量损失 2:
\documentclass{standalone}
\usepackage{zx-calculus}
\usepackage{quantikz}
\begin{document}
\begin{ZX}
\leftManyDots{} \zxZ{}
\end{ZX}
\end{document}
下面显示了 MWE 的外观。
预期的:
如果您能给我指明方向,甚至找到解决方案,我会很高兴。
答案1
如果先加载quantikz
,则会出错,因为quantikz
修补tikz-cd
库中的两个命令(\tikzcd@
和\endtikzcd
)的方式与 的其他用法相冲突tikz-cd
。这不太好,但幸运的是,您可以通过先加载来避免示例中的错误zx-calculus
,因为它存储了原始命令的副本并使用这些副本。
然后中间的行显示为quantikz
设置 tikz-cd 选项。它甚至在代码中承认这不是一个好主意:
令人恼火的是,第一个会影响所有 tikzcd 实例,而不仅仅是量子电路。我应该只提供 quantikz 环境作为 tikzcd 的修改版本,而不允许直接使用 tikzcd。现在可能太晚了。
您可以重置样式。为避免影响 quantikz,请仅针对环境执行此操作:
\documentclass{standalone}
\usepackage{zx-calculus}
\usepackage{quantikz}
\AddToHook{env/ZX/begin}{\tikzcdset{every cell/.style={}}}
\begin{document}
\begin{ZX}
\leftManyDots{} \zxZ{}
\end{ZX}
\end{document}