From 75c3009ce87ff7987297769aa5a8f3a365cfb2be Mon Sep 17 00:00:00 2001 From: Andre Meyering Date: Mon, 24 Jul 2017 15:45:55 +0200 Subject: [PATCH] =?UTF-8?q?[Marco]=20KV-Diagramm=20Makro=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein Makro für KV Diagramme wurde hinzugefügt. Für Digitaltechnik wichtig. --- kvdoc.pdf | Bin 0 -> 156227 bytes kvdoc.tex | 924 +++++++++++++++++++++++++++++++++++++++++++++++++++ kvmacros.tex | 489 +++++++++++++++++++++++++++ 3 files changed, 1413 insertions(+) create mode 100644 kvdoc.pdf create mode 100644 kvdoc.tex create mode 100644 kvmacros.tex diff --git a/kvdoc.pdf b/kvdoc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..091e9deac028aaa07253ca978af1fdc8945af048 GIT binary patch literal 156227 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̥s`$O#@Hv)_!bw2!KEqMAiDVUHAMUBGk7DhcKzD= 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 literal 0 HcmV?d00001 diff --git a/kvdoc.tex b/kvdoc.tex new file mode 100644 index 0000000..9f938ca --- /dev/null +++ b/kvdoc.tex @@ -0,0 +1,924 @@ +\documentclass{article} +\input kvmacros +\sloppy +\begin{document} +\title{Typesetting Karnaugh Maps and Veitch Charts with \LaTeX} +\author{Andreas W. Wieland\\eMail: \texttt{awwieland@gmx.de}} +\date{January 7th, 2002} +\maketitle + + +\section{Abstract} + +Karnaugh maps and Veitch charts\footnote{In previous releases of this document + I referred to Karnaugh maps as Karnaugh-Veitch-Maps. This was definitely not + correct. Thanks to F.~M.~Brown for pointing this error out to me.} are used + to simplify logic equations. The drawing of them used to be a boring, + annoying and error-prone task. With the included macros this is no longer a + problem. They can typeset Karnaugh maps and Veitch charts with up to ten + variables, which is more than you might likely need. You only have to provide + a list of variable identifiers plus the function table of your logic + function(s). The macros also allow to mark the simplifications of your logic + function directly within a Karnaugh map or Veitch chart. + +\section{Introduction} + +Karnaugh maps and Veitch charts are used to simplify logic equations. They are +map representations of logic functions, and in that they are equivalent. The +difference between the two kinds of diagrams is the way in which the variables +of the functions are located within the diagrams: ``The Karnaugh map \ldots{} +displays a function's discriminants according to the reflected binary (Gray) +code. The Veitch chart \ldots{} displays the discriminants in natural binary +order.'' (F.~M.~Brown) + +However, the drawing of either kind of them used to be a boring, annoying and +error-prone task. Since I had to typeset a 50+~page collection of exercises +for a basic computer-science lecture with plenty of Karnaugh maps in it, I +decided to write some macros that would do this task for me. Let us start +first with an introduction on how to use these Macros: + +The first thing you have to do is to put the macro file \verb|kvmacros.tex| +into a directory where \TeX{} will find it, i.e. you have to put it into a +directory where your \texttt{TEXINPUTS} environment variable points to. You +can then load them by typing +\verb|\input kvmacros| somewhere in the preamble of your document. + +Suppose now you have a logic function~$f$ with the following function table: + +\begin{center} + +\begin{tabular}{lr} + \begin{tabular}[t]{r|cccc|c} +Index&$a$&$b$&$c$&$d$&$f$\\ +\hline +0&0&0&0&0&1\\ +1&0&0&0&1&1\\ +2&0&0&1&0&1\\ +3&0&0&1&1&0\\ +4&0&1&0&0&0\\ +5&0&1&0&1&1\\ +6&0&1&1&0&1\\ +7&0&1&1&1&0\\ + \end{tabular} +& + \begin{tabular}[t]{r|cccc|c} +Index&$a$&$b$&$c$&$d$&$f$\\ +\hline +8&1&0&0&0&0\\ +9&1&0&0&1&1\\ +10&1&0&1&0&1\\ +11&1&0&1&1&0\\ +12&1&1&0&0&0\\ +13&1&1&0&1&1\\ +14&1&1&1&0&1\\ +15&1&1&1&1&0\\ + \end{tabular} +\end{tabular} +\end{center} + +This logic function can easily be put into a Karnaugh map by using the +\verb|\karnaughmap|-macro\footnote{Users of older versions of the macro +package will notice that the name has changed. Below you will find a +discussion of the changes between versions.}. It has five parameters: The +number of variables in the map, an identifier for the function, a list of +variable identifiers for the variables, and the list of values of $f$ for +each line in the function table. The variable identifiers in the third +parameter are ordered from highest to lowest significance (the same way as in +the function table, with $a$ having a significance of $2^3=8$ and $d$ having a +significance of $2^0=1$). The list of values of $f$ was read from lowest to +highest index. The fifth parameter remains empty in this example, it will be +discussed below: + +\begin{verbatim} +\karnaughmap{4}{f(a,b,c,d):}{abcd}{1110011001100110}{} +\end{verbatim} + +This produces the following Karnaugh map, where the indices in the lower left +corner of each box correspond to the indices in the function +table:\footnote{The indices can easily be calculated from the variable values + in the function table, i.e. line 11: the index equals $a\cdot 2^3 + b\cdot + 2^2 + c \cdot 2^1 + d \cdot 2^0=1\cdot 8 + 0\cdot 4 + 1 \cdot 2 + 1 \cdot + 1=11$.} + +\begin{center} +\karnaughmap{4}{f(a,b,c,d):}{abcd}{1110011001100110}{} +\end{center} + +The macros work similar for Veitch charts: + +\begin{verbatim} +\veitchchart{4}{f(a,b,c,d):}{abcd}{0110011001100110}{} +\end{verbatim} + +\begin{center} +\veitchchart{4}{f(a,b,c,d):}{abcd}{0110011001100110}{} +\end{center} + +Notice the difference in the variable location in the diagrams. In my opinion +Karnaugh maps are much easier to use if you need to simplify a logic function; +therefore Veitch charts will not be discussed any further in this +document. Except otherwise noticed, the macros' syntax and functionality are +exactly the same for Karnaugh maps and Veitch charts. + +The macros that read the variable list and the list of logic values +(i.e. parameters \#3 and \#4) work +recursively. Therefore, you have to take special care to supply the +correct number of tokens to print: If you supply a list of variable +identifiers or a list of logic values that contains fewer elements than needed +the macros will cause error messages similar to the following: + +\begin{verbatim} +! Argument of \kvgetonechar has an extra }. + + \par +l.201 }{} + +? +\end{verbatim} + +On the contrary, if any of the two lists is longer than +needed, \emph{you will not be notified!} Moreover, each entry has to be one +character long, otherwise --- like a variable identifier enclosed in \$s --- +you have to put it into braces: + +\begin{verbatim} +\karnaughmap{4}{$f(a,b,c,d):$}{{$a$}{$b$}{$c$}{$d$}}{0110011001100110}{} +\end{verbatim} + +This produces the following Karnaugh map: + +\begin{center} +\karnaughmap{4}{$f(a,b,c,d):$}{{$a$}{$b$}{$c$}{$d$}}{0110011001100110}{} +\end{center} + +\section{Marking simplifications} + +The already mentioned fifth parameter can be used if you want to draw +something inside the Karnaugh map. For example this is useful if you want to +show how you simplified a logic function: + +\begin{verbatim} +\karnaughmap{4}{$f(a,b,c,d):$}{{$a$}{$b$}{$c$}{$d$}}% +{0110011001100110}% +{% +\put(0,2){\oval(1.9,1.9)[r]} +\put(4,2){\oval(1.9,1.9)[l]} +\put(2,0){\oval(1.9,1.9)[t]} +\put(2,4){\oval(1.9,1.9)[b]} +} +\end{verbatim} + +The corresponding Karnaugh map looks like this: + +\begin{center} +\karnaughmap{4}{$f(a,b,c,d):$}{{$a$}{$b$}{$c$}{$d$}}% +{0110011001100110}% +{% +\put(0,2){\oval(1.9,1.9)[r]} +\put(4,2){\oval(1.9,1.9)[l]} +\put(2,0){\oval(1.9,1.9)[t]} +\put(2,4){\oval(1.9,1.9)[b]} +} +\end{center} + +You can use any of \LaTeX's graphics macros for this purpose. The Karnaugh map +has its pivot point at the lower left point\footnote{This is not exactly true, +but sufficient if you do not want to modify the macros.} and a unitlength that +is equal to the length of a single box within the Karnaugh map. Sometimes you +may find that the \verb|\oval|s that you want to draw inside a Karnaugh map are +slightly shifted to the right. This occurs if you use the \verb|eepic|-Package +in your document. In this case, make a copy of the \verb|eepic.sty| file, +rename it to something like \verb|myeepic.sty| and comment out the definition +of the \verb|\oval|-macro in your local copy. If you put this new +\verb|myeepic.sty| file somewhere into your \TeX's search path so that \TeX{} +can find it and you load it properly with e.g. \verb|\usepackage{myeepic}|, +you shouldn't experience any more trouble. + +\section{Other features} + +There are some more features that you can use. Possibly the most important is +that you can change the size of the diagrams by changing the size of the +boxes within the map, simply by typing: + +\begin{verbatim} +\kvunitlength=15mm +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{verbatim} + +This results in the following Karnaugh map. The setting of the +\verb|\kvunitlength| remains active until you change it again;\footnote{Or, of + course, until you leave the group in which you redefined the value. This + applies to all changeable parameters and macro definitions in this section!} +the default \verb|\kvunitlength| is 8\,mm: + +\begin{center} +\kvunitlength=15mm +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{center} + +Another feature is that you can switch off the indices inside the map by +typing: + +\begin{verbatim} +\kvnoindex +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{verbatim} + +\begin{center} +\kvunitlength=8mm +\kvnoindex +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{center} + +This setting also remains active until you switch indexing on again using the +\verb|\kvindex|-macro: + +\begin{verbatim} +\kvindex +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{verbatim} + +\begin{center} +\kvindex +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{center} + +Usually, the font size of the map's contents and indices should be +suitable (the defaults are \verb|\tiny| for \verb|\kvindexsize| and +\verb|\normalsize| for \verb|\kvcontentsize|). If you want to change them, you +can do this by redefining the \verb|\kvcontentsize|- and +\verb|\kvindexsize|-macros (Preferably, you should do this in the preamble of +your document): + +\begin{verbatim} +\renewcommand\kvindexsize{\footnotesize} +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{verbatim} + +\begin{center} +\renewcommand\kvindexsize{\footnotesize} +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{center} + +In the same way you can also change the font family (Although I doubt that +this is sensible): + +\begin{verbatim} +\renewcommand\kvindexsize{\footnotesize\it} +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{verbatim} + +\begin{center} +\renewcommand\kvindexsize{\footnotesize\it} +\karnaughmap{4}{$f:$}{abcd}{0110011001100110}{} +\end{center} + + +These macros are named \verb|\kvfoo|, because they work both for Karnaugh maps +and Veitch charts. + +\section{If you use an older version of the macros\ldots} + +\ldots{} you will certainly have noticed a number of changes. The most +important one is that I have changed the name of the macro that draws Karnaugh +maps from \verb|\kvmap| to \verb|\karnaughmap|. I suggest that you use the new +name in documents that you newly create. However, I introduced an alias so +that the old macro name still works: + +\begin{verbatim} +\def\kvmap{\karnaughmap} +\end{verbatim} + +Also, in some older versions tokens in the variable list or function table +that were longer than one character had to be enclosed in \emph{double} braces +(If you have used any of these versions you will certainly remember this +annoying feature). This is no longer necessary --- however, it does no +harm. + +If you need to know more about the exact changes, please consult the revision +history in \verb|kvmacros.tex|. + +\section{Final remarks} + +This is all you need to know about the usage of my macros. I have tried them +out and I haven't yet found any serious bugs, but I'm pretty sure there are +plenty. In this case, or if you have comments or suggestions, please send me +an eMail. Anyway, I would very much appreciate if you would notify me when you +use my macros; I would like to know if they are of any use to somebody. + +The maximum size map I could produce was a Karnaugh map with 10~variables; +with bigger maps I only exceeded \TeX's main memory. This is due to the +macros' recursive algorithm. Quite likely you will exceed \TeX's capacity with +even smaller maps if they occur in large documents, but I think no~one in his +right mind will ever use Karnaugh maps of more than 6\,variables, so I didn't +care about this problem. + + +\section{More examples} + +Below I have given some more examples of Karnaugh maps produced with my +macros: + +\begin{verbatim} +\karnaughmap{1}{}{a}{01}{} + +\karnaughmap{2}{$f:$}{{$a$}{$b$}}{0110}{} + +\karnaughmap{3}{$f:$}{{$a$}{$b$}{$c$}}{01100110}{} + +\karnaughmap{4}{$f:$}{{$a$}{$b$}{$c$}{$d$}}{0110011001100110}{} + +\karnaughmap{4}{$f:$}{abcd}{abcdefghijklmnop}{} + +\karnaughmap{5}{$f:$}{{$a$}{$b$}{$c$}{$d$}{$e$}}% +{0123456789abcdef0123456789abcdef}{} + +\karnaughmap{6}{$f_i^t:$}{abcdef}% +{0123456789{10}{11}{12}{13}{14}{15}% +{16}{17}{18}{19}{20}{21}{22}{23}% +{24}{25}{26}{27}{28}{29}{30}{31}% +{32}{33}{34}{35}{36}{37}{38}{39}% +{40}{41}{42}{43}{44}{45}{46}{47}% +{48}{49}{50}{51}{52}{53}{54}{55}% +{56}{57}{58}{59}{60}{61}{62}{63}}{}% + +\kvunitlength=6mm +\kvnoindex +\karnaughmap{8}{$q_2^4:$}{{$a$}{$b$}{$c$}{$d$}{$e$}% +{$f$}{$g$}{$h$}}{% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +}{} +\kvunitlength=8mm +\kvindex +\end{verbatim} + +\begin{flushleft} +\karnaughmap{1}{}{a}{01}{} + +\karnaughmap{2}{$f:$}{{$a$}{$b$}}{0110}{} + +\karnaughmap{3}{$f:$}{{$a$}{$b$}{$c$}}{01100110}{} + +\karnaughmap{4}{$f:$}{{$a$}{$b$}{$c$}{$d$}}{0110011001100110}{} + +\karnaughmap{4}{$f:$}{abcd}{abcdefghijklmnop}{} + +\karnaughmap{5}{$f:$}{{$a$}{$b$}{$c$}{$d$}{$e$}}% +{0123456789abcdef0123456789abcdef}{} + +\karnaughmap{6}{$f_i^t:$}{abcdef}% +{0123456789{10}{11}{12}{13}{14}{15}% +{16}{17}{18}{19}{20}{21}{22}{23}% +{24}{25}{26}{27}{28}{29}{30}{31}% +{32}{33}{34}{35}{36}{37}{38}{39}% +{40}{41}{42}{43}{44}{45}{46}{47}% +{48}{49}{50}{51}{52}{53}{54}{55}% +{56}{57}{58}{59}{60}{61}{62}{63}}{}% + + +\kvunitlength=6mm +\kvnoindex +\karnaughmap{8}{$q_2^4:$}{{$a$}{$b$}{$c$}{$d$}{$e$}% +{$f$}{$g$}{$h$}}{% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +0011001111001100% +}{} +\kvunitlength=8mm +\kvindex +\end{flushleft} + +\section{Sourcecode} + +Here now you will find the current sourcecode of my macros. I should have +commented it more extensively, but failed due to lack of time. Sorry. + +\small +\begin{verbatim} +%% This is file `kvmacros.tex', +%% Version of January 7th, 2002 +%% +%% Copyright (C) 1998-2002 by Andreas W. Wieland, awwieland@gmx.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or (at your option) any later version, +%% with `The Program' referring to the software `kvmacros.tex' and its +%% accompanying documentation and `The Copyright Holder' referring to the +%% person Andreas W. Wieland. +%% +%% +%% +%% IMPORTANT NOTICE: +%% +%% For error reports, comments or suggestions in case of UNCHANGED +%% versions send mail to: +%% awwieland@gmx.de +%% +%% Anyway, if you use my macros, send me an eMail, too. I would like to know +%% if they are useful to somebody out there. +%% +%% Please do not request updates from me directly. Distribution is +%% done through Mail-Servers and TeX organizations. +%% +%% You are allowed to distribute this file under the condition that +%% it is distributed together with `kvdoc.tex', `kvdoc.dvi' and `kvdoc.ps'. +%% +%% If you receive this file alone from someone, complain! +%% +\typeout{} +\typeout{Macros for typesetting Karnaugh maps and Veitch charts} +\typeout{Version of January 7th, 2002} +\typeout{by Andreas W. Wieland, awwieland@gmx.de} +\typeout{} +%% +%% Change History: +%% August 04th, 1998: Original Version +%% +%% August 19th, 1998: Minor changes to make the lines within the maps look +%% better, also moved the variable identifiers from the right to the left and +%% added an identifier for the logic function; since then \kvmap has 5 +%% instead of 4 parameters. I also included the documentation in an additional +%% Postscript-file. +%% +%% September 23rd, 1998: Fixed the problem with double braces by introducing +%% the \compdummy and \ende macros in the \ifx-comparisons (see below): +%% The parameters that are longer than one character do not have to be +%% enclosed in double braces any longer --- single braces are +%% sufficient. However, double braces will still be processed correctly. +%% +%% May 19th, 1999: Changed the documentation (which was months overdue) after +%% F. M. Brown pointed me to the incorrectness of the term +%% "Karnaugh-Veitch-map". Actually, the macros itself haven't +%% changed. Probably I should introduce macros for typesetting Veitch charts +%% as well (which would be a minor task). This version was actually never +%% released. +%% +%% May 25th, 1999: Introduced macros for Veitch charts +%% (\veitchfoo) and renamed the macros that are solely related to +%% Karnaugh maps from \kvfoo to \karnaughfoo. Introduced aliases for those +%% macros that are user-callable to maintain compatibility with older versions: +%% \kvmap -> \karnaughmap. However, \kvindex, \kvnoindex and \kvunitlength +%% haven't changed their names as they are related to both Karnaugh maps and +%% Veitch charts. Changed the (plain stupid) algorithm that processes the +%% variable-length arguments so that it takes much less time to produce large +%% maps. Several macros so became redundant and are no longer included. Also I +%% introduced \kvindexsize and \kvcontentsize to adjust the font size of the +%% indices and the contents of a diagram. They default to \tiny and +%% \normalsize. +%% +%% January 17th, 2001: Changed the eMail-address in the macro file and the +%% accompanying documentation and made minor changes to the documentation. +%% +%% January 7th, 2002: Exchanged the \xdef to \gdef in the definition of +%% \kvargumentstring and \kvgetonechar so that things like {\textbf 1} in the +%% argumentlist of \karnaughmap do not cause error messages any longer. +%% Thanks to Michal Medveck{\'y} for pointing me to this error. +%% +%% +%% +%% We need a fixed dimension for a single field in a Karnaugh map: +%% +\newdimen\kvunitlength +\kvunitlength=8mm +%% +%% We need a default font size for the indices: +%% +\newcommand{\kvindexsize}{\tiny} +%% +%% And we need a default size for the contents and variable identifiers: +%% +\newcommand{\kvcontentsize}{\normalsize} +%% +%% First, we have to introduce some counters: +%% +%% \kvrecursiondepth is used to control the recursion of the +%% \karnaughmakemap- and \veitchmakechart-macro. +%% +\newcount\kvrecursiondepth +%% +%% The \kvindexcounter is needed for the indices in the fields of the +%% diagrams. +%% +\newcount\kvindexcounter +%% +%% \kvxsize and \kvysize store the dimensions of an entire diagram. +%% +\newcount\kvxsize +\newcount\kvysize +%% +%% Some counters are necessary to compute the marks for the variable +%% identifiers: +%% +\newcount\kvvarno +\newcount\kvxvarno +\newcount\kvyvarno +\newcount\kvmarkstart +\newcount\kvmarklength +\newcount\kvmarknum +\newcount\kvmarkmove +%% +%% And we need a savebox to store the variable marks: +%% +\newsavebox\kvsavebox +%% +%% Single fields in a diagram should be indexed, which makes the map easier to +%% use. This is the default. If you don't want indices, simply call +%% \kvnoindex. If you want indices back, call \kvindex: +%% +\def\kvnoindex{% +\def\kvcurrentindex{}} +%% +\def\kvindex{% +\def\kvcurrentindex{% +\the\kvindexcounter\global\advance\kvindexcounter by 1}% +} +%% +\kvindex +%% +%% We need a macro that computes the powers of two: +%% +\def\kvpoweroftwo#1#2{% Computes #1=2^#2, both of which have to be counters +{\ifnum#2>0 +\global\multiply#1 by 2 +\advance#2 by -1 +\kvpoweroftwo{#1}{#2} +\fi}} +%% +%% The macros \kvargumentstring, \kvgetchar and \kvgetonechar are needed to +%% process the variabe-length parameters in \karnaughmap and \veitchchart: +%% +\def\kvargumentstring#1{\gdef\kvdummystring{#1{}\noexpand\end}} +%% +\def\kvgetchar{\expandafter\kvgetonechar\kvdummystring} +%% +\def\kvgetonechar#1#2\end{{#1}\gdef\kvdummystring{#2\noexpand\end}}% +%% +%% The Macro \karnaughmakemap calls itself recursively until the parameter #1 +%% equals 1, whereupon it returns a single token from the list of arguments, +%% enclosed in a \makebox plus the index (if enabled) in a smaller \makebox: +%% +\def\karnaughmakemap#1#2{{% +\kvrecursiondepth=\number#1 +\ifnum\kvrecursiondepth>1 +\divide\kvrecursiondepth by 2 +\unitlength=\kvunitlength +\multiply\unitlength by \kvrecursiondepth +%% +\ifcase#2 +%% +%% The parameter #2 of \karnaughmakemap is needed because the inner Karnaugh +%% maps need to be mirrored. This is achieved by the following case-statement, +%% which orders the inner Karnaugh maps properly: +%% +%% Case 0: top-left Karnaugh map +\begin{picture}(2,2)% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\end{picture}% +\or +%% Case 1: top-right Karnaugh map +\begin{picture}(2,2)% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\end{picture}% +\or +%% Case 2: bottom-left Karnaugh map +\begin{picture}(2,2)% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\end{picture}% +\or +%% Case 3: bottom-right Karnaugh map +\begin{picture}(2,2)% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\end{picture}% +\fi +\else +\unitlength=\kvunitlength +\begin{picture}(1,1) +\put(0,0){\makebox(1,1){\kvcontentsize\kvgetchar}}% +\put(0.05,0.05){\makebox(0.9,0.9)[bl]{\kvindexsize\kvcurrentindex}}% +\end{picture} +\fi}}% +%% +%% \karnaughmaketopmark typesets the variable marks of a Karnaugh map that are +%% located on top of the diagram: +%% +\def\karnaughmaketopmark{% + \unitlength\kvunitlength + \begin{picture}(\kvxsize,1) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvxvarno} % \kvymarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \multiply\kvmarklength by 2 % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 4 % This is the move distance for the \multiput. + \kvmarknum=\kvxsize + \divide\kvmarknum by \kvmarkmove % This is the number of repetitions for + % the \multiput. + %The highest-order variable mark needs a special treatment: + \ifnum\kvmarknum=0\kvmarknum=1\divide\kvmarklength by 2\fi + \savebox\kvsavebox(\kvmarklength,1){% + \begin{picture}(\kvmarklength,1) + \put(0,0.3){\makebox(\kvmarklength,0.7){\kvcontentsize\kvgetchar}} + \put(0,0.1){\line(0,1){0.4}} + \put(\kvmarklength,0.1){\line(0,1){0.4}} + \put(0,0.3){\line(1,0){\kvmarklength}} + \end{picture}} + \multiput(\kvmarkstart,0)(\kvmarkmove,0){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +%% \karnaughmakeleftmark typesets the variable marks of a Karnaugh map that are +%% located on the left of the diagram: +%% +\def\karnaughmakeleftmark{% + \unitlength\kvunitlength + \begin{picture}(-1,\kvysize)(0,-\kvysize) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvyvarno} % \kvmarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \multiply\kvmarklength by 2 % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 4 % This now is the move distance for the + % \multiput. + \kvmarknum=\kvysize + \divide\kvmarknum by \kvmarkmove % This now is the number of + % repetitions for the \multiput. + %The highest-order variable mark needs a special treatment: + \ifnum\kvmarknum=0\kvmarknum=1\divide\kvmarklength by 2\fi + \advance\kvmarkstart by \kvmarklength + \savebox\kvsavebox(1,\kvmarklength){% + \begin{picture}(1,\kvmarklength) + \put(-0.3,0){\makebox(-0.7,\kvmarklength){\kvcontentsize\kvgetchar}} + \put(-0.1,0){\line(-1,0){0.4}} + \put(-0.1,\kvmarklength){\line(-1,0){0.4}} + \put(-0.3,0){\line(0,1){\kvmarklength}} + \end{picture}} + \multiput(0,-\kvmarkstart)(0,-\kvmarkmove){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% \karnaughmakemarks calls \karnaughmaketopmark or \karnaughmakeleftmark +%% depending on whether \kvvarno is odd or even. +%% +\def\karnaughmakemarks{% +\ifnum\kvvarno>0 + \let\next=\karnaughmakemarks + \ifodd\kvvarno % We have to make a mark at the top + \advance\kvxvarno by -1 + \put(0,\kvxvarno){\karnaughmaketopmark} + \else % We have to make a mark at the left + \advance\kvyvarno by -1 + \put(-\kvyvarno,-\kvysize){\karnaughmakeleftmark} + \fi + \advance\kvvarno by -1 +\else + \let\next=\relax +\fi +\next +} +%% +%% \karnaughmap is the macro that a user calls if he wants to draw a +%% Karnaugh map: +%% +\def\karnaughmap#1#2#3#4#5{% +%% +%% #1 is the number of variables in the Karnaugh map +%% #2 is the identifier of the function +%% #3 is the list of identifiers of those variables +%% #4 is the list of tokens that have to be written into the map +%% #5 is something that you want to draw inside the Karnaugh map +%% +\kvvarno=#1 % \kvvarno is the total number of variables +\kvyvarno=#1 % \kvyvarno is the number of variable marks at the left +\divide\kvyvarno by 2 +\kvxvarno=#1 % \kvxvarno is the number of variable marks on top +\advance\kvxvarno by -\kvyvarno +\kvxsize=1 +\kvpoweroftwo{\kvxsize}{\kvxvarno} +\kvysize=1 +\kvpoweroftwo{\kvysize}{\kvyvarno} +\advance\kvxsize by \kvyvarno +\advance\kvxvarno by \kvysize +\unitlength\kvunitlength +\begin{picture}(\kvxsize,\kvxvarno)(-\kvyvarno,-\kvysize) +\advance\kvxsize by -\kvyvarno +\advance\kvxvarno by -\kvysize +\put(0,-\kvysize){% +\begin{picture}(\kvxsize,\kvysize) +\multiput(0,0)(0,1){\kvysize}{\line(1,0){\kvxsize}} +\multiput(0,0)(1,0){\kvxsize}{\line(0,1){\kvysize}} +\put(0,\kvysize){\line(1,0){\kvxsize}} +\put(\kvxsize,0){\line(0,1){\kvysize}} +#5 +\end{picture}} +\put(-\kvyvarno,0){\makebox(\kvyvarno,\kvxvarno){#2}} +\kvindexcounter=0 +\kvargumentstring{#4} +\put(0,-\kvysize){\karnaughmakemap{\kvysize}{0}} +\ifodd\kvvarno +{\divide\kvxsize by 2 +\put(\kvxsize,-\kvysize){\karnaughmakemap{\kvysize}{1}}} +\fi +\kvargumentstring{#3} +\karnaughmakemarks +%% +\end{picture} +}% +%% +%% The definition of \kvmap is necessary to maintain compatibility with older +%% versions of this macro package: +%% +\def\kvmap{\karnaughmap}% +%% +%% +%% The Macro \veitchmakechart calls itself recursively until the parameter #1 +%% equals 1, whereupon it returns a single token from the list of arguments, +%% enclosed in a \makebox plus the index (if enabled) in a smaller \makebox: +%% +\def\veitchmakechart#1{{% +\kvrecursiondepth=\number#1 +\ifnum\kvrecursiondepth>1 +\divide\kvrecursiondepth by 2 +\unitlength=\kvunitlength +\multiply\unitlength by \kvrecursiondepth +%% +\begin{picture}(2,2)% +\put(0,1){\veitchmakechart{\kvrecursiondepth}}% +\put(1,1){\veitchmakechart{\kvrecursiondepth}}% +\put(0,0){\veitchmakechart{\kvrecursiondepth}}% +\put(1,0){\veitchmakechart{\kvrecursiondepth}}% +\end{picture}% +\else +\unitlength=\kvunitlength +\begin{picture}(1,1) +\put(0,0){\makebox(1,1){\kvcontentsize\kvgetchar}}% +\put(0.05,0.05){\makebox(0.9,0.9)[bl]{\kvindexsize\kvcurrentindex}}% +\end{picture} +\fi}}% +%% +\def\veitchmaketopmark{% + \unitlength\kvunitlength + \begin{picture}(\kvxsize,1) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvxvarno} % \kvymarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 2 % This is the move distance for the \multiput. + \kvmarknum=\kvxsize + \divide\kvmarknum by \kvmarkmove % This is the number of repetitions for + % the \multiput. + \savebox\kvsavebox(\kvmarklength,1){% + \begin{picture}(\kvmarklength,1) + \put(0,0.3){\makebox(\kvmarklength,0.7){\kvcontentsize\kvgetchar}} + \put(0,0.1){\line(0,1){0.4}} + \put(\kvmarklength,0.1){\line(0,1){0.4}} + \put(0,0.3){\line(1,0){\kvmarklength}} + \end{picture}} + \multiput(\kvmarkstart,0)(\kvmarkmove,0){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +\def\veitchmakeleftmark{% + \unitlength\kvunitlength + \begin{picture}(-1,\kvysize)(0,-\kvysize) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvyvarno} % \kvmarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 2 % This now is the move distance for the \multiput. + \kvmarknum=\kvysize + \divide\kvmarknum by \kvmarkmove % This now is the number of + % repetitions for the \multiput. + \advance\kvmarkstart by \kvmarklength + \savebox\kvsavebox(1,\kvmarklength){% + \begin{picture}(1,\kvmarklength) + \put(-0.3,0){\makebox(-0.7,\kvmarklength){\kvcontentsize\kvgetchar}} + \put(-0.1,0){\line(-1,0){0.4}} + \put(-0.1,\kvmarklength){\line(-1,0){0.4}} + \put(-0.3,0){\line(0,1){\kvmarklength}} + \end{picture}} + \multiput(0,-\kvmarkstart)(0,-\kvmarkmove){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +\def\veitchmakemarks{% +\ifnum\kvvarno>0 + \let\next=\veitchmakemarks + \ifodd\kvvarno % We have to make a mark at the top + \advance\kvxvarno by -1 + \put(0,\kvxvarno){\veitchmaketopmark} + \else % We have to make a mark at the left + \advance\kvyvarno by -1 + \put(-\kvyvarno,-\kvysize){\veitchmakeleftmark} + \fi + \advance\kvvarno by -1 +\else + \let\next=\relax +\fi +\next +} +%% +\def\veitchchart#1#2#3#4#5{% +%% +%% #1 is the number of variables in the Veitch chart +%% #2 is the identifier of the function +%% #3 is the list of identifiers of those variables +%% #4 is the list of tokens that have to be written into the chart +%% #5 is something that you want to draw inside the Veitch chart +%% +\kvvarno=#1 % \kvvarno is the total number of variables +\kvyvarno=#1 % \kvyvarno is the number of variable marks at the left +\divide\kvyvarno by 2 +\kvxvarno=#1 % \kvxvarno is the number of variable marks on top +\advance\kvxvarno by -\kvyvarno +\kvxsize=1 +\kvpoweroftwo{\kvxsize}{\kvxvarno} +\kvysize=1 +\kvpoweroftwo{\kvysize}{\kvyvarno} +\advance\kvxsize by \kvyvarno +\advance\kvxvarno by \kvysize +\unitlength\kvunitlength +\begin{picture}(\kvxsize,\kvxvarno)(-\kvyvarno,-\kvysize) +\advance\kvxsize by -\kvyvarno +\advance\kvxvarno by -\kvysize +\put(0,-\kvysize){% +\begin{picture}(\kvxsize,\kvysize) +\multiput(0,0)(0,1){\kvysize}{\line(1,0){\kvxsize}} +\multiput(0,0)(1,0){\kvxsize}{\line(0,1){\kvysize}} +\put(0,\kvysize){\line(1,0){\kvxsize}} +\put(\kvxsize,0){\line(0,1){\kvysize}} +#5 +\end{picture}} +\put(-\kvyvarno,0){\makebox(\kvyvarno,\kvxvarno){#2}} +\kvindexcounter=0 +\kvargumentstring{#4} +\put(0,-\kvysize){\veitchmakechart{\kvysize}} +\ifodd\kvvarno +{\divide\kvxsize by 2 +\put(\kvxsize,-\kvysize){\veitchmakechart{\kvysize}}} +\fi +\kvargumentstring{#3} +\veitchmakemarks +%% +\end{picture} +}% +%% + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: +\end{verbatim} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + + diff --git a/kvmacros.tex b/kvmacros.tex new file mode 100644 index 0000000..eb56212 --- /dev/null +++ b/kvmacros.tex @@ -0,0 +1,489 @@ +%% This is file `kvmacros.tex', +%% Version of January 7th, 2002 +%% +%% Copyright (C) 1998-2002 by Andreas W. Wieland, awwieland@gmx.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or (at your option) any later version, +%% with `The Program' referring to the software `kvmacros.tex' and its +%% accompanying documentation and `The Copyright Holder' referring to the +%% person Andreas W. Wieland. +%% +%% +%% +%% IMPORTANT NOTICE: +%% +%% For error reports, comments or suggestions in case of UNCHANGED +%% versions send mail to: +%% awwieland@gmx.de +%% +%% Anyway, if you use my macros, send me an eMail, too. I would like to know +%% if they are useful to somebody out there. +%% +%% Please do not request updates from me directly. Distribution is +%% done through Mail-Servers and TeX organizations. +%% +%% You are allowed to distribute this file under the condition that +%% it is distributed together with `kvdoc.tex', `kvdoc.dvi' and `kvdoc.ps'. +%% +%% If you receive this file alone from someone, complain! +%% +\typeout{} +\typeout{Macros for typesetting Karnaugh maps and Veitch charts} +\typeout{Version of January 7th, 2002} +\typeout{by Andreas W. Wieland, awwieland@gmx.de} +\typeout{} +%% +%% Change History: +%% August 04th, 1998: Original Version +%% +%% August 19th, 1998: Minor changes to make the lines within the maps look +%% better, also moved the variable identifiers from the right to the left and +%% added an identifier for the logic function; since then \kvmap has 5 +%% instead of 4 parameters. I also included the documentation in an additional +%% Postscript-file. +%% +%% September 23rd, 1998: Fixed the problem with double braces by introducing +%% the \compdummy and \ende macros in the \ifx-comparisons (see below): +%% The parameters that are longer than one character do not have to be +%% enclosed in double braces any longer --- single braces are +%% sufficient. However, double braces will still be processed correctly. +%% +%% May 19th, 1999: Changed the documentation (which was months overdue) after +%% F. M. Brown pointed me to the incorrectness of the term +%% "Karnaugh-Veitch-map". Actually, the macros itself haven't +%% changed. Probably I should introduce macros for typesetting Veitch charts +%% as well (which would be a minor task). This version was actually never +%% released. +%% +%% May 25th, 1999: Introduced macros for Veitch charts +%% (\veitchfoo) and renamed the macros that are solely related to +%% Karnaugh maps from \kvfoo to \karnaughfoo. Introduced aliases for those +%% macros that are user-callable to maintain compatibility with older versions: +%% \kvmap -> \karnaughmap. However, \kvindex, \kvnoindex and \kvunitlength +%% haven't changed their names as they are related to both Karnaugh maps and +%% Veitch charts. Changed the (plain stupid) algorithm that processes the +%% variable-length arguments so that it takes much less time to produce large +%% maps. Several macros so became redundant and are no longer included. Also I +%% introduced \kvindexsize and \kvcontentsize to adjust the font size of the +%% indices and the contents of a diagram. They default to \tiny and +%% \normalsize. +%% +%% January 17th, 2001: Changed the eMail-address in the macro file and the +%% accompanying documentation and made minor changes to the documentation. +%% +%% January 7th, 2002: Exchanged the \xdef to \gdef in the definition of +%% \kvargumentstring and \kvgetonechar so that things like {\textbf 1} in the +%% argumentlist of \karnaughmap do not cause error messages any longer. +%% Thanks to Michal Medveck{\'y} for pointing me to this error. +%% +%% +%% +%% We need a fixed dimension for a single field in a Karnaugh map: +%% +\newdimen\kvunitlength +\kvunitlength=8mm +%% +%% We need a default font size for the indices: +%% +\newcommand{\kvindexsize}{\tiny} +%% +%% And we need a default size for the contents and variable identifiers: +%% +\newcommand{\kvcontentsize}{\normalsize} +%% +%% First, we have to introduce some counters: +%% +%% \kvrecursiondepth is used to control the recursion of the +%% \karnaughmakemap- and \veitchmakechart-macro. +%% +\newcount\kvrecursiondepth +%% +%% The \kvindexcounter is needed for the indices in the fields of the +%% diagrams. +%% +\newcount\kvindexcounter +%% +%% \kvxsize and \kvysize store the dimensions of an entire diagram. +%% +\newcount\kvxsize +\newcount\kvysize +%% +%% Some counters are necessary to compute the marks for the variable +%% identifiers: +%% +\newcount\kvvarno +\newcount\kvxvarno +\newcount\kvyvarno +\newcount\kvmarkstart +\newcount\kvmarklength +\newcount\kvmarknum +\newcount\kvmarkmove +%% +%% And we need a savebox to store the variable marks: +%% +\newsavebox\kvsavebox +%% +%% Single fields in a diagram should be indexed, which makes the map easier to +%% use. This is the default. If you don't want indices, simply call +%% \kvnoindex. If you want indices back, call \kvindex: +%% +\def\kvnoindex{% +\def\kvcurrentindex{}} +%% +\def\kvindex{% +\def\kvcurrentindex{% +\the\kvindexcounter\global\advance\kvindexcounter by 1}% +} +%% +\kvindex +%% +%% We need a macro that computes the powers of two: +%% +\def\kvpoweroftwo#1#2{% Computes #1=2^#2, both of which have to be counters +{\ifnum#2>0 +\global\multiply#1 by 2 +\advance#2 by -1 +\kvpoweroftwo{#1}{#2} +\fi}} +%% +%% The macros \kvargumentstring, \kvgetchar and \kvgetonechar are needed to +%% process the variabe-length parameters in \karnaughmap and \veitchchart: +%% +\def\kvargumentstring#1{\gdef\kvdummystring{#1{}\noexpand\end}} +%% +\def\kvgetchar{\expandafter\kvgetonechar\kvdummystring} +%% +\def\kvgetonechar#1#2\end{{#1}\gdef\kvdummystring{#2\noexpand\end}}% +%% +%% The Macro \karnaughmakemap calls itself recursively until the parameter #1 +%% equals 1, whereupon it returns a single token from the list of arguments, +%% enclosed in a \makebox plus the index (if enabled) in a smaller \makebox: +%% +\def\karnaughmakemap#1#2{{% +\kvrecursiondepth=\number#1 +\ifnum\kvrecursiondepth>1 +\divide\kvrecursiondepth by 2 +\unitlength=\kvunitlength +\multiply\unitlength by \kvrecursiondepth +%% +\ifcase#2 +%% +%% The parameter #2 of \karnaughmakemap is needed because the inner Karnaugh +%% maps need to be mirrored. This is achieved by the following case-statement, +%% which orders the inner Karnaugh maps properly: +%% +%% Case 0: top-left Karnaugh map +\begin{picture}(2,2)% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\end{picture}% +\or +%% Case 1: top-right Karnaugh map +\begin{picture}(2,2)% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\end{picture}% +\or +%% Case 2: bottom-left Karnaugh map +\begin{picture}(2,2)% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\end{picture}% +\or +%% Case 3: bottom-right Karnaugh map +\begin{picture}(2,2)% +\put(1,0){\karnaughmakemap{\kvrecursiondepth}{3}}% +\put(0,0){\karnaughmakemap{\kvrecursiondepth}{2}}% +\put(1,1){\karnaughmakemap{\kvrecursiondepth}{1}}% +\put(0,1){\karnaughmakemap{\kvrecursiondepth}{0}}% +\end{picture}% +\fi +\else +\unitlength=\kvunitlength +\begin{picture}(1,1) +\put(0,0){\makebox(1,1){\kvcontentsize\kvgetchar}}% +\put(0.05,0.05){\makebox(0.9,0.9)[bl]{\kvindexsize\kvcurrentindex}}% +\end{picture} +\fi}}% +%% +%% \karnaughmaketopmark typesets the variable marks of a Karnaugh map that are +%% located on top of the diagram: +%% +\def\karnaughmaketopmark{% + \unitlength\kvunitlength + \begin{picture}(\kvxsize,1) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvxvarno} % \kvymarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \multiply\kvmarklength by 2 % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 4 % This is the move distance for the \multiput. + \kvmarknum=\kvxsize + \divide\kvmarknum by \kvmarkmove % This is the number of repetitions for + % the \multiput. + %The highest-order variable mark needs a special treatment: + \ifnum\kvmarknum=0\kvmarknum=1\divide\kvmarklength by 2\fi + \savebox\kvsavebox(\kvmarklength,1){% + \begin{picture}(\kvmarklength,1) + \put(0,0.3){\makebox(\kvmarklength,0.7){\kvcontentsize\kvgetchar}} + \put(0,0.1){\line(0,1){0.4}} + \put(\kvmarklength,0.1){\line(0,1){0.4}} + \put(0,0.3){\line(1,0){\kvmarklength}} + \end{picture}} + \multiput(\kvmarkstart,0)(\kvmarkmove,0){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +%% \karnaughmakeleftmark typesets the variable marks of a Karnaugh map that are +%% located on the left of the diagram: +%% +\def\karnaughmakeleftmark{% + \unitlength\kvunitlength + \begin{picture}(-1,\kvysize)(0,-\kvysize) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvyvarno} % \kvmarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \multiply\kvmarklength by 2 % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 4 % This now is the move distance for the + % \multiput. + \kvmarknum=\kvysize + \divide\kvmarknum by \kvmarkmove % This now is the number of + % repetitions for the \multiput. + %The highest-order variable mark needs a special treatment: + \ifnum\kvmarknum=0\kvmarknum=1\divide\kvmarklength by 2\fi + \advance\kvmarkstart by \kvmarklength + \savebox\kvsavebox(1,\kvmarklength){% + \begin{picture}(1,\kvmarklength) + \put(-0.3,0){\makebox(-0.7,\kvmarklength){\kvcontentsize\kvgetchar}} + \put(-0.1,0){\line(-1,0){0.4}} + \put(-0.1,\kvmarklength){\line(-1,0){0.4}} + \put(-0.3,0){\line(0,1){\kvmarklength}} + \end{picture}} + \multiput(0,-\kvmarkstart)(0,-\kvmarkmove){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% \karnaughmakemarks calls \karnaughmaketopmark or \karnaughmakeleftmark +%% depending on whether \kvvarno is odd or even. +%% +\def\karnaughmakemarks{% +\ifnum\kvvarno>0 + \let\next=\karnaughmakemarks + \ifodd\kvvarno % We have to make a mark at the top + \advance\kvxvarno by -1 + \put(0,\kvxvarno){\karnaughmaketopmark} + \else % We have to make a mark at the left + \advance\kvyvarno by -1 + \put(-\kvyvarno,-\kvysize){\karnaughmakeleftmark} + \fi + \advance\kvvarno by -1 +\else + \let\next=\relax +\fi +\next +} +%% +%% \karnaughmap is the macro that a user calls if he wants to draw a +%% Karnaugh map: +%% +\def\karnaughmap#1#2#3#4#5{% +%% +%% #1 is the number of variables in the Karnaugh map +%% #2 is the identifier of the function +%% #3 is the list of identifiers of those variables +%% #4 is the list of tokens that have to be written into the map +%% #5 is something that you want to draw inside the Karnaugh map +%% +\kvvarno=#1 % \kvvarno is the total number of variables +\kvyvarno=#1 % \kvyvarno is the number of variable marks at the left +\divide\kvyvarno by 2 +\kvxvarno=#1 % \kvxvarno is the number of variable marks on top +\advance\kvxvarno by -\kvyvarno +\kvxsize=1 +\kvpoweroftwo{\kvxsize}{\kvxvarno} +\kvysize=1 +\kvpoweroftwo{\kvysize}{\kvyvarno} +\advance\kvxsize by \kvyvarno +\advance\kvxvarno by \kvysize +\unitlength\kvunitlength +\begin{picture}(\kvxsize,\kvxvarno)(-\kvyvarno,-\kvysize) +\advance\kvxsize by -\kvyvarno +\advance\kvxvarno by -\kvysize +\put(0,-\kvysize){% +\begin{picture}(\kvxsize,\kvysize) +\multiput(0,0)(0,1){\kvysize}{\line(1,0){\kvxsize}} +\multiput(0,0)(1,0){\kvxsize}{\line(0,1){\kvysize}} +\put(0,\kvysize){\line(1,0){\kvxsize}} +\put(\kvxsize,0){\line(0,1){\kvysize}} +#5 +\end{picture}} +\put(-\kvyvarno,0){\makebox(\kvyvarno,\kvxvarno){#2}} +\kvindexcounter=0 +\kvargumentstring{#4} +\put(0,-\kvysize){\karnaughmakemap{\kvysize}{0}} +\ifodd\kvvarno +{\divide\kvxsize by 2 +\put(\kvxsize,-\kvysize){\karnaughmakemap{\kvysize}{1}}} +\fi +\kvargumentstring{#3} +\karnaughmakemarks +%% +\end{picture} +}% +%% +%% The definition of \kvmap is necessary to maintain compatibility with older +%% versions of this macro package: +%% +\def\kvmap{\karnaughmap}% +%% +%% +%% The Macro \veitchmakechart calls itself recursively until the parameter #1 +%% equals 1, whereupon it returns a single token from the list of arguments, +%% enclosed in a \makebox plus the index (if enabled) in a smaller \makebox: +%% +\def\veitchmakechart#1{{% +\kvrecursiondepth=\number#1 +\ifnum\kvrecursiondepth>1 +\divide\kvrecursiondepth by 2 +\unitlength=\kvunitlength +\multiply\unitlength by \kvrecursiondepth +%% +\begin{picture}(2,2)% +\put(0,1){\veitchmakechart{\kvrecursiondepth}}% +\put(1,1){\veitchmakechart{\kvrecursiondepth}}% +\put(0,0){\veitchmakechart{\kvrecursiondepth}}% +\put(1,0){\veitchmakechart{\kvrecursiondepth}}% +\end{picture}% +\else +\unitlength=\kvunitlength +\begin{picture}(1,1) +\put(0,0){\makebox(1,1){\kvcontentsize\kvgetchar}}% +\put(0.05,0.05){\makebox(0.9,0.9)[bl]{\kvindexsize\kvcurrentindex}}% +\end{picture} +\fi}}% +%% +\def\veitchmaketopmark{% + \unitlength\kvunitlength + \begin{picture}(\kvxsize,1) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvxvarno} % \kvymarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart % \kvmarklength is the length of a mark + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 2 % This is the move distance for the \multiput. + \kvmarknum=\kvxsize + \divide\kvmarknum by \kvmarkmove % This is the number of repetitions for + % the \multiput. + \savebox\kvsavebox(\kvmarklength,1){% + \begin{picture}(\kvmarklength,1) + \put(0,0.3){\makebox(\kvmarklength,0.7){\kvcontentsize\kvgetchar}} + \put(0,0.1){\line(0,1){0.4}} + \put(\kvmarklength,0.1){\line(0,1){0.4}} + \put(0,0.3){\line(1,0){\kvmarklength}} + \end{picture}} + \multiput(\kvmarkstart,0)(\kvmarkmove,0){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +\def\veitchmakeleftmark{% + \unitlength\kvunitlength + \begin{picture}(-1,\kvysize)(0,-\kvysize) + \kvmarkstart=1 + \kvpoweroftwo{\kvmarkstart}{\kvyvarno} % \kvmarkstart is the start + % position for the \multiput + \kvmarklength=\kvmarkstart + \kvmarkmove=\kvmarkstart + \multiply\kvmarkmove by 2 % This now is the move distance for the \multiput. + \kvmarknum=\kvysize + \divide\kvmarknum by \kvmarkmove % This now is the number of + % repetitions for the \multiput. + \advance\kvmarkstart by \kvmarklength + \savebox\kvsavebox(1,\kvmarklength){% + \begin{picture}(1,\kvmarklength) + \put(-0.3,0){\makebox(-0.7,\kvmarklength){\kvcontentsize\kvgetchar}} + \put(-0.1,0){\line(-1,0){0.4}} + \put(-0.1,\kvmarklength){\line(-1,0){0.4}} + \put(-0.3,0){\line(0,1){\kvmarklength}} + \end{picture}} + \multiput(0,-\kvmarkstart)(0,-\kvmarkmove){\kvmarknum}{\usebox\kvsavebox} + \end{picture} +} +%% +\def\veitchmakemarks{% +\ifnum\kvvarno>0 + \let\next=\veitchmakemarks + \ifodd\kvvarno % We have to make a mark at the top + \advance\kvxvarno by -1 + \put(0,\kvxvarno){\veitchmaketopmark} + \else % We have to make a mark at the left + \advance\kvyvarno by -1 + \put(-\kvyvarno,-\kvysize){\veitchmakeleftmark} + \fi + \advance\kvvarno by -1 +\else + \let\next=\relax +\fi +\next +} +%% +\def\veitchchart#1#2#3#4#5{% +%% +%% #1 is the number of variables in the Veitch chart +%% #2 is the identifier of the function +%% #3 is the list of identifiers of those variables +%% #4 is the list of tokens that have to be written into the chart +%% #5 is something that you want to draw inside the Veitch chart +%% +\kvvarno=#1 % \kvvarno is the total number of variables +\kvyvarno=#1 % \kvyvarno is the number of variable marks at the left +\divide\kvyvarno by 2 +\kvxvarno=#1 % \kvxvarno is the number of variable marks on top +\advance\kvxvarno by -\kvyvarno +\kvxsize=1 +\kvpoweroftwo{\kvxsize}{\kvxvarno} +\kvysize=1 +\kvpoweroftwo{\kvysize}{\kvyvarno} +\advance\kvxsize by \kvyvarno +\advance\kvxvarno by \kvysize +\unitlength\kvunitlength +\begin{picture}(\kvxsize,\kvxvarno)(-\kvyvarno,-\kvysize) +\advance\kvxsize by -\kvyvarno +\advance\kvxvarno by -\kvysize +\put(0,-\kvysize){% +\begin{picture}(\kvxsize,\kvysize) +\multiput(0,0)(0,1){\kvysize}{\line(1,0){\kvxsize}} +\multiput(0,0)(1,0){\kvxsize}{\line(0,1){\kvysize}} +\put(0,\kvysize){\line(1,0){\kvxsize}} +\put(\kvxsize,0){\line(0,1){\kvysize}} +#5 +\end{picture}} +\put(-\kvyvarno,0){\makebox(\kvyvarno,\kvxvarno){#2}} +\kvindexcounter=0 +\kvargumentstring{#4} +\put(0,-\kvysize){\veitchmakechart{\kvysize}} +\ifodd\kvvarno +{\divide\kvxsize by 2 +\put(\kvxsize,-\kvysize){\veitchmakechart{\kvysize}}} +\fi +\kvargumentstring{#3} +\veitchmakemarks +%% +\end{picture} +}% +%% + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: