Blogger can't handle this sort of thing very well, so you'll have to trust me that you can cut and paste from the following mess into a file editor to get usable results (this is also why there's no images in this post).
The first file is units.tex which sets up some macros for the later code:
\hsize 6.2677true in% \vsize 9.69true in% \special{papersize=210mm,297mm}% \newdimen\csize \newdimen\tsize \newdimen\twidth \def\setsize#1{\csize=#1 \tsize=.93\csize \twidth=.87\csize \font\BODY=phvr at .222\csize \font\SMALL=phvr at .18\csize \setbox0=\hbox{\BODY ()1234567890} \global\setbox\strutbox=\hbox{\vrule height \ht0 depth \dp0 width 0pt} } \setsize{27pt} % default \def\centre#1{\hfill\strut #1\hfill } \def\inline#1{\setbox99=\hbox{\BODY #1}\ifdim\wd99<\twidth\hbox to \tsize{\centre{\BODY #1}}\else\hbox to \tsize{\centre{\SMALL #1}}\fi} \def\line#1{\hbox to \tsize{\thinspace\strut #1\thinspace }} \def\slip{\hrule width 0pt height .4pt } \footline{\hfil} \BODY \def\newline{\par\noindent} \def\newpage{\par\vfill\break\noindent\parfillskip=0pt\leftskip=0pt plus 1fil\rightskip=0pt} \def\unit #1 #2,#3,#4,#5,#6 {\vbox{\hsize\csize\hrule height .8pt \hbox to \csize{\vrule width.8pt\hfill\vbox to \csize{\hsize=\csize \slip \line{\BODY #3\hfill #4\strut}\vfill \inline{#1}\slip\slip%%%% Max width<23.36pt \inline{#2}\vfill \line{\BODY #5\hfill #6}\slip }\hfill\vrule width.8pt}% \hrule height 0pt depth .8pt}\penalty0}% \setbox12=\hbox{0000000} \offinterlineskip\parindent=0pt\parfillskip=0pt plus 1fil\rightskip=\parfillskip\leftskip=0pt\noindent \endinput \bye
Then we have the main counter defining file makeunits.pl. This contains the hard coded definitions of the counters you want to to produce. The default ones in the file should be enough to work out how to modify it for your own use. The only slightly unclear parameter is probably "count" which is simply the number of copies of that unit you want; they will be numbered so you can track damage and so on.
#!/usr/bin/perl -w @lines=(); @currentline=(); $width=shift || (27/72); $maxline=6/$width; $width*=72; #Count, name, cl, ac, mv, number units(30,"Kobold",0,7,6,40); units(10,"Goblin",1,6,6,40); units(10,"Orc",2,6,9,20); units(5,"Lizardman",5,6,"6//12",20); units(4,"Militia",0,5,9,20); units(10,"Reserves",0,8,12,20); units(10,"Mob",-2,10,12,20); units(1,"Pixie",0,"1(5)","6/12",80); print '\input units.tex'; print "\n"; print "\\setsize{$width pt}"; print '\newline'; print "\n"; pageone(); pagetwo(); print '\bye'; sub pageone { if(@currentline) { push @lines,[@currentline]; @currentline=(); } for $l(@lines) { @currentline=@$l; for $u(@currentline) { print "$u"; } print "\\newline\n"; } } sub pagetwo { print "\\newpage\n"; for $l(@lines) { @currentline=@$l; for (1..@currentline) { $u=pop@currentline; ($s)=$u=~/,(\d+)\s*$/; $s/=2; $u=~s/,\d+\s*$/,$s /; print "$u"; } print "\\newline\n"; } } sub units { my ($dups,$name,$cl,$ac,$mv,$size)=@_; local $i; for $i(1..$dups) { push @currentline,"\\unit {$name} $i,$ac,$mv,$cl,$size "; if(@currentline==$maxline) { push @lines,[@currentline]; @currentline=(); } } }
To use this, you pass the size of the counters you want as a fraction of an inch and redirect the output to some other file, for example
./makeunits.pl .626 >sheet.tex
Finally, you turn this TeX file into a pdf in whatever method you normally do, if nothing else then
pdftex sheet.tex
Should have a good chance of producing a file called sheet.pdf which you can print.
AC comes out at top-left; move rate top-right; combat ability (ie, the equivelant fighter ability) goes bottom-left; and the number of individuals represented by the unit goes in the bottom-right. The combat ability, as well as the tables in part 1, are intended for use with my combined combat tables but aren't hard to use with the standard tables.
Next post will probably be about something else, but in the post after that I plan to get down to some discussion of how to actually resolve some real combat with these rules (and one more table).
No comments:
Post a Comment