diff options
Diffstat (limited to 'macros/latex/contrib/wargame/source/chit/misc.dtx')
-rw-r--r-- | macros/latex/contrib/wargame/source/chit/misc.dtx | 429 |
1 files changed, 31 insertions, 398 deletions
diff --git a/macros/latex/contrib/wargame/source/chit/misc.dtx b/macros/latex/contrib/wargame/source/chit/misc.dtx index de373864e6..a5b9a79b24 100644 --- a/macros/latex/contrib/wargame/source/chit/misc.dtx +++ b/macros/latex/contrib/wargame/source/chit/misc.dtx @@ -1,391 +1,5 @@ % \iffalse -% -------------------------------------------------------------------- -%<*chit> -% \fi -% \subsubsection{Other pictures} -% Pictures for frame, factors, left, right, and below. -% \begin{macrocode} -\tikzset{ - pics/chit/shade/.style={ - code={% - \path[fill=white,opacity=#1,pic actions] (-.6,-.6) rectangle(.6,.6);}}, - pics/chit/eliminate/.style={ - code={% - \path[fill=red,opacity=#1,pic actions] (-.6,-.6) rectangle(.6,.6);}}, - pics/chit/shade/.default=0.5, - pics/chit/eliminate/.default=0.25, -} -\def\shadechit(#1){% - \pic at (#1) {chit/shade};} -\def\eliminatechit(#1){% - \pic at (#1) {chit/eliminate};} -% \end{macrocode} -% -% -% \iffalse -% -------------------------------------------------------------------- -% \fi -% \subsubsection{Stacking of chits} -% -% Stacking of chits. The key \spec{chit/stack direction} sets the -% default direction to make the stack in. -% -% \begin{macrocode} -% offset, location, direction, list -\tikzset{% - chit/stack direction/.store in=\chit@stack@dir, - chit/stack direction/.initial={(.3,.3)}, -} -% \end{macrocode} -% -% Now the code -% -% \begin{macrocode} -\def\chit@stack@dir{(.3,.3)} -\def\stackchits(#1){% - \@ifnextchar({\st@ckchits{#1}}{\st@ckchits{#1}(.3,.3)}%) -} -\def\st@ckchits#1(#2)#3{ - \chit@dbg{2}{Stacking chits `#1', `#2', `#3'} - \edef\xy{#1} - \chit@dbg{4}{Stack start at \xy} - \foreach[count=\i from 0] \c/\o in {#3} {% - \ifx\c\empty\else% - \edef\ccc{\c} - \chit@dbg{2}{Adding \meaning\ccc\space to stack at (\xy)' `\o'} - \expandafter\ccc(\xy) - %% - \ifx\c\o\else - %\chit@dbg{0}{Option: \o} - \edef\ccc{\o} - \expandafter\ccc(\xy) - \fi - \expandafter\ccc(\xy) - \tikzmath{% - coordinate \cc; - \cc = (\xy) + (#2);} - \xdef\xy{\cc} - \fi - } -} -% \end{macrocode} -% -% \iffalse -% -------------------------------------------------------------------- -% \fi -% \subsubsection{Making order of battle charts} -% -% -% Macros for making OOBs -% -% Style for turns -% -% \begin{macrocode} -\tikzset{ - chit/oob turn/.pic={\node[pic actions]{#1};}} -% \end{macrocode} -% -% -% current c, current r, n-columns, cell size, y -% -% \begin{macrocode} -\def\chit@oob@cellupdate(#1,#2)#3#4#5{% - \edef\f{\ifwg@oob@inv-1\else1\fi}% - \chit@dbg{1}{ \space Cell update `c=|#1|' vs `#4'*(`#3'-1)} - \pgfmathparse{int(ifthenelse(abs(#1)>=#4*(#3-1),#5-1,#5))}% - \xdef#5{\pgfmathresult} - \pgfmathparse{ifthenelse(abs(#1)>=#4*(#3-1),#2-#4,#2)}% - \xdef#2{\pgfmathresult}% - \pgfmathparse{ifthenelse(abs(#1)>=#4*(#3-1),0,#1+\f*#4)}% - \xdef#1{\pgfmathresult}% - \chit@dbg{1}{ \space\space-> `\string#5'=#5 `\string#2'=#2 `\string#1'=#1} -} -% \end{macrocode} -% -% current c, current r, cell size, extra vertical spacing -% -% \begin{macrocode} -\def\chit@oob@rowupdate(#1,#2)#3#4{% - \chit@dbg{2}{ Row update c=`#1',r=`#2',s=`#3',e=`#4'} - %\pgfmathparse{ifthenelse(#1>0,#2-#3,#2)}% - \pgfmathparse{#2-#3)}% - \xdef#2{\pgfmathresult}% - %\xdef#1{0} - \chit@dbg{2}{ \space\space-> update `\string#2'=#2} -} -% \end{macrocode} -% current c, current r, cell size, extra spacing -% -% \begin{macrocode} -\def\chit@oob@turnupdate(#1,#2)#3#4{% - \chit@dbg{2}{ Turn update c=`#1',r=`#2',s=`#3',e=`#4'} - % \pgfmathparse{#2-ifthenelse(#1>0,#3,0)-#4}% - \pgfmathparse{#2-#4-ifthenelse(abs(#1)>0.0001,#3,0)} - \xdef#2{\pgfmathresult}% - \xdef#1{0}% - \chit@dbg{2}{ \space\space-> update `\string#1'=#1,`\string#2'=#2} -} -% \end{macrocode} -% chit list, n-colls, cell size, extra vertical spacing -% -% This expects a list of lists of chits, one list per turn; the -% maximum number of columns; the size of cells, extra spacing between -% turns. -% -% Note, the list of lists leaf elements should be styles for the -% chits. -% -% This depends on the Tikz pic \texttt{chit/oob~turn} which takes the -% number as argument. -% -% -% \begin{macrocode} -\newif\ifwg@oob@inv\wg@oob@invfalse -\def\wg@star@oob{\wg@oob@invtrue\wg@oob} -\def\wg@nostar@oob{\wg@oob@invfalse\wg@oob} -\def\oob{% - \@ifstar{\wg@star@oob% - }{\wg@nostar@oob% - }% -} -\def\wg@oob#1#2#3#4{ - \def\r{0} - \chit@dbg{1}{OOB: `#1'} - \foreach[count=\ti from 0] \t/\y in #1{ - \xdef\o{\r} - \def\c{0} - \ifx\t\y\def\y{0}\fi - \chit@dbg{1}{Turn \ti\space(\r,\t,y=\y):'} - \ifwg@oob@inv% - \pic at ( .5,\r) {chit/oob turn=\ti};% - \else - \pic at (-.5,\r) {chit/oob turn=\ti};% - \fi% - \ifx\t\empty\else% - \foreach \u/\m in \t{ - %% \chit@dbg{2}{ `\u'=`\m'} - \ifx\u\empty\else - \ifx\m\@empty\def\m{1}\fi - \ifx\u\m\def\m{1}\fi - \foreach \n in {1,...,\m}{% - \ifx\u\chit@blank\else - \chit[\u=\ti,zone oob point={\u}{\c}{\r}](\c,\r); - \fi - \chit@oob@cellupdate(\c,\r){#2}{#3}{\y} - } - \fi - } - \fi - \chit@dbg{1}{ End of chits in turn - \ti\space(c=`\c',r=`\r',o='\o',y='\y')} - % IF no units where given, then we force \c to be non-zero so that - % \chit@oob@turnupdate increments the row - \ifx\t\@empty - \def\c{#3} - \chit@dbg{2}{ Turn is empty, set c=`\c'} - \fi - %\ifnum\y<0% No explicit number of rows given - % \def\c{#3} - % \chit@dbg{2}{ No explicit number of rows given, set c=`\c'} - %\fi - % In case the user gave and explicit number of rows, add the rows - % that are missing. \y is initially set to the number of - % requested rows, and then decremented every time we go down one - % row. So if the number of rows we did so far is N, and the - % requested number of rows is M, then the loop below adds M-N - % rows. - \ifnum\y>0% - \chit@dbg{2}{ Looping rows from 2 to \y, break when row > \y}% - \foreach \rr in {2,...,\y}{ - %\ifnum\rr>\y% A little funny, but \y can be negative! - % \chit@dbg{2}{ \space Breaking loop \rr\space > \y}% - % \breakforeach% - %\else% - \chit@oob@rowupdate(\c,\r){#3}{#4} - %\fi - } - \fi - % This will zero \c. However, if on entry |\c|>0, then we also - % increment the row - \chit@oob@turnupdate(\c,\r){#3}{#4} - \chit@dbg{1}{End of turn \ti\space(c=`\c',r=`\r',o='\o',y='\y')} - } - \chit@dbg{2}{End of OOB (c=`\c',r=`\r',y=`\y')} -} -% \end{macrocode} -% -% \iffalse -% -------------------------------------------------------------------- -% \fi -% \subsubsection{Table of chits} -% -% \begin{macrocode} -\tikzset{ - chit/cell background/.style={fill=black}, - blank chit/.style={/chit/frame={draw=none,fill=none}}, -} -% \end{macrocode} -% -% These macros are used when we set tables of chits. This allows us -% to define blank spaces in the table by giving the element -% \texttt{blank~chit}. -% -% \begin{macrocode} -\def\chit@blank{blank chit} -\def\chit@cellbg(#1,#2)#3{% - \draw[chit/cell background](#1-#3/2,#2-#3/2) rectangle++(#3,#3); -} -% \end{macrocode} -% -% \begin{Macro}{\ifchits@reset} -% -% This `if' controls whether to reset the coordinates to the origin -% when \cs{chits} is called. If true, then reset for a new table. -% -% \begin{macrocode} -\newif\ifchits@reset\chits@resettrue -% \end{macrocode} -% \end{Macro} -% -% \begin{Macro}{\chits,\@chits,\chit@sng@cellupdate} -% \begin{macrocode} -\def\chit@sng@cellupdate(#1,#2)#3#4{% - \chit@dbg{2}{Current `#1' vs `#4'*(`#3'+1)} - \pgfmathparse{ifthenelse(#1>=#4*(#3-1),#2-#4,#2)}% - \xdef#2{\pgfmathresult}% - \pgfmathparse{ifthenelse(#1>=#4*(#3-1),0,#1+#4)}% - \xdef#1{\pgfmathresult}% -} -% \end{macrocode} -% -% The stared version (\cs{chits*}) of this macro continues the -% previously set chit table. -% -% \begin{macrocode} -\def\chits{% - \@ifstar{\chits@resetfalse\@chits}{\chits@resettrue\@chits}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@chits#1#2#3{ - \ifchits@reset - \def\r{0}% - \def\c{0}% - \fi - \chit@dbg{1}{Chits to make: #1}% - \foreach[count=\ti from 0] \t/\x in #1{% - \chit@dbg{2}{Turn `\t' with option `\x'} - \ifx\t\empty\else% - \foreach \u/\m in \t{% - \ifx\u\empty\else% - \chit@dbg{2}{Next chit `\u' with possible multiplicity `\m'}% - \ifx\m\@empty\def\m{1}\fi% - \ifx\u\m\def\m{1}\fi% - \chit@dbg{2}{Next chit `\u' multiplicity `\m'}% - \foreach \n in {1,...,\m}{% - \ifx\u\chit@blank% - \chit@dbg{3}{Ignoring blank chit:\u}% - \else% - \chit@cellbg(\c,\r){#3}% - \chit[\u=\ti](\c,\r)% - \chit@sng@cellupdate(\c,\r){#2}{#3}% - \fi% - }% - \fi% - }% - \fi% - }% -} -% \end{macrocode} -% \end{Macro} -% -% \begin{Macro}{\doublechits, -% \@doublechits, -% \chit@dbl@cellupdate, -% \chit@dbl@flip} -% \begin{enumerate} -% \item coordinates -% \item coordinates -% \item cell-size -% \end{enumerate} -% -% \begin{macrocode} -\def\chit@dbl@flip(#1,#2)#3{% - \pgfmathparse{-#1}% - \xdef\mc{\pgfmathresult}% -} -% \end{macrocode} -% -% \begin{enumerate} -% \item coordinates -% \item coordinates -% \item Number of columns -% \item cell-size -% \end{enumerate} -% -% \begin{macrocode} -\def\chit@dbl@cellupdate(#1,#2)#3#4{% - \pgfmathparse{ifthenelse(#1<-#4/2,#2,#4+#2)}% - \xdef#2{\pgfmathresult}% - \pgfmathparse{ifthenelse(#1<-#4/2,#4+#1,-(#3-.5)*#4)}% - \xdef#1{\pgfmathresult}% -} -% \end{macrocode} -% -% \begin{enumerate} -% \item List of list of keys -% \item Number of columns -% \item size of each cell -% \end{enumerate} -% -% The stared version (\cs{doublechits*}) of this macro continues the -% previously set chit table. -% -% \begin{macrocode} -\def\doublechits{% - \@ifstar{\chits@resetfalse\@doublechits}{\chits@resettrue\@doublechits}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@doublechits#1#2#3{% - \chit@dbg{1}{Setting double-sided chits: #1} - \ifchits@reset - \pgfmathparse{-(#2-.5)*#3} - \xdef\c{\pgfmathresult} - \def\r{0} - \fi - - \foreach[count=\ti from 0] \t/\x in #1{ - \ifx\t\empty\else% - \foreach \u/\m in \t{ - \ifx\u\empty\else - \ifx\m\@empty\def\m{1}\else% - \ifx\u\m\def\m{1}\fi\fi - \chit@dbg{2}{`\u'=`\m' (\c,\r)} - \foreach \n in {1,...,\m}{% - \ifx\u\chit@blank - \chit@dbg{3}{Ignoring blank chit:\u} - \else - \chit@cellbg(\c,\r){#3} - \chit[\u=\ti](\c,\r) - \chit@dbl@flip(\c,\r){#3} - \chit@cellbg(\mc,\r){#3} - \chit[\u\space flipped=\ti,zone turn=\t,zone mult=\n](\mc,\r) - \chit@dbl@cellupdate(\c,\r){#2}{#3} - \fi - } - \fi - } - \fi - } - \draw[dashed](0,-3*#3/4)--(0,\r-#3/4); - \draw[dashed,<-] (#3/5,-2*#3/3)--(#3/2,-2*#3/3) node[anchor=west]{Back}; - \draw[dashed,<-] (-#3/5,-2*#3/3)--(-#3/2,-2*#3/3) node[anchor=east]{Front}; -} -% \end{macrocode} -% \end{Macro} -% -% \iffalse +% <*chit> % -------------------------------------------------------------------- % \fi % \subsubsection{Some utilities} @@ -395,17 +9,32 @@ % % \begin{macrocode} \tikzset{ - number chit/.pic={ - \node[shape=rectangle,font=\sffamily\bfseries\LARGE]{% - \begin{tabular}{c} #1\end{tabular}};}, - game turn/.pic={ - \node[shape=rectangle,font=\sffamily\bfseries]{% - \begin{tabular}{c} Game\\Turn\end{tabular}};}, - game turn/.style={ - /chit/full={game turn}, + chit/text base/.style={ + shape=rectangle, + inner sep=0pt, + align=center, + text width=1.1cm}, + chit/number/.style={ + chit/text base, + font=\sffamily\bfseries\fontsize{12}{14}\selectfont}, + chit/game turn/.style={ + chit/text base, + font=\sffamily\bfseries}, + chit/text/.style={ + chit/text base, + font=\sffamily\bfseries}, + chit/small text/.style={ + chit/text base, + font=\sffamily\bfseries\fontsize{9}{10}\selectfont}, + chit/number/.pic={\node[chit/number]{#1};}, + chit/game turn/.pic={\node[chit/game turn]{Game\\Turn};}, + chit/text/.pic={\node[chit/text]{#1};}, + chit/small text/.pic={\node[chit/small text]{#1};}, + game turn chit/.style={ + /chit/full={chit/game turn}, color=black, fill=white}, - game turn flipped/.style={game turn}, + game turn chit flipped/.style={game turn chit}, dummy chit/.style={fill=white}, } % \end{macrocode} @@ -435,7 +64,7 @@ % % \begin{macrocode} \DeclareRobustCommand\zocmark[1][]{% - \tikz[baseline=(current bounding box.center),scale=.1,#1]{% + \tikz[baseline=($(current bounding box.center)!.5!(current bounding box.south)$),scale=.1,#1]{% \begin{scope}[hex/first row and column are=0, hex/row direction is=normal, hex/column direction is=normal, @@ -450,6 +79,10 @@ \end{scope}}} % \end{macrocode} % +% Dummy implementations of zones hooks when exporting. Here, these do +% nothing, but in the \textsf{wgexport} class these are +% re-implemented. +% % \begin{macrocode} \tikzset{ zone point/.code n args={3}{}, @@ -457,5 +90,5 @@ % \end{macrocode} % % \iffalse -%</chit> +% </chit> % \fi |