summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/rmpage/rmplocal.gfc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/rmpage/rmplocal.gfc
Initial commit
Diffstat (limited to 'macros/latex/contrib/rmpage/rmplocal.gfc')
-rw-r--r--macros/latex/contrib/rmpage/rmplocal.gfc1407
1 files changed, 1407 insertions, 0 deletions
diff --git a/macros/latex/contrib/rmpage/rmplocal.gfc b/macros/latex/contrib/rmpage/rmplocal.gfc
new file mode 100644
index 0000000000..9d29c55644
--- /dev/null
+++ b/macros/latex/contrib/rmpage/rmplocal.gfc
@@ -0,0 +1,1407 @@
+%% File rmplocal.cfg 11/9/96
+%% File rmpagelocal.cfg 23/8/96
+%%
+%% Copyright 1996 and 1997 R.J.M. McDonnell
+%% email: rebecca@astrid.u-net.com
+%%
+%%
+%% This file is meant to be modified at each installation. So that
+%% you don't end up with a mess that's hideously incompatible with
+%% other installations and versions of the rmpage package, do this:
+%% when you change this file, add a comment on the top line identifying
+%% it as yours, and change the comment after the version number to do
+%% the same thing (e.g., [1923/09/17 v0.carrot Gertrude Stein's config
+%% file for the rmpage package]).
+%%
+%% Please don't make any other changes above the line: `LOCAL CODE BELOW
+%% HERE PLEASE', aside from commenting out or uncommenting whole
+%% options; you're best off not deleting them, honest.
+%%
+%% My current idea is that the contents of this file below the `LOCAL
+%% CODE BELOW HERE PLEASE' line can be cut and pasted wholesale into
+%% a later version of this file; the code that's there is my local
+%% configuration code, and I expect that its only use to you is as
+%% examples. My intention is that future versions of this file won't
+%% have essential code below the line `LOCAL CODE BELOW HERE PLEASE'
+%% either.
+%%
+%% I suggest the first thing you do is hunt down the \ExecuteOptions
+%% statements and change them to whatever you think suits you best.
+%%
+%%
+\NeedsTeXFormat{LaTeX2e}[1996/06/01]
+\ProvidesFile{rmplocal.gfc}[1997/10/10 v1.0 local configuration file
+for the rmpage package.]
+%
+% 1997/10/10 v1.0 Transmogrified it into the first public release
+% version
+% 1996/11/01 v0.36 Changed the typesetting tightness the loadpsfount
+% options change to (now looseish).
+% Goes with rmpage-v0.90.sty
+% 1996/11/01 v0.35 Played about with ltxdoc stuff. Still no joy.
+% Goes with rmpage-v0.89.2.sty
+% 1996/10/31 v0.34 Added the three beton options, just after the
+% loadfount stuff. Belongs here because not everyone uses the
+% concrete founts.
+% Goes with rmpage-v0.89.sty
+% 1996/10/29 v0.33 Put \RM@notinexecuteoptions back in t@uch options;
+% put ljmeepex options into class file. Perhaps change rmpage so
+% t@uch options can be used; tricky.
+% Goes with rmpage-v0.88.sty
+% 1996/10/28 v0.32 Added \RM@AfterInitialTextwidthSetting hook;
+% added book class default options
+% Goes with rmpage-v0.88.sty
+% 1996/10/28 v0.31 Added foils defaults.
+% Goes with rmpage-v0.87.sty
+% 1996/10/25 v0.30 Added stuff about \RM@LocalClassReport hook.
+% Goes with rmpage-v0.85.sty
+% 1996/10/25 v0.29 Changed nastydate option to othernicedate. :-).
+% Goes with rmpage-v0.84.1.sty
+% 1996/10/21 v0.28 Changed slides options a bit; rmpwslid.pko is now
+% used.
+% Goes with rmpage-v0.84.sty
+% 1996/10/21 v0.27 Uncommented another t@uchoption; allowed all t@uch
+% options in \ExecuteOptions; added support for ljmeepex class
+% (options are declared here, and it's given the same number as
+% ljmueepexam. Is Bill Gates the Antichrist?)
+% Goes with rmpage-v0.83.sty
+% 1996/10/19 v0.26 Added ringbinding option which uses new
+% \RM@DefLengthAtLeast command. Changed bithesis settings to use
+% this command to define minmargins.
+% Goes with rmpage-v0.83.sty
+% 1996/10/17 v0.25 Changed loadpsfount stuff to use new command to
+% set looseness, which requests sloppiest \if@twocolum.
+% Goes with rmpage-v0.82.sty
+% 1996/10/14 v0.24 Added errorshow, warningshow, infoshow, and debugshow
+% options (asleep); these are used by tracefnt---someone might
+% like them.
+% Goes with rmpage-v0.81.1.sty
+% 1996/10/09 v0.23 Confirmed lj4printer limits by measuring MS works
+% output. Not great, but it'll do for now.
+% Goes with rmpage-v0.81.1.sty
+% 1996/10/06 v0.22 Fixed loadbookman option
+% Goes with rmpage-v0.81.1.sty
+% 1996/10/04 v0.21 Changed an errant \RM@ocltype to \RM@ocl
+% Goes with rmpage-v0.81.1.sty
+% 1996/10/01 v0.20 Changed loadconcrete option so it uses the beton
+% package; goes with changes in rmpage. Changed generalprinter so
+% it works with HP inkjets.
+% Goes with rmpage-v0.81.sty
+% 1996/09/30 v0.19.1 Changed c76paper option to c7/6paper; binned a
+% redundant asleepoption.
+% Goes with rmpage-v0.80.1.sty
+% 1996/09/29 v0.19 replaced smallbase things with normalbase things.
+% Goes with rmpage-v0.80.sty
+% 1996/09/28 v0.18 added noheaders and notstdmargins to default
+% \ExecuteOptions; to counteract changed default flag settings.
+% 1996/09/27 v0.17 Downcased the RA and SRA paper size names; changed
+% luccasua to lucasual.
+% Goes with rmpage-v0.78.sty
+% 1996/09/26 v0.16 Changed some comments; changed
+% \RM@ClassExecuteOptions to \RM@OnClassExecuteOptions
+% Goes with rmpage-v0.76.sty
+% 1996/09/24 v0.15 Added printer/paper settings from rmpage.sty to
+% the \RM@PrinterPaperSettings hook. Put loadcourier and
+% loadconcrete to bed. Commented out rmcv, rmletter, and bithesis
+% options; they should be redundant by now. Delete them later if
+% there's no problems.
+% Goes with rmpage-v0.74.sty
+% 1996/09/23 v0.14 Changed R+Rdw520printer option so \RM@printertype
+% is set to 11 (new 500 series value), rather than 2 (old DW520
+% value). Foolish child. Added the thisfontwidth option,
+% commented out.
+% Goes with rmpage-v0.73.sty
+% 1996/09/22 v0.13 basemaxmparwidth and basemparclearance options
+% commented out. I mean, really, why not? Added the letter4paper
+% size: an unholy alliance between US letter and ISO A4. Avoid
+% like the plague; but I can almost see a use for it.
+% Goes with rmpage-v0.72.sty
+% 1996/09/18 v0.12.1 Changed some comments.
+% Goes with rmpage-v0.71.2.sty
+% 1996/09/16 v0.12 Added fulllength and stdlength options from
+% rmpage, because they need executing after the touchlength options.
+% Goes with rmpage-v0.71.sty
+% 1996/09/13 v0.11.1 minor doc change
+% 1996/09/13 v0.11 Not much really: added the center and notcenter
+% options to match the documentation.
+% Goes with rmpage-v0.69.sty
+% 1996/09/11 v0.10.1 Made a line a comment line again (oops)
+% Goes with rmpage-v0.67.sty
+% 1996/09/11 v0.10 Added some more options, and changed the name from
+% rmpagelocal.cfg (as it would be in a world free from Bill
+% Gates's malign influence) to the rather silly rmplocal.cfg. It
+% might have been ratlocal, but I decided in favour of utility
+% against character. Apologies to those who use the
+% abreviation RMP in a different context. Added lots and lots of
+% option declarations from rmpage.sty. Changed default option
+% setting and played around with class detection rather a lot;
+% it's relatively elegant now.
+% Goes with rmpage-v0.66.sty
+% 1996/09/10 v0.9 Turned a few %% lines into % lines
+% Goes with rmpage-v0.65.sty
+% 1996/09/10 v0.8 Played about with commented-out options
+% Goes with rmpage-v0.64.sty
+% 1996/09/09 v0.7 Played around with class detection and changed
+% class type numbers
+% Goes with rmpage-v0.63.sty
+% 1996/09/04 v0.6 Erm, some stuff. Changed printer option to
+% dw520-ours.
+% Goes with rmpage-v0.61.sty
+% 1996/09/03 v0.5 Played about a bit; can't remember the details.
+% Goes with rmpage-v0.60.sty
+% 1996/09/02 v0.4 added hook stuff, and included ltxdoc code in one
+% of them.
+% 1996/08/25 v0.3 added rarely used paper size definitions.
+% Goes with rmpagenew v0.56
+% 1996/08/24 v0.2 changed name and stuff; goes with rmpagenew v0.55
+% 1996/08/23 v0.1 Here we go... Goes with rmpagenew v0.54
+%
+%%
+%%
+%% OPTION DECLARATION
+%% ==================
+%%
+%% This section contains the standard options for rmpage. I suggest
+%% you don't add or delete anything from this section: just comment
+%% options out to speed rmpage up or uncomment them if you need to
+%% use them.
+%%
+%% If you want to add options, add them at the end of this section
+%% in between the places marked.
+%%
+%%
+%% PAPER SIZES
+%% -----------
+%%
+%% \DeclareOption{undefinedpaper}{\def\RM@papertype{0}}
+%%
+%% \DeclareOption{letter4paper}{\def\RM@papertype{9}
+%% \setlength\paperheight{8.5in}
+%% \setlength\paperwidth{210mm}
+%% }
+%%
+%% \DeclareOption{a0paper}{\def\RM@papertype{10}
+%% \setlength\paperheight{1189mm}
+%% \setlength\paperwidth{841mm}
+%% }
+%% \DeclareOption{a1paper}{\def\RM@papertype{11}
+%% \setlength\paperheight{841mm}
+%% \setlength\paperwidth{594mm}
+%% }
+%% \DeclareOption{a2paper}{\def\RM@papertype{12}
+%% \setlength\paperheight{594mm}
+%% \setlength\paperwidth{420mm}
+%% }
+ \DeclareOption{a3paper}{\def\RM@papertype{13}%
+ \setlength\paperheight{420mm}%
+ \setlength\paperwidth{297mm}%
+ }
+
+ \DeclareOption{a6paper}{\def\RM@papertype{16}%
+ \setlength\paperheight{148mm}%
+ \setlength\paperwidth{105mm}%
+ }
+%% \DeclareOption{a7paper}{\def\RM@papertype{17}
+%% \setlength\paperheight{105mm}
+%% \setlength\paperwidth{74mm}
+%% }
+%% \DeclareOption{a8paper}{\def\RM@papertype{18}
+%% \setlength\paperheight{74mm}
+%% \setlength\paperwidth{52mm}
+%% }
+%% \DeclareOption{a9paper}{\def\RM@papertype{19}
+%% \setlength\paperheight{52mm}
+%% \setlength\paperwidth{37mm}
+%% }
+%% \DeclareOption{a10paper}{\def\RM@papertype{20}
+%% \setlength\paperheight{37mm}
+%% \setlength\paperwidth{26mm}
+%% }
+%%
+%% \DeclareOption{b0paper}{\def\RM@papertype{30}
+%% \setlength\paperheight{1414mm}
+%% \setlength\paperwidth{1000mm}
+%% }
+%% \DeclareOption{b1paper}{\def\RM@papertype{31}
+%% \setlength\paperheight{1000mm}
+%% \setlength\paperwidth{707mm}
+%% }
+%% \DeclareOption{b2paper}{\def\RM@papertype{32}
+%% \setlength\paperheight{707mm}
+%% \setlength\paperwidth{500mm}
+%% }
+%% \DeclareOption{b3paper}{\def\RM@papertype{33}
+%% \setlength\paperheight{500mm}
+%% \setlength\paperwidth{353mm}
+%% }
+ \DeclareOption{b4paper}{\def\RM@papertype{34}%
+ \setlength\paperheight{353mm}%
+ \setlength\paperwidth{250mm}%
+ }
+
+ \DeclareOption{b6paper}{\def\RM@papertype{36}%
+ \setlength\paperheight{176mm}%
+ \setlength\paperwidth{125mm}%
+ }
+ \DeclareOption{b7paper}{\def\RM@papertype{37}%
+ \setlength\paperheight{125mm}%
+ \setlength\paperwidth{88mm}%
+ }
+%% \DeclareOption{b8paper}{\def\RM@papertype{38}
+%% \setlength\paperheight{88mm}
+%% \setlength\paperwidth{62mm}
+%% }
+%% \DeclareOption{b9paper}{\def\RM@papertype{39}
+%% \setlength\paperheight{62mm}
+%% \setlength\paperwidth{44mm}
+%% }
+%% \DeclareOption{b10paper}{\def\RM@papertype{40}
+%% \setlength\paperheight{44mm}
+%% \setlength\paperwidth{31mm}
+%% }
+%% \DeclareOption{c0paper}{\def\RM@papertype{50}
+%% \setlength\paperheight{1297mm}
+%% \setlength\paperwidth{917mm}
+%% }
+%% \DeclareOption{c1paper}{\def\RM@papertype{51}
+%% \setlength\paperheight{917mm}
+%% \setlength\paperwidth{648mm}
+%% }
+%% \DeclareOption{c2paper}{\def\RM@papertype{52}
+%% \setlength\paperheight{648mm}
+%% \setlength\paperwidth{458mm}
+%% }
+%% \DeclareOption{c3paper}{\def\RM@papertype{53}
+%% \setlength\paperheight{458mm}
+%% \setlength\paperwidth{324mm}
+%% }
+%% \DeclareOption{c4paper}{\def\RM@papertype{54}
+%% \setlength\paperheight{324mm}
+%% \setlength\paperwidth{229mm}
+%% }
+%%
+\DeclareOption{c5paper}{\def\RM@papertype{55}%
+ \setlength\paperheight{229mm}%
+ \setlength\paperwidth{162mm}%
+ }
+
+%% \DeclareOption{c7paper}{\def\RM@papertype{57}
+%% \setlength\paperheight{114mm}
+%% \setlength\paperwidth{81mm}
+%% }
+%%
+%% \DeclareOption{c7/6paper}{\def\RM@papertype{59}% c7/6 paper
+%% \setlength\paperheight{162mm}
+%% \setlength\paperwidth{81mm}
+%% }
+%% % Note that the BS4264 envelope sizes have names I invented
+%% % BS4264 Post office preferred envelope: seed packets, wage slips, gen pack
+%% \DeclareOption{bspopseedenvelopepaper}{\def\RM@papertype{60}
+%% \setlength\paperheight{152mm}
+%% \setlength\paperwidth{102mm}
+%% }
+%% % BS4264 Post office preferred envelope: gen commercial, non iso sizes
+%% \DeclareOption{bspopnonisoenvelopepaper}{\def\RM@papertype{61}
+%% \setlength\paperheight{229mm}
+%% \setlength\paperwidth{102mm}
+%% }
+%% % BS4264 envelope; bulky A5, catalogues, brochures.
+%% \DeclareOption{bsbrochureenvelopepaper}{\def\RM@papertype{62}
+%% \setlength\paperheight{254mm}
+%% \setlength\paperwidth{178mm}
+%% }
+%% % BS4264 envelope; legal docs, catalogues, photos
+%% \DeclareOption{bslegalenvelopepaper}{\def\RM@papertype{63}
+%% \setlength\paperheight{270mm}
+%% \setlength\paperwidth{216mm}
+%% }
+%% % BS4264 envelope; insurance policies, legal docs
+%% \DeclareOption{bslargelegalenvelopepaper}{\def\RM@papertype{64}
+%% \setlength\paperheight{305mm}
+%% \setlength\paperwidth{127mm}
+%% }
+%% % BS4264 envelope; bulky docs, calendars
+%% \DeclareOption{bscalendarenvelopepaper}{\def\RM@papertype{65}
+%% \setlength\paperheight{381mm}
+%% \setlength\paperwidth{254mm}
+%% }
+%%
+ \DeclareOption{foolscapfoliopaper}{\def\RM@papertype{70}%
+ \setlength\paperheight{13.5in}%
+ \setlength\paperwidth{8.5in}%
+ }
+%% \DeclareOption{foolscappaper}{\def\RM@papertype{70}% foolscap option gives foolscap
+%% \setlength\paperheight{13.5in}% folio paper
+%% \setlength\paperwidth{8.5in}
+%% }
+%%
+%% \DeclareOption{foolscapquartopaper}{\def\RM@papertype{71}
+%% \setlength\paperheight{8.5in}
+%% \setlength\paperwidth{6.75in}
+%% }
+%% \DeclareOption{foolscapoctavopaper}{\def\RM@papertype{72}
+%% \setlength\paperheight{6.75in}
+%% \setlength\paperwidth{4.25in}
+%% }
+%% \DeclareOption{crownfoliopaper}{\def\RM@papertype{73}
+%% \setlength\paperheight{15in}
+%% \setlength\paperwidth{10in}
+%% }
+%% \DeclareOption{crownquartopaper}{\def\RM@papertype{74}
+%% \setlength\paperheight{10in}
+%% \setlength\paperwidth{7.5in}
+%% }
+%% \DeclareOption{crownoctavopaper}{\def\RM@papertype{75}
+%% \setlength\paperheight{7.5in}
+%% \setlength\paperwidth{5in}
+%% }
+%% \DeclareOption{royalfoliopaper}{\def\RM@papertype{76}
+%% \setlength\paperheight{20in}
+%% \setlength\paperwidth{12.5in}
+%% }
+%% \DeclareOption{royalquartopaper}{\def\RM@papertype{77}
+%% \setlength\paperheight{12.5in}
+%% \setlength\paperwidth{10in}
+%% }
+%% \DeclareOption{royaloctavopaper}{\def\RM@papertype{78}
+%% \setlength\paperheight{10in}
+%% \setlength\paperwidth{6.25in}
+%% }
+%% \DeclareOption{imperialfoliopaper}{\def\RM@papertype{79}
+%% \setlength\paperheight{22in}
+%% \setlength\paperwidth{15.5in}
+%% }
+%% \DeclareOption{imperialquartopaper}{\def\RM@papertype{80}
+%% \setlength\paperheight{15in}
+%% \setlength\paperwidth{11in}
+%% }
+%% \DeclareOption{imperialoctavopaper}{\def\RM@papertype{81}
+%% \setlength\paperheight{11in}
+%% \setlength\paperwidth{7.5in}
+%% }
+%% \DeclareOption{largecrownoctavopaper}{\def\RM@papertype{82}
+%% \setlength\paperheight{8in}
+%% \setlength\paperwidth{5.25in}
+%% }
+%% \DeclareOption{demyoquartopaper}{\def\RM@papertype{83}
+%% \setlength\paperheight{11.25in}
+%% \setlength\paperwidth{8.75in}
+%% }
+%% \DeclareOption{demyoctavopaper}{\def\RM@papertype{84}
+%% \setlength\paperheight{8.75in}
+%% \setlength\paperwidth{5.625in}
+%% }
+%% \DeclareOption{mediumquartopaper}{\def\RM@papertype{85}
+%% \setlength\paperheight{12in}
+%% \setlength\paperwidth{9.5in}
+%% }
+%% \DeclareOption{mediumoctavopaper}{\def\RM@papertype{86}
+%% \setlength\paperheight{9.5in}
+%% \setlength\paperwidth{6in}
+%% }
+%%
+%% \DeclareOption{ra0paper}{\def\RM@papertype{90}
+%% \setlength\paperheight{1270mm}
+%% \setlength\paperwidth{960mm}
+%% }
+%% \DeclareOption{ra1paper}{\def\RM@papertype{91}
+%% \setlength\paperheight{1270mm}
+%% \setlength\paperwidth{960mm}
+%% }
+%% \DeclareOption{ra2paper}{\def\RM@papertype{92}
+%% \setlength\paperheight{1270mm}
+%% \setlength\paperwidth{960mm}
+%% }
+%% \DeclareOption{sra0paper}{\def\RM@papertype{93}
+%% \setlength\paperheight{1280mm}
+%% \setlength\paperwidth{900mm}
+%% }
+%% \DeclareOption{sra1paper}{\def\RM@papertype{94}
+%% \setlength\paperheight{900mm}
+%% \setlength\paperwidth{840mm}
+%% }
+%% \DeclareOption{sra2paper}{\def\RM@papertype{95}
+%% \setlength\paperheight{640mm}
+%% \setlength\paperwidth{450mm}
+%% }
+%% \DeclareOption{metricdoublecrownpaper}{\def\RM@papertype{96}
+%% \setlength\paperheight{770mm}
+%% \setlength\paperwidth{505mm}
+%% }
+%% \DeclareOption{metricquadcrownpaper}{\def\RM@papertype{97}
+%% \setlength\paperheight{1010mm}
+%% \setlength\paperwidth{770mm}
+%% }
+%% \DeclareOption{metriclargequadcrownpaper}{\def\RM@papertype{98}
+%% \setlength\paperheight{1060mm}
+%% \setlength\paperwidth{820mm}
+%% }
+%% \DeclareOption{metricquaddemypaper}{\def\RM@papertype{99}
+%% \setlength\paperheight{1030mm}
+%% \setlength\paperwidth{890mm}
+%% }
+%% \DeclareOption{metricsmallquadroyalpaper}{\def\RM@papertype{100}
+%% \setlength\paperheight{1270mm}
+%% \setlength\paperwidth{960mm}
+%% }
+%%
+%%
+%% LONG PAPER TYPES
+%% ----------------
+%%
+%% 0 = not long (or 1)
+%% 1 = 7/8 2 = 3/4 3 = 2/3 4 = 5/8 5 = 1/2
+%% 6 = 3/8 7 = 1/3 8 = 1/4 9 = 1/8
+%%
+%\DeclareOption{notlongpaper}{\def\RM@longpapertype{0}}
+%\DeclareOption{7/8longpaper}{\def\RM@longpapertype{1}}
+\DeclareOption{3/4longpaper}{\def\RM@longpapertype{2}}
+\DeclareOption{2/3longpaper}{\def\RM@longpapertype{3}}
+%\DeclareOption{5/8longpaper}{\def\RM@longpapertype{4}}
+%\DeclareOption{1/2longpaper}{\def\RM@longpapertype{5}}
+%\DeclareOption{3/8longpaper}{\def\RM@longpapertype{6}}
+\DeclareOption{1/3longpaper}{\def\RM@longpapertype{7}}
+\DeclareOption{1/4longpaper}{\def\RM@longpapertype{8}}
+%\DeclareOption{1/8longpaper}{\def\RM@longpapertype{9}}
+%%
+%%
+%% OPTIONS TO CHANGE MARGINPARS
+%% ----------------------------
+%%
+%% marginparsep is scaled by option
+\DeclareOption{leastmparsep}{\RM@mparsepoption=3}
+\DeclareOption{lessmparsep}{\RM@mparsepoption=6}
+\DeclareOption{lessishmparsep}{\RM@mparsepoption=9}
+\DeclareOption{normalmparsep}{\RM@mparsepoption=12}
+\DeclareOption{moreishmparsep}{\RM@mparsepoption=15}
+\DeclareOption{moremparsep}{\RM@mparsepoption=18}
+\DeclareOption{mostmparsep}{\RM@mparsepoption=21}
+%%
+%% The basemparclear options need to be executed after paperwidth has
+%% been set. Easily done with \ProcessOptions rather than
+%% \ProcessOptions*, and the papersize setting options declared above
+%% rather than below. The normalbasemparclear value is set after option
+%% processing if no other value has been set. If \RM@mparclearance is
+%% -666pt, the normalbasemparclear value is set; if it's -667pt, the
+%% largebaselinemparclear value is set (both just after
+%% \RM@PrinterPaperSettings hook is executed, which is well after
+%% \paperwidth is set). This value is scaled by option just before it's
+%% used, so one can use the \RM@BeforeWidthSetting hook to change things.
+%% \DeclareOption{normalbasemparclear}{\setlength\RM@mparclearance{-666pt}}
+%% \DeclareOption{largebasemparclear}{\setlength\RM@mparclearance{-667pt}}
+%%
+%% \DeclareOption{normalbasemaxmparwidth}{\setlength\RM@maxmparwidth{-666pt}}
+%% \DeclareOption{largebasemaxmparwidth}{\setlength\RM@maxmparwidth{-667pt}}
+%%
+%% the gap between the edge of the paper and the edge of a marginpar
+%% is 0.4in (10.16mm) with standard article/report class settings.
+%% The mparclearance options change this.
+%%
+%% mparclearance for A4 portrait paper:
+%% least=3.95mm less=5.37mm lessish=7.28mm norm=9.88
+%% moreish=13.41mm more=18.20mm most=24.71mm
+%%
+%% (norm=0.4in with US letter paper). Note that there are no touch
+%% options for mparclearance or maxmparwidth. There's no particular
+%% reason why they shouldn't be added. So I did, but left them
+%% commented out.
+\DeclareOption{leastmparclearance}{\RM@mparclearoption=3}
+\DeclareOption{lessmparclearance}{\RM@mparclearoption=6}
+\DeclareOption{lessishmparclearance}{\RM@mparclearoption=9}
+\DeclareOption{normalmparclearance}{\RM@mparclearoption=12}% norm
+\DeclareOption{moreishmparclearance}{\RM@mparclearoption=15}
+\DeclareOption{moremparclearance}{\RM@mparclearoption=18}
+\DeclareOption{mostmparclearance}{\RM@mparclearoption=21}
+%%
+%% maxmparwidth is now set as a fraction of paperwidth, such that with
+%% portrait US letter paper, you get 2in as standard (or maybe with A4; I
+%% really ought to check this.. It's scale by option just like
+%% everything else. If you want to change the default base value of
+%% maxmparwidth, the \RM@BeforeWidthSetting hook is an ideal place to do
+%% it.
+\DeclareOption{leastmaxmparwidth}{\RM@maxmparwidthoption=3}
+\DeclareOption{lessmaxmparwidth}{\RM@maxmparwidthoption=6}
+\DeclareOption{lessishmaxmparwidth}{\RM@maxmparwidthoption=9}
+\DeclareOption{normalmaxmparwidth}{\RM@maxmparwidthoption=12}% norm
+\DeclareOption{moreishmaxmparwidth}{\RM@maxmparwidthoption=15}
+\DeclareOption{moremaxmparwidth}{\RM@maxmparwidthoption=18}
+\DeclareOption{mostmaxmparwidth}{\RM@maxmparwidthoption=21}
+%%
+%%
+%% TOUCH OPTIONS
+%% -------------
+%%
+%% Note that all the touch options need to be executed after their
+%% corresponding `straight' options. This is inevitable if they are
+%% left here and \ProcessOptions is used rather than the star form,
+%% because rmplocal.cfg is loaded after all of rmpage's \DeclareOptions
+%% statements.
+%%
+%% \DeclareOption{t@uchlonger} {\RM@notinexecuteoptions\advance\RM@lengthoption by 1}
+%% \DeclareOption{t@uchshorter}{\RM@notinexecuteoptions\advance\RM@lengthoption by -1}
+\DeclareOption{touchlonger}{\RM@notinexecuteoptions\advance\RM@lengthoption by 1}
+\DeclareOption{touchshorter}{\RM@notinexecuteoptions\advance\RM@lengthoption by -1}
+%%
+\DeclareOption{touchmorecolsep}{\RM@notinexecuteoptions\advance\RM@columnsepoption by1}
+\DeclareOption{touchlesscolsep}{\RM@notinexecuteoptions\advance\RM@columnsepoption by-1}
+%% \DeclareOption{t@uchmorecolsep}{\RM@notinexecuteoptions\advance\RM@columnsepoption by1}
+%% \DeclareOption{t@uchlesscolsep}{\RM@notinexecuteoptions\advance\RM@columnsepoption by-1}
+%%
+\DeclareOption{touchmoremparsep}{\RM@notinexecuteoptions\advance\RM@mparsepoption by1}
+\DeclareOption{touchlessmparsep}{\RM@notinexecuteoptions\advance\RM@mparsepoption by-1}
+%% \DeclareOption{t@uchmoremparsep}{\RM@notinexecuteoptions\advance\RM@mparsepoption by1}
+%% \DeclareOption{t@uchlessmparsep}{\RM@notinexecuteoptions\advance\RM@mparsepoption by-1}
+%%
+\DeclareOption{touchmorefootskip}{\RM@notinexecuteoptions\advance\RM@footskipoption by1}
+\DeclareOption{touchlessfootskip}{\RM@notinexecuteoptions\advance\RM@footskipoption by-1}
+%% \DeclareOption{t@uchmorefootskip}{\RM@notinexecuteoptions\advance\RM@footskipoption by1}
+%% \DeclareOption{t@uchlessfootskip}{\RM@notinexecuteoptions\advance\RM@footskipoption by-1}
+%%
+\DeclareOption{touchmoreheadsep}{\RM@notinexecuteoptions\advance\RM@headsepoption by1}
+\DeclareOption{touchlessheadsep}{\RM@notinexecuteoptions\advance\RM@headsepoption by-1}
+%% \DeclareOption{t@uchmoreheadsep}{\advance\RM@headsepoption by1}
+%% \DeclareOption{t@uchlessheadsep}{\advance\RM@headsepoption by-1}
+%%
+\DeclareOption{t@uchwider}{\RM@notinexecuteoptions\advance\RM@widthoption by1}
+\DeclareOption{t@uchnarrower}{\RM@notinexecuteoptions\advance\RM@widthoption by-1}
+\DeclareOption{touchwider}{\RM@notinexecuteoptions\advance\RM@widthoption by1}
+\DeclareOption{touchnarrower}{\RM@notinexecuteoptions\advance\RM@widthoption by-1}
+%%
+%% \DeclareOption{t@uchmoreoffset}{\RM@notinexecuteoptions\advance\RM@offsetoption by1}
+%% \DeclareOption{t@uchlessoffset}{\RM@notinexecuteoptions\advance\RM@offsetoption by-1}
+\DeclareOption{touchmoreoffset}{\RM@notinexecuteoptions\advance\RM@offsetoption by1}
+\DeclareOption{touchlessoffset}{\RM@notinexecuteoptions\advance\RM@offsetoption by-1}
+%%
+%% \DeclareOption{t@uchhigher}{\RM@notinexecuteoptions\advance\RM@headfootbalance by -1}
+%% \DeclareOption{t@uchlower} {\RM@notinexecuteoptions\advance\RM@headfootbalance by 1}
+\DeclareOption{touchhigher}{\RM@notinexecuteoptions\advance\RM@headfootbalance by -1}
+\DeclareOption{touchlower} {\RM@notinexecuteoptions\advance\RM@headfootbalance by 1}
+%%
+%% \DeclareOption{t@uchlessmparclearance}{\RM@notinexecuteoptions\advance\RM@mparclearoption by -1}
+%% \DeclareOption{t@uchmoremparclearance}{\RM@notinexecuteoptions\advance\RM@mparclearoption by 1}
+%% \DeclareOption{touchlessmparclearance}{\RM@notinexecuteoptions\advance\RM@mparclearoption by -1}
+%% \DeclareOption{touchmoremparclearance}{\RM@notinexecuteoptions\advance\RM@mparclearoption by 1}
+%%
+%% \DeclareOption{t@uchlessmaxmparwidth}{\RM@notinexecuteoptions\advance\RM@maxmparwidthoption by -1}
+%% \DeclareOption{t@uchmoremaxmparwidth}{\RM@notinexecuteoptions\advance\RM@maxmparwidthoption by 1}
+%% \DeclareOption{touchlessmaxmparwidth}{\RM@notinexecuteoptions\advance\RM@maxmparwidthoption by -1}
+%% \DeclareOption{touchmoremaxmparwidth}{\RM@notinexecuteoptions\advance\RM@maxmparwidthoption by 1}
+%%
+%%
+%% RANDOM LENGTH OPTIONS
+%% ---------------------
+%%
+%% These need to be executed after the touchlength options; but for
+%% that, they'd be in rmpage.sty
+%%
+\DeclareOption{fulllength}{\RM@lengthoption=30}
+\DeclareOption{stdlength}{\RM@lengthoption=0}
+%%
+%%
+%% NUMBER OF COLUMNS
+%% -----------------
+%%
+%% onecolumn and twocolumn are both in rmpage. These options only
+%% affect \textwidth; use a package like multicols to set you text in
+%% multiple columns.
+%%
+\DeclareOption{onecolumnwidth}{\def\RM@textcols{1}}
+\DeclareOption{twocolumnwidth}{\def\RM@textcols{2}}
+\DeclareOption{threecolumnwidth}{\def\RM@textcols{3}}
+%% \DeclareOption{fourcolumnwidth}{\def\RM@textcols{4}}
+%% \DeclareOption{fivecolumnwidth}{\def\RM@textcols{5}}
+%% \DeclareOption{sixcolumnwidth}{\def\RM@textcols{6}}
+%% \DeclareOption{sevencolumnwidth}{\def\RM@textcols{7}}
+%% \DeclareOption{eightcolumnwidth}{\def\RM@textcols{8}}
+%% \DeclareOption{ninecolumnwidth}{\def\RM@textcols{9}}
+%% \DeclareOption{tencolumnwidth}{\def\RM@textcols{10}}
+%%
+%%
+%% LOADING FOUNTS
+%% --------------
+%%
+%% The fount options work like this: a fount family is set, and if the
+%% \RM@loadfount flag is set true, the appropriate fount is loaded,
+%% mainly with one of the standard PSNFSS packages.
+%% Fount families are set like this:
+%% 1=avant garde 2=bookman 3=zapf chancery 4=helvetica
+%% 5=new century schoolbook 6=palatino 7=times 8=utopia
+%% 9=lucida casual 10=courier 11=concrete 12=this fount width
+%% 13=lucida casual dirty trick
+%%
+%% The dirty trick works like this: if you ask for lucida casual
+%% (\RM@fountfamily 13), the fount loading code later on does a
+%% \RequirePackage{lucida-casual}, and then sets \RM@fountfamily
+%% to 9. The option to do this is in Rowland's curious option
+%% section.
+%%
+%% The command below is used to ask for a particular set of
+%% typesetting parameters if you've not explicitly requested any with
+%% the looseness option set. You get loose if you've asked for
+%% onecolumn, or sloppy if you've asked for twocolumn. Ncolumnwidth
+%% is treated as onecolumn; the multicol package makes its own
+%% arrangements. But this shouldn't be done any more because the
+%% metrics have changed (S. Rahtz, psnfss2e.tex, 5/11/95). I wish
+%% there was an up-to-date version of fontinst with docs available.
+%%
+%% This command's defined here so its meaning is clear; it's cleared
+%% at the end of rmpage.sty.
+%%
+%% So, this is the command that used to do the dirty. And still does:
+%% the PSNFSS founts \emph{are} still much tighter than cmr, and you
+%% get more bad line breaks. But looseish seems enough for now; keep
+%% the twocolumn extra super dooper very slack indeed looseness as is
+%% for now. (I wish I had a television so I could find out exactly
+%% what it is that Mutley says when he's annoyed). Maybe the thing
+%% to do is to change the sloppiness command: see rmpage.sty for more
+%% comments (yes, you, you fool, me! bloody well read it [don't
+%% complain: I'm swearing at myself]).
+%%
+%% The thing is, the PSNFSS founts are a little tighter than cmr (it
+%% seems). looseish over-compensates, but it's not all that much
+%% looser than tight. Grumbledon diwn.
+\def\RM@setpsloose{
+ \ifnum\RM@looseoption=205
+ \if@twocolumn
+ \def\RM@looseoption{5}
+ \else
+ \def\RM@looseoption{1}
+ \fi
+ \fi
+}
+% \def\RM@setpsloose{\relax}
+% % Don't change the options below; just change the loosening command
+% % in case I want to use it later.
+%%
+%% %% Computer modern roman; redundant options
+%% \DeclareOption{cmrwidth}{\def\RM@fountfamily{0}}
+%% \DeclareOption{loadcmr}{\def\RM@fountfamily{0}\RM@loadfounttrue}
+%% Avant Garde
+\DeclareOption{avantwidth}{\def\RM@fountfamily{1}}
+\DeclareOption{loadavant}{\def\RM@fountfamily{1}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Bookman
+\DeclareOption{bookmanwidth}{\def\RM@fountfamily{2}}
+\DeclareOption{loadbookman}{\def\RM@fountfamily{2}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Zapf Chancery
+\DeclareOption{chancerywidth}{\def\RM@fountfamily{3}}
+\DeclareOption{loadchancery}{\def\RM@fountfamily{3}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Helvetica
+\DeclareOption{helvetwidth}{\def\RM@fountfamily{4}}
+\DeclareOption{loadhelvet}{\def\RM@fountfamily{4}
+ \RM@loadfounttrue\RM@setpsloose}
+%% New Century Schoolbook
+\DeclareOption{newcentwidth}{\def\RM@fountfamily{5}}
+\DeclareOption{loadnewcent}{\def\RM@fountfamily{5}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Palatino
+\DeclareOption{palatinowidth}{\def\RM@fountfamily{6}}
+\DeclareOption{loadpalatino}{\def\RM@fountfamily{6}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Times
+\DeclareOption{timeswidth}{\def\RM@fountfamily{7}}
+\DeclareOption{loadtimes}{\def\RM@fountfamily{7}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Utopia
+\DeclareOption{utopiawidth}{\def\RM@fountfamily{8}}
+\DeclareOption{loadutopia}{\def\RM@fountfamily{8}
+ \RM@loadfounttrue\RM@setpsloose}
+%% Lucida casual
+\DeclareOption{lucasualwidth}{\def\RM@fountfamily{9}}
+\DeclareOption{loadlucasual}{\def\RM@fountfamily{9}
+ \RM@loadfounttrue\RM@setpsloose}
+%% lucida-casual option is now in rmplocal.cfg
+%% Courier
+\DeclareOption{courierwidth}{\def\RM@fountfamily{10}}
+%% \DeclareOption{loadcourier}{\def\RM@fountfamily{10}\RM@loadfounttrue
+%% \RM@setpsloose}
+%% Concrete
+%% Concrete doesn't need loose typesetting
+\DeclareOption{concretewidth}{\def\RM@fountfamily{11}}
+\DeclareOption{loadconcrete}{\def\RM@fountfamily{11}\RM@loadfounttrue
+ \ExecuteOptions{beton}}
+%% Bases \textwidth on current fount
+\DeclareOption{thisfountwidth}{\def\RM@fountfamily{12}}
+%%
+%%
+%% Stuff for beton support
+%% -----------------------
+%%
+%% I need to pass the standard-baselineskips option to beton
+%% explicitly so I can detect whether beton's been loaded with this
+%% option later. I might as well prepare to pass the other two
+%% options, just in case I need to know about them someday.
+\DeclareOption{standard-baselineskips}
+ {\PassOptionsToPackage{\CurrentOption}{beton}}
+%% \DeclareOption{oldstyle-equation-numbers}
+%% {\PassOptionsToPackage{\CurrentOption}{beton}}
+%% \DeclareOption{concrete-math}
+%% {\PassOptionsToPackage{\CurrentOption}{beton}}
+%%
+%%
+%%
+%% Synonyms for other options
+%% --------------------------
+%%
+%% Now I like this.
+\DeclareOption{othernicedate}{\RM@nicedatefalse}% usdate
+\DeclareOption{nicedate}{\RM@nicedatetrue}% ukdate
+%%
+%% Other packages use these options to change the amount of
+%% information displayed; I might as well pay attention.
+%%
+%% \DeclareOption{verbose}{\def\RM@chatlevel{1}}% chatty
+%% \DeclareOption{silent}{\def\RM@chatlevel{3}}% yorkshire
+%% \DeclareOption{errorshow}{\def\RM@chatlevel{3}}% yorkshire
+%% \DeclareOption{warningshow}{\def\RM@chatlevel{2}}% taciturn
+%% \DeclareOption{infoshow}{\def\RM@chatlevel{1}}% chatty
+%% \DeclareOption{debugshow}{\def\RM@chatlevel{0}}% garrulous
+%%
+%% And I object to this, I really do. Why can't people learn to
+%% spell properly?
+%%
+%% \DeclareOption{center}{\RM@centretrue}
+%% \DeclareOption{notcenter}{\RM@centrefalse}
+%%
+%%
+%% MARGIN OPTIONS
+%% --------------
+%%
+%% What the ringbinding option does is ensure that there's enough space
+%% in the inside margin to punch holes. It does not make a binding
+%% correction after the fashion of the Koma-script packages. This option
+%% assumes that you'll be punching holes in the inside margin, so don't
+%% expect it to work properly with landscape printing---I couldn't work
+%% out a way of predicting which margin will get the holes in landscape
+%% printing, so I decided to make no attempt to support it. If you have
+%% any thoughts on this, please email me.
+%%
+\DeclareOption{ringbinding}
+ {\ifRM@portrait
+ \RM@DefLengthAtLeast{\RM@mininsidemargin}{15mm}
+ \else
+ \RM@Warn{The ringbinding option does nothing in landscape mode}
+ \fi}
+%%
+%% PRINTER OPTIONS
+%% ---------------
+%%
+%% Printer types are:
+%% 0=fullbleed, 1=general, 2=pessimistic, 3=optimistic
+%% 10=dw300 11=dw500 12=dw600 (HP deskwriter inkjet series)
+%% 20=lj2 21=lj3 22=lj4 (HP laserjet laser printer series)
+%% 30=canonbjx bubblejet something (Canon bubblejet inkjet series)
+%% 40+ whatever else comes up
+%%
+%% The idea is that printer types < 10 are not locally configured;
+%% these numbers are reserved for mythical general types that should
+%% be the same on all systems. Feel free to add your own mythical
+%% general types; please keep the printer number > 1000.
+%%
+%% The figures for all these printers are guesses, except for the DW500
+%% and DW600: any data on printing margins for the printers above or
+%% other commonly-used printers would be gratefully received. I need to
+%% know about printing limits at the top, bottom, left, and right for
+%% portrait and landscape modes, and whether the data is what the book
+%% says or what you measured (preferrably both, but anything'll help).
+%% If anyone really uses LaTeX with an A3 printer, do tell: it's
+%% something I've been wondering about.
+%%
+%% \RM@ptrpostol generally set to 1mm (paper sizes are to $\pm2$mm),
+%% except for our dw520 which I keep a careful eye on.
+%%
+\DeclareOption{fullbleedprinter}{
+ \def\RM@printertype{0}
+ \def\RM@ptrrportclear{0mm}
+ \def\RM@ptrlportclear{0mm}
+ \def\RM@ptrtportclear{0mm}
+ \def\RM@ptrbportclear{0mm}
+ \def\RM@ptrrlandclear{0mm}
+ \def\RM@ptrllandclear{0mm}
+ \def\RM@ptrtlandclear{0mm}
+ \def\RM@ptrblandclear{0mm}
+ \def\RM@ptrpostol{0mm}% Seems best
+ }
+%
+%% Quite arbitrary settings,
+\DeclareOption{generalprinter}{% arbitrary
+ \def\RM@printertype{1}
+ \def\RM@ptrrportclear{8mm}
+ \def\RM@ptrlportclear{8mm}
+ \def\RM@ptrtportclear{8mm}
+ \def\RM@ptrbportclear{15mm}
+ \def\RM@ptrrlandclear{15mm}
+ \def\RM@ptrllandclear{8mm}
+ \def\RM@ptrtlandclear{8mm}
+ \def\RM@ptrblandclear{8mm}
+ \def\RM@ptrpostol{1mm}% Guess
+ }
+%% This uses the worst limits I can remember meeting:
+%% \DeclareOption{pessimisticprinter}{
+%% \def\RM@printertype{2}
+%% \def\RM@ptrrportclear{10mm}
+%% \def\RM@ptrlportclear{10mm}
+%% \def\RM@ptrtportclear{10mm}
+%% \def\RM@ptrbportclear{19mm}
+%% \def\RM@ptrrlandclear{19mm}
+%% \def\RM@ptrllandclear{10mm}
+%% \def\RM@ptrtlandclear{10mm}
+%% \def\RM@ptrblandclear{10mm}
+%% \def\RM@ptrpostol{1mm}% Guess
+%% }
+%% This uses the best limits I'd expect
+%% \DeclareOption{optimisticprinter}{
+%% \def\RM@printertype{3}
+%% \def\RM@ptrrportclear{3mm}
+%% \def\RM@ptrlportclear{3mm}
+%% \def\RM@ptrtportclear{3mm}
+%% \def\RM@ptrbportclear{3mm}
+%% \def\RM@ptrrlandclear{3mm}
+%% \def\RM@ptrllandclear{3mm}
+%% \def\RM@ptrtlandclear{3mm}
+%% \def\RM@ptrblandclear{3mm}
+%% \def\RM@ptrpostol{0.5mm}% Guess
+%% }
+%%
+%% \DeclareOption{dw300printer}{% Guess
+%% \def\RM@printertype{11}
+%% \def\RM@ptrrportclear{6mm}
+%% \def\RM@ptrlportclear{6mm}
+%% \def\RM@ptrtportclear{7mm}
+%% \def\RM@ptrbportclear{15mm}
+%% \def\RM@ptrrlandclear{15mm}
+%% \def\RM@ptrllandclear{7mm}
+%% \def\RM@ptrtlandclear{6mm}
+%% \def\RM@ptrblandclear{6mm}
+%% \def\RM@ptrpostol{1mm}
+%% }
+\DeclareOption{dw500printer}{% HP spec
+ \def\RM@printertype{11}
+ \def\RM@ptrrportclear{6mm}
+ \def\RM@ptrlportclear{6mm}
+ \def\RM@ptrtportclear{7mm}
+ \def\RM@ptrbportclear{15mm}
+ \def\RM@ptrrlandclear{15mm}
+ \def\RM@ptrllandclear{7mm}
+ \def\RM@ptrtlandclear{6mm}
+ \def\RM@ptrblandclear{6mm}
+ \def\RM@ptrpostol{1mm}
+ }
+\DeclareOption{dw600printer}{% Measured from Rebecca's at work+1mm.
+ \def\RM@printertype{12}
+ \def\RM@ptrrportclear{5mm}
+ \def\RM@ptrlportclear{5mm}
+ \def\RM@ptrtportclear{2mm}
+ \def\RM@ptrbportclear{15mm}
+ \def\RM@ptrrlandclear{15mm}
+ \def\RM@ptrllandclear{2mm}
+ \def\RM@ptrtlandclear{5mm}
+ \def\RM@ptrblandclear{5mm}
+ \def\RM@ptrpostol{1mm}% Guess
+ }
+%% \DeclareOption{lj2printer}{% an arbitrary guess
+%% \def\RM@printertype{20}
+%% \def\RM@ptrrportclear{7mm}
+%% \def\RM@ptrlportclear{7mm}
+%% \def\RM@ptrtportclear{7mm}
+%% \def\RM@ptrbportclear{7mm}
+%% \def\RM@ptrrlandclear{7mm}
+%% \def\RM@ptrllandclear{7mm}
+%% \def\RM@ptrtlandclear{7mm}
+%% \def\RM@ptrblandclear{7mm}
+%% \def\RM@ptrpostol{1mm}% Guess
+%% }
+%% \DeclareOption{lj3printer}{% an arbitrary guess
+%% \def\RM@printertype{21}
+%% \def\RM@ptrrportclear{6mm}
+%% \def\RM@ptrlportclear{6mm}
+%% \def\RM@ptrtportclear{6mm}
+%% \def\RM@ptrbportclear{6mm}
+%% \def\RM@ptrrlandclear{6mm}
+%% \def\RM@ptrllandclear{6mm}
+%% \def\RM@ptrtlandclear{6mm}
+%% \def\RM@ptrblandclear{6mm}
+%% \def\RM@ptrpostol{1mm}% Guess
+%% }
+\DeclareOption{lj4printer}{% measured from MS Works output
+ \def\RM@printertype{22}
+ \def\RM@ptrrportclear{5mm}
+ \def\RM@ptrlportclear{5mm}
+ \def\RM@ptrtportclear{5mm}
+ \def\RM@ptrbportclear{5mm}
+ \def\RM@ptrrlandclear{5mm}
+ \def\RM@ptrllandclear{5mm}
+ \def\RM@ptrtlandclear{5mm}
+ \def\RM@ptrblandclear{5mm}
+ \def\RM@ptrpostol{0.5mm}% Guess
+ }
+%% \DeclareOption{canonbjxprinter}{% an arbitrary guess
+%% \def\RM@printertype{22}
+%% \def\RM@ptrrportclear{7mm}
+%% \def\RM@ptrlportclear{7mm}
+%% \def\RM@ptrtportclear{7mm}
+%% \def\RM@ptrbportclear{12mm}
+%% \def\RM@ptrrlandclear{12mm}
+%% \def\RM@ptrllandclear{7mm}
+%% \def\RM@ptrtlandclear{7mm}
+%% \def\RM@ptrblandclear{7mm}
+%% \def\RM@ptrpostol{1mm}% Guess
+%% }
+%%
+%% ROWLAND'S CURIOUS OPTIONS
+%% -------------------------
+%%
+%% These are curious options, defined by me (RJMM) to perform dark and
+%% eldritch deeds. These aren't intended for hoi polloi, mainly 'cos
+%% they're a bit iffy in places, but I like them and they might give
+%% you some ideas.
+%%
+%%
+%% Our DW520 isn't quite to spec.
+%%
+% \DeclareOption{R+R-dw520printer}{
+% \def\RM@printertype{11}
+% \def\RM@ptrrportclear{7mm}% spec 6mm
+% \def\RM@ptrlportclear{6mm}
+% \def\RM@ptrtportclear{7mm}
+% \def\RM@ptrbportclear{15mm}
+% \def\RM@ptrrlandclear{15mm}
+% \def\RM@ptrllandclear{7mm}
+% \def\RM@ptrtlandclear{7mm}% spec 6mm
+% \def\RM@ptrblandclear{6mm}
+% \def\RM@ptrpostol{0.5mm}% Guess
+% }
+%%
+%% A dirty trick to load my .fd version of lucida casual rather than
+%% the PSNFSS version. If you loadlucidacasual, \RM@fountfamily is set
+%% to 9 after the lucida-casual package has been \RequirePackaged.
+%% That's done by code further on in rmpage, specially written for
+%% this dirty trick.
+%%
+%% Lucida casual
+\DeclareOption{lucidacasualwidth}{\def\RM@fountfamily{9}}
+\DeclareOption{loadlucidacasual}{\def\RM@fountfamily{13}
+ \RM@loadfounttrue\RM@setpsloose}
+%%
+%% These class options ought to be redundant now.
+%%\DeclareOption{rmcv}{\def\RM@classtype{20}}
+%%\DeclareOption{rmletter}{\def\RM@classtype{21}}
+%%\DeclareOption{bithesis}{\def\RM@classtype{22}}
+%% for ltx guide docs; maybe use in ltxguide.cfg?
+%%\DeclareOption{ltxguide}{\def\RM@classtype{7}}% redundant
+%% for typesetting .dtx files only; used by ltxdoc.cfg
+%%\DeclareOption{ltxdoc}{\def\RM@classtype{6}}% redundant
+%% for Liverpool J.Moore's EEP exams
+%%\DeclareOption{ljmueepexam}{\def\RM@classtype{23}}% redundant
+%%
+%% \RM@ptsize is set to the requested point size if an rmsizeN package has
+%% not already been recognised by another package.
+%%
+%%
+%% These point size options need another package file which really
+%% isn't ready to be released yet - so don't expect them to work.
+%%
+%% If you really, really, really want to use these extra point sizes,
+%% I'll send you the extra files if you ask nicely.
+%%
+\providecommand{\RM@ptsize}{666}
+\DeclareOption{14pt}{\ifnum\RM@ptsize=666\def\RM@ptsize{14}\def\@ptsize{2}\fi}
+\DeclareOption{24pt}{\ifnum\RM@ptsize=666\def\RM@ptsize{24}\def\@ptsize{2}\fi}
+\DeclareOption{36pt}{\ifnum\RM@ptsize=666\def\RM@ptsize{36}\def\@ptsize{2}\fi}
+%%
+%% Don't do anything to the file above this point except these things:
+%% comment out whole options,
+%% uncomment out whole options,
+%% and change the identifying comments and commands at the start of the file.
+%% Disobeying this order will result in a squadron of highly-trained
+%% killer gerbils attacking your toenails each night; the cost in
+%% pedicurist bills will be crippling.
+%%
+%%
+%% LOCAL CODE BELOW HERE PLEASE
+%% ============================
+%%
+%%
+%% Add your options in the section marked out below.
+%%
+%%
+%% BEGIN LOCAL OPTION DECLARATION
+%% ==============================
+%%
+
+%%
+%%
+%% END LOCAL OPTION DECLARATION
+%% ============================
+%%
+%%
+%% DEFAULT OPTION SETTING
+%% ======================
+%%
+%% Default options for any class---the \ExecuteOptions statement below
+%% should contain the default settings you want for all documents.
+%% Remember these options can always be over-ridden by class-specific
+%% code and options used in a document.
+%%
+%% Check the statement below about default option settings; things
+%% change, y'know.
+%%
+%% rmpage sets things up so that these options are used by default:
+%%
+%% noheaders,footers,notcentre,oneside,portrait,onecolumn,normalaltitude,
+%% normalcolumnsep,normalheadsep,normalfootskip,normalmparsep,
+%% normallength,normalwidth,normaloffset,generalprinter,
+%% noadaptivecolumnsep,nastydate,taciturn
+%%
+%% The (USA) letterpaper option is specified by the standard classes;
+%% rmpage defaults to undefinedpaper (a real papertype in my
+%% book, which I wouldn't recommend unless you like error messages).
+%%
+%% Either the stdmargins or notstdmargins option should be executed, to
+%% avoid (admittedly unlikely) mis-understandings over the placement of
+%% marginal notes. I think I've changed rmpage so there shouldn't be
+%% a problem with this; notstdmargins is the default setting.
+%%
+%% If no config file is found by rmpagenew, the notstdmargins option
+%% is executed using \ExecuteOptions.
+%%
+%%
+%% CHANGE THE COMMAND BELOW TO MATCH YOUR LOCAL PREFERENCES
+%% --------------------------------------------------------
+%%
+% \ExecuteOptions{R+R-dw520printer,a4paper,notstdmargins,nicedate,noheaders}
+\ExecuteOptions{generalprinter,letterpaper,stdmargins,usdate,noheaders}
+%%
+%% --------------------------------------------------------
+%%
+%%
+%% DEFAULT OPTIONS FOR PARTICULAR CLASSES.
+%% ======================================
+%%
+%% Don't set default options in local classes using
+%% \PassOptionsToPackage{rmpage}{...} in your class file unless you have
+%% a good reason to; read the note below.
+%%
+%% If you need to have rmpage \ExecuteOptions for particular classes,
+%% use the \RM@OnClassExecuteOptions statement in the block below.
+%%
+%% \RM@ClassExecuteOption{<class name>}{<option list>} performs
+%% \ExecuteOptions{<option list>} if the class called <class name> has
+%% been loaded.
+%%
+%% Note that if you are building one class upon another (say, nuthesis
+%% based on report), both classes might have been by this stage, so it is
+%% best to have the \RM@OnClassExecuteOptions statement for the base class
+%% *before* the \RM@OnClassExecuteOptions statement for the loading class.
+%% E.g., for nuthesis based on report, have:
+%% \RM@OnClassExecuteOptions{report}{...} *before*
+%% \RM@OnClassExecuteOptions{nuthesis}{...}
+%%
+%% Example default options for book class
+%%
+% \RM@OnClassExecuteOptions{book}
+% {ukdate,R+R-dw520printer,a4paper,headers,footers}
+%%
+%% Example default options for slides class
+%%
+% \RM@OnClassExecuteOptions{slides}
+% {centre,ukdate,R+R-dw520printer,a4paper}
+%%
+%%
+%% Example default options for foils class
+%%
+% \RM@OnClassExecuteOptions{foils}
+% {centre,ukdate,R+R-dw520printer,a4paper}
+%%
+%% Default options for ljmeepex class; ljmueepexam as was and damn
+%% Bill Gates. All these options are executed here so they can all
+%% be over-ridden by options passed by the document. Had they been
+%% passed from the class file by \PassOptionsToPackage, options from
+%% the document that are declared in rmpage after these options would
+%% over-ride these, and those declared before would not. Do it this
+%% way for consistency.
+%%
+% \RM@OnClassExecuteOptions{ljmeepex}
+% {centre,yorkshire,a4paper,noheaders,footers,wide,t@uchnarrower,longish}
+%%
+%%
+%% END DEFAULT OPTION SETTING FOR PARTICULAR CLASSES
+%% =================================================
+%%
+%%
+%% HOOKS
+%% =====
+%%
+%% The commands defined below: \RM@BeforeProcessOptions,
+%% \RM@DefineNewClasses, \RM@AfterProcessOptions,
+%% \RM@PrinterPaperSettings, \RM@BeforeTextheightSetting, and
+%% \RM@AfterWidthSetting are hooks: they are commands which
+%% you can define yourself, which are executed later somewhere in rmpage.
+%% You hang code from them, which is used later; hence hook. LaTeX2e has
+%% hooks like \AtBeginDocument{}, which saves its argument every time
+%% it's executed, so all the code ever passed to it is executed at the
+%% begin document command. The hooks below are just ordinary LaTeX
+%% commands which you define in the usual way. If you re-define them,
+%% the original contents are lost forever. So add stuff to the
+%% definitions here, don't re-define them later unless you have a good
+%% reason to do so. By the way, these hooks don't have to be defined:
+%% rmpage can work without them quite happily.
+%%
+%%
+%% Use this one for playing about if you have to.
+\newcommand{\RM@BeforeProcessOptions}{}% end\RM@BeforeProcessOptions
+%%
+%%
+%% Use this one for setting up things for particular classes; classes
+%% that are based on other classes should appear in this list
+%% \emph{after} the classes they are based on. That is, the class
+%% bithesis (which is based on report), comes after report. This is
+%% easily arranged, because all the standard classes have their class
+%% type number defined before the \RM@DefineNewClasses hook is executed.
+%% You can define your own class types; the current list of class type
+%% numbers is:
+%%
+%% 0=unknown, 1=article, 2=report, 3=letter, 4=book, 5=slides,
+%% 10=ltxdoc, 11=ltxguide,
+%% 20=rmcv, 21=rmletter, 22=bithesis, 23=ljmueepexam
+%% 50=foils
+%%
+%% 0 - 19 standard LaTeX classes
+%% 20 - 49 my classes
+%% 50 - 99 other classes supported by standard rmpage
+%% 100 - maxnum local classes
+%%
+%% If you're going to define a new class type, use class type numbers
+%% above 100. That way you won't find a new version of rmpage usurping
+%% class type numbers you'd defined for your own use. And make sure
+%% that classes that build on other classes have higher a \RM@classtype
+%% than the classes they build upon. I'll probably do something more
+%% sophisticated one day, but this'll do for now.
+%%
+%% The \RM@LocalClassReport hook is executed by the \RM@typeclasstype
+%% command, which is executed by the \RM@OnClassType command if you've
+%% asked for garrulous reporting. It's a debugging aid to help spot
+%% anomalous class type number setting. Why am I doing this?
+%% If you do add a new class, re-define the \RM@LocalClassReport command
+%% here to report it. For example, if you've added the eddie class,
+%% given the number 666, and the orwell class, given the number 101, say:
+%%
+%% \renewcommand{\RM@LocalClassReport}{
+%% \RM@OnClassType{101}{\typeout{orwell class detected}}{}
+%% \RM@OnClassType{666}{\typeout{eddie class detected}}{}
+%% }
+%%
+\renewcommand{\RM@LocalClassReport}{\typeout{Undefined class detected}}
+%%
+%%
+%% Note that the \RM@DefineNewClasses hook is only executed if
+%% \RM@ClassType is less than 20.
+%%
+%% It's okay to test for a class here that will have had its class type
+%% number set by an option. Not fast, but okay. Note that the
+%% \RM@SetClassType command will only set \RM@ClassType to a value larger
+%% than the current one; this is so that subsequent detection (for
+%% example) of the report class on which you have built the nuthesis
+%% class cannot set \RM@classtype to 2.
+%%
+%%
+%% The new classes below are some that I've defined; I've left them
+%% in so you don't pinch the numbers and to give a real-life example.
+%% Most of these classes are a bit rough and not generally useful,
+%% so I'm keeping them to myself; although if you want a
+%% Bolton Institute thesis class file, I'll send you mine if you ask me
+%% for it.
+%%
+\newcommand{\RM@DefineNewClasses}{
+ \RM@SetClassType{rmcv} {20}
+ \RM@SetClassType{rmletter} {21}
+ \RM@SetClassType{bithesis} {22}
+ \RM@SetClassType{ljmueepexam}{23}
+ \RM@SetClassType{ljmeepex} {23}
+}%% end\RM@DefineNewClasses
+%%
+%%
+%% AfterProcessOptions is useful for setting up things for particular
+%% classes using the \RM@OnClassType command
+%%
+%%
+%% I've left in the code I wrote for my class files as examples; the
+%% code for ltxdoc is required if you insist on using rmpage with it.
+%%
+\newcommand{\RM@AfterProcessOptions}{
+% % \renewcommand{\RM@mintextheight}{730pt}% For testing only
+% % \renewcommand{\RM@maxtextheight}{9000pt}
+ %
+ % class type 10=ltxdoc
+ %
+ \RM@OnClassType{10}{
+ \RM@oclwarninfo{3}
+ {ltxdoc and rmpage don't go well together}
+% \RM@ocl{2}{\typeout{Set \protect\normalmarginpar}}{}
+% % Try to make mpars appear in alternating margins
+% \ifRM@twoside\@mparswitchtrue\fi
+% % Try to make mpars appear in default margin
+% \normalmarginpar
+ % Ensure \textwidth is at least the required width
+ \def\RM@mintextwidth{355pt}
+ }{}
+ %
+ % class type 20=rmcv
+ %
+ \RM@OnClassType{20}{
+ \RM@oclwarninfo{3}
+ {I don't do much for rmcv yet,
+ and if you specified\MessageBreak
+ some options that don't get used, I won't complain}
+ }{}
+ %
+ % class type 22=bithesis
+ %
+ \RM@OnClassType{22}{
+ % Set minimum margins as specified in the regulations.
+ % Everything else is done by the class file. These commands are
+ % defined to be 0pt at the start of rmpage, so they can't be set in
+ % the class file.
+ \RM@DefLengthAtLeast{\RM@minoutsidemargin}{15mm}
+ \RM@DefLengthAtLeast{\RM@mininsidemargin} {40mm}
+ \RM@DefLengthAtLeast{\RM@mintopmargin} {15mm}
+ \RM@DefLengthAtLeast{\RM@minbottommargin} {15mm}
+ }{}
+ %
+ % Add more here
+ %
+}% end\RM@AfterProcessOptions
+%%
+%%
+%% The \RM@On...PaperSize commands take two compulsory arguments, and
+%% one optional arguments. The optional argument is the long paper
+%% size code. The default value is 0, meaning `not long'.
+%% -1 = any long size
+%% 0 = not long only (or 1-long)
+%% 1 = 7/8 2 = 3/4 3 = 2/3 4 = 5/8 5 = 1/2
+%% 6 = 3/8 7 = 1/3 8 = 1/4 9 = 1/8
+%%
+%% The first compulsory argument is the paper size code; you can look
+%% them up elsewhere.
+%%
+%% If the paper size specified in the arguments to a \RM@...papersize
+%% command is the selected paper size, the third argument is executed.
+%%
+%%
+%% Add setting for local printer/paper combinations here; new printers
+%% should be declared using \DeclareOption above. Have a look in
+%% rmpage.dtx, at the code above the point where this hook is
+%% executed, to get a better idea of what's going on.
+\newcommand*{\RM@PrinterPaperSettings}{
+%%
+%% Note that you can print out long A3 sizes (1/2 and under) on A4
+%% paper, with the same minimum clearances applying to the long A3 size
+%% as apply to A4. So in the common case of an A4 printer, all you
+%% need to do is make the A3 printing limits the same as A4 printing
+%% limits, and Bob's yer auntie's live-in lover. What the two
+%% commands below do is assume that all printers are A4 printers, and
+%% sets the clearances accordingly. If you use a non-A4 printer, you
+%% might need to add code to over-ride this assumption for that
+%% printer, after these two commands.
+%%
+ \RM@OnPortraitPaperSize[-1]{13}% size 13 = A3
+ {
+ \let\RM@minrightclearance\RM@ptrrportclear
+ \let\RM@minleftclearance \RM@ptrlportclear
+ \let\RM@minfootclearance \RM@ptrbportclear
+ \let\RM@minheadclearance \RM@ptrtportclear
+ }
+ \RM@OnLandscapePaperSize[-1]{13}% size 13 = A3
+ {
+ \let\RM@minrightclearance\RM@ptrrlandclear
+ \let\RM@minleftclearance \RM@ptrllandclear
+ \let\RM@minfootclearance \RM@ptrblandclear
+ \let\RM@minheadclearance \RM@ptrtlandclear
+ }
+%%
+%% The code below sets up rmpage to do things the way I like if
+%% you've selected an HP 500 series inkjet (like my DW520).
+%% I print out A5 pages by using dvidvi to put two of them on an A4
+%% page, so A5 portrait clearances need to be A4 landscape clearances
+%% and vice-versa. Envelopes suffer a very large non-printing margin
+%% at the bottom, so this is dealt with. Note that I have to set
+%% both the ptrclear commands *and* the minclearance commands in this
+%% case, because the ptrclear commands are assumed to be set by now,
+%% and I have to change them.
+%%
+%% Note that I have asked rmpage to jack up any of these paper sizes that
+%% need it when I have specified an HP 500 series inkjet; this means that
+%% you can have an unexpectedly large gap at the bottom of a page without
+%% being warned about it, if the page layout you asked for would
+%% otherwise have tried to print in the asymmetrically large non-printing
+%% margin at the bottom of the paper. I don't mind this; if you do,
+%% remove the \RM@jackuptrue statements.
+%%
+ \RM@OnPrinterType{11}% HP DeskWriter 500 series
+ {
+ \RM@OnPortraitPaperSize{14}% size 14 = A4
+ {\RM@jackuptrue}
+ \RM@OnPortraitPaperSize{15}% size 15 = A5
+ {\let\RM@minrightclearance\RM@ptrrlandclear
+ \let\RM@minleftclearance\RM@ptrrlandclear
+ \let\RM@minfootclearance\RM@ptrblandclear
+ \let\RM@minheadclearance\RM@ptrtlandclear}
+ \RM@OnLandscapePaperSize{15}% size 15 = A5
+ {\let\RM@minrightclearance\RM@ptrrportclear
+ \let\RM@minleftclearance\RM@ptrlportclear
+ \let\RM@minfootclearance\RM@ptrbportclear
+ \let\RM@minheadclearance\RM@ptrtportclear}
+ \RM@OnPortraitPaperSize[-1]{13}% size 13 = A3
+ {\RM@jackuptrue}
+ \RM@OnLandscapePaperSize[-1]{13}% size 13 = A3
+ {\RM@jackupfalse}
+ \RM@OnPaperSize{58}% size 58 = DL envelopes
+ {\def\RM@ptrrlandclear{19mm}
+ \def\RM@ptrrlandclear{7mm}
+ \def\RM@ptrblandclear{4mm}% spec 3mm
+ \def\RM@ptrtlandclear{4mm}% spec 3mm
+ \def\RM@ptrrportclear{4mm}% spec 3mm
+ \def\RM@ptrlportclear{4mm}% spec 3mm
+ \def\RM@ptrbportclear{19mm}
+ \def\RM@ptrtportclear{7mm}}
+ \RM@OnPortraitPaperSize{58}% size 58 = DL envelopes
+ {\let\RM@minrightclearance\RM@ptrrportclear
+ \let\RM@minleftclearance\RM@ptrlportclear
+ \let\RM@minfootclearance\RM@ptrbportclear
+ \let\RM@minheadclearance\RM@ptrtportclear}
+ \RM@OnLandscapePaperSize{58}% size 58 = DL envelopes
+ {\let\RM@minrightclearance\RM@ptrrlandclear
+ \let\RM@minleftclearance\RM@ptrllandclear
+ \let\RM@minfootclearance\RM@ptrblandclear
+ \let\RM@minheadclearance\RM@ptrtlandclear}
+ }% end HP DeskWriter 500 series
+}% end\RM@PrinterPaperSettings
+%%
+%%
+%% Add code to select textheight setting method, and define new
+%% textheight setting code here
+\newcommand*{\RM@BeforeTextheightSetting}{}% end\RM@BeforeTextheightSetting
+%%
+%% You might add code to define \RM@widthsetter to load your own
+%% horizontal parameter setting code for a particular class here
+%% e.g., \RM@OnClassType{69}{\def\RM@widthsetter{rsw-ll.pko}}{}
+\newcommand*{\RM@BeforeWidthSetting}{}% end\RM@BeforeWidthSetting
+%%
+%% If you are using a class that defines \RM@textwidthgroup to 4, put
+%% code in this hook that defines: \RM@ptperchar to the width of one
+%% average character of your main body fount; \@tempdima to the
+%% paper-based initial \textwidth guess; \@tempdimb to the
+%% character-based initial \textwidth guess; and code to modify
+%% \columnsep if you want to.
+%% This hook is executed after the parameters above have been set.
+\newcommand*{\RM@AfterInitialTextwidthSetting}{}% end\RM@AfterInitialTextwidthSetting
+%%
+%% Do what preventest thou from wilting\ldots For symmetry's sake is
+%% this here.
+%%
+\newcommand*{\RM@AfterWidthSetting}{}% end\RM@AfterWidthSetting
+%%
+%%
+\endinput \ No newline at end of file