quantikz/tikz 切片文本放置

quantikz/tikz 切片文本放置

对于 quantikz 的切片元素,我想将文本放在底部,例如,我可以使用A1B1文本执行此操作

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{quantikz2}

\begin{document}

\begin{quantikz}
    \lstick{a}
    & \gate[2, style={fill=blue!20, rounded corners}]{A} \slice[style=blue, label style={yshift=-9.8em}]{A1}
    & 
    &
    & \meter[3, style={fill=red!25, rounded corners}]{X} \\
    \lstick{b}
    &
    & \gate[style={fill=green!25, rounded corners}]{S} 
    & \gate[2, style={fill=orange!20, rounded corners}]{B} \slice[label style={yshift=-9.8em}]{B1} 
    &\\
    \lstick{c}
    &
    & 
    & 
    &
\end{quantikz}

\end{document}

label style={yshift=-9.8em}一些反复试验的估计。我需要对各种其他图表执行此操作,猜测和yshift手动设置可能有点麻烦,有没有办法自动将文本放置在虚线的底部?

前任

答案1

\meter命令定义如下:

\DeclareExpandableDocumentCommand{\meter}{O{}O{2em}O{1.5em}m}{%
\gate[#1,priority label=above,ps=meter,disable auto height][#2][#3]{#4}
}

这意味着您不能简单地将标签放在下面,因为任何此类样式都将被选项覆盖priority label。我不确定为什么软件包维护者以这种方式定义它。但是,正如您所见:a\meter只是\gate带有一些额外样式的 a。因此,您可以轻松地在代码中使用它。此外,我建议您不要使用yshift一些经验值来定位\slice标签,而是更改pos值和对齐锚点:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{quantikz2}

\begin{document}
\begin{quantikz}
    \lstick{a}
    & \gate[2, style={fill=blue!20, rounded corners}]{A} 
        \slice[style=blue, label style={pos=1, anchor=north}]{A1}
    & 
    &
    & \gate[3, priority label=below, ps=meter, disable auto height, 
        style={fill=red!25, rounded corners}]{X} \\
    \lstick{b}
    &
    & \gate[style={fill=green!25, rounded corners}]{S} 
    & \gate[2, style={fill=orange!20, rounded corners}]{B} 
        \slice[label style={pos=1, anchor=north}]{B1} 
    &\\
    \lstick{c}
    &
    & 
    & 
    &
\end{quantikz}
\end{document}

在此处输入图片描述

相关内容