目前,我正在尝试为数字电子设备制作一个漂亮的逻辑门布局。我无法将环境嵌套tabular
在图片中circuitikz
,而且我对嵌套还不是很熟悉,所以我没有取得太大的成功。我唯一能让它工作的方法就是,如果我用节点制作表格,将方程式作为一个单一节点,而图片只是circuitikz
对应逻辑门的图片。
我希望有一种系统的方法将这三者组合成某种水平数组。如果我将一个空间区域分成三个部分,我可以将方程式、表格和图片嵌套在一个数组中。我认为这相当复杂,但也许有一个简单的解决方法?
我四处查看,但没有太多涉及我所做工作的示例circuitikz
。任何见解都非常感谢。我已在下面附加了以下代码。我知道这不是最好的方法,但我对 TikZ 和此类软件包非常陌生。如果您弄乱了它,您将需要包含该circuitikz
软件包才能成功编译。
\begin{figure}[H]
\centering
\begin{circuitikz}
\draw (0,0) node[nor port] {};
\draw (-2,0) node[anchor=east] {{\bf {\green NOR}}};
\draw (1.5,0) node[anchor=west] {$\mathcal{O}=\overline{{\rm A}+{\rm B}}$};
\node at (6,0.5) {${\rm A}\;\;\;\;{\rm B}\;\;\;\;\mathcal{O}$};
\draw (4.95,0.2) -- (7,0.2);
\node at (6,-0.15) {0\;\;\;\;\;0\;\;\;\;\;1};
\node at (6,-0.55) {0\;\;\;\;\;1\;\;\;\;\;0};
\node at (6,-0.95) {1\;\;\;\;\;0\;\;\;\;\;0};
\node at (6,-1.35) {1\;\;\;\;\;1\;\;\;\;\;0};
\draw (0,-3) node[nand port] {};
\draw (-2,-3) node[anchor=east] {{\bf {\green NAND}}};
\draw (1.5,-3) node[anchor=west] {$\mathcal{O}=\overline{{\rm A}\cdot{\rm B}}$};
\node at (6,-2.5) {${\rm A}\;\;\;\;{\rm B}\;\;\;\;\mathcal{O}$};
\draw (4.95,-2.8) -- (7,-2.8);
\node at (6,-3.15) {0\;\;\;\;\;0\;\;\;\;\;1};
\node at (6,-3.55) {0\;\;\;\;\;1\;\;\;\;\;1};
\node at (6,-3.95) {1\;\;\;\;\;0\;\;\;\;\;1};
\node at (6,-4.35) {1\;\;\;\;\;1\;\;\;\;\;0};
\draw (0,-6) node[xor port] {};
\draw (-2,-6) node[anchor=east] {{\bf {\green XOR}}};
\draw (0.5,-6) node[anchor=west] {$\mathcal{O}=({\rm A}+{\rm B})\cdot\overline{({\rm A}\cdot {\rm B})}$};
\node at (6,-5.5) {${\rm A}\;\;\;\;{\rm B}\;\;\;\;\mathcal{O}$};
\draw (4.95,-5.8) -- (7,-5.8);
\node at (6,-6.15) {0\;\;\;\;\;0\;\;\;\;\;0};
\node at (6,-6.55) {0\;\;\;\;\;1\;\;\;\;\;1};
\node at (6,-6.95) {1\;\;\;\;\;0\;\;\;\;\;1};
\node at (6,-7.35) {1\;\;\;\;\;1\;\;\;\;\;0};
\end{circuitikz}
\end{figure}
编辑
答案1
通常,从结构上来说,以相反的方向嵌套会更好;例如,circutikz
在其单元格中包含 tikzpictures(或在您的情况下为环境)的大表格。
\begin{tabular}{cccc}
\textcolor{green}{NOR}
&
\begin{circuitikz}[baseline=-0.7ex]
\draw (0,0) node[nor port] {};
\end{circuitikz}
&
$\mathcal{O} = \overline{A + B}$
&
$\begin{array}{ccc}
A & B & \mathcal{O} \\ \hline
0 & 0 & 1 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 0 \\
\end{array}$
\\
etc.
\end{tabular}
然而,有时人们既需要 TikZ 的灵活性,又需要表格的结构。在这种情况下,可以使用\matrix
TikZ 中的命令(请参阅 TikZ 手册(v2.10)第 17 节“矩阵和对齐”)。有关在 TikZ 矩阵内嵌套表格材料(如本例中的数组),另请参阅将表格放入矩阵内的节点中。
\begin{circuitikz}
\matrix[column sep=2em, ampersand replacement=\&] {
\node[green] {NOR};
\&
\node[nor port] {};
\&
\node {$\mathcal{O} = \overline{A + B}$};
\&
\node {
$\begin{array}{ccc}
A & B & \mathcal{O} \\ \hline
0 & 0 & 1 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 0 \\
\end{array}$
};
\\
\node {etc.}; \\
};
\end{circuitikz}