CircuitTikZ は入力を 2 つのゲートに分割します

CircuitTikZ は入力を 2 つのゲートに分割します

私はLaTeXコードを使用していますCircuitTikZ簡単な論理回路を描くためのパッケージですが、自分のコードが、自分がやろうとしていることを正しく実行できる方法であるとは確信が持てません。基本的に、2 つのゲートにそれぞれ入力する必要がある 2 つの入力があります。コードは次のようになります。

    \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)

関連情報