summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/askmaps/askmaps.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/askmaps/askmaps.sty')
-rw-r--r--macros/latex/contrib/askmaps/askmaps.sty571
1 files changed, 371 insertions, 200 deletions
diff --git a/macros/latex/contrib/askmaps/askmaps.sty b/macros/latex/contrib/askmaps/askmaps.sty
index 9ff0122fbb..ab77400992 100644
--- a/macros/latex/contrib/askmaps/askmaps.sty
+++ b/macros/latex/contrib/askmaps/askmaps.sty
@@ -1,34 +1,62 @@
%%
%% askmaps.sty
%%
-%% American Style K-maps (2, 3, 4 and 5 variables)
+%% American Style K-maps (1, 2, 3, 4 and 5 variables)
%%
-%% (c)2013 Jesse op den Brouw, <J.E.J.opdenBrouw@hhs.nl>
+%% (c)2020 Jesse op den Brouw, <J.E.J.opdenBrouw@hhs.nl>
%%
%% LPPL LaTeX Public Project License
+%%
+%%
+%% Original rel 0.1 : 2013-12-04
+%% Update rel 0.2 : 2020-10-23
+%% added option oldstylef
+%% added option newstylef
+%% added askmapi - a K-map for one variable
+%% added askmapiiialt - alternate (vertical) version op K-map III
+%% added formatting index size, contents size and bit combination size.
+%% added support for \kvindex and \nokvindex macros when kvmacros.tex is
+%% loaded
+%% added formatting for left-placed variables
+%% implemented a debug possibility
+%% implemented linelength of variable separator
+%% resolved an issue with multiple overfull \hbox'es
+%% added a section on creating covers
+%% changed the use of \askmapindexsize et al. to include the size and
+%% shape of the fonts used
+%%
%%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
%% Version and date
-\gdef\askmapsversion{0.1}
-\gdef\askmapsdate{2013/12/04}
+\gdef\askmapsversion{0.2}
+\gdef\askmapsdate{2020/10/23}
%
\ProvidesPackage{askmaps}[\askmapsdate\space Version \askmapsversion\space
LaTeX package for drawing American Style Karnaugh maps]
-%% This package provides 2, 3, 4 and 5 variable Karnaugh maps that can
+%% This package provides 1, 2, 3, 4 and 5 variable Karnaugh maps that can
%% be found in numerous american text books on digital design. Note
%% that it is possible to draw many different K-maps that are all
%% legitimate as long as a square (minterm) differs only in one
-%% literal with its adjacent squares.
+%% literal with its adjacent squares. There is an alternate form of the
+%% 3 variable K-map available.
%% This package draws K-maps where the most significant input variables
%% are placed on top of the columns and the least significant variables
-%% are placed left of the rows. Such K-maps can be found in the text books:
-%% Design of Logic Systems, 2nd, Lewin & Protheroe
-%% Digital System Design with VHDL, 2nd, Zwolinski
+%% are placed left of the rows.
%% Packages needed
\RequirePackage{pict2e}
+%% Get the only possible option
+\newcommand{\askmap@usecapf}{\askmap@optftrue}
+\DeclareOption{disablef}{\renewcommand{\askmap@usecapf}{\askmap@optffalse}}
+\DeclareOption*{\PackageWarning{askmaps}{Unknown '\CurrentOption' in package askmaps}}
+\ProcessOptions\relax
+
+%% For debugging purposes, currently draw rectangles around the maps
+%% Use only for debugging purposes
+\newif\ifaskmap@debug\askmap@debugfalse
+
%% The macros \askmapargumentstring, \askmapgetchar and \askmapgetonechar are
%% needed to process the variable-length parameters in \askmapxxx:
%% These routine politely reused from karnaugh package
@@ -40,17 +68,23 @@
\newdimen\askmapunitlength
\askmapunitlength=10mm
+%% The sizes (and shapes) of the text in the maps
+\newcommand{\askmapindexsize}{\scriptsize\slshape}
+\newcommand{\askmapcontentsize}{\normalsize}
+\newcommand{\askmapbitcombinationsize}{\footnotesize}
+
+%% Length of the line separating the input variables top-right and
+%% middle-left
+\newcommand{\askmapvarsep}{0.70}
+
%% Some use options
\newif\ifaskmap@opti% want indexes
\newif\ifaskmap@optf% want output function printed
\newif\ifaskmap@optb% want input variable bit combinations at columns and rows
-%% We want bit combinations along with the columns and rows
-%\askmap@optbtrue
-
%% Process user options
\def\askmap@processoptions#1{%
- \askmap@optifalse\askmap@optftrue\askmap@optbtrue%
+ \askmap@optifalse\askmap@usecapf\askmap@optbtrue%
\@tfor\askmap@opt:=#1\do{%
\if i\askmap@opt\askmap@optitrue\fi%
\if I\askmap@opt\askmap@optifalse\fi%
@@ -69,27 +103,82 @@
%% #3 = function input variables
%% #4 = list of function values
%% #5 = user picture commands
+%\newcommand{\askmap}[5]{}%
+% Starred version or not
+%\@ifstar{\gdef\askmap@printoutputname{f}\askmap@askmap}{\gdef\askmap@printoutputname{F}\askmap@askmap}%
+%}
+%\newcommand{\askmap@askmap}[5]{%
\newcommand{\askmap}[5]{%
-\if 2#1\relax
- \askmapii{#2}{#3}{f}{#4}{#5}%
+\def\askmap@printoutputname{f}
+%% Check if the \kvcurrentindex is set to using indexes
+\def\askmap@printindex{i}
+\ifx\kvcurrentindex\undefined
+\def\askmap@printindex{I}
\else
- \if 3#1\relax
- \askmapiii{#2}{#3}{f}{#4}{#5}%
- \else
- \if 4#1\relax
- \askmapiv{#2}{#3}{f}{#4}{#5}%
- \else
- \if 5#1\relax
- \askmapv{#2}{#3}{f}{#4}{#5}%
- \else
- \PackageWarning{askmaps}{Sorry, no K-maps with #1 variables supported by package askmaps!}
- \fi%
- \fi%
- \fi%
-\fi%
+\ifx\kvcurrentindex\empty
+\def\askmap@printindex{I}
+\fi
+\fi
+%% Sort out the 'call' to the right macro
+\ifcase#1\relax
+ \PackageWarning{askmaps}{Sorry, no K-maps with #1 variables supported by
+package askmaps!}
+\or
+ \askmapi{#2}{#3}{\askmap@printoutputname\askmap@printindex}{#4}{#5}%
+\or
+ \askmapii{#2}{#3}{\askmap@printoutputname\askmap@printindex}{#4}{#5}%
+\or
+ \askmapiii{#2}{#3}{\askmap@printoutputname\askmap@printindex}{#4}{#5}%
+\or
+ \askmapiv{#2}{#3}{\askmap@printoutputname\askmap@printindex}{#4}{#5}%
+\or
+ \askmapv{#2}{#3}{\askmap@printoutputname\askmap@printindex}{#4}{#5}%
+\else
+ \PackageWarning{askmaps}{Sorry, no K-maps with #1 variables supported by
+package askmaps!}
+\fi
}%
%% #1= output function variable
+%% #2= 1 input variable
+%% #3= options list
+%% #4= 2 function values
+%% #5= user defined picture commands
+\newcommand{\askmapi}[5]{%
+{\unitlength\askmapunitlength%
+\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
+\begin{picture}(4.4,2)(-1.2,0)%
+\linethickness{1pt}%
+\put(0,0){\framebox(2,1){}}%
+\put(1,0){\line(0,1){1}}%
+\ifaskmap@optf%
+\put(2.35,1.25){\askmapcontentsize#1}%
+\put(1.9,0.9){\line(1,1){0.4}}%
+\fi%
+\askmapargumentstring{#2}%
+\put(-0.4,1.55){\askmapcontentsize\askmapgetchar}%
+\ifaskmap@opti%
+\put(0.01,0.03){\askmapindexsize 0}%
+\put(1.03,0.03){\askmapindexsize 1}%
+\fi%
+\ifaskmap@optb%
+\put(0.5,1.1){\makebox(0,0)[b]{\askmapbitcombinationsize 0}}%
+\put(1.5,1.1){\makebox(0,0)[b]{\askmapbitcombinationsize 1}}%
+\fi%
+\askmapargumentstring{#4}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\thicklines%
+\put(0,1){\line(-1,1){\askmapvarsep}}%
+\thinlines%
+#5%
+\end{picture}%
+\ifaskmap@debug}\else\fi%
+}%
+}% end \askmapi
+
+%% #1= output function variable
%% #2= 2 input variables
%% #3= options list
%% #4= 4 function values
@@ -97,42 +186,47 @@
\newcommand{\askmapii}[5]{%
{\unitlength\askmapunitlength%
\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
\begin{picture}(4.4,3)(-1.2,0)%
\linethickness{1pt}%
-\put(0,0){\framebox(2,2)}%
+\put(0,0){\framebox(2,2){}}%
\put(1,0){\line(0,1){2}}%
\put(0,1){\line(1,0){2}}%
\ifaskmap@optf%
-\put(2.35,2.25){#1}%
+\put(2.35,2.25){\askmapcontentsize#1}%
\put(1.9,1.9){\line(1,1){0.4}}%
\fi%
\askmapargumentstring{#2}%
-\put(-0.4,2.55){\askmapgetchar}%
-\put(-0.9,2.1){\makebox(0.5,0){\askmapgetchar}}%
+\put(-0.4,2.55){\askmapcontentsize\askmapgetchar}%
+%\put(-0.9,2.1){\askmapcontentsize\askmapgetchar}%
+%\put(-1.0,1.9){\framebox(0.5,0.5)[r]{\askmapcontentsize\askmapgetchar}}%
+\put(-0.5,2.1){\makebox(0.0,0.0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-0.9,2.1){\makebox(0.5,0){\askmapcontentsize\askmapgetchar}}%
\ifaskmap@opti%
-\put(0.01,1.05){\scriptsize{\textsl{0}}}% a little bit to the edge because
-\put(0.01,0.03){\scriptsize{\textsl{1}}}% the edge line is thick
-\put(1.03,1.05){\scriptsize{\textsl{2}}}%
-\put(1.03,0.03){\scriptsize{\textsl{3}}}%
+\put(0.01,1.05){\askmapindexsize 0}% a little bit to the edge because
+\put(0.01,0.03){\askmapindexsize 1}% the edge line is thick
+\put(1.03,1.05){\askmapindexsize 2}%
+\put(1.03,0.03){\askmapindexsize 3}%
\fi%
\ifaskmap@optb%
-\put(-0.6,1.5){\makebox(0.5,0)[r]{\footnotesize{0}}}%
-\put(-0.6,0.5){\makebox(0.5,0)[r]{\footnotesize{1}}}%
-\put(0.5,2.2){\makebox(0,0){\footnotesize{0}}}%
-\put(1.5,2.2){\makebox(0,0){\footnotesize{1}}}%
+\put(-0.6,1.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 0}}%
+\put(-0.6,0.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 1}}%
+\put(0.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 0}}%
+\put(1.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 1}}%
\fi%
\askmapargumentstring{#4}%
-\put(0.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,0.5){\makebox(0,0){\askmapgetchar}}%
+\put(0.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
\thicklines%
-\put(0,2){\line(-1,1){0.70}}%
+\put(0,2){\line(-1,1){\askmapvarsep}}%
\thinlines%
#5%
\end{picture}%
-}%
+\ifaskmap@debug}\else\fi%
}% end \askmapii
+}
%% #1= output function variable
%% #2= 3 input variables
@@ -142,50 +236,58 @@
\newcommand{\askmapiii}[5]{%
{\unitlength\askmapunitlength%
\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
\begin{picture}(6.4,3)(-1.2,0)%
\linethickness{1pt}%
-\put(0,0){\framebox(4,2)}%
+\put(0,0){\framebox(4,2){}}%
\multiput(1,0)(1,0){3}{\line(0,1){2}}%
\put(0,1){\line(1,0){4}}%
\ifaskmap@optf%
-\put(4.35,2.25){#1}%
+\put(4.35,2.25){\askmapcontentsize#1}%
\put(3.9,1.9){\line(1,1){0.4}}%
\fi%
\askmapargumentstring{#2}%
-\put(-0.4,2.55){\askmapgetchar\askmapgetchar}%
-\put(-0.9,2.1){\makebox(0.5,0){\askmapgetchar}}%
+\put(-0.4,2.55){\askmapcontentsize\askmapgetchar\askmapgetchar}%
+%\put(-0.9,2.1){\framebox(0.5,0.5)[rt]{\askmapcontentsize\askmapgetchar}}%
+%\put(-1.0,1.9){\framebox(0.5,0.5)[rt]{\askmapcontentsize\askmapgetchar}}%
+%\put(-1.0,1.9){\framebox(0.5,0.5)[r]{\askmapcontentsize\askmapgetchar}}%
+%\put(-0.9,2.1){\askmapcontentsize\askmapgetchar}%
+%\put(-0.9,2.1){\makebox(0.5,0){\askmapcontentsize\askmapgetchar}}%
+\put(-0.5,2.1){\makebox(0.0,0.0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-1.0,1.9){\makebox(0.5,0.45)[rt]{\askmapcontentsize\askmapgetchar}}%
\ifaskmap@opti%
-\put(0.01,1.05){\scriptsize{\textsl{0}}}%
-\put(0.01,0.03){\scriptsize{\textsl{1}}}%
-\put(1.03,1.05){\scriptsize{\textsl{2}}}%
-\put(1.03,0.03){\scriptsize{\textsl{3}}}%
-\put(3.03,1.05){\scriptsize{\textsl{4}}}%
-\put(3.03,0.03){\scriptsize{\textsl{5}}}%
-\put(2.03,1.05){\scriptsize{\textsl{6}}}%
-\put(2.03,0.03){\scriptsize{\textsl{7}}}%
+\put(0.01,1.05){\askmapindexsize 0}%
+\put(0.01,0.03){\askmapindexsize 1}%
+\put(1.03,1.05){\askmapindexsize 2}%
+\put(1.03,0.03){\askmapindexsize 3}%
+\put(3.03,1.05){\askmapindexsize 4}%
+\put(3.03,0.03){\askmapindexsize 5}%
+\put(2.03,1.05){\askmapindexsize 6}%
+\put(2.03,0.03){\askmapindexsize 7}%
\fi%
\askmapargumentstring{#4}%
-\put(0.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,0.5){\makebox(0,0){\askmapgetchar}}%
+\put(0.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
\ifaskmap@optb%
-\put(-0.6,1.5){\makebox(0.5,0)[r]{\footnotesize{0}}}%
-\put(-0.6,0.5){\makebox(0.5,0)[r]{\footnotesize{1}}}%
-\put(0.5,2.2){\makebox(0,0){\footnotesize{00}}}%
-\put(1.5,2.2){\makebox(0,0){\footnotesize{01}}}%
-\put(2.5,2.2){\makebox(0,0){\footnotesize{11}}}%
-\put(3.5,2.2){\makebox(0,0){\footnotesize{10}}}%
+\put(-0.6,1.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 0}}%
+\put(-0.6,0.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 1}}%
+\put(0.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 00}}%
+\put(1.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 01}}%
+\put(2.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 11}}%
+\put(3.5,2.1){\makebox(0,0)[b]{\askmapbitcombinationsize 10}}%
\fi%
\thicklines%
-\put(0,2){\line(-1,1){0.70}}%
+\put(0,2){\line(-1,1){\askmapvarsep}}%
\thinlines%
#5%
\end{picture}%
+\ifaskmap@debug}\else\fi%
}%
}% end \askmapiii
@@ -194,71 +296,135 @@
%% #3= options list
%% #4= 16 function values
%% #5= user defined picture commands
+\newcommand{\askmapiiialt}[5]{%
+{\unitlength\askmapunitlength%
+\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
+\begin{picture}(4.4,5)(-1.2,0)%
+\linethickness{1pt}%
+\put(0,0){\framebox(2,4){}}%
+\put(1,0){\line(0,1){4}}%
+\multiput(0,1)(0,1){3}{\line(1,0){2}}%
+\ifaskmap@optf%
+\put(2.35,4.25){\askmapcontentsize#1}%
+\put(1.9,3.9){\line(1,1){0.4}}%
+\fi%
+\askmapargumentstring{#2}%
+\put(-0.4,4.55){\askmapcontentsize\askmapgetchar}%
+%\put(-1.0,4.1){\framebox(0.5,0){\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-1.0,3.9){\framebox(0.5,0.5)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+\put(-0.5,4.1){\makebox(0.0,0.0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-0.9,4.1){\makebox(0.5,0){\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+\ifaskmap@opti%
+\put(0.01,3.05){\askmapindexsize 0}%
+\put(0.01,2.05){\askmapindexsize 1}%
+\put(0.01,0.03){\askmapindexsize 2}%
+\put(0.01,1.05){\askmapindexsize 3}%
+\put(1.03,3.05){\askmapindexsize 4}%
+\put(1.03,2.05){\askmapindexsize 5}%
+\put(1.03,0.03){\askmapindexsize 6}%
+\put(1.03,1.05){\askmapindexsize 7}%
+\fi%
+\askmapargumentstring{#4}%
+\put(0.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\ifaskmap@optb%
+\put(-0.6,3.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 00}}%
+\put(-0.6,2.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 01}}%
+\put(-0.6,1.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 11}}%
+\put(-0.6,0.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 10}}%
+\put(0.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 0}}%
+\put(1.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 1}}%
+\fi
+\thicklines%
+\put(0,4){\line(-1,1){\askmapvarsep}}%
+\thinlines%
+#5%
+\end{picture}%
+\ifaskmap@debug}\else\fi%
+}%
+}% end \askmapiiialt
+
+%% #1= output function variable
+%% #2= 4 input variables
+%% #3= options list
+%% #4= 16 function values
+%% #5= user defined picture commands
\newcommand{\askmapiv}[5]{%
{\unitlength\askmapunitlength%
\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
\begin{picture}(6.4,5)(-1.2,0)%
\linethickness{1pt}%
-\put(0,0){\framebox(4,4)}%
+\put(0,0){\framebox(4,4){}}%
\multiput(1,0)(1,0){3}{\line(0,1){4}}%
\multiput(0,1)(0,1){3}{\line(1,0){4}}%
\ifaskmap@optf%
-\put(4.35,4.25){#1}%
+\put(4.35,4.25){\askmapcontentsize#1}%
\put(3.9,3.9){\line(1,1){0.4}}%
\fi%
\askmapargumentstring{#2}%
-\put(-0.4,4.55){\askmapgetchar\askmapgetchar}%
-\put(-1.0,4.1){\makebox(0.5,0){\askmapgetchar\askmapgetchar}}%
+\put(-0.4,4.55){\askmapcontentsize\askmapgetchar\askmapgetchar}%
+%\put(-1.0,4.1){\framebox(0.5,0){\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+\put(-0.5,4.1){\makebox(0.0,0.0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-1.0,4.1){\makebox(0.5,0){\askmapcontentsize\askmapgetchar\askmapgetchar}}%
\ifaskmap@opti%
-\put(0.01,3.05){\scriptsize{\textsl{0}}}%
-\put(0.01,2.05){\scriptsize{\textsl{1}}}%
-\put(0.01,0.03){\scriptsize{\textsl{2}}}%
-\put(0.01,1.05){\scriptsize{\textsl{3}}}%
-\put(1.03,3.05){\scriptsize{\textsl{4}}}%
-\put(1.03,2.05){\scriptsize{\textsl{5}}}%
-\put(1.03,0.03){\scriptsize{\textsl{6}}}%
-\put(1.03,1.05){\scriptsize{\textsl{7}}}%
-\put(3.03,3.05){\scriptsize{\textsl{8}}}%
-\put(3.03,2.05){\scriptsize{\textsl{9}}}%
-\put(3.03,0.03){\scriptsize{\textsl{10}}}%
-\put(3.03,1.05){\scriptsize{\textsl{11}}}%
-\put(2.03,3.05){\scriptsize{\textsl{12}}}%
-\put(2.03,2.05){\scriptsize{\textsl{13}}}%
-\put(2.03,0.03){\scriptsize{\textsl{14}}}%
-\put(2.03,1.05){\scriptsize{\textsl{15}}}%
+\put(0.01,3.05){\askmapindexsize 0}%
+\put(0.01,2.05){\askmapindexsize 1}%
+\put(0.01,0.03){\askmapindexsize 2}%
+\put(0.01,1.05){\askmapindexsize 3}%
+\put(1.03,3.05){\askmapindexsize 4}%
+\put(1.03,2.05){\askmapindexsize 5}%
+\put(1.03,0.03){\askmapindexsize 6}%
+\put(1.03,1.05){\askmapindexsize 7}%
+\put(3.03,3.05){\askmapindexsize 8}%
+\put(3.03,2.05){\askmapindexsize 9}%
+\put(3.03,0.03){\askmapindexsize 10}%
+\put(3.03,1.05){\askmapindexsize 11}%
+\put(2.03,3.05){\askmapindexsize 12}%
+\put(2.03,2.05){\askmapindexsize 13}%
+\put(2.03,0.03){\askmapindexsize 14}%
+\put(2.03,1.05){\askmapindexsize 15}%
\fi%
\askmapargumentstring{#4}%
-\put(0.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,1.5){\makebox(0,0){\askmapgetchar}}%
+\put(0.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
\ifaskmap@optb%
-\put(-0.6,3.5){\makebox(0.5,0)[r]{\footnotesize{00}}}%
-\put(-0.6,2.5){\makebox(0.5,0)[r]{\footnotesize{01}}}%
-\put(-0.6,1.5){\makebox(0.5,0)[r]{\footnotesize{11}}}%
-\put(-0.6,0.5){\makebox(0.5,0)[r]{\footnotesize{10}}}%
-\put(0.5,4.2){\makebox(0,0){\footnotesize{00}}}%
-\put(1.5,4.2){\makebox(0,0){\footnotesize{01}}}%
-\put(2.5,4.2){\makebox(0,0){\footnotesize{11}}}%
-\put(3.5,4.2){\makebox(0,0){\footnotesize{10}}}%
+\put(-0.6,3.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 00}}%
+\put(-0.6,2.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 01}}%
+\put(-0.6,1.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 11}}%
+\put(-0.6,0.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 10}}%
+\put(0.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 00}}%
+\put(1.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 01}}%
+\put(2.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 11}}%
+\put(3.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 10}}%
\fi
\thicklines%
-\put(0,4){\line(-1,1){0.70}}%
+\put(0,4){\line(-1,1){\askmapvarsep}}%
\thinlines%
#5%
\end{picture}%
+\ifaskmap@debug}\else\fi%
}%
}% end \askmapiv
@@ -270,104 +436,109 @@
\newcommand{\askmapv}[5]{%
{\unitlength\askmapunitlength%
\askmap@processoptions{#3}%
+\ifaskmap@debug\fboxsep0pt\fbox{\else\fi%
\begin{picture}(10.4,5)(-1.2,0)%
\linethickness{1pt}%
-\put(0,0){\framebox(8,4)}%
+\put(0,0){\framebox(8,4){}}%
\multiput(1,0)(1,0){7}{\line(0,1){4}}%
\multiput(0,1)(0,1){3}{\line(1,0){8}}%
\ifaskmap@optf%
-\put(8.35,4.25){#1}%
+\put(8.35,4.25){\askmapcontentsize#1}%
\put(7.9,3.9){\line(1,1){0.4}}%
\fi%
\askmapargumentstring{#2}%
-\put(-0.4,4.55){\askmapgetchar\askmapgetchar\askmapgetchar}%
-\put(-1.0,4.1){\makebox(0.5,0){\askmapgetchar\askmapgetchar}}%
+\put(-0.4,4.55){\askmapcontentsize\askmapgetchar\askmapgetchar\askmapgetchar}%
+%\put(-1.0,3.9){\framebox(0.5,0.5)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-1.0,4.1){\framebox(0.5,0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}
+\put(-0.5,4.1){\makebox(0.0,0.0)[r]{\askmapcontentsize\askmapgetchar\askmapgetchar}}%
+%\put(-1.0,4.1){\makebox(0.5,0){\askmapcontentsize\askmapgetchar\askmapgetchar}}%
\ifaskmap@opti%
-\put(0.01,3.05){\scriptsize{\textsl{0}}}%
-\put(0.01,2.05){\scriptsize{\textsl{1}}}%
-\put(0.01,0.03){\scriptsize{\textsl{2}}}%
-\put(0.01,1.05){\scriptsize{\textsl{3}}}%
-\put(1.03,3.05){\scriptsize{\textsl{4}}}%
-\put(1.03,2.05){\scriptsize{\textsl{5}}}%
-\put(1.03,0.03){\scriptsize{\textsl{6}}}%
-\put(1.03,1.05){\scriptsize{\textsl{7}}}%
-\put(3.03,3.05){\scriptsize{\textsl{8}}}%
-\put(3.03,2.05){\scriptsize{\textsl{9}}}%
-\put(3.03,0.03){\scriptsize{\textsl{10}}}%
-\put(3.03,1.05){\scriptsize{\textsl{11}}}%
-\put(2.03,3.05){\scriptsize{\textsl{12}}}%
-\put(2.03,2.05){\scriptsize{\textsl{13}}}%
-\put(2.03,0.03){\scriptsize{\textsl{14}}}%
-\put(2.03,1.05){\scriptsize{\textsl{15}}}%
-\put(7.03,3.05){\scriptsize{\textsl{16}}}%
-\put(7.03,2.05){\scriptsize{\textsl{17}}}%
-\put(7.03,0.03){\scriptsize{\textsl{18}}}%
-\put(7.03,1.05){\scriptsize{\textsl{19}}}%
-\put(6.03,3.05){\scriptsize{\textsl{20}}}%
-\put(6.03,2.05){\scriptsize{\textsl{21}}}%
-\put(6.03,0.03){\scriptsize{\textsl{22}}}%
-\put(6.03,1.05){\scriptsize{\textsl{23}}}%
-\put(4.03,3.05){\scriptsize{\textsl{24}}}%
-\put(4.03,2.05){\scriptsize{\textsl{25}}}%
-\put(4.03,0.03){\scriptsize{\textsl{26}}}%
-\put(4.03,1.05){\scriptsize{\textsl{27}}}%
-\put(5.03,3.05){\scriptsize{\textsl{28}}}%
-\put(5.03,2.05){\scriptsize{\textsl{29}}}%
-\put(5.03,0.03){\scriptsize{\textsl{30}}}%
-\put(5.03,1.05){\scriptsize{\textsl{31}}}%
+\put(0.01,3.05){\askmapindexsize 0}%
+\put(0.01,2.05){\askmapindexsize 1}%
+\put(0.01,0.03){\askmapindexsize 2}%
+\put(0.01,1.05){\askmapindexsize 3}%
+\put(1.03,3.05){\askmapindexsize 4}%
+\put(1.03,2.05){\askmapindexsize 5}%
+\put(1.03,0.03){\askmapindexsize 6}%
+\put(1.03,1.05){\askmapindexsize 7}%
+\put(3.03,3.05){\askmapindexsize 8}%
+\put(3.03,2.05){\askmapindexsize 9}%
+\put(3.03,0.03){\askmapindexsize 10}%
+\put(3.03,1.05){\askmapindexsize 11}%
+\put(2.03,3.05){\askmapindexsize 12}%
+\put(2.03,2.05){\askmapindexsize 13}%
+\put(2.03,0.03){\askmapindexsize 14}%
+\put(2.03,1.05){\askmapindexsize 15}%
+\put(7.03,3.05){\askmapindexsize 16}%
+\put(7.03,2.05){\askmapindexsize 17}%
+\put(7.03,0.03){\askmapindexsize 18}%
+\put(7.03,1.05){\askmapindexsize 19}%
+\put(6.03,3.05){\askmapindexsize 20}%
+\put(6.03,2.05){\askmapindexsize 21}%
+\put(6.03,0.03){\askmapindexsize 22}%
+\put(6.03,1.05){\askmapindexsize 23}%
+\put(4.03,3.05){\askmapindexsize 24}%
+\put(4.03,2.05){\askmapindexsize 25}%
+\put(4.03,0.03){\askmapindexsize 26}%
+\put(4.03,1.05){\askmapindexsize 27}%
+\put(5.03,3.05){\askmapindexsize 28}%
+\put(5.03,2.05){\askmapindexsize 29}%
+\put(5.03,0.03){\askmapindexsize 30}%
+\put(5.03,1.05){\askmapindexsize 31}%
\fi%
\askmapargumentstring{#4}%
-\put(0.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(0.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(1.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(3.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(2.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(7.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(7.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(7.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(7.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(6.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(6.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(6.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(6.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(4.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(4.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(4.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(4.5,1.5){\makebox(0,0){\askmapgetchar}}%
-\put(5.5,3.5){\makebox(0,0){\askmapgetchar}}%
-\put(5.5,2.5){\makebox(0,0){\askmapgetchar}}%
-\put(5.5,0.5){\makebox(0,0){\askmapgetchar}}%
-\put(5.5,1.5){\makebox(0,0){\askmapgetchar}}%
+\put(0.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(0.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(1.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(3.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(2.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(7.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(7.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(7.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(7.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(6.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(6.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(6.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(6.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(4.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(4.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(4.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(4.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(5.5,3.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(5.5,2.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(5.5,0.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
+\put(5.5,1.5){\makebox(0,0){\askmapcontentsize\askmapgetchar}}%
\ifaskmap@optb%
-\put(-0.6,3.5){\makebox(0.5,0)[r]{\footnotesize{00}}}%
-\put(-0.6,2.5){\makebox(0.5,0)[r]{\footnotesize{01}}}%
-\put(-0.6,1.5){\makebox(0.5,0)[r]{\footnotesize{11}}}%
-\put(-0.6,0.5){\makebox(0.5,0)[r]{\footnotesize{10}}}%
-\put(0.5,4.2){\makebox(0,0){\footnotesize{000}}}%
-\put(1.5,4.2){\makebox(0,0){\footnotesize{001}}}%
-\put(2.5,4.2){\makebox(0,0){\footnotesize{011}}}%
-\put(3.5,4.2){\makebox(0,0){\footnotesize{010}}}%
-\put(4.5,4.2){\makebox(0,0){\footnotesize{110}}}%
-\put(5.5,4.2){\makebox(0,0){\footnotesize{111}}}%
-\put(6.5,4.2){\makebox(0,0){\footnotesize{101}}}%
-\put(7.5,4.2){\makebox(0,0){\footnotesize{100}}}%
+\put(-0.6,3.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 00}}%
+\put(-0.6,2.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 01}}%
+\put(-0.6,1.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 11}}%
+\put(-0.6,0.5){\makebox(0.5,0)[r]{\askmapbitcombinationsize 10}}%
+\put(0.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 000}}%
+\put(1.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 001}}%
+\put(2.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 011}}%
+\put(3.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 010}}%
+\put(4.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 110}}%
+\put(5.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 111}}%
+\put(6.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 101}}%
+\put(7.5,4.1){\makebox(0,0)[b]{\askmapbitcombinationsize 100}}%
\fi%
\thicklines%
-\put(0,4){\line(-1,1){0.70}}%
+\put(0,4){\line(-1,1){\askmapvarsep}}%
\thinlines%
#5%
\end{picture}%
+\ifaskmap@debug}\else\fi%
}%
}% end \askmapv