私は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)
。