
나는 Circuitikz-package를 사용하여 이 작업을 수행하고 싶습니다. 지금까지 나는 이미 다음과 같은 코드를 작성했습니다.
\begin{circuitikz} \draw
(0,2) node[and port] (and) {}
(0,0) node[xor port] (xor) {}
(and.in 1) node[above left=.5cm](a) {$a_0$}
(and.in 2) node[below left = .5cm](b) {$b_0$}
(and.out) node[below](s) {$s_1$}
(xor.out) node[below](s) {$s_0$}
(a) -| (and.in 1)
(b) -| (and.in 2)
(a) -| (xor.in 1)
(b) -| (xor.in 2);
\end{circuitikz}
두 번째 이미지가 첫 번째 이미지와 더 비슷해 보이도록 도와주시면 정말 기쁠 것 같습니다. 정말 감사합니다!
편집: 세 번째 줄의 위치를 (0,0)에서 (2,2)로 변경하여 좀 더 나은 이미지를 얻을 수 있었습니다.
이것은 더 복잡한 다이어그램으로 확장할 수 없는 더러운 해킹일 뿐이므로 더 일반적인 솔루션에 대한 도움을 주시면 감사하겠습니다!
답변1
주요 변경 사항은 수직선에 대해 별도의 x 좌표를 갖는 것입니다.
(a) -| (and.in 1)
(a) -| (xor.in 1)
에게
(a) -- +(0.5,0) |- (and.in 1)
(a) -- +(0.5,0) |- (xor.in 1)
회로를 샘플 회로와 더욱 유사하게 만들려면 아래로 이동하는 것이 좋습니다 a_0
.
\documentclass{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,2) node[and port] (and) {}
(0,0) node[xor port] (xor) {}
(and.in 1) node[below left=.5cm](a) {$a_0$}
(and.in 2) node[below left = .5cm](b) {$b_0$}
(and.out) node[below](s) {$s_1$}
(xor.out) node[below](s) {$s_0$}
(a) -- +(0.5,0) |- (and.in 1)
(b) -| (and.in 2)
(a) -- +(0.5,0) |- (xor.in 1)
(b) -| (xor.in 2);
\end{circuitikz}
\end{document}