私は、2 つの 4 ビット入力に対する等価性テスト回路へのシンプルなアプローチを図式化しようとしています。ゲート入力と出力の 2 つのポイントを接続するためにワイヤを斜めにするのではなく、ポイントを接続するために必要な直角で、ラインを垂直と横方向に強制することはできますか。図のようにワイヤにラベルを付ける機能を維持しながらこれを行う必要があります。最初に図を作成したとき、ワイヤは「to」の代わりに「-|」引数または演算子を使用して期待どおりでしたが、その方法でワイヤをインスタンス化してラベルを受け入れる方法を見つけることができませんでした。ご協力とご検討に心より感謝いたします。
\documentclass[12pt,letterpaper]{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,0) node[xor port] (g7) {$g_7$}
(0,2) node[xor port] (g6) {$g_6$}
(0,4) node[xor port] (g5) {$g_5$}
(0,6) node[xor port] (g4) {$g_4$}
(3,1) node[or port] (g3) {$g_3$}
(3,5) node[or port] (g2) {$g_2$}
(6,3) node[or port] (g1) {$g_1$}
(g4.out) to [short,l=${w_4}$] (g2.in 1)
(g5.out) to [short,l=${w_5}$] (g2.in 2)
(g6.out) to [short,l=${w_6}$] (g3.in 1)
(g7.out) to [short,l=${w_7}$] (g3.in 2)
(g2.out) to [short,l=${w_2}$] (g1.in 1)
(g3.out) to [short,l=${w_3}$] (g1.in 2)
(g1.out) node[anchor=west] {$output$}
(g4.in 1) node[anchor=east] {$a_3$}
(g4.in 2) node[anchor=east] {$b_3$}
(g5.in 1) node[anchor=east] {$a_2$}
(g5.in 2) node[anchor=east] {$b_2$}
(g6.in 1) node[anchor=east] {$a_1$}
(g6.in 2) node[anchor=east] {$b_1$}
(g7.in 1) node[anchor=east] {$a_0$}
(g7.in 2) node[anchor=east] {$b_0$}
;\end{circuitikz}
\end{document}
答え1
ノードを追加することで、線にラベルを配置することができます。セクション17.8(線または曲線に明示的にノードを配置する)を参照してください。pgf/tikz マニュアル。
\documentclass[12pt,letterpaper]{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,0) node[xor port] (g7) {$g_7$}
(0,2) node[xor port] (g6) {$g_6$}
(0,4) node[xor port] (g5) {$g_5$}
(0,6) node[xor port] (g4) {$g_4$}
(3,1) node[or port] (g3) {$g_3$}
(3,5) node[or port] (g2) {$g_2$}
(6,3) node[or port] (g1) {$g_1$}
(g4.out) -| (g2.in 1) node[midway, above] {$w_4$}
(g5.out) -| (g2.in 2) node[midway, below] {$w_5$}
(g6.out) -| (g3.in 1) node[midway, above] {$w_6$}
(g7.out) -| (g3.in 2) node[midway, below] {$w_7$}
(g2.out) -| (g1.in 1) node[midway, above] {$w_2$}
(g3.out) -| (g1.in 2) node[midway, below] {$w_3$}
(g1.out) node[anchor=west] {$output$}
(g4.in 1) node[anchor=east] {$a_3$}
(g4.in 2) node[anchor=east] {$b_3$}
(g5.in 1) node[anchor=east] {$a_2$}
(g5.in 2) node[anchor=east] {$b_2$}
(g6.in 1) node[anchor=east] {$a_1$}
(g6.in 2) node[anchor=east] {$b_1$}
(g7.in 1) node[anchor=east] {$a_0$}
(g7.in 2) node[anchor=east] {$b_0$}
;\end{circuitikz}
\end{document}
この例では を使用しましたmidway
が、ラベルの位置を微調整するためのキーは他にもあります。
答え2
と\draw
を含む行を作成できます。|-
-|
以下はあなたの例の抜粋です:
\documentclass[12pt,letterpaper]{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,4) node[xor port] (g5) {$g_5$}
(0,6) node[xor port] (g4) {$g_4$}
(3,5) node[or port] (g2) {$g_2$}
(g4.in 1) node[anchor=east] {$a_3$}
(g4.in 2) node[anchor=east] {$b_3$}
(g5.in 1) node[anchor=east] {$a_2$}
(g5.in 2) node[anchor=east] {$b_2$}
(g4.out) |- node[above right]{${w_4}$} (g2.in 1)
(g5.out) |- node[below right]{${w_3}$} (g2.in 2)
;
\end{circuitikz}
\end{document}