如何在 quantikz 中创建门符号?

如何在 quantikz 中创建门符号?

我想在 quantikz 中定义一个具有自己形状的门。假设我想要一个三角形门或 $\odot$(而不是通常的 CNOT 或带字母的正方形)。如何实现?我查看了文档中的示例,但没有找到任何类似的东西。

例如,想象添加一个看起来像反相器的门: 在此处输入图片描述

答案1

由于quantikz只使用常规形状作为节点,因此您可以使用在其中一个中预定义的形状circuit.logicTi 附带的库中预定义的形状Z(参见第 49.3 章“逻辑电路”Z/PGF 手册,第 618 页及后续页面)。

至于\odot类似形状的节点,我想你必须从头开始定义它。我也不确定如何使用它,因为点使得向节点添加文本变得很困难……无论如何,这是我的建议:

\documentclass[border=10mm]{standalone}
\usepackage{quantikz}
\usetikzlibrary{circuits.logic.US}

\tikzset{
    gateT/.style={
        draw,
        not gate US,
        inner sep=5pt
    },
    gateO/.style={
        draw,
        circle,
        minimum width=1.67em,
        inner sep=2pt,
        append after command={
            \pgfextra {
                \fill (\tikzlastnode) circle[radius=1pt];
            }
        }
    }
}

\DeclareExpandableDocumentCommand{\gateT}{O{}{m}}{|[gateT,#1]| {#2} \qw}
\DeclareExpandableDocumentCommand{\gateO}{O{}{m}}{|[gateO,#1]| {#2} \qw}

\begin{document}

\begin{quantikz}
    \lstick{$A$} & 
    \gateT{H} & 
    \gate{H} & 
    \gateO{} & 
    \qw \rstick{$B$}
\end{quantikz}

\end{document}

在此处输入图片描述

相关内容