你好,我的问题是我不知道。如何在 Latex 中绘制这个 KV 图我只发现他们用卡诺图制作的不同 KV 图。我只能用 Latex 制作这个表格。我不知道如何添加红线/注释。
\documentclass{standalone}
\begin{document}
\begin{tabular}{c |c |c|c |c |c}
$y_0$ & \multicolumn{2}{c|}{$x_0$} &\multicolumn{3}{c}{$\overline{x_0}$}\\ \cline{1-5}
$x_1$ &1&0&0&1&$\overline{x_3}$\\\cline{2-6}
&0&1&1&0&$x_3$\\\cline{1-5}
$\overline{x_1}$ &0&1&1&0&\\\cline{2-6}
&1&0&0&1&$\overline{x_3}$\\\cline{2-5}
&$\overline{x_2}$&\multicolumn{2}{c|}{$x_2$}&$\overline{x_2}$\\
\end{tabular}
\end{document}
答案1
覆盖地图的一个简单版本是使用tikzmark
(尽管您的卡诺图看起来不太好看)。为了方便使用,我将所有列的位宽度设置为相等(您可能希望使用 增加一些高度\extrarowheight
或使用 拉伸表格\arraystretch
)。
\documentclass{article}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{tabular}{c|wc{1em}|wc{1em}|wc{1em}|wc{1em}|c}
$y_0$ & \multicolumn{2}{c|}{$x_0$} &\multicolumn{2}{c}{$\overline{x_0}$}\\ \cline{1-5}
$x_1$ &1\tikzmark{c1}&0&0&\tikzmark{c2}1&$\overline{x_3}$\\\cline{2-6}
&0&\tikzmark{ul}1&1&0&$x_3$\\\cline{1-5}
$\overline{x_1}$ &0&1&1\tikzmark{br}&0&\\\cline{2-6}
&1\tikzmark{c3}&0&0&\tikzmark{c4}1&$\overline{x_3}$\\\cline{2-5}
&$\overline{x_2}$&\multicolumn{2}{c|}{$x_2$}&$\overline{x_2}$\\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw[red,rounded corners=5pt] ([xshift=-1.25em,yshift=-2pt]pic cs:c1) -| ++(1.75em,1.25em);
\draw[red,rounded corners=5pt] ([xshift=-1.25em,yshift=7pt]pic cs:c3) -| ++(1.75em,-1.25em);
\draw[red,rounded corners=5pt] ([xshift=1.25em,yshift=-2pt]pic cs:c2) -| ++(-1.75em,1.25em);
\draw[red,rounded corners=5pt] ([xshift=1.25em,yshift=7pt]pic cs:c4) -| ++(-1.75em,-1.25em);
\draw[red,rounded corners=5pt] ([xshift=-4pt,yshift=.7em]pic cs:ul) rectangle ([yshift=-.3em,xshift=4pt]pic cs:br);
\end{tikzpicture}
\end{document}
答案2
这与我的回答完全不同如何在 LaTeX 中绘制 8x8 卡诺图?。它确实也显示了一些不同的结果,但就个人喜好而言,我发现它更舒服(至少是文档中的绘图部分)。
\documentclass{article}
\usepackage{kvmap}
\begin{document}
\begin{kvmap}
\begin{kvmatrix}{x_0,x_2,x_1,x_3}
1 & 0 & 0 & 1\\
0 & 1 & 1 & 0\\
0 & 1 & 1 & 0\\
1 & 0 & 0 & 1
\end{kvmatrix}
\bundle[color=red]{1}{1}{2}{2}
\draw[kvbundle,red] (00.south west) -| (00.north east);
\draw[kvbundle,red] (33.south west) |- (33.north east);
\draw[kvbundle,red] (30.south east) -| (30.north west);
\draw[kvbundle,red] (03.south east) |- (03.north west);
\end{kvmap}
\end{document}
更新2018-09-21:此答案现在使用该kvmap
包。您可以在此答案的编辑历史中找到旧代码。