我对这两个包都不是很熟悉,主要是这个karnaugh-map
包。我试图制作一个包含 4 个变量的卡诺图,并使用两种不同的方法,我可以在其中一个方法中得到部分结果,在另外一个方法中得到部分结果。
使用karnaugh-map
包:
\begin{karnaugh-map}*[4][4][1][][]
\maxterms{0,1,2,3,4,5,6}
\minterms{7}
\autoterms[X]
\implicant{7}{15}
\end{karnaugh-map}
使用 tikzpicture:
\begin{tikzpicture}[thick]
\karnaughmap
[omitidx,omitbinaries,
omitnegated=false,
variables={{Q_1}{Q_0}{Q_3}{Q_2}},
function=J_3]
{00XX 00XX 00XX 01XX}
\end{tikzpicture}
我想要完成的最终地图等于第二张地图,但具有第一张地图的正方形(\implicant{7}{15}
),使用包可以轻松设置组。但我不希望二进制文件显示在第一个地图中。我希望变量像第二张地图一样可见,但值0
没有显示,我无法绘制正方形。另一方面,它具有 omitidx 和 omitbinaries 函数。
我不确定是否有其他包或方法可以实现它。使用karnaugh-map
包中的\implicant
函数可以轻松绘制正方形并显示组,但使用 tikzpicture 则比较困难。
答案1
第一个scope
是添加了两行代码的(第二个)。第一个是omitzeros=false
显示零的选项,第二个是\draw
使用 tikz 绘制所需矩形的命令。我还scope
用一个附加示例展示了第二个。
\documentclass{standalone}
\usepackage{karnaughmap}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[thick]
\begin{scope} % first map
\karnaughmap
[omitidx,omitbinaries,
omitnegated=false,
omitzeros=false, % to show the zeros
variables={{Q_1}{Q_0}{Q_3}{Q_2}},
function=J_3]
{00XX 00XX 00XX 01XX}
\draw [red, rounded corners] (2.1,1.1) rectangle (2.9,2.9);
\end{scope}
\begin{scope}[shift={(7,0)}] % second map
\karnaughmap
[omitidx,omitbinaries,
omitnegated=false,
omitzeros=false, % to show the zeros
variables={{Q_1}{Q_0}{Q_3}{Q_2}},
function=J_3']
{10XX 00XX 00XX 00XX}
\draw[red, rounded corners] (0.1,0) -- (0.1,0.9) -| (0.9,0);
\draw[red, rounded corners] (0.1,4) -- (0.1,3.1) -| (0.9,4);
\end{scope}
\end{tikzpicture}
\end{document}