CircuitTikZ 將輸入分成兩個閘

CircuitTikZ 將輸入分成兩個閘

我有 LaTeX 程式碼,使用CircuitTikZ用於繪製簡單邏輯電路的包,但我不相信我的程式碼是完成我想做的事情的正確方法。本質上,我有兩個輸入,每個輸入都需要進入兩個門。程式碼如下所示:

    \begin{circuitikz} \draw
        (2,1) node[or port] (myor) {}
        (2,-1) node[nand port] (mynand) {}
        (4,0) node[and port] (myand) {}
        (myor.out) -| (myand.in 1)
        (mynand.out) -| (myand.in 2)

        (0,1) |- (myor.in 1)
        (0,1) |- (mynand.in 1)
        (-1,0) to[short, -*] (0,0)

        (0,-1) -| (myor.in 2)
        (0,-1) -| (mynand.in 2)
        (-1,-1) to[short, -*] (0.62,-1)
    ;\end{circuitikz}

輸出:

在此輸入影像描述

輸出看起來正確,但我對繪製到的最後一行感覺不太好(0.62,-1)。有沒有更乾淨的方法來做到這一點?

答案1

是的,你的電路沒問題。繪製最終線條的另一種選擇是沿路徑放置座標,然後使用此座標:

\documentclass{article}
\usepackage{circuitikz}

\begin{document}

 \begin{circuitikz} \draw
        (2,1) node[or port] (myor) {}
        (2,-1) node[nand port] (mynand) {}
        (4,0) node[and port] (myand) {}
        (myor.out) -| (myand.in 1)
        (mynand.out) -| (myand.in 2)

        (myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
        (a) to[short, *-]  (-1,0|-a)

        (myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
        (b) to[short, *-] (-1,0|-b)
    ;\end{circuitikz}

\end{document}

在此輸入影像描述

請注意,例如,

  (0,1) |- (myor.in 1)
  (0,1) |- (mynand.in 1)
  (-1,0) to[short, -*] (0,0)

被替換為

(myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
(a) to[short, *-]  (-1,0|-a)

(0,-1) -| (myor.in 2)
(0,-1) -| (mynand.in 2)
(-1,-1) to[short, -*] (0.62,-1)

被替換為

(myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
(b) to[short, *-] (-1,0|-b)

在這兩種情況下,我都使用了垂直座標系,其中,例如(-1,0|-b)表示 的 x 座標(-1,0)和 的 y 座標(b)

相關內容