绘制卡诺图 - 在 karnaugh-map 包中修改

绘制卡诺图 - 在 karnaugh-map 包中修改

我需要为书绘制卡诺图。此答案中提到的包在 LaTeX 中绘制卡诺图非常好。我有两个问题

  1. 如何开启着色。
  2. 我们可以像替代答案

\documentclass{memoir}    
\usepackage{tikz,xcolor}
\usepackage{karnaugh-map}
\begin{document}
    \begin{karnaugh-map}*[4][2][1][$yz$][$x$]
        \maxterms{0,2,3}
        \minterms{1,4,5,6,7}
        \autoterms[X]
        \implicant{4}{6}
        \implicant{1}{5}
    \end{karnaugh-map}
\end{document}

答案1

  1. 根据文档(看这里)删除环境开始时的星号karnaugh-map是正确的方法。应该是\begin{karnaugh-map}[4][2][1][$yz$][$x$]那样。

  2. 如果不对包本身的源代码进行更改,这似乎是不可能的,因为标签的位置是“硬编码的”(源代码)。如果你注释掉里面的第 250 到 268 行,karnaugh-map.sty你可以根据这段代码玩一玩:

    \documentclass{standalone}
    \usepackage{karnaugh-map}
    \begin{document}
        \begin{karnaugh-map}[4][2][1][$yz$][$x$]
            \maxterms{0,2,3}
            \minterms{1,4,5,6,7}
            \autoterms[X]
            \implicant{4}{6}
            \implicant{1}{5}
            \node at (-0.25,2.5) {$yz$};           % row name
            \node at (-0.6,2.25) {$x$};            % column name
            \draw[ultra thin] (0,2) -- (-1,2.75);  % diagonal line
        \end{karnaugh-map}
    \end{document}
    

答案2

  1. 在环境中添加星号时,颜色会被关闭。请参阅文档了解更多信息。因此,在开始环境时删除星号,karnaugh-map从而创建环境行;

    \begin{karnaugh-map}[4][2][1][$yz$][$x$]
    
  2. 该软件包不直接支持此功能。幸运的是,可以使用以下方法手动完成此操作:版本 v1.0就像@epR8GaYuh 的回答。甚至可以在不修改包的情况下完成。如果您提供一组空的标签,它们将“消失”,您可以使用添加自己的标签tikz。最后,您还可以根据需要添加装饰。根据您链接的代码Ignasi 的示例可以生产以下产品:

    \documentclass{standalone}
    \usepackage{karnaugh-map}
    \begin{document}
      \begin{karnaugh-map}[4][2][1][][] % note empty X and Y labels
        \maxterms{0,2,3}
        \minterms{1,4,5,6,7}
        \autoterms[X]
        \implicant{4}{6}
        \implicant{1}{5}
        % note: posistion for start of \draw is (0, Y) where Y is
        % the Y size(number of cells high) in this case Y=2
        \draw[color=black, ultra thin] (0, 2) --
        node [pos=0.7, above right, anchor=south west] {$yz$} % Y label
        node [pos=0.7, below left, anchor=north east] {$x$} % X label
        ++(135:1);
      \end{karnaugh-map}
    \end{document}
    

    例子 这应该适用于具有一个子图(Z size = 1)的所有地图组合,只要Y进行相应更改即可,并且可以进一步定制以使用多个子图(如果需要)。

免责声明:我是karnaugh-map

相关内容