diff options
Diffstat (limited to 'macros/latex/contrib/wargame/source/hex/towns.dtx')
-rw-r--r-- | macros/latex/contrib/wargame/source/hex/towns.dtx | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/macros/latex/contrib/wargame/source/hex/towns.dtx b/macros/latex/contrib/wargame/source/hex/towns.dtx new file mode 100644 index 0000000000..a73c5eed5c --- /dev/null +++ b/macros/latex/contrib/wargame/source/hex/towns.dtx @@ -0,0 +1,96 @@ +% \iffalse +% -------------------------------------------------------------------- +%<*hex> +% \fi +% +% \subsubsection{Towns} +% \label{sec:impl:hex:town} +% +% Similar to above, we define a namespace and family for towns. First +% thing is the graphics style for towns. +% +% \begin{macrocode} +\tikzset{% + hex/town/.style={ + scale line widths, + thin, + fill=pgfstrokecolor, + color=pgfstrokecolor}, + hex/town name/.style={ + transform shape, + shape=rectangle, + above right=.1, + color=pgfstrokecolor, + font=\sffamily\normalsize} +} +% \end{macrocode} +% +% Next is the namespace for dealing with towns. +% +% \begin{macrocode} +\tikzset{% + /hex/town/.search also={/tikz},% + /hex/town/.cd, + pic/.store in=\hex@c@pic, + type/.store in=\hex@c@pic, + place/.store in=\hex@c@pos, + location/.store in=\hex@c@pos, + name/.store in=\hex@c@name, + village/.style={pic=hex/town/village}, + town/.style={pic=hex/town/town}, + city/.style={pic=hex/town/city} +} +% \end{macrocode} +% +% And some \spec{pic}tures for making the towns. +% +% \begin{macrocode} +\tikzset{% + hex/town/village/.pic={\path[fill,pic actions] circle(.1);}, + hex/town/town/.pic={\path[fill,pic actions] circle(.2);}, + hex/town/city/.pic={% + \path[fill,pic actions] circle(.25); + \path[draw,pic actions] circle(.35);} +} +% \end{macrocode} +% +% \begin{Macro}{\hex@do@town} +% +% The macro to make the towns. This uses same tricks as above. +% +% \begin{macrocode} +\def\hex@c@nameparse{% + \@ifnextchar[{\hex@c@namep@rse}{\hex@c@namep@rse[]}%] +} +\def\hex@c@namep@rse[#1]#2\endhex@c@nameparse{% + \def\hex@c@node{node[shape=rectangle,hex/town name,#1]{#2}}} + +\def\hex@do@town{% + \edef\hex@c@tmp{[ + /hex/town/.cd,% + town,% + /tikz/hex/town,% + /tikz/every hex town/.try, + \hex@town]} + \expandafter\scope\hex@c@tmp% + \ifx\hex@c@pic\empty\else% + \@ifundefined{hex@c@pos}{\let\hex@c@pos\empty}{} + \@ifundefined{hex@c@name}{\let\hex@c@name\empty}{} + \expandafter\hex@c@nameparse\hex@c@name\endhex@c@nameparse% + \ifx\hex@c@pos\empty\def\hex@c@pos{(0,0)}\fi + \hex@dbg{2}{Town: + ^^J text=\hex@c@name + ^^J pic=\hex@c@pic + ^^J place=\hex@c@pos + ^^J node=\hex@c@node + } + \filldraw \hex@c@pos pic{\hex@c@pic} \hex@c@node; + \fi% + \endscope% +} +% \end{macrocode} +% \end{Macro} +% \iffalse +%</hex> +% -------------------------------------------------------------------- +% \fi |