我对 LaTex 还不熟悉,是在寻找制作电路图的方法时发现它的,因此通过 CircuiTikZ 和 TikZ 找到了它。到目前为止,我很喜欢它!
不幸的是,由于我缺乏经验,我不确定我正在使用/需要的功能属于 TeX、TikZ 还是 CircuiTikZ 独有,这使得很难找到我正在尝试做的教程或示例!
无论如何,我已经发现了($(Nor.out)+(1,0)$)
允许我定位相对于对象上的锚点的点的符号,但我想知道是否可以将该参考分成 X 和 Y 坐标?
比如说,我有两条相交的线,一条水平,一条垂直。我想使用穿越交叉点处的物体。因此,我需要使用垂直线一端的锚点来引用 X 坐标,使用水平线一端的锚点来引用 Y 坐标。
因此,在这种情况下:
交叉点(红色圈出)需要从门 NOR1 的输出获取其 Y 坐标,并从电容器 C1 的顶部获取其 X 坐标。
与此相关,我可以使用相对引用指定一个坐标,使用绝对引用指定另一个坐标吗?比如说,我想放置一个与第二个对象上的锚点垂直对齐的对象,但在水平方向上处于绝对位置。(比如说,一个连接器位于我的图表左侧,但与其右侧某处的特定锚点对齐。)
我不确定我是否解释得正确,所以如果我需要澄清的话,请告诉我。
有什么想法吗?
[编辑并添加草图以提高清晰度]
答案1
我个人的建议是不要使用“跳跃”——用点标记所有超过三根电线的连接交叉点(使用语法-*
或简单地用node [circ]{}
),让电线简单地交叉。但如果你喜欢跳跃交叉(我承认有时,特别是在基础课程中,最好避免灾难性的误解),我会这样做:
- 找到交叉口使用
|-
或-|
坐标语法; - 使用
xing
两侧具有对称位移的双极子
我在评论中解释道:
\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\ctikzset{logic ports=ieee}
\begin{document}
\begin{circuitikz}[]
\node [vcc](VCC) at(2,2) {} ;
\draw (VCC) -- ++(0,-2) to[C] ++(0,-1);
\node [xor port](P){P1};
% now let's draw a wire with a jump crossing to an AND for example.
% the point on the vertical line where the crossing occurs is (P.out -| VCC)
% so move simmetrically around it
\draw (P.out) -- ([xshift=-3mm] P.out -| VCC) to[xing] ++(6mm,0)
-- ++(1,0) node[and port, anchor=in 1]{Q};
\end{circuitikz}
\end{document}
结果是:
答案2
根据 circuitikz 手册第 60 页,交叉口本身就是一个节点,可以通过其各种锚点调用——东西北等
\begin{circuitikz}[]
\node at (1,1)[jump crossing](X){};
\draw (X.west) -- ++(-1,0);
\draw (X.east) to[R] ++(2,0);
\draw (X.north) node[vcc]{};
\draw (X.south) to[C] ++(0,-1.5);
\end{circuitikz}
对于其他解决方案,您可以转到以下链接,其中定义了如何进行自定义交叉
--https://tex.stackexchange.com/a/134090/197451
--https://tex.stackexchange.com/a/395495/197451
--https://tex.stackexchange.com/a/372742/197451