我正在尝试创建卡诺图,但我需要将变量作为 K 图的项。我正在使用卡诺图包,我可以从中获得 K 图内的变量项,但 K 图太小了。我需要调整它的大小,以便每个项都适合其框。
我找到了这个文件:https://ctan.mines-albi.fr/graphics/pgf/contrib/karnaugh-map/karnaugh-map.pdf,这表示我可以使用以下代码调整 K 图的大小:
\resizebox{\columnwidth}{!}{%
\begin{karnaugh-map}
\end{karnaugh-map}%
}
我尝试使用该方法来调整我的 K-map 的大小,但是编译时出现错误。
\documentclass[tikz, border=2mm]{standalone}
\usepackage{karnaugh-map}
\usepackage{graphicx}
\begin{document}
\resizebox{\columnwidth}{!}
{
\begin{karnaugh-map}[2][2][1]
\manualterms{$A_0'B_0'+A_0B_0$,0,0,$A_0'B_0'+A_0B_0$}
\end{karnaugh-map}
}
\end{document}
❯ tectonic test.tex
Running TeX ...
warning: accessing absolute path `/dev/null`; build may not be reproducible in other environments
error: test.tex:6: Missing number, treated as zero
error: halted on potentially-recoverable error as specified
答案1
根据手册,您无法更改相关尺寸。因此,一种替代方法是使用plain Tikz
。这是其中一种方法:还有更多使用 的方法Tikz
。
作为参考,请查看手册。您会在第 1 部分的教程中找到这里使用的大部分语句。
一些提示:
- 具有样式的节点
kd
构成矩阵 - 它们的方形形状通过以下方式设置
minimum size
- 这里我用绝对坐标来定位它们
值 0,1 :
- 和
xv
样式yv
确保相关节点适合从下到上(从南到北)和从左到右(从东到西) - 这是一种定位的捷径
标签 X1、X2:
- 类似方法,使用节点(A)的右上角
- 以及节点(A)的左下角
- 以及 y/x 方向的一些绝对偏移
\documentclass[10pt,border=3mm,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[
kd/.style={draw, minimum size=2.5cm},
xv/.style={anchor=south,minimum height=1cm},
yv/.style={anchor=east,minimum width=1cm},
xl/.style={anchor=south,yshift=9mm},
yl/.style={anchor=east,xshift=-9mm},
]
% ~~~ matrix ~~~~~~~~~~~~~~~~~~~~~~~~
\node[kd] (A) at (0,0) {$A_0'B_0'+A_0B_0$};
\node[kd] at (2.5,-2.5) {$A_0'B_0'+A_0B_0$};
\node[kd] (B) at (2.5,0) {$0$};
\node[kd] (C) at (0,-2.5) {$0$};
% ~~~ values ~~~~~~~~~~~~~
\node[xv] at (A.north) {$0$};
\node[xv] at (B.north) {$1$};
\node[yv] at (A.west) {$0$};
\node[yv] at (C.west) {$1$};
% ~~~ labels ~~~~~~~~~
\node[xl] at (A.north east) {$X_0$};
\node[yl] at (A.south west) {$X_1$};
\end{tikzpicture}
\end{document}
Tikz 的一些替代方案:
- 使用矩阵布局
- 使用 tikzlibrary 定位
- 使用 foreach 循环
- ...
一些没有 Tikz 的替代方案:
- 使用任何类型的表格