考虑修改电路文档qcircuit
在第 3 页,\mathcal{F}
门跨越 6 根线:源代码是
\documentclass{article}
\usepackage{amsmath,qcircuit}
\begin{document}
\Qcircuit @C=1em @R=0em {
& \multigate{5}{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw
}
\end{document}
图像渲染为
假设我想显示一条穿过大门的盒子的模糊/虚线,如果没有大门的话,从顶部数第二根电线的位置(表示\mathcal{F}
作用于第一根和第三到第六根电线,但不作用于第二根电线)。例如:
有没有办法做到这一点qcircuit
?提前致谢。
答案1
该qcircuit
包使用包\xymatrix
中的xy-pic
来绘制电路。手册中的示例电路是一个 3x6 矩阵,其中导线末端和门的(水平)中心作为单元的中间。
因为电路实际上是一个矩阵,所以您可以使用xy-pic
电路内的语法。这里有一个有用的命令是,*!
它可以打印矩阵单元内非中心的内容。在您想要绘制连接线的单元中,您可以\hdashrule
从dashrule
包中绘制一个以获得虚线。不幸的是,规则高了 1/3 点(!),因此您可以使用第一个可选参数将其降低\hdashrule
。第二个可选参数控制规则开始和结束时的外观,这里的值x
或c
导致更好的水平对齐。
然后,您可以使用命令正常绘制两条线\qw
。唯一的问题是行的高度,通常由 来计算\ghost{}
。此命令在内部使用,它保留了一定高度和宽度的框。我们可以*+
从xy-pic
qcircuit 复制定义,即*+<1em,.9em>
,但是我们只想调整高度,因此第一个坐标应为零(即*+<0em,.9em>
)。
梅威瑟:
\documentclass{article}
\usepackage{amsmath,qcircuit}
\usepackage{dashrule}
\begin{document}
\Qcircuit @C=1em @R=0em {
& \multigate{5}{\mathcal{F}} & \qw \\
*+<0em,0.9em>{} & *!{\hdashrule[-0.3pt][x]{1.9em}{0.5pt}{1pt}}\qw & \qw\\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw \\
& \ghost{\mathcal{F}} & \qw
}
\end{document}
结果: