%% 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