diff -ruN v1.5d/Bluesheets/.cvsignore v1.6.0/Bluesheets/.cvsignore --- v1.5d/Bluesheets/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Bluesheets/.cvsignore 2001-08-09 01:18:15.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/Bluesheets/DVI/.cvsignore v1.6.0/Bluesheets/DVI/.cvsignore --- v1.5d/Bluesheets/DVI/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Bluesheets/DVI/.cvsignore 2001-08-08 23:46:30.000000000 -0400 @@ -0,0 +1,3 @@ +*.dvi +*.log +*.aux diff -ruN v1.5d/Bluesheets/DVI/.exportme v1.6.0/Bluesheets/DVI/.exportme --- v1.5d/Bluesheets/DVI/.exportme 1999-02-05 01:18:30.000000000 -0500 +++ v1.6.0/Bluesheets/DVI/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/Bluesheets/anarchists.tex v1.6.0/Bluesheets/anarchists.tex --- v1.5d/Bluesheets/anarchists.tex 1999-10-29 05:54:26.000000000 -0400 +++ v1.6.0/Bluesheets/anarchists.tex 2004-03-26 16:16:55.000000000 -0500 @@ -5,6 +5,14 @@ \name{\Banarchists} +\topquote{\noindent +If the Anarchists should have their way \\ +Each peasant must call Yea or Nay. \\ +Will a large group of fools \\ +Make only good rules? \\ +Hell surely will freeze on that day.} + {The Collected Works of Matthieu Brissot, Vol I: The Second Terror} + Throughout history, example after example has shown that governments which concentrate power into the hands of a few individuals become corrupt and collapse. From the emperors of Rome to the Bourbon monarchy, diff -ruN v1.5d/Bluesheets/template.tex v1.6.0/Bluesheets/template.tex --- v1.5d/Bluesheets/template.tex 1999-10-29 05:54:26.000000000 -0400 +++ v1.6.0/Bluesheets/template.tex 2004-03-26 16:04:53.000000000 -0500 @@ -5,6 +5,13 @@ \name{ insert group macro identifier from Lists/bluesheets.tex here } +\topquote{\noindent ``No! We must fight on!''\\ + ``And then we die,'' said the Captain. ``We fight, and then we die. + That's how it goes.''\\ + ``Then we die gloriously!''\\ + ``There's an important word in that sentence,'' said the Captain. + ``And it's not the word `gloriously.'{}''} + {\emph{Only You Can Save Mankind}, Terry Pratchett} \end{document} diff -ruN v1.5d/Charsheets/.cvsignore v1.6.0/Charsheets/.cvsignore --- v1.5d/Charsheets/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Charsheets/.cvsignore 2001-08-09 01:20:01.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/Charsheets/DVI/.cvsignore v1.6.0/Charsheets/DVI/.cvsignore --- v1.5d/Charsheets/DVI/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Charsheets/DVI/.cvsignore 2001-08-08 23:38:04.000000000 -0400 @@ -0,0 +1,3 @@ +*.dvi +*.aux +*.log diff -ruN v1.5d/Charsheets/DVI/.exportme v1.6.0/Charsheets/DVI/.exportme --- v1.5d/Charsheets/DVI/.exportme 1999-02-05 01:18:31.000000000 -0500 +++ v1.6.0/Charsheets/DVI/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/Charsheets/Extracts/.cvsignore v1.6.0/Charsheets/Extracts/.cvsignore --- v1.5d/Charsheets/Extracts/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Charsheets/Extracts/.cvsignore 2001-09-17 02:07:36.000000000 -0400 @@ -0,0 +1,6 @@ +*^.Lists +*.tex +*.aux +*.dvi +*.log +*.ps diff -ruN v1.5d/Charsheets/Extracts/.exportme v1.6.0/Charsheets/Extracts/.exportme --- v1.5d/Charsheets/Extracts/.exportme 1999-02-05 01:18:33.000000000 -0500 +++ v1.6.0/Charsheets/Extracts/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/Charsheets/PS/.cvsignore v1.6.0/Charsheets/PS/.cvsignore --- v1.5d/Charsheets/PS/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Charsheets/PS/.cvsignore 2001-08-09 01:25:04.000000000 -0400 @@ -0,0 +1 @@ +*.ps diff -ruN v1.5d/Charsheets/PS/.exportme v1.6.0/Charsheets/PS/.exportme --- v1.5d/Charsheets/PS/.exportme 1999-12-07 18:02:49.000000000 -0500 +++ v1.6.0/Charsheets/PS/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/Charsheets/template.tex v1.6.0/Charsheets/template.tex --- v1.5d/Charsheets/template.tex 2001-08-13 09:43:47.000000000 -0400 +++ v1.6.0/Charsheets/template.tex 2004-02-05 17:03:00.000000000 -0500 @@ -55,7 +55,7 @@ % for the first mention, to give both character and player names. \filbreak % try to keep Contacts header & items together -\noindent {\bf Contacts} +\noindent \textbf{Contacts} \begin{tightlist} \item \emph{\Cfred{map}}: \Cfred{they's} from the quarry where you work. @@ -84,6 +84,14 @@ % three Bowling Ball item cards. Multiple list-types probably won't be. % Zero and negative multiplicities are special; see macro-glossary.html. +% For extractables that are cards (i.e. based on cards.sty), +%% \extract{ \pageof{ specific card } } +% (etc) will list ``* (a page of) [specific card]'' on the sheet +% and extract, well, \pageof{ specific card }, which will produce +% a solid page of that card. Since \pageof always starts a new +% page of cards, these are best put last in extractable lists +% so that you don't get half-empty pages preceding them so much. + % You can have a %% \note{stuff to print in the charsheet but ignore for packets} % both inside and outside an \extract or \mention. (Or in a \secret, @@ -139,7 +147,7 @@ % % \unstashitem marks an item as unstashable % \bulkyitem marks an item as however many hands bulky. -% \specialitem marks an arbtrary note in the same way --- i.e. +% \specialitem marks an arbitrary note in the same way --- i.e. % in a rotated box on the side. You'll rarely want \specialitem here. % % Your Czar could define other types of item macros with different notes @@ -151,7 +159,7 @@ % \begin{extractable}{Items} \extract{ \normalitem{A Tuxedo}{5818}{} } \note{Bulletproof} -\extract{ \normalitem{An 1890 Silver Dollar}{3891}{} } +\extract{ \pageof{\normalitem{An 1890 Silver Dollar}{3891}{}} } \extract{ \unstashitem{A gold watch}{1236}{} \note{it doesn't work} } \extract{ \bulkyitem{A gatling gun}{1234}{Requires ``gatling gun ammo'' item card to load; each such card has 10 shots. The gun will hold @@ -267,7 +275,7 @@ % are in Styles/custom.sty with \usestats. % \noindent -{\bf Stats:} \saystats +\textbf{Stats:} \saystats \end{singlespace} diff -ruN v1.5d/Greensheets/.cvsignore v1.6.0/Greensheets/.cvsignore --- v1.5d/Greensheets/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Greensheets/.cvsignore 2001-08-09 01:11:01.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/Greensheets/DVI/.cvsignore v1.6.0/Greensheets/DVI/.cvsignore --- v1.5d/Greensheets/DVI/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Greensheets/DVI/.cvsignore 2001-08-09 00:27:28.000000000 -0400 @@ -0,0 +1,3 @@ +*.dvi +*.log +*.aux diff -ruN v1.5d/Greensheets/DVI/.exportme v1.6.0/Greensheets/DVI/.exportme --- v1.5d/Greensheets/DVI/.exportme 1999-02-05 01:18:35.000000000 -0500 +++ v1.6.0/Greensheets/DVI/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/Greensheets/balloon.tex v1.6.0/Greensheets/balloon.tex --- v1.5d/Greensheets/balloon.tex 1999-10-29 05:54:35.000000000 -0400 +++ v1.6.0/Greensheets/balloon.tex 2004-03-26 15:59:26.000000000 -0500 @@ -5,6 +5,13 @@ \name{\Gballoon} +\topquote{\noindent Flying high, high, I'm a bird in the sky, + I'm an eagle that rides on the breeze\\ + High, high, what a feeling to fly, + Over mountains and forests and seas\\ + And to go anywhere that I please} + {ABBA, ``Eagle''} + \section{Introduction} At the start of game, you start with the ability to create a basic @@ -18,7 +25,7 @@ provide balloon rides to people in game and to garner public support. If you use the balloon to garner public support, you must assemble and fly the balloon for 15 minutes during the day (not counting the assembly -time) during which you entertains the crowds down below and canvass them +time) during which you entertain the crowds down below and canvass them for contributions. This will probably be worth 1,000 livres unless you do something amazing. diff -ruN v1.5d/Greensheets/template.tex v1.6.0/Greensheets/template.tex --- v1.5d/Greensheets/template.tex 1999-10-29 05:54:36.000000000 -0400 +++ v1.6.0/Greensheets/template.tex 2004-03-26 15:48:22.000000000 -0500 @@ -5,6 +5,13 @@ \name{ insert macro identifier from Lists/greensheets.tex here } +\topquote{Remember this, foolish mortals, when ye stare headlong into the +mind-paralyzing void, the inky black nothingness of existence, the hellish +yawning maw of the abyss---it's pretty damn dark, so give it a few minutes +for your eyes to adjust.}% + {Frank M. Carrano, Branford, Conn.\\ + 1994 Bulwer-Lytton [bad] Writing Contest\\ + Dishonorable Mention} \end{document} diff -ruN v1.5d/LaTeX/Central/.cvsignore v1.6.0/LaTeX/Central/.cvsignore --- v1.5d/LaTeX/Central/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/LaTeX/Central/.cvsignore 2001-08-09 01:34:12.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/LaTeX/Central/DVI/.cvsignore v1.6.0/LaTeX/Central/DVI/.cvsignore --- v1.5d/LaTeX/Central/DVI/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/LaTeX/Central/DVI/.cvsignore 2001-08-09 01:32:58.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/LaTeX/Central/DVI/.exportme v1.6.0/LaTeX/Central/DVI/.exportme --- v1.5d/LaTeX/Central/DVI/.exportme 1999-02-05 01:18:37.000000000 -0500 +++ v1.6.0/LaTeX/Central/DVI/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/LaTeX/Central/rules.tex v1.6.0/LaTeX/Central/rules.tex --- v1.5d/LaTeX/Central/rules.tex 2001-08-13 01:46:41.000000000 -0400 +++ v1.6.0/LaTeX/Central/rules.tex 2004-03-26 01:14:48.000000000 -0500 @@ -14,267 +14,66 @@ % Delete this section! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\vspace{1cm} +\vfill \begin{em} -\textbf{This rules template assumes you're using the Standard Rules. +\noindent +\textbf{This rules template assumes you're using the Standard Rules.\\ If you're not, well then, blow away everything from here down.} -\vskip\baselineskip - -This is a template for game-specific rules sets based on -the Standard Rules. It's easy enough to write such rules without -it, but it can at least serve as a convenient checklist, so you -probably want to at least glance through it. +\vfill +This is a skeleton for rules documents based on the Standard Rules +and written in the Game Template. +Since the SR maintains its own vanilla-latex rules template already, +we pull that in rather than duplicate and fail to synchronize. + +Obviously you don't have to use the SR's template to write SR-based rules, +any more than you have to use this skeleton to write Template-integrated +rules, but both are designed to be good starting points. The SR's template +in particular can at least serve as a convenient checklist, so you probably +want to at least glance through it. In some areas it also includes FAQs, i.e.~things that players will probably ask about if your rules about that area don't cover them; consider saving time and sanity by including the information here. +Below we \verb$\input$ the SR's \verb$rules-template-core$, which you'll +see (comments verbatim) if you latex \& xdvi this. That's a placeholder +(and maybe a reminder), not a starting point in its own right; +it's meant for you to replace by actually inserting the contents of +\verb$rules-template-core.tex$ here, providing a rough guide for your rules-writing. + +Don't feel compelled to do that insertion immediately, though; it's actually +better done shortly before you're going to start editing your rules doc, so +that your initial \verb$rules-template-core$ content is fresh. +SR editions correspond to academic years, with revision over the summer; +naturally the SR's template is revised for each edition. It may also be +revised whenever rules-editors@mit.edu has a good idea for it, +since it's not restricted to yearly editions. + Since there's very little that \textbf{has} to be in a game-specific rules -set, almost everything is in the \textbf{comments} of this file. GMs can +set, the template is almost entirely \textbf{comments}. GMs can go through those and turn them into actual appropriate material where necessarily. Usually you'll be able to just erase most comment sections without putting in any material. -Oh, and remember to fill in the GM team for ``LIST OF GMS'' up there, -and fill in the italicized stuff below this section. (And remember -to delete this section\ldots.) - -If you want to be able to provide a latex'able rules.tex to the players, -you'll have to not use Template features at all, of course. -See \verb$~jemorris/Rules/$ for a vanilla-latex template for SR-based rules. +Oh, and remember to fill in ``LIST OF GMS'' up there sometime, +and to delete this section\ldots{}. + +If you want to provide players with a latex'able rules.tex, you'll have to forgo +Template packages entirely, of course. +In that case you want the full (core+setup) vanilla-latex +\verb$rules-template.tex$ from \verb$/mit/jemorris/Rules/$. -\vspace{1cm} \end{em} +\vfill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Delete the above section! -\textbf{\gamename} uses the Standard Rules. If you are not familiar with -Guild standard rules, please \emph{read that.} (They're available -at \texttt{http://web.mit.edu/jemorris/Rules} and -in \texttt{/mit/jemorris/Rules}.) Experienced SR users, see the ``Edition -History'' appendix. - -% Settle which combat system is used: -You need not read all of the Combat Systems appendix; we use only the -\emph{[MA/MD/HP; Starlight; Rock, Paper, Scissors; Phi; Cinematic]} system. -[Or ``you don't need the Combat Systems appendix, we use our own system.''] - -This document covers only material that augments or overrides the -Standard Rules. In particular, note \emph{[identify which sections -that are overridden---quite possibly none at all, in which case you -could change this paragraph to: This document covers only material that -augments the Standard Rules (we override nothing).]} - -%% You may not need to put anything for this section at all, since typical -%% things like badges or money only need mention if yours are special or -%% have mechanics, and atypical things like combat cards only need mention -%% if you're actually using them. -% -% Stuff you should have in your packet... -% Badges tell you... [if you have age or anything publically encoded] -% Money is... [if you have a physrep that's not bills or otherwise obvious] -% -%% Note that if you don't say anything, by default guns are just like -%% everything else --- ie you need an item card, but not a sticker. -% -% Guns require [item cards / stickers / both item cards and stickers / -% neither item cards nor stickers, any physrep is a gun] - -%% You only need to put something here for a long game if you have -%% mysterious tunnel systems and so on. Short games always need this. -% -%% Long game: -% [Locations] are not normal game locations; you can't go there unless -% specifically directed to, as per the SR. -% -%% Short game: -% Game takes place in [areas]; you can't go elsewhere unless specifically -% directed to. Note that you are expected to be in game areas at all times -% during the game. - -%% You probably want to include this section (you probably have no Dead Time). -% -% Game starts at 6pm Friday and ends at noon next Sunday; wrapup is at 2pm. -% There will be a Game Break from Tues 6am until Weds 6pm. -% GMs will be available from [time] to [time] every day; outside those -% hours is Dead Time. - -%% What you need to include here depends on the combat system. -% -% Typical [stats] are... --- MA/MD/HP, RPS, Phi -% Typical Hits and Blocks on a card are... --- Cinematic -% Weapon/armor effects are... --- MA/MD/HP, RPS -% Known weapon-like Phis are... --- Phi -% You heal at... --- MA/MD/HP, RPS, Cinematic -% (and at what time? noon? when you sleep? what if you pull all-nighters?) -% -% Cinematic/RPS/Phi allow coordination by default; include overrides here. - -%% You may or may not need to say anything here. -%% Guns have default effects from the SR if you don't say anything about them. -% -% Disc guns represent... [and do... if not the default] -% Dart guns represent... [and do... if not the default] -% Other attack forms... [throwing knives (probably ping-pong balls)] -% [weird attacks (probably foam pellets); if you have these, say what it is -% that characters see (maybe nothing) when players see someone holding a -% pellet (or whatever) ready, e.g. ``hand charged with mystic power''] - - -%% If ingame explosives exist, you want to say what's known about them; -%% if they don't, you might want to state their non-existence. -%% FAQs: Can anyone arm them, or does it take skill? Ditto for disarming? -%% Can you read the timer to see how long is left? Can you move an armed -%% bomb without setting it off? -%% Important: What effects do they have? You might not be able to answer -%% that publically, but it's always nicer if you can so that explosions -%% don't always require a GM. If your explosives always have item cards -%% with the effects printed on them, you might want to just say that. -% -% Explosives.... - -%% You need administrative information either here or in your Scenario. -% -% The Control Room is.... The Common Room is.... -% [Also where the Queue Room is if you have that separate (uncommon nowadays).] -% The Box is in.... -% -% Mail for the GMs should be sent to \texttt{[game]-gms@mit.edu}. -% GMs can be found online by zephyring -c ...; please don't subscribe there -% yourself, we'll answer you on personals. -% [GM cellphones/pagers and when it's ok to use them, if there are some -% and that information isn't on the playerlist.] - -%% You need something here if you have headbands besides white. -% -% [color] headbands mean [...] [etc] - -%% You only need something here if you want something other than the defaults. -% -% Phones... -% Athena... [zephyr, email, other] - -%% You only need something here if you have other public mechanics. E.g., -% -% One of your stats is psionic power... -% -% If you watch someone from within ZoC for five minutes, you may -% ask to see their Appearance A card... -% -% A door is locked if... -% -% The jail is at... Only [] can put people in... Only [] can get people out... -% You can/can't [talk to / attack / ...] people there by.... - - -\end{document} - - - - -{\bf \gamename} uses the Standard Rules. If you are not familar with -Guild standard rules, please {\em read that.} They're available in -{\tt /mit/jemorris/Rules} and at {\tt http://web.mit.edu/jemorris/Rules}. - -% Settle which combat system is used: -You need not read all of the Combat Systems appendix; we use only the -{\em [MA/MD/HP; Starlight; Rock, Paper, Scissors; Phi; Cinematic]} system. - -This document covers only material that augments or overrides the -Standard Rules. In particular, note -{\em [identify which sections that are overridden --- quite possibly -none at all, in which case you can change this paragraph to: - This document covers only material that augments the Standard Rules - (we override nothing). -]} - -%% You may not need to put anything for this section at all. -% -% Stuff you should have in your packet... -% Badges tell you... -% Money is... -% -%% Note that if you don't say anything, by default guns are just like -%% everything else --- ie you need an item card, but not a sticker. -% -% Guns require [item cards / stickers / both item cards and stickers / -% neither item cards nor stickers, any physrep is a gun] - -%% You only need to put something here for a long game if you have -%% mysterious tunnel systems and so on. Short games always need this. -% -%% Long game: -% [Locations] are not normal game locations; you can't go there unless -% specifically directed to, as per the SR. -% -%% Short game: -% Game takes place in [areas]; you can't go elsewhere unless specifically -% directed to. Note that you are expected to be in game areas at all times -% during the game. - -%% You probably want to include this section (you probably have no Dead Time). -% -% Game starts at 6pm Friday and ends at noon next Sunday; wrapup is at 2pm. -% There will be a Game Break from Tues 6am until Weds 6pm. -% GMs will be available from [time] to [time] every day; outside those -% hours is Dead Time. - -%% What you need to include here depends on the combat system. -% -% Typical [stats] are... --- MA/MD/HP, RPS, Phi -% Typical Hits and Blocks on a card are... --- Cinematic -% Weapon/armor effects are... --- MA/MD/HP, RPS -% Known weapon-like Phis are... --- Phi -% You heal at... --- MA/MD/HP, RPS, Cinematic - -%% You may or may not need to say anything here. -%% Guns have default effects from the SR if you don't say anything about them. -% -% Disc guns represent... [and do... if not the default] -% Dart guns represent... [and do... if not the default] -% Other attack forms... [throwing knives (probably ping-pong balls), -% weird attacks (probably foam pellets)] - -%% You only need something here if you want universal Disarm -%% or if you want Cover, or both. (Cover usually accompanies -%% universal Disarm.) -% -% Anyone may use [Disarm / Cover / both Disarm and Cover]. - -%% If anyone can set explosives, you need to say something here; -%% otherwise you may or may not want to say anything. You probably -%% want to at least state their existence. If you can state the effects, -%% so that they don't need to get a GM when it happens, that's always best. -% -% Explosives.... - -%% You need this information either here or in a Scenario if that's separate. -% -% The Control Room is []. The Common Room is []. -% [The Queue room is [].] -% Mail for the GMs should be sent to {\tt [game]-gms@mit.edu}. - -%% You need something here if you have headbands besides white. -% -% [color] headbands mean [...] [etc] - -%% You only need something here if you want something other than the defaults. -% -% Phones... -% Athena... [zephyr, email, other] - -%% You only need something here if you have other public mechanics. E.g., -% -% One of your stats is psionic power... -% -% If you watch someone from within ZoC for five minutes, you may -% ask to see their Appearance A card... -% -% A door is locked if... -%% That's it! That's all probably pretty short, so you may well -%% want to include your Scenario material here as well. +% Replace this \input with the actual contents of that file, +% which you could insert with e.g. ``C-x i'' in emacs. +% (attach jemorris first so you can type /mit/jemorris/Rules/ instead) +\input{/afs/athena.mit.edu/user/j/e/jemorris/Rules/rules-template-core.tex} \end{document} diff -ruN v1.5d/LaTeX/Postscript/.cvsignore v1.6.0/LaTeX/Postscript/.cvsignore --- v1.5d/LaTeX/Postscript/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/LaTeX/Postscript/.cvsignore 2001-08-09 00:17:49.000000000 -0400 @@ -0,0 +1,3 @@ +*.dvi +*.aux +*.log diff -ruN v1.5d/LaTeX/Postscript/map.ps v1.6.0/LaTeX/Postscript/map.ps --- v1.5d/LaTeX/Postscript/map.ps 1999-12-28 02:57:42.000000000 -0500 +++ v1.6.0/LaTeX/Postscript/map.ps 2004-03-17 04:43:41.000000000 -0500 @@ -2202,31 +2202,8 @@ *U *u *U -1436.5143 362.389 m -1436.5143 373.6434 l -1446.8802 375.1243 l -1451.6189 376.0128 l -1453.0997 366.5354 l -1449.5457 365.943 l -1450.138 362.6852 l -1443.9185 361.7967 l -1443.6223 363.5737 l -1436.5143 362.389 l -b *u *U -1425.8522 360.9082 m -1436.5143 362.389 l -1436.8104 324.1832 l -1425.8522 324.1832 l -1425.8522 360.9082 l -b -1408.082 358.2426 m -1418.7441 359.7235 l -1418.7441 330.6989 l -1408.3782 330.4028 l -1408.082 358.2426 l -b *u *U *u @@ -4776,39 +4753,6 @@ 1463.8586 334.2003 l 1463.5625 334.2003 l b -% 20F -%1437.7958 362.6325 m -%1437.7958 373.8869 l -%1448.1617 375.3678 l -%1452.9004 376.2563 l -%1454.3812 366.7789 l -%1450.8272 366.1865 l -%1451.4195 362.9287 l -%1445.2 362.0402 l -%1444.9038 363.8172 l -%1437.7958 362.6325 l -%b -% 20B -%1437.7958 373.8869 m -%1437.7958 362.6325 l -%1427.1337 361.1517 l -%1420.0256 359.967 l -%1409.3635 358.4861 l -%1400.4785 357.0053 l -%1388.9279 355.2283 l -%1381.5237 354.0436 l -%1370.2692 352.2666 l -%1369.9731 363.2248 l -%1396.3321 367.3712 l -%1437.7958 373.8869 l -%b -% 20C -%1427.1337 361.1517 m -%1437.7958 362.6325 l -%1438.0919 324.4267 l -%1427.1337 324.4267 l -%1427.1337 361.1517 l -%b 1335.0251 344.27 m 1335.0251 346.047 l 1335.0251 353.4512 l @@ -4824,27 +4768,6 @@ 1335.0251 343.6777 l 1335.0251 344.27 l b -% 20D -%1409.3635 358.4861 m -%1420.0256 359.967 l -%1420.0256 330.9424 l -%1409.6597 330.6462 l -%1409.3635 358.4861 l -%b -% 20E -%1388.9279 355.2283 m -%1400.4785 357.0053 l -%1400.7746 324.1305 l -%1389.224 323.8344 l -%1388.9279 355.2283 l -%b -% 20A -%1370.2692 352.2666 m -%1381.5237 354.0436 l -%1381.5237 324.1305 l -%1370.2692 324.1305 l -%1370.2692 352.2666 l -%b 1322.586 346.047 m 1323.4745 346.047 l 1323.4745 346.6394 l @@ -5560,96 +5483,6 @@ (\r) TX TO 1 To -1 0 0 1 1428.7365 343.9887 0 Tp -0.3084 w 3.8636 M -1449.9257 331.7536 m -1449.9257 343.9887 L -1428.7365 343.9887 L -1428.7365 331.7536 L -1449.9257 331.7536 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20C) Tx -(\r) TX -TO -1 To -1 0 0 1 1410.7599 340.8869 0 Tp -0.3084 w 3.8636 M -1431.9491 328.6518 m -1431.9491 340.8869 L -1410.7599 340.8869 L -1410.7599 328.6518 L -1431.9491 328.6518 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20D) Tx -(\r) TX -TO -1 To -1 0 0 1 1391.4189 337.229 0 Tp -0.3084 w 3.8636 M -1411.9708 324.9939 m -1411.9708 337.229 L -1391.4189 337.229 L -1391.4189 324.9939 L -1411.9708 324.9939 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20E) Tx -(\r) TX -TO -1 To -1 0 0 1 1372.1684 334.1519 0 Tp -0.3084 w 3.8636 M -1393.3576 321.9168 m -1393.3576 334.1519 L -1372.1684 334.1519 L -1372.1684 321.9168 L -1393.3576 321.9168 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20A) Tx -(\r) TX -TO -1 To -1 0 0 1 1400.2353 367.8851 0 Tp -0.3084 w 3.8636 M -1421.4245 355.65 m -1421.4245 367.8851 L -1400.2353 367.8851 L -1400.2353 355.65 L -1421.4245 355.65 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20B) Tx -(\r) TX -TO -1 To 1 0 0 1 1347.6461 357.7159 0 Tp 0.3084 w 3.8636 M 1360.4939 345.4808 m @@ -6352,24 +6185,6 @@ (7) Tx (\r) TX TO -1 To -1 0 0 1 1440.7659 373.4365 0 Tp -0.3084 w 3.8636 M -1460.6692 361.2014 m -1460.6692 373.4365 L -1440.7659 373.4365 L -1440.7659 361.2014 L -1460.6692 361.2014 L -n -TP -0 -8.4648 Td -0 Tr -1 O -0 0 0 1 k -1 w 4 M -%(20F) Tx -(\r) TX -TO U LB %AI5_EndLayer-- @@ -6389,6 +6204,11 @@ (Mass) -75 1177 270 say (Ave) -90 1185 225 say +% The Stata Center isn't properly on this map 'cause the Map Of All MIT +% this one is boiled down from has changed its format; at least mark it. +0 setgray /Helvetica findfont 12 scalefont setfont +(32 (Stata)) 0 1375 350 say + /xmin 1150 def /xmax 1575 def /ymin 75 def /ymax 500 def /label { % x label - : print top number but leave position unchanged 10 10 string cvrs dup stringwidth 2 div neg exch 2 div neg exch 2 copy @@ -6410,9 +6230,7 @@ /finegrid { .5 setlinewidth newpath .75 setgray 5 false grid stroke } def /coarsegrid { .5 setlinewidth newpath .25 setgray 25 true grid stroke } def -.6 setgray /Helvetica findfont 12 scalefont setfont -(The rubble of) 0 1375 350 say -(Building 20) 0 1380 335 say + % OK, that's the end of the stuff you probably don't want to touch at all. diff -ruN v1.5d/LaTeX/README v1.6.0/LaTeX/README --- v1.5d/LaTeX/README 2000-01-04 01:32:44.000000000 -0500 +++ v1.6.0/LaTeX/README 2004-03-28 02:31:59.000000000 -0500 @@ -71,7 +71,7 @@ bluesheet.sty: bluesheets uses sheets.sty, Lists/bluesheets.tex cards.sty: double-, single- and mirror-sided card macros and setup - uses standard packages times, simplemargins, graphicx + uses standard packages times, graphicx character.sty: charsheets uses sheets.sty, charextracts.sty, almost everything in Lists charextracts.sty: charsheets @@ -89,9 +89,10 @@ the Template; doesn't use anything, but is itself used by game.cls, so it shows up everywhere extractable.sty: tex-type extractables - uses standard styles fullpage, fancyheadings + uses standard styles fancyhdr game.cls: base class for EVERYTHING; contains black magic. uses standard class article.cls; + pulls in standard package geometry.sty; also uses custom.sty, newdef.sty, Lists/characters.tex, Lists/players.tex greensheet.sty: greensheets @@ -102,7 +103,7 @@ items.sty: item cards uses extractable.sty, cards.sty, Lists/items.tex mechanics-packet.sty: styles that want envelope or fold&staple packets - uses standard packages fullpage, simplemargins, graphicx + uses standard packages graphicx memory.sty: memory packets uses extractable.sty, mechanics-packet.sty money.sty: cash @@ -110,11 +111,11 @@ newdef.sty: everything, since game.cls uses it see file comments, or see \newdef in macro-glossary.html playerlist.sty: playerlist - uses standard packages times, simplemargins, graphicx + uses standard packages times, graphicx sheets.sty: superclass of charsheets, greensheets, bluesheets, ... uses standard packages doublespace, graphicx signs.sty: signs - uses sheets.sty and standard style nopagenumbers + uses sheets.sty stat.sty: statcards uses cards.sty whitesheet.sty: whitesheets diff -ruN v1.5d/LaTeX/Styles/cards.sty v1.6.0/LaTeX/Styles/cards.sty --- v1.5d/LaTeX/Styles/cards.sty 2001-08-19 17:55:15.000000000 -0400 +++ v1.6.0/LaTeX/Styles/cards.sty 2004-03-20 20:33:42.000000000 -0500 @@ -46,13 +46,9 @@ \RequirePackage{times} -\RequirePackage{simplemargins} \RequirePackage{graphicx} -\settopmargin{.75in} -\setbottommargin{.25in} -\setleftmargin{.3in} -\setrightmargin{.3in} +\geometry{margin=.3in} % *page* margin, not card margin \topskip=0pt \unitlength=1in % provide default for those using the picture environment @@ -125,7 +121,7 @@ % Want extra margin at top in case there's headers; it can go away % if they're single-sided, but *not* for zero-vert-margins on % asymmetric double-sided since headers can interfere on *either* side. -\headsep=\card@default@margin +\geometry{headsep=\card@default@margin} diff -ruN v1.5d/LaTeX/Styles/character.sty v1.6.0/LaTeX/Styles/character.sty --- v1.5d/LaTeX/Styles/character.sty 2000-05-27 17:38:40.000000000 -0400 +++ v1.6.0/LaTeX/Styles/character.sty 2001-08-27 04:38:26.000000000 -0400 @@ -10,6 +10,7 @@ % a not-particularly-magic part of extraction; feel free to change this % \newdef\note[1]{\space\space\emph{#1}} +\newdef\pageof[1]{(a page of) #1} % \saystats can be called in the charsheet to list all the stats; diff -ruN v1.5d/LaTeX/Styles/custom.sty v1.6.0/LaTeX/Styles/custom.sty --- v1.5d/LaTeX/Styles/custom.sty 2001-08-15 03:51:36.000000000 -0400 +++ v1.6.0/LaTeX/Styles/custom.sty 2004-03-22 20:03:55.000000000 -0500 @@ -91,9 +91,11 @@ % Data field names must be letters only (no spaces, no punctuation). % Case matters, so we advise you to always use lowercase. % -% DON'T HAVE A BUNCH OF LONG FIELD NAMES, ESPECIALLY IF YOU HAVE A LOT -% OF CHARACTERS. This can cause you to overflow one of TeX's memory pools -% and be in much pain; see the external issues docs (pointer in intro.html). +% If you have a bunch of long field names (especially with many characters) +% it's vaguely possible that you'll overflow one of TeX's memory pools; +% should this occur you can set environment variables to enlarge them +% --- see the external issues docs (pointer there in intro.html). +% (This used to be more likely, but the default pools are much roomier now.) \usecharacterformat{ diff -ruN v1.5d/LaTeX/Styles/extractable.sty v1.6.0/LaTeX/Styles/extractable.sty --- v1.5d/LaTeX/Styles/extractable.sty 2001-08-13 06:40:57.000000000 -0400 +++ v1.6.0/LaTeX/Styles/extractable.sty 2004-03-20 18:27:19.000000000 -0500 @@ -1,22 +1,23 @@ \ProvidesPackage{extractable} - +% % This package should be used (via \RequirePackage) by each % tex-type extractable style. You don't want to use it for % list-type extractables, though that probably wouldn't kill you. -% put the owner at the top of each page -% -\RequirePackage{fullpage} -\RequirePackage{fancyheadings} -% +\RequirePackage{fancyhdr} % Put off invoking the fancy headings until after the preamble is done -% with frobbing \textwidth, so that it knows how wide to make things. +% with frobbing dimensions, so that it knows how wide to make things. \AtBeginDocument{\pagestyle{fancy}} +% +% put the owner at the top of each page \newdef\baselabel{\me{}}% \me defaults to saying ``Unowned'' until set by \name -\lhead{\baselabel} -\rhead{Page \thepage} -\cfoot{} % page in one place is enough, thank you +\fancyhead[L]{\baselabel} +\fancyhead[R]{Page \thepage} +\geometry{includehead} +% kill footers, we have page number in the headers +\fancyfoot{} +\geometry{ignorefoot} % This switch will be thrown in each character packet's extracted stuff diff -ruN v1.5d/LaTeX/Styles/game.cls v1.6.0/LaTeX/Styles/game.cls --- v1.5d/LaTeX/Styles/game.cls 2001-08-09 10:28:34.000000000 -0400 +++ v1.6.0/LaTeX/Styles/game.cls 2004-03-20 04:19:15.000000000 -0500 @@ -27,19 +27,20 @@ -% Ask CVS to give us the date automatically (albeit in UTC, sigh); -% make sure it parses with and without keywords/dollars (dev vs release) +% The ``Date'' keyword would get us the date from CVS automatically, but UTC; +% use LocalDateChanged pseudo-keyword provided by CVSROOT/commitinfo instead. +% Make sure Name parses with and without keywords/dollars (dev vs release). \begingroup \catcode`$=13 \def$#1 {} - \catcode`:=13 \def:#1 {hrs } - \xdef\cvs@date{2001/08/09 14:28:34 UTC} - \xdef\cvs@name{v1-5d } + \xdef\cvs@date{$LocalDateChanged: 2004/03/20 EST$ } + \xdef\cvs@name{v1-6-0 } \ifx\cvs@name\empty \gdef\cvs@name{dev} \fi \endgroup \ProvidesClass{game}[\cvs@date\space Assassins' Guild game template \cvs@name] \LoadClassWithOptions{article} \RequirePackage{newdef} +\RequirePackage{geometry}[2002/07/08] % simulate latex.ltx's \g@addto@macro @@ -271,8 +272,6 @@ } -\newif\ifdelay@eval -\delay@evalfalse \def\spaces@only{ } % any number of spaces/tabs are equivalent \def\eval@char#1#2{% char macro, requested info string @@ -292,12 +291,10 @@ % \< works like \? but since \< has actual use in normal tex % (in tabbing env) we redefine it only locally. \def\<{\futurelet\1\@scan}% - \ifdelay@eval\aftergroup\?\fi \gdef\scan@str{}% \<#2\end@scan - \ifdelay@eval\aftergroup\end@toss\fi \endgroup - \ifdelay@eval\else\unskip\fi + \unskip \fi\fi } @@ -339,26 +336,6 @@ \fi } -% eg \extractdef[\global]\mybadge\thechar{number desc} -\def\extractdef{\futurelet\@tok\aux@extract} -\def\aux@extract{% - \ifx\@tok[% - \let\@NEXT\do@extract - \else - \def\@NEXT{\do@extract[]}% - \fi - \@NEXT -} -\def\do@extract[#1]#2#3#4{% - \begingroup - \delay@evaltrue - \?#1\def#2\end@toss - \aftergroup{% - #3{#4}% - \aftergroup}% - \endgroup -} - % outer loop of defining fields for specific char % gets next outer field; remaining outer fields; control seq; next char outer @@ -453,14 +430,14 @@ \newdef\semicolon[0]{;} % \newdef [0] --> no args but requires braces \newif\if@semicolon -\def\LiteralSemicolon{;} +\def\Literal@Semicolon{;} % a \newdef'd one wouldn't be the same as ; ! \def\test@semicolon#1{\@semicolonfalse\dotest@semicolon#1\de@lim} \def\dotest@semicolon#1{ \def\@temp{#1} \ifx\@temp\de@lim \let\@NEXT\relax \else - \ifx\@temp\LiteralSemicolon\@semicolontrue\fi + \ifx\@temp\Literal@Semicolon\@semicolontrue\fi \let\@NEXT\dotest@semicolon \fi \@NEXT @@ -511,7 +488,7 @@ \newif\ifinfo \def\Ignorespaces{\ignorespaces} \def\testinfo#1#2{% - \extractdef\extract@temp#1{#2}% + #1{\def\extract@temp{#2}}% \ifx\extract@temp\Ignorespaces\infofalse\else\infotrue\fi } @@ -533,16 +510,16 @@ \newdef\rot[2]{% \begingroup \def\set@rot##1##2{% - \rot@from=##1 - \rot@to=#1 - \ifnum#1>0 \advance\rot@to by ##1 - \else \advance\rot@to by ##2 \advance\rot@to by 1 + \rot@from=##1\relax + \rot@to=#1\relax + \ifnum#1>0\relax \advance\rot@to by ##1\relax + \else \advance\rot@to by ##2\relax \advance\rot@to by 1\relax \fi - \loop \ifnum\rot@to>##2 \rot@to=##1 \fi - \lccode\rot@from=\rot@to - \ifnum\rot@from<##2 - \advance\rot@from by 1 - \advance\rot@to by 1 + \loop \ifnum\rot@to>##2\relax \rot@to=##1\relax \fi + \lccode\rot@from=\rot@to\relax + \ifnum\rot@from<##2\relax + \advance\rot@from by 1\relax + \advance\rot@to by 1\relax \repeat }% \set@rot{`a}{`z}% diff -ruN v1.5d/LaTeX/Styles/mechanics-packet.sty v1.6.0/LaTeX/Styles/mechanics-packet.sty --- v1.5d/LaTeX/Styles/mechanics-packet.sty 2000-01-02 04:23:08.000000000 -0500 +++ v1.6.0/LaTeX/Styles/mechanics-packet.sty 2004-03-20 18:21:11.000000000 -0500 @@ -39,35 +39,39 @@ % you probably want to copy this to mypacket.sty and edit that. - % Styles that use this should \RequirePackage{extractable} or not as they wish. -\RequirePackage{fullpage} -\RequirePackage{simplemargins} \RequirePackage{graphicx} \special{header=simplex} % duplex'ing mechanics packets by accident sucks... -% general default margins/indentation -\setleftmargin{.25in} -\setrightmargin{.25in} -\parindent 0pt +% page layout, should interact OK with \geometry frobbing by other styles +\geometry{margin=.75in} +\geometry{headsep=0pt} + +% other spacing +\topskip=0pt +\parindent=0pt +\newbox\inner@box +\newbox\outer@box % Envelope-style macro. % % Since we don't need to do arithmetic on these widths, we make them % macros rather than \newdimen's to avoid using those up. -\def\outside@width{1.7in} -\def\inside@width{6in} +\def\outer@envelope{1.7in} +\def\inner@envelope{6.0in} % \newdef\mechanic@envelope[3]{% - \def\mechanic@header{#1\leavevmode\\#2}% - \vbox{% - \fbox{\parbox{\outside@width}{\mechanic@header}}\\ - \fbox{\parbox{\inside@width}{\mechanic@header\\#3}}% - }% - \vspace{1cm}% leave room between this and next one + \def\mechanic@header{#1\par#2}% + \setbox\outer@box=\vbox{\hsize=\outer@envelope \mechanic@header}% + \setbox\inner@box=\vbox{\hsize=\inner@envelope \mechanic@header\par #3}% + \begingroup + \lineskip=0pt + \lineskiplimit=12in + \vbox{\fbox{\box\outer@box}\break\fbox{\box\inner@box}}% + \endgroup } @@ -79,10 +83,7 @@ \newdimen\part@width \part@width 3.5in \newdimen\tot@ht \newdimen\temp@dim -\newbox\inner@box -\newbox\outer@box \newdef\mechanic@folded[3]{% - \fboxsep 0pt \setbox\inner@box=\vtop{\hsize=\part@width \leftskip \white@space \rightskip \white@space @@ -105,26 +106,28 @@ \tot@ht=\ht\inner@box \advance\tot@ht by \dp\inner@box \temp@dim=\ht\outer@box \advance\temp@dim by \dp\outer@box \ifdim2\temp@dim>\tot@ht \tot@ht=2\temp@dim \fi - \fbox{% - \vtop to \tot@ht{\unvbox\inner@box\vfill}% - \vtop to \tot@ht{\leaders\hbox{.\strut}\vfil}% - \hskip -\baselineskip - \rotatebox{90}{\hskip-.5\tot@ht \emph{FIRST FOLD}}% - \vtop to \tot@ht{\hsize=\part@width - \hbox to \hsize{% - \hbox to .5\hsize{% - \hfil \rotatebox{-90}{\hskip+.5\tot@ht \llap{\emph{THIRD FOLD}}}% + \begingroup + \fboxsep 0pt + \lineskip=0pt \lineskiplimit=12in + \fbox{% + \vtop to \tot@ht{\unvbox\inner@box\vfill}% + \vtop to \tot@ht{\leaders\hbox{.\strut}\vfil}% + \hskip -\baselineskip + \rotatebox{90}{\hskip-.5\tot@ht \emph{FIRST FOLD}}% + \vtop to \tot@ht{\hsize=\part@width + \hbox to \hsize{% + \hbox to .5\hsize{% + \hfil \rotatebox{-90}{\hskip+.5\tot@ht \llap{\emph{THIRD FOLD}}}% + }% + \vtop to .5\tot@ht{\leaders\hbox{.\strut}\vfil}% + \vtop to .5\tot@ht{\unvbox\outer@box}% }% - \vtop to .5\tot@ht{\leaders\hbox{.\strut}\vfil}% - \vtop to .5\tot@ht{\unvbox\outer@box}% + \hbox to \hsize{\leaders\hbox{.}\hfill}% + \hfil \emph{SECOND FOLD}% + \vfill }% - \hbox to \hsize{\leaders\hbox{.}\hfill}% - \hfil \emph{SECOND FOLD}% - \vfill - }% - }% - - \vspace{1cm}% + }\par + \endgroup } \vfuzz=10in % shut up about overfull \vbox's! diff -ruN v1.5d/LaTeX/Styles/playerlist.sty v1.6.0/LaTeX/Styles/playerlist.sty --- v1.5d/LaTeX/Styles/playerlist.sty 2000-04-06 02:24:23.000000000 -0400 +++ v1.6.0/LaTeX/Styles/playerlist.sty 2004-09-21 18:09:57.000000000 -0400 @@ -2,7 +2,6 @@ \RequirePackage{graphicx} \RequirePackage{times} -\RequirePackage{simplemargins} % check commands not taken \newcommand\if@map{} \newcommand\@maptrue{} \newcommand\@mapfalse{} @@ -12,23 +11,15 @@ \ExecuteOptions{map} % default \ProcessOptions* -\voffset=-.5in -\settopmargin{.5in} -\setbottommargin{.5in} -\vsize=7.5in -\setpageheight{\vsize} - -\hoffset=-.75in -\setleftmargin{.25in} -\setrightmargin{.25in} -\hsize=10.5in -\setpagewidth{\hsize} -\parindent 0pt +\geometry{landscape,dvips} +\geometry{nomarginpar} +\geometry{margin=.5in} +\geometry{offset={-.75in,-.5in}} -\special{papersize=11in,8.5in} -\special{! /landplus90 true store} \special{header=tumble} +\parindent 0pt + \newcommand\playerlist[1]{% \begingroup \?\newcommand\@list@template\end@toss @@ -100,7 +91,7 @@ \newdef\clumpasis[2]{% clump, header; order ``as is'' \clump@start{#1}{#2}% \gdef\eachcharaction##1{% - \extractdef\char@clump##1{clump}% + ##1{\def\char@clump{clump}}% \ifx\cur@clump\char@clump \plistentry##1\relax \fi @@ -170,14 +161,14 @@ \clump@start{#1}{#2}% \gdef\clump@list{}% \gdef\eachcharaction##1{% - \extractdef\char@clump##1{clump}% + ##1{\def\char@clump{clump}}% \ifx\cur@clump\char@clump % put this character in the clump list \add@to@macro\clump@list{\clump@char##1}% % initialize position to zero \expandafter\gdef\csname clump-position-\string##1\endcsname{0}% - % extract \orderby info into \order@info - \extractdef\order@info##1{PLAYERLIST@orderby}% + % put \orderby info into \order@info + ##1{\def\order@info{PLAYERLIST@orderby}}% % refine \order@info by expanding regular macros in it \begingroup \aftergroup\edef \aftergroup\order@info @@ -258,10 +249,6 @@ } -\AtBeginDocument{ - \vsize=10\pagesize % avoid automatic page-cutting; do that specially - \it -} \newcommand\ensure@halign{% % starts halign, then becomes impotent \tabskip 0pt plus1fil @@ -274,7 +261,7 @@ \ensure@halign % in case there were no clumps at all \cr\egroup \gdef\eachcharaction#1{% - \extractdef\char@clump#1{clump}% + #1{\def\char@clump{clump}}% \ifx\char@clump\un@listed \else \expandafter\ifx\csname clump-\char@clump-status\endcsname\relax @@ -289,9 +276,15 @@ \newdimen\pagesize -\pagesize=\vsize - \newdimen\scratchdim + +\AtBeginDocument{ + % avoid automatic page-cutting; do that specially later + \pagesize=\vsize\relax + \multiply\vsize by 10\relax + \it +} + \output={% % \special's \setbox0=\vsplit255 to 0pt \unvbox0\relax @@ -319,7 +312,7 @@ \fi \unvbox255\relax \global\output={% - \setbox5=\vbox{\unvbox255}% + \setbox5=\vbox{\@begindvi \unvbox255}% % 1st pass gets \AtBeginDvi stuff \ifdim\wd5>0pt \shipout\vbox{% \vbox to 0pt{\vskip-.25in \hskip.5in diff -ruN v1.5d/LaTeX/Styles/sheets.sty v1.6.0/LaTeX/Styles/sheets.sty --- v1.5d/LaTeX/Styles/sheets.sty 2001-08-13 11:56:04.000000000 -0400 +++ v1.6.0/LaTeX/Styles/sheets.sty 2004-03-20 17:26:59.000000000 -0500 @@ -1,19 +1,26 @@ \ProvidesPackage{sheets} -% This package sets default linespacing and margins and sets up for -% the funky header, including eps icon and (when appropriate) the -% ``name of the character this FooSheet is for'' spot. -% (\doname is defined to do the header; thus when you call \name, -% which sets \me to its contents and then calls \doname, you get it.) - -% Written/edited by David Oh, November 1, 1991. -% Certain Parts Copyright (C) David Oh and the MIT Assassin's Guild 1991 -% Modified for use in `One is not a Prime Number.' (1992) -% Modified again for use in 'Midnight in Moscow, Take 2' (1994) -% and some more by Jeremy Brown, Aug. 24 1994 -% and for Moon Over Bourbon Street some more by Jeremy Brown, June, 1995 -% and for Catastrophe some more by Jeremy Brown, Oct, 1996 -% and for the Template (TM) by Jamie Morris, Spring 1998 and later +% This package +% +% * Sets default geometry. +% * Provides the \sheetbanner macro and initializes \doname to +% invoke it such that \name{\Frobozz} will put up the funky banner, +% with the ``name of the character this FooSheet is for'' spot +% and your eps icon, proclaiming itself \me{} (i.e. \Frobozz{}). +% Everything involved in that is customizable globally (here) or +% (more usually) per-substyle or (rarely) per actual sheet. +% * Provides a couple useful environments/macros for sheetwriters, +% namely tightlist and \topquote. + + +% Acknowledgments: portions trace back to material variously +% written/edited by David Oh (1991), +% modified for `One is not a Prime Number' (1992), +% modified for `Midnight in Moscow, Take 2' (1994), +% modified by Jeremy Brown (August 1994), +% again for `Moon Over Bourbon Street' (1995), +% again for `Catastrophe' (1996), +% before the Template went to work on it. %%%%%%%%%%%%%%%%%%% @@ -35,15 +42,19 @@ \setstretch{1.2} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Set up margins and headers % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\topmargin -0.5in -\textheight +9.0in -\oddsidemargin -.25in -\evensidemargin \oddsidemargin -\textwidth +7.0in +%%%%%%%%%%%%%%% +% Page layout % +%%%%%%%%%%%%%%% +% +\geometry{width=7.0in,height=9.5in} +\geometry{includefoot,vmarginratio=3:2} +% substyles that set \pagestyle{empty} will probably want to set +% \geometry{ignorefoot,vmarginratio=1:1}, redistributing that space + + +%%%%%%%%%%%%%%%%%%% +% Section headers % +%%%%%%%%%%%%%%%%%%% % \ifdim\InlineHeaderIndent=0pt % leave section headers alone (non-inline) @@ -65,25 +76,22 @@ \fi -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Following Section Written by David Oh, later edited by Jamie Morris % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This sets up the macro that actually builds the header. -% If you have a .sty file that uses this, but you don't want this -% header there, \renewcommand\doname{make my header instead} there. -% \renewcommand\doname{} will have it not do anything at all. -% (\doname is called by \name just after it sets \me.) - +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Build the pretty banner (original version by David Oh) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% Specific sheet styles will \renewcommand\sheetname to whatever they +% are, but you can also use [sheets] as a style by itself (getting this). +% \newcommand\sheetname{Miscellaneous Sheet} -% Specific sheet .sty files will \renewcommand that to whatever they are, -% but you can also use [sheets] as a style by itself. - - +% +% % Put in the eps of the char name if available (the perl scripts % cause it to be; it's not there otherwise unless you're % doing it by hand on purpose). This doesn't take args to % fiddle the offset and scaling (alter llx/lly/urx/ury/rwi)... yet. +% % Styles based on this style that don't want the charname to appear % (e.g. character sheets, where it would be highly redundant) % should \renewcommand\docharnamehere{}. @@ -91,9 +99,10 @@ \newcommand\docharnamehere{% \special{psfile=charnameheader.eps llx=0 lly=0 urx=1 ury=0 rwi=-10}% } - +% +% %% \useicon[optional width]{eps icon file} -% sets what icon goes in the header, and optionally what width it is. +% sets what icon goes in the banner, and optionally what width it is. % We pass it the default here; the Czar could overrule that in specific % sheet styles (bluesheet icon, greensheet icon...) and/or the GMs can % overrule it for individual sheets. Width defaults if not present. @@ -104,10 +113,12 @@ \ifdim\icon@width>0pt \def\icon@file{#2}\relax \else \def\icon@file{}\fi } \useicon{icon.eps} - -% And now the header itself. \name will set \me, then call \doname. % -\renewcommand\doname{% +% +%% \sheetbanner{Frobozz} puts it all together into the actual banner +%% proclaiming this as Frobozz (typically Frobozz == \me{} == \Cbob{}). +% +\newcommand\sheetbanner[1]{% \def\line@across{\leaders\hrule height.6ex depth-.55ex\hfill\null} \noindent \valign{\centering \vfil##\vfil\cr @@ -119,13 +130,21 @@ {\small\sc \gamename~\line@across}% \docharnamehere \break\vfil - {\Large\me{}}% + {#1}% \break\vfil {\small\sc \sheetname~\line@across}% \cr } \vspace{.15in} } +% +% +%% Almost always sheets start by calling \name{xyz} (which sets \me == xyz, +%% then invokes \doname) and want to get a banner for xyz there, so we set +%% \doname to make it so. To override that for specific substyles the +%% Czar can just \renewcommand\doname{whatever} there. +% +\renewcommand\doname{\sheetbanner{\Large\me{}}} % stolen from Andre' DeHon, edited by Jeremy Brown, edited by Jamie Morris diff -ruN v1.5d/LaTeX/Styles/signs.sty v1.6.0/LaTeX/Styles/signs.sty --- v1.5d/LaTeX/Styles/signs.sty 2000-01-04 20:46:22.000000000 -0500 +++ v1.6.0/LaTeX/Styles/signs.sty 2004-03-22 17:56:44.000000000 -0500 @@ -1,38 +1,57 @@ \ProvidesPackage{signs} \RequirePackage{sheets} -\RequirePackage{nopagenumbers} - \renewcommand\sheetname{Sign} +\renewcommand\docharnamehere{} + +\pagestyle{empty} % page numbers neither needed nor wanted here +\geometry{ignorefoot,vmarginratio=1:1} % so reclaim their space \special{header=simplex} % be single-sided +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is the part you really need to set. It should be like %% \def\takedownby{Monday March 37th} % -\def\takedownby{[Production Czar should set date in LaTeX/Styles/signs.sty]} - +\def\takedownby{[Production Czar should set date in LaTeX/Styles/signs.sty\@warn{=== The take-down-by date in LaTeX/Styles/signs.sty still needs to be set! ===}]} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % If you modify how \sign works, you should update the documentation % in LaTeX/Central/signs.tex and in html/macro-glossary.html. - +% % \sign{name}{location}{description}{mechanic} \newdef\sign[4]{% - \name{\Huge #1} + \sheetbanner{\Huge #1} \begin{center} {\Large #2\leavevmode\\} \vfill {\Huge #3\leavevmode\\} \vfill \def\@tmp{#4}% \ifx\@tmp\empty\else - \fboxsep=.1cm\fbox{\fboxsep=2\fboxsep\fbox{\vbox{\Large #4}}}\break\vfill + \fboxsep=.1cm \fitfbox{% + \fboxsep=2\fboxsep \fitfbox{% + \vbox{\Large #4}% + }% + }% + \break\vfill \fi {\huge MIT Assassins' Guild \\ - Please do not remove this sign. It will be taken down before - \takedownby.\\} + We will take this sign down by \takedownby.\\ + Please do not remove it before then.\\} \end{center} \newpage } +% helper macro; \fbox that adjusts the horizontal size seen inside +% to compensate for the space taken up by the framing. +% this probably belongs in a less specialized style... +\newcommand\fitfbox[1]{% + \fbox{% + \advance\hsize by -2\fboxsep\relax + \advance\hsize by -2\fboxrule\relax + #1% + }% +} + \vfuzz=10in % shut up about overfull \vbox's! \vbadness=10000 % and underfull ones diff -ruN v1.5d/Whitesheets/.cvsignore v1.6.0/Whitesheets/.cvsignore --- v1.5d/Whitesheets/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Whitesheets/.cvsignore 2001-08-09 01:09:50.000000000 -0400 @@ -0,0 +1,4 @@ +*.dvi +*.log +*.aux +*.ps diff -ruN v1.5d/Whitesheets/DVI/.cvsignore v1.6.0/Whitesheets/DVI/.cvsignore --- v1.5d/Whitesheets/DVI/.cvsignore 1969-12-31 19:00:00.000000000 -0500 +++ v1.6.0/Whitesheets/DVI/.cvsignore 2001-08-08 23:54:54.000000000 -0400 @@ -0,0 +1,3 @@ +*.dvi +*.log +*.aux diff -ruN v1.5d/Whitesheets/DVI/.exportme v1.6.0/Whitesheets/DVI/.exportme --- v1.5d/Whitesheets/DVI/.exportme 2000-01-01 21:21:22.000000000 -0500 +++ v1.6.0/Whitesheets/DVI/.exportme 1969-12-31 19:00:00.000000000 -0500 @@ -1,3 +0,0 @@ -This file is here purely to make the directory non-empty, so that -CVS will export the directory. If you're using CVS, better keep -it; otherwise, feel free to rm this. diff -ruN v1.5d/bin/GameConfig.pm v1.6.0/bin/GameConfig.pm --- v1.5d/bin/GameConfig.pm 2000-01-06 03:27:09.000000000 -0500 +++ v1.6.0/bin/GameConfig.pm 2004-03-22 16:06:09.000000000 -0500 @@ -30,7 +30,7 @@ =cut use strict; -use English; +use English '-no_match_vars'; $WARNING = 1; # same as usual -w option $OUTPUT_AUTOFLUSH = 1; diff -ruN v1.5d/bin/doc v1.6.0/bin/doc --- v1.5d/bin/doc 2001-08-13 10:56:34.000000000 -0400 +++ v1.6.0/bin/doc 2004-03-22 16:06:10.000000000 -0500 @@ -3,7 +3,7 @@ package doc; use strict; -use English; +use English '-no_match_vars'; use GameConfig; use Getopt::Long; @@ -45,7 +45,7 @@ Getopt::Long::config(qw( auto_abbrev bundling require_order )); # Perhaps we will have more options someday. -Getopt::Long::GetOptions("help|h" => \&usage) +Getopt::Long::GetOptions ("help|h" => sub { die "\n" }) or &usage; GAME::chdir "html"; diff -ruN v1.5d/bin/extractor v1.6.0/bin/extractor --- v1.5d/bin/extractor 2001-08-13 14:50:13.000000000 -0400 +++ v1.6.0/bin/extractor 2004-03-22 16:06:10.000000000 -0500 @@ -3,7 +3,7 @@ package extractor; use strict; -use English; +use English '-no_match_vars'; use GameConfig; diff -ruN v1.5d/bin/gm v1.6.0/bin/gm --- v1.5d/bin/gm 2001-08-13 15:01:57.000000000 -0400 +++ v1.6.0/bin/gm 2004-03-22 16:06:11.000000000 -0500 @@ -40,7 +40,7 @@ # don't use any modules that allow unsafe operations, as those modules # will be freely available to the later script, having been compiled here. -use English; +use English '-no_match_vars'; use Getopt::Long; use Opcode; use Symbol; @@ -70,13 +70,13 @@ # look like "Template v1-5 gm 1.8 last modified 1999/12/17". # The export will do -kv so that the dollar signs and keyword names # are stripped off, so use regexps that will work with and without them. - my $id = 'gm,v 1.45.2.3 2001/08/13 19:01:57 jemorris Exp'; + my $id = 'gm,v 1.52 2004/03/22 21:06:11 jemorris Exp'; my ($gmvers, $year, $mon, $mday, $hours, $min, $sec) = $id =~ m<\S+,v\s+(\d\S*)\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+)>; my ($d, $m, $y) = (localtime(timegm($sec, $min, $hours, $mday, $mon-1, $year-1900)))[3..5]; my $date = sprintf "%4d/%02d/%02d", $y+1900, $m+1, $d; - my $tag = 'v1-5d'; + my $tag = 'v1-6-0'; $tag =~ s/\$\S*//g; $tag =~ s/\s//g; length $tag or $tag = "mainline"; @@ -150,10 +150,9 @@ Spawning of other processes is obviously one of the masked operations. Therefore, a number of the calls provided by GM and GAME spawn limited -versions of particularly necessary executables. These are run with -explicit paths to their lockers if and only if users are not expected to -always have one in their path; as usual on Athena, the relevant locker -is attached in this case so that /mit/whatever exists. +versions of particularly necessary executables. These are executed from +a specific locker (via athrun) if and only if users are not expected to +always have one in their path on reasonably modern Athena machines. Because (la)tex is one such, we delete $ENV{shell_escape} which if set to true allows TeX code to perform arbitrary system calls. @@ -220,14 +219,21 @@ defined $ENV{GAME} or die "GAME is not set\n"; -$ENV{GAME} eq $opt{game} - or die "GAME is set to $ENV{GAME}, not $opt{game}\n"; - -$opt{game} =~ m(^/) - or die "GAME must be an absolute path; '$opt{game}' is a relative path\n"; - -$opt{tmp} =~ m(^/) - or die "--tmp must be given absolute path; '$opt{tmp}' is relative\n"; +my $game; # full actual path, not /mit/foo/bar; this'll be saved +{ + for my $spec ({ -path => $opt{game}, -src => "--game" }, + { -path => $ENV{GAME}, -src => "GAME" }) + { + $$spec{-path} =~ m(^/) or die + "$$spec{-src} must be an absolute path; '$$spec{-path}' is relative\n"; + chdir $$spec{-path} or die + "gm: unable to cd to ($$spec{-src}) $$spec{-path}\n"; + (my $here = $pwd->()) =~ s(/+\Z)(); + defined $game and $here ne $game and die + "GAME and --game do not agree\n\t($here vs $game)\n"; + $game = $here; + } +} =head1 TEMP WORKING DIRS PROVIDED @@ -242,16 +248,15 @@ =cut +$opt{tmp} =~ m(^/) + or die "--tmp must be given absolute path; '$opt{tmp}' is relative\n"; + chdir $opt{tmp} or (mkdir $opt{tmp}, 0700 and chdir $opt{tmp}) or die "can neither go to nor create tmp directory $opt{tmp}\n"; my $tmp = $pwd->(); # full actual path, not /mit/foo/bar $tmp =~ s(/+\Z)(); mkdir ".gm.$PID", 0700; # for process-specific private temp storage -chdir $ENV{GAME} - or die "gm: unable to go to $ENV{GAME}\n"; -my $game = $pwd->(); # full actual path, not /mit/foo/bar -$game =~ s(/+\Z)(); @@ -411,10 +416,11 @@ # $ingame->(integer skip, arguments) # skips the first "skip" args, then treats the rest as files and dirs -# that must be in the game area. +# that must be in the game area. this is an assertion, not a calculation, +# the return value isn't good for anything. # my $ingame = sub ($@) { - $opt{unsafe} and return; + return if $opt{unsafe}; my @list = @_; $chdir_rebound = 1; my $skip = shift; @@ -439,7 +445,6 @@ } } $chdir_rebound = 0; - return 1; }; # $exec->() is used internally to spawn processes. @@ -451,7 +456,7 @@ if (CORE::open EXEC, "-|") { # implicit fork, parent here %execopt = (); # child has tweaks; clear them here for later my $result = ; - close EXEC or $die->("fatal error in exec of $call exec"); + close EXEC or $die->("fatal error in exec of $call @arg"); return $result; } else { # child @@ -481,7 +486,7 @@ sub contents (;$); sub dvips (@$); sub gv ($@); -sub latex ($;$); +sub latex ($;$$); sub link ($$); # hard links! rarely want sub lpc ($;$); sub lpq ($@); @@ -517,18 +522,18 @@ $call{"chdir"} = sub { $chdir->(@_) }; # trivial "check everything is ingame and do it" funcs -$call{"link"} = sub { $ingame->(0, @_) && CORE::link shift, shift }; -$call{"rename"} = sub { $ingame->(0, @_) && CORE::rename shift, shift }; -$call{"rmdir"} = sub { $ingame->(0, @_) && CORE::rmdir @_ }; -$call{"symlink"} = sub { $ingame->(0, @_) && CORE::symlink shift, shift}; -$call{"unlink"} = sub { $ingame->(0, @_) && CORE::unlink @_ }; +$call{"link"} = sub { $ingame->(0, @_); CORE::link shift, shift }; +$call{"rename"} = sub { $ingame->(0, @_); CORE::rename shift, shift }; +$call{"rmdir"} = sub { $ingame->(0, @_); CORE::rmdir @_ }; +$call{"symlink"} = sub { $ingame->(0, @_); CORE::symlink shift, shift }; +$call{"unlink"} = sub { $ingame->(0, @_); CORE::unlink @_ }; # teeny bit nontrivial, not every arg is a file/directory -$call{"chmod"} = sub { $ingame->(1, @_) && CORE::chmod @_ }; -$call{"chown"} = sub { $ingame->(2, @_) && CORE::chown @_ }; -$call{"utime"} = sub { $ingame->(2, @_) && CORE::utime @_ }; +$call{"chmod"} = sub { $ingame->(1, @_); CORE::chmod @_ }; +$call{"chown"} = sub { $ingame->(2, @_); CORE::chown @_ }; +$call{"utime"} = sub { $ingame->(2, @_); CORE::utime @_ }; # args to skip are last here, not first -$call{"mkdir"} = sub { $ingame->(0, $_[0])&& CORE::mkdir shift, shift}; +$call{"mkdir"} = sub { $ingame->(0, $_[0]); CORE::mkdir shift, shift }; # can take either (open) filehandle or filename as first arg $call{"truncate"} = sub { @@ -641,13 +646,13 @@ $exec->("dvips", @arg, "-o", $out); }; -=head2 B (I, I) +=head2 B (I, I) -I is split on whitespace for convenience. +I is split on whitespace for convenience. Unless --unsafe is set, I must be ingame, the C<-nosafer> option is not allowed, and C<-safer> is -added to the argument list. Attaches sipb and executes -B on I with the modified argument list. +added to the argument list. Executes B (from sipb locker) +on I with the modified argument list. =cut @@ -661,17 +666,22 @@ } push @arg, qw( -safer ); } - $exec->("attach", "sipb"); - $exec->("gv", $file, @arg); + $exec->("athrun", "sipb", "gv", $file, @arg); }; -=head2 B (I, [I]) +=head2 B (I, [I, [I]]) If safety checks are passed, spawns "C>"; I is not split on whitespace and may contain TeX code (or simply a filename, of course). It may not contain latex switches, such as C<-shell-escape>, unless --unsafe is set. +If I is "/", $TEXMFOUTPUT will be set to $GAME first. +If I is "", it will be set to the temporary directory. +This is only needful when the latex job has output into unusual places. +With I undef the user's $TEXMFOUTPUT is left alone. +For other values the behavior is not defined. + Problems spawning latex cause a fatal error. If the latex spawns but fails, a simple die() occurs (and can be caught) containing latex's output followed by a complaint that [script name] @@ -681,7 +691,7 @@ =cut $call{"latex"} = sub { - my ($arg, $err) = @_; + my ($arg, $err, $writeto) = @_; $arg =~ /^[^\w\\]*-/ and $die->("can't use latex options: $arg") unless $opt{unsafe}; # some complications are needed to get latex's output @@ -699,6 +709,8 @@ exit; } else { # unto the second generation + local $ENV{TEXMFOUTPUT} = ($writeto ? $tmp : $game) + if defined $writeto; exec "latex", $arg # no shell interpretation! or # should never come back from exec $die->("exec of latex returned somehow (impossible; $!)"); @@ -708,13 +720,8 @@ =head2 (string) B (I, I) +Executes and returns the value of C I>. Only "status" and "printcap" are legal I values unless --unsafe. -Executes and returns the value of "C I>". - -If (after attaching ops) /mit/ops/bin/lpcng exists and is executable, -it is used instead of lpc. (When lpcng exists, it should always be correct, -but lpc may not be (8.2 machines); when lpcng does not exist, the -athena lpc should be both correct and the default. Note that if the print server does not allow the user to do this query, it will return something like "no permission to control server\n" but @@ -722,7 +729,6 @@ =cut -my $lpcprog = ""; $call{"lpc"} = sub { my ($cmd, $printer) = map { split } @_; $cmd or die "gm: lpc: no command given\n"; @@ -731,11 +737,7 @@ grep { $_ eq $cmd } qw( status printcap ) or die "gm: lpc $cmd illegal\n"; } - unless ($lpcprog) { - $exec->("attach", "ops"); - $lpcprog = (-e "/mit/ops/bin/lpcng" ? "/mit/ops/bin/lpcng" : "lpc"); - } - return $exec->($lpcprog, $cmd, $printer); + return $exec->("lpc", $cmd, $printer); }; =head2 B (arguments), B (arguments) @@ -751,9 +753,9 @@ =head2 (string) B (I..., I) -Use lynx from the infoagents locker (which gets attached) to -get the contents of I, which must be an ingame file -unless either it starts with http: or --unsafe is set. +Use lynx (from infoagents locker) to get the contents of I, +which must be an ingame file or else start with http: unless +--unsafe is set. The arguments in the lynx option list are each split on whitespace for convenience to form a complete list. @@ -787,8 +789,7 @@ push @arg, qw( -nolog -restrictions=all ); $ingame->(0, $html) unless $html =~ /\Ahttp:/i; } - $exec->("attach", "infoagents"); - my $read = $exec->("/mit/infoagents/bin/lynx", @arg, $html); + my $read = $exec->("athrun", "infoagents", "lynx", @arg, $html); $out eq "-dump" and # shorten horribly long file:// names $read =~ s<^(\s*\d+\.\s*file)://localhost\Q$game\E(\S+)$><$1 \$GAME$2>gmo; return $read; @@ -839,16 +840,15 @@ The arguments are each split on whitespace for convenience to form the complete list. The environment variable MIBS is local'y set to "HOST-RESOURCES-MIB" to keep things fast; this probably means -that resources should be specified numerically. The outland locker -is attached, and snmpget is run from it with the arguments and its -output returned. See the snmpget manpage. +that resources should be specified numerically. Then C +is executed (from outland locker) and its output returned. +See the snmpget manpage. =cut $call{"snmpget"} = sub { local $ENV{MIBS} = "HOST-RESOURCES-MIB"; - $exec->("attach", "outland"); - return $exec->("/mit/outland/bin/snmpget", map { split } @_); + return $exec->("athrun", "outland", "snmpget", map { split } @_); }; =head2 B (I..., I) @@ -915,10 +915,11 @@ =head2 B (I, other args untouched) -=head2 B (I, optional error message) +=head2 B (I, I<[errmsg]>, I<[writeout]>) Since the first arg gets mapped, it obviously has to be an actual filename -(with or without .tex). To pass code you must call B. +(with or without .tex). To pass code you must call B directly. +See B above for the meaning of the other arguments. =head2 B (I) @@ -928,7 +929,7 @@ # sub chdir ($); sub gv ($@); -sub latex ($;$); # don't use if arg has TeX commands in it, duh +sub latex ($;$$); # don't use if arg has TeX commands in it, duh sub opendir ($); # sub AUTOLOAD { diff -ruN v1.5d/bin/injector v1.6.0/bin/injector --- v1.5d/bin/injector 2000-01-13 01:29:17.000000000 -0500 +++ v1.6.0/bin/injector 2004-03-22 16:06:17.000000000 -0500 @@ -3,7 +3,7 @@ package injector; use strict; -use English; +use English '-no_match_vars'; use GameConfig; use Getopt::Long; @@ -30,7 +30,7 @@ Getopt::Long::config("default"); Getopt::Long::config(qw( auto_abbrev bundling permute )); Getopt::Long::GetOptions( - "help|h" => \&usage, + "help|h" => sub { die "\n" }, "replace|r" => sub { $replace = 1 }, "add|a" => sub { $replace = 0 }, "<>" => sub { push @arg, shift } @@ -57,11 +57,11 @@ my %content = (); for (split /\n\s*\n/) { next unless $_; - my ($char, $content) = split /\n/, $_, 2; + my ($char, $content) = split /\n/, "$_\n", 2; # put comments aside for now, put them back later $content =~ s/(^|[^\\])((?:\\\\)*)(%.*?(?:\n|\Z))/$1$2\n%DISPLACED COMMENT:$3/gmx; - $content{$char} = "$content\n"; + $content{$char} = $content; } my $pattern = <<'EOP'; diff -ruN v1.5d/bin/invertmap v1.6.0/bin/invertmap --- v1.5d/bin/invertmap 2000-01-11 21:31:35.000000000 -0500 +++ v1.6.0/bin/invertmap 2004-03-22 16:06:17.000000000 -0500 @@ -3,7 +3,7 @@ package invertmap; use strict; -use English; +use English '-no_match_vars'; $WARNING = 1; # same as usual -w option $INPUT_RECORD_SEPARATOR = undef; diff -ruN v1.5d/bin/numbers v1.6.0/bin/numbers --- v1.5d/bin/numbers 2000-01-11 21:31:35.000000000 -0500 +++ v1.6.0/bin/numbers 2004-03-22 16:06:18.000000000 -0500 @@ -4,7 +4,7 @@ use strict; use vars qw (%num @rand $valhead); # must be global in package numbers -use English; +use English '-no_match_vars'; local $WARNING = 1; # same as usual -w option @@ -162,8 +162,8 @@ while (<$fh>) { my @lines = split /\n/; my $val = shift @lines; - if ($val =~ /^$valhead\s*/o) { - my %val = map { split /=/ } split /,\s*/, $'; + if ($val =~ /^$valhead\s*(.*)/o) { + my %val = map { split /=/ } split /,\s*/, $1; for (keys %val) { angst("'$_' in file $target$flags is not a known value") unless exists $type{$_} and $type{$_} eq 'value'; diff -ruN v1.5d/bin/packets v1.6.0/bin/packets --- v1.5d/bin/packets 2001-08-18 08:40:33.000000000 -0400 +++ v1.6.0/bin/packets 2004-03-22 16:06:19.000000000 -0500 @@ -3,7 +3,7 @@ package packets; use strict; -use English; +use English '-no_match_vars'; use GameConfig; use Getopt::Long; @@ -34,7 +34,7 @@ qw( extract|e latex|l xdvi|x dvips|d gv|g print|p ), # actions qw( all-characters|a ingame|i:s config=s ), # flags "only" => \&later, "except" => \&later, - "help|h" => \&usage, + "help|h" => sub { die "\n" }, "<>" => \&later) or &usage; @@ -192,7 +192,8 @@ my $sendto = GM::path "${writeto}Charsheets/Extracts"; GM::latex "\\def\\WriteGameExtractsAlongPath{$sendto} \\input $truechar/$char", - "$char.tex to extract fields"; + "$char.tex to extract fields", + $writeto; } $readfrom = $writeto; $abort and die "Fatal errors while extracting\n" @@ -216,11 +217,11 @@ print "\n"; GM::latex $file, "${char}'s $field"; } - else { - print "not present - presumed not in charsheet\n"; - } - # if necessary, make zero-length dvi file as a placeholder - -e "$base.dvi" or close GM::open ">$base.dvi"; + else { + print "not present - presumed not in charsheet\n"; + } + # if necessary, make zero-length dvi file as a placeholder + -e "$base.dvi" or close GM::open ">$base.dvi"; } } if ($readfrom ne $writeto) { diff -ruN v1.5d/bin/preliminary v1.6.0/bin/preliminary --- v1.5d/bin/preliminary 2001-08-13 11:37:02.000000000 -0400 +++ v1.6.0/bin/preliminary 2004-03-22 16:06:23.000000000 -0500 @@ -3,7 +3,7 @@ package preliminary; use strict; -use English; +use English '-no_match_vars'; use GameConfig; use Getopt::Long; @@ -24,7 +24,7 @@ "config=s", "xdvi|x", "latex|l", "only" => \&inclusion, "except" => \&inclusion, - "help|h" => \&usage) + "help|h" => sub { die "\n" }) or &usage; # fields are left in @ARGV diff -ruN v1.5d/html/charsheets.html v1.6.0/html/charsheets.html --- v1.5d/html/charsheets.html 2000-01-10 02:24:35.000000000 -0500 +++ v1.6.0/html/charsheets.html 2001-08-27 04:38:29.000000000 -0400 @@ -213,6 +213,11 @@ random number generation / assignment utility when listing item numbers, badge numbers, etc.

+

For tex-type extractables that are cards (most but not all are), +\extract{\pageof{whatever}} will produce a full page +of whatevers in the character's packet, but will make a single +entry on the sheet, saying "(a page of) whatever".

+

Now you know just about everything you need to write a @@ -223,4 +228,3 @@ - diff -ruN v1.5d/html/czar.html v1.6.0/html/czar.html --- v1.5d/html/czar.html 2000-01-14 04:25:58.000000000 -0500 +++ v1.6.0/html/czar.html 2004-03-28 05:42:30.000000000 -0500 @@ -98,7 +98,7 @@ effect you want. Want to do room numbers by putting \ROOMcommon, \ROOMgm, \ROOMthrone in the files and setting them centrally? Just \newcommand\ROOMcommon{37-232} (custom.sty's tail is a great place) - will do; you can get more complex, but you don't have to.v + will do; you can get more complex, but you don't have to.

  • Creating cards: how to make new types of cards, in case ability cards, item cards, stat cards, etc. aren't diff -ruN v1.5d/html/dotfiles.html v1.6.0/html/dotfiles.html --- v1.5d/html/dotfiles.html 2001-08-09 05:25:36.000000000 -0400 +++ v1.6.0/html/dotfiles.html 2004-03-22 19:48:50.000000000 -0500 @@ -7,7 +7,7 @@

    These aren't the only possible ways you can do this setup; however, they'll work, and Template development is focused on doing it this way. If you have an Athena clue and grok what's going on here, you may want -to vary things. There are explanations at the bottom of each +to vary things. There are explanations at the bottom for each non-self-explanatory part.

    It's a very good idea to make sure your setup is @@ -16,14 +16,14 @@ hour before packet handout!

    -

    Your .environment file

    +

    Lockers

    -

    In your ~/.environment file (if you don't have one, -create it), put +

    You should not have

     add -f newtex
    -
    -

    + +in your ~/.environment nor any of your other dotfiles. +If you do, get rid of it!

    The gm script

    @@ -81,6 +81,11 @@ by a line in your dotfiles, most likely ~/.environment, where you can comment it out by putting a # in front of it.

    +

    Environment variables that change various memory limits on latex, +like pool_size.latex or hash_extra.latex, +are probably safe to leave in, although they're probably not necessary, +the default limits having gotten larger.

    +

    Activating Customizations

    @@ -91,13 +96,14 @@

    Explanations

    -

    add -f newtex attaches the newtex locker, -puts it in your executable path, and (because of -f) makes sure it -is first in your path. This means that when you run things like latex -and xdvi that exist both in default athena places and in newtex, you'll -get the ones in newtex. Either way you'll get latex2e, but with newtex -all sorts of spiffy latex packagest that aren't in the default athena -places are automatically available.

    +

    The newtex locker used to have spiffier latex packages than +the Athena defaults, and earlier versions of the Template relied +on it for this. Since then Athena's latex has advanced considerably +while newtex has stood still. It is now far behind, and SIPB may do +away with it altogether at some point. As of v1.6 the Template relies +on the tetex distribution, which Athena now has built in, and which you +won't get if you add -f newtex because +the -f gives newtex priority.

    The sample aliases have a GM working on both Buffy (which put its Template tree in a "Template" dir on its top level) and Terror (which diff -ruN v1.5d/html/intro.html v1.6.0/html/intro.html --- v1.5d/html/intro.html 2001-08-18 09:42:53.000000000 -0400 +++ v1.6.0/html/intro.html 2001-08-19 20:43:51.000000000 -0400 @@ -6,7 +6,7 @@

    Introduction (All GMs)

    -

    This is the Assassin Game Template v1-5d +

    This is the Assassin Game Template v1-6-0 (version info here). In order for a team to use this package successfully, you should declare one person to be Production Czar, and put them in diff -ruN v1.5d/html/list-extractable.html v1.6.0/html/list-extractable.html --- v1.5d/html/list-extractable.html 2001-08-13 01:58:19.000000000 -0400 +++ v1.6.0/html/list-extractable.html 2004-03-28 05:43:00.000000000 -0500 @@ -77,10 +77,10 @@ that is for tex-type extractables.

    If you don't base it on sheets.sty, well, you can write whatever -you want.... The funky header sheets.sty provides is from -\renewcommand'ing \doname, which \name always calls after setting \me -but which does nothing until you \renewcommand it. To have the -character name automagically appear when you use the +you want.... The funky header sheets.sty provides is from defining +\sheetbanner and then having that called by \doname (which \name always +calls after setting \me but which does nothing until you \renewcommand it). +To have the character name automagically appear when you use the packets script, copy the definition of \docharnamehere from sheets.sty and insert \docharnamehere wherever the bottom right corner of the name should show up. (It'll be blank diff -ruN v1.5d/html/macro-glossary.html v1.6.0/html/macro-glossary.html --- v1.5d/html/macro-glossary.html 2001-08-13 09:02:39.000000000 -0400 +++ v1.6.0/html/macro-glossary.html 2004-03-28 02:40:05.000000000 -0500 @@ -481,17 +481,24 @@ playerlist.tex comments.

    -

    \pageof{card} -
    Defined in cards.sty; available in cards files. - Makes a full new page of the given card. Cf. \putcard. See - printing-misc.html - and the LaTeX/Central/misc-(various).tex comments and examples. +

    \pageof{particular (card-type) extract} +
    Make/be a page of whatever extract (of some card type), + e.g. \pageof{ \ImyFavoriteItem }. + Available in charsheets (via character.sty) for extractable + lists, where it says something like "(a page of) [argument]," + and in cards files (whether extracted from charsheets by + the packets script or + written by hand), where it + starts a new page and fills it with the given card. + It is not predefined for any non-cards tex-type extracts; + the Czar may wish to do so. Cf. \putcard, and see + the LaTeX/Central/misc-(various).tex comments and examples.

    \player\C(something){data} -
    Defined in game.cls; used only in LaTeX/Lists/players.tex by GMs to - define player information for character macros already - made by GMs in LaTeX/Lists/characters.tex by \newchar. +
    Defined in game.cls; used only in LaTeX/Lists/players.tex + by GMs to define player information for character macros + already made by GMs in LaTeX/Lists/characters.tex by \newchar. (See \newchar.) The format of 'data' is defined in custom.sty and documented in players.tex; the Czar may well fiddle with it, in which case they should document diff -ruN v1.5d/html/numbers-generate.html v1.6.0/html/numbers-generate.html --- v1.5d/html/numbers-generate.html 2000-01-11 21:31:44.000000000 -0500 +++ v1.6.0/html/numbers-generate.html 2003-06-11 01:39:32.000000000 -0400 @@ -53,7 +53,7 @@ ($b + $c) % 3 == 0 value age -($d > $a) and ($d - $a) +($d > $a) and ($d - $a) and run
    @@ -94,10 +94,10 @@
     (foo) and (bar) is the same as (foo) if (foo) is false (since then it doesn't
     matter to 'and' what (bar) is, so it ignores it), and the same as (bar) if 
     (foo) is true (since then 'and' does care).  Let's put this all together for
    -
    ($d > $a) and ($d - $a)
    -$a is the first digit and $d is the fourth. If ($d > $a) is false, then +
    ($d > $a) and ($d - $a)
    +$a is the first digit and $d is the fourth. If ($d > $a) is false, then the 'and' will have to be false, so it doesn't bother to look at the other -side; it just stays at false, which is numerically zero. If ($d > $a) +side; it just stays at false, which is numerically zero. If ($d > $a) is true, then it does look at the other side, which is ($d - $a); whatever the value of that is will be the final value.

    @@ -155,7 +155,7 @@ waste time and space. To avoid them, define the special flag KEEP:
     flag KEEP
    -$d >= 1 and $d <=5
    +$d >= 1 and $d <= 5
     
    says to only keep numbers whose fourth digit is 1 to 5, and to not even look at the flags and values for other numbers, nor save them anywhere. diff -ruN v1.5d/html/philosophy.html v1.6.0/html/philosophy.html --- v1.5d/html/philosophy.html 1999-12-27 22:38:58.000000000 -0500 +++ v1.6.0/html/philosophy.html 2004-04-06 05:20:46.000000000 -0400 @@ -51,6 +51,15 @@
      +

    • Be polite or be ignored.

      + +

    • Asking about something when you need it will often + inspire us to come up with a quick (albeit unpackaged) solution + you can apply, so it's more productive than waiting til postgame. And + even more so if we answer "Uh, that's available already, see there? + Use that." Of course, in that case you obviously didn't bother to + read the docs first to check for a way to do it, did you? Sheesh.

      +

    • Any change which removes functionality will require you to demonstrate that this functionality is not used in more than one recent game in the archives. (Recent is approximately equal to "within the last 5 years.")

      @@ -81,7 +90,7 @@ if we're already planning on it.

      BTW, if you've told us your game is using the Template, then after -it runs we'll send you a feedback questionairre. Most of the Template's +it runs we may send you a feedback questionairre. Most of the Template's to-do list derives from such GM feedback, especially from Czars.

      diff -ruN v1.5d/html/printing-packets.html v1.6.0/html/printing-packets.html --- v1.5d/html/printing-packets.html 2001-08-15 03:27:59.000000000 -0400 +++ v1.6.0/html/printing-packets.html 2004-03-26 15:08:37.000000000 -0500 @@ -236,9 +236,14 @@ single-sided printing should be reliable.
    • Your material will be parcelled out to the printers such that you get a fair share of printer priority but don't flood the printer queues, - because we don't want to violate the Athena Rules of Use, abuse the - printers, and get Athena Ops pissed at the Guild. However, it + because we don't want to violate the + Athena Rules of Use, + abuse the printers, and get Athena Ops pissed at the Guild. However, it will happily flood for printers it thinks are the Guild's. +
    • Packet contents should print in perfect order, but may + not; as of this version I don't know why and suspect a possible + lprng issue---see the external + issues documentation for current status.
    • The postscript files are called things like mageking^Abilities.ps, mageking^Greensheets:destroyworld.ps based on your .tex filenames. Since it would be Bad for those names diff -ruN v1.5d/html/todo.html v1.6.0/html/todo.html --- v1.5d/html/todo.html 2000-01-14 04:25:59.000000000 -0500 +++ v1.6.0/html/todo.html 2004-03-22 19:55:17.000000000 -0500 @@ -36,12 +36,7 @@
    • when \input'ing misc files (mostly Lists/*.tex), do something to make it idempotent, so that having the \input in foo.sty and adding it to custom.sty doesn't break anything -
    • consider consolidating sheet styles so that \usepackage[blue]{sheets} - gets you bluesheets without needing a bluesheets.sty (though if there - is one, it should also suck that in, for extra customizations)
    • enforce preamble-only-ness for macros that only belong in preamble -
    • store \newchar, \player, etc information such that it takes up - less of the macro-length memory pool, as Buffy had problems there
    • check that a blank \me{} doesn't screw anything up (\leavevmode is usually enough to fix this)
    • maybe, possibly, perhaps provide generalization of @@ -80,12 +75,8 @@
  • recommend some way of dealing (\ifcase or symlinks or...) with multiple runs -
  • Postscript --- how to do Cool Font Things cf. boojum; note - that fonts that can't deal with being partially loaded need to - be marked as <<foo.pfb rather than <foo.pfb in psfonts.map - or newtex dvips will screw them up. Also note that it's hard to get - psfonts.map into the search path; see if this is a solvable problem. - Unclear how much these things changed in the transition to latex2e. +
  • Postscript --- how to do Cool Font Things cf. boojum, psfonts.map, etc + (should be easier now that tetex has replaced newtex)
  • postscript -- how to do even cooler things with the map
    @@ -94,17 +85,10 @@
  • finish automatic regression test suite for the whole Template
    -
  • Might add (if there's enough popular request): -
      -
    • money w/ serial numbers -
    • money numbering script -

    -
  • Other packages to make someday:
    • remailer (definitely)
    • SIK-game generator package (foley's stuff, definitely) -
    • cyberspace mud (if requested)

    diff -ruN v1.5d/html/version.html v1.6.0/html/version.html --- v1.5d/html/version.html 2001-08-19 18:01:48.000000000 -0400 +++ v1.6.0/html/version.html 2006-07-18 19:47:04.000000000 -0400 @@ -4,8 +4,8 @@ -

    Version 1.5d

    -

    released 08/19/2001

    +

    Version 1.6.0

    +

    released 7/18/2006

    This file is intended to let you know how the Template you just grabbed for your game has changed since the last time you wrote a game with it. @@ -184,7 +184,7 @@

    1.2

    released 1/29/1999

    -

    1.2 USER

    +

    1.2 USER

    • The setenv we recommend you put in your @@ -683,45 +683,22 @@
    -
    -

    1.5a (patch release)

    -

    released 03/27/2000

    -

    1.5a USER

    -
      -
    • Just fixed a stupid docs bug in Lists/abilities.tex. -
    - -
    +

    1.5a, 1.5b, 1.5c, 1.5d (patch releases)

    +

    released 03/27/2000, 04/06/2000, 05/27/2000, 08/19/2001

    -

    1.5b (patch release)

    -

    released 04/06/2000

    - -

    1.5b USER

    +

    1.5-patches USER

    +All but the first three occurred in the 1.5d patch.
      -
    • Fixed a namespace collision with internal LaTeX macros that caused floats - (figures and tables (but not tabulars)) to crash and burn. -
    -
    +
  • (1.5a) Fixed a stupid docs bug in Lists/abilities.tex. -

    1.5c (patch release)

    -

    released 05/27/2000

    +
  • (1.5b) Fixed a namespace collision with internal LaTeX macros that + caused floats (figures and tables (but not tabulars)) to crash and burn. -

    1.5c USER

    -
      -
    • Fixed the default (commented out) ingestible macro definitions for +
    • (1.5c) Fixed the default (commented out) ingestible macro definitions for charsheets to not leave the third argument hanging around. -
    - -
    - -

    1.5d (patch release)

    -

    released 08/19/2001

    - -

    1.5d USER

    -
    • Dropped the recommended aliasing of dvips -R from dotfiles.html.
      @@ -787,7 +764,8 @@
    -

    1.5d CZAR

    +

    1.5-patches CZAR

    +All occurred in the 1.5d patch.
    • Fixed \frobbies (see top of @@ -808,7 +786,8 @@
    -

    1.5d HACKER

    +

    1.5-patches HACKER

    +All occurred in the 1.5d patch.
    • Dropped bin/gm's GM::dvips -P usage as being incompatible with -R @@ -829,6 +808,163 @@
      +

      1.6

      + +

      1.6.0 released 7/18/2006

      + +

      1.6.0 USER

      +
        + +
      • The newtex locker is now forbidden, not compulsory. + You will need to adjust your dotfiles + accordingly if you've used an older version of the Template. + This includes updating your ~/gm. (The new gm + will also work fine with v1.5, in case you care.) +
        + If you're writing one game with a newtex-compulsory old version + and another with a newtex-forbidden new version you will probably + want to play with 'add -f' and 'add -r' in your aliases to go + back and forth. + +
      • \pageof can also be used in + charsheets' extractable card lists; it will typeset something like + "(a page of) [argument]" on the charsheet, and keep + established \pageof behavior + in the extracted cards files. (It isn't defined in non-card tex-type + extractables; the Czar may sometimes wish to do so.) + +
      • While Stata isn't properly on the map yet + (source map changed format), it at least marks "32 (Stata)" there + instead of "The rubble of Building 20." + +
      • The gm script compares $GAME and --game more liberally, such that + setting one to /mit/USER/Foo and one to /afs/athena/user/U/S/USER/Foo + works. + +
      • Rather than trying to stay synchronized with + the SR's own rules template, + LaTeX/Central/rules.tex sucks + it straight in. You replace that by inserting the actual + current-when-you-do-it contents, so that you don't get an older version. + +
      • Various minor bugs have been fixed. + +
      + +

      1.6.0 CZAR

      +
        + +
      • Added .cvsignore files, mostly for our own sake (Template development + is under CVS) but if your team's using CVS their presence will affect + that (for the better). The .exportme files went away, being + redundant with .cvsignore there. + +
      • Tight packing is used in + mechanics-packets.sty + for fitting the parts of memory packets, ingestible packets, etc on + the page, mainly to reduce scissors work. + +
      • sheets.sty defines an + intermediary \sheetbanner macro that makes the pretty + banner, then sets \doname to invoke that instead of doing it directly. + +
      • signs.sty zots \docharnamehere and uses \sheetbanner instead of \name. + This makes it easier to use them as extractables if the mood strikes you. + OTOH, \me does not get set to the sign's "name" unless you invoke + \name explicitly. If you're using signs as extractables that would + be a poor idea. + +
      • signs.sty does its level best to get you to set \takedownby. + +
      • Added sample \topquote entries to the Bluesheets/ and Greensheets/ + template and sample files, since it works in any sheets.sty document + and using it there seems popular. + +
      • The geometry package has been introduced to handle all + page-layout functions. You can turn it off easily if you hate it. +
          + +
        1. "texdoc geometry" at the athena prompt for the full guide, of + which you'll never need more than small amounts. It's a very + flexible package that gives you lots of ways to set page layout. +
          (If you've used the geometry in the newtex locker, + you will definitely want to check out the new docs --- they changed + the syntax massively and incompatibly. It is a vast improvement.) + +
        2. game.cls does \RequirePackage{geometry}[2002/07/08]. + +
        3. \geometry{pass} or \geometry{pass=true} in a style will turn off + the effects of the geometry package in files using that style. + You could then set \geometry{pass=false} in a substyle to turn it + back on. + So, if you decide you just hate the package, you can just set + \geometry{pass} in custom.sty and not have to take out all the + \geometry invocations everywhere. + +
        4. mechanics-packet.sty, extractable.sty, and cards.sty each + invoke geometry a few times. The package's flexibility is + exploited to choose invocations that should interact fine with + most obvious things jointly-used styles might want to do. + (E.g. the invocations in mechanics-packet.sty and those in + extractable.sty DTRT whether you use either or both.) + +
        + +
      • Various outside packages were lost, introduced, upgraded, renamed, + and/or replaced in the above-mentioned switch from newtex to tetex. + Those affected in the Template as shipped are: +
          + +
        • fancyheadings was deprecated; + upgrade to successor fancyhdr. + ("texdoc fancyhdr" if you care.) +
        • nopagenumbers vanished; rely on + \pagestyle{empty} instead. +
        • simplemargins vanished; + switch to geometry for page layout. (See above.) +
        • fullpage still exists, but is + pointless when using geometry. + +
        + And you may find the occasional random package you like (that the + Template neither contained nor used) missing. Often these have just been + renamed (and maybe upgraded), e.g. ncs.sty vanishes but newcent.sty + appears for the New Century Schoolbook fonts. +
        + If you're unable to find a tetex equivalent for some newtex-only foo.sty + you really need, do (using backticks!)
        + attach newtex % not add!
        + cp `/mit/newtex/bin/kpsewhich foo.sty` My/Game/LaTeX/Styles/
        + and if dvips wails for a newtex-only foo.pro (or perhaps 'foo') + unequalled in tetex,
        + attach newtex
        + cp `/mit/newtex/bin/kpsewhich foo.pro` My/Game/LaTeX/Postscript/
        + to have them available for your game. + E.g. if you long for the days of simplemargins.sty, you could slurp + it in that way, set \geometry{pass} in custom.sty, and be set. + +
      + +

      1.6.0 HACKER

      +
        + +
      • The \extractdef macro is gone, since + \Cfoo{\def\blah{first last}} works just fine. + You may need to keep an eye on the \unskip. + +
      • The gm script abandons Athena 8, moving to athrun and /usr/athena/etc/lpc, + ditching attach and /mit/ops/bin/lpcng. At last. + +
      • The gm script's GM::latex, GAME::latex can be told to set TEXMFOUTPUT + to $GAME, or to the temp dir, for jobs that write output to unusual + places (e.g. char extracts). This wasn't necessary under newtex, + but tetex's more modern latex is more cautious. The packets script + now needs and uses this feature. + +
      + +
      +

      Remember to check out the external documentation on recently discovered issues.