绘制 4 变量卡诺图:与 karnaugh-map 包和 tikzpicture 相关的关注点

绘制 4 变量卡诺图:与 karnaugh-map 包和 tikzpicture 相关的关注点

我对这两个包都不是很熟悉,主要是这个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}

在此处输入图片描述

相关内容