diff options
author | Karl Berry <karl@freefriends.org> | 2010-04-19 00:53:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-04-19 00:53:19 +0000 |
commit | fe805de7e1a79445f98e0f66ecb4d8c5acbd6b86 (patch) | |
tree | b8910ed80f8ed26fcde6097d5b452c8cd27700c4 /Master/texmf-dist/doc/latex | |
parent | 5c38e75bd5e6036e1070f81c9cd8f6042961bce4 (diff) |
rmpage non-update
git-svn-id: svn://tug.org/texlive/trunk@17915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/rmpage/readme | 34 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/rmpage/rmpage.dvi | bin | 303836 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/rmpage/rmplocal.gfc | 1407 |
3 files changed, 1441 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/rmpage/readme b/Master/texmf-dist/doc/latex/rmpage/readme new file mode 100644 index 00000000000..7e002ac1d66 --- /dev/null +++ b/Master/texmf-dist/doc/latex/rmpage/readme @@ -0,0 +1,34 @@ +The rmpage package has five files: + +rmpage.tex LaTeXable documenation +rmpage.sty The package file +rmplocal.gfc A configuration file +rmpgen.cfg A configuration file +readme This file + +The documentation's a bit of a mess - you can expect lots of overfull and +underfull \hboxes when you LaTeX it. You might want to change the paper +size if you don't use A4. + +rmplocal.gfc is configuration file with fewer options than rmpgen.cfg - +it's much faster. See rmpage.tex for more details. + +And what's rmpage for? + +The rmpage package lets you change page layout parameters in small +steps over a range of values using options. It can set \textwidth +appropriately for the main fount, and ensure that the text fits inside +the printable area of a printer. + +An rmpage-formatted document can be typeset identically without +rmpage after a single cut and paste operation. Local configuration +can set defaults: for all documents; or by class, by printer, and by +paper size. + +The geometry package is better if you want to set layout parameters to +particular measurements. + + +Rowland McDonnell +10/10/97 +rebecca@astrid.u-net.com
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/rmpage/rmpage.dvi b/Master/texmf-dist/doc/latex/rmpage/rmpage.dvi Binary files differdeleted file mode 100644 index 182267ab5c8..00000000000 --- a/Master/texmf-dist/doc/latex/rmpage/rmpage.dvi +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/rmpage/rmplocal.gfc b/Master/texmf-dist/doc/latex/rmpage/rmplocal.gfc new file mode 100644 index 00000000000..9d29c556447 --- /dev/null +++ b/Master/texmf-dist/doc/latex/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 |