我正在尝试使用异或门制作电路图,但异或门的实现似乎与或门不同。例如,带有或门的简单图表如下所示:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US,positioning,calc}
\begin{document}
\begin{tikzpicture}[circuit logic US]
\node[or gate, inputs=nnnn] (or1) {};
\draw
(or1.input 1) -- ++(-1,0) node[left] {$a$}
(or1.input 4) -- ++(-1,0) node[left] {$b$}
(or1.output) -- ++(0.5,0) node[right] {$y$}
;\end{tikzpicture}
\end{document}
但是,如果我更改代码来制作异或门,例如:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US,positioning,calc}
\begin{document}
\begin{tikzpicture}[circuit logic US]
\node[xor gate, inputs=nnnn] (or1) {}; %change here from or gate to xor gate
\draw
(or1.input 1) -- ++(-1,0) node[left] {$a$}
(or1.input 4) -- ++(-1,0) node[left] {$b$}
(or1.output) -- ++(0.5,0) node[right] {$y$}
;\end{tikzpicture}
\end{document}
这会导致以下错误:
! Package PGF Math Error: Unknown function `input' (in 'input 4'). See the PGF Math package documentation for explanation. Type H <return> for immediate help. ... l.15 (or1.input 4) -- ++(-1,0) node[left] {$b$}
这是错误、缺少的功能还是我做错了什么?感谢您提供的任何帮助。
答案1
这是设计使然。Anxor gate
有固定数量的输入,即两个。手册中的以下部分也提到shapes.gates.logic.US
:
该库定义了许多形状。每个形状的允许输入数量也如下所示:
and
门 US,两个或多个输入and
CDH 门,两个或多个输入nand
门 US,两个或多个输入nand
CDH 门,两个或多个输入or
门 US,两个或多个输入nor
门 US,两个或多个输入xor
门 US,两个输入xnor
门 US,两个输入not
门 US,一个输入buffer
门 US,一个输入