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

Связанный контент