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