summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cjw/cjwresize.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/cjw/cjwresize.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/cjw/cjwresize.sty')
-rw-r--r--macros/latex/contrib/cjw/cjwresize.sty226
1 files changed, 226 insertions, 0 deletions
diff --git a/macros/latex/contrib/cjw/cjwresize.sty b/macros/latex/contrib/cjw/cjwresize.sty
new file mode 100644
index 0000000000..2934fde43d
--- /dev/null
+++ b/macros/latex/contrib/cjw/cjwresize.sty
@@ -0,0 +1,226 @@
+%%
+% File: cjwresize.sty
+%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cjwresize}
+ [1995/05/09 v0.1 Change Default LaTeX Page Layouts -- CJW]
+
+\newif \if@autocalc
+
+\DeclareOption{auto} {\@autocalctrue}
+\DeclareOption{final}{\@autocalctrue}
+\DeclareOption*{%
+ \PackageWarning{cjwresize}{Unknown option `\CurrentOption'}}
+
+\ProcessOptions
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DISTRIBUTION NOTICE
+%
+% This is file |cjwresize.sty| for use with \LaTeX2e.
+%
+% Copyright (c) 1995 by Colin J. Wynne
+% cwynne@sage.wlu.edu, cwynne@lorien,princeton.edu,
+% ua7o@rz.uni-karlsruhe.de
+% This file may be freely distributed in any form; electronic,
+% physical or otherwise; so long as the distributor provides this
+% file in its entirety (including this message) and the distributor
+% receives no money (except for a reasonable recompense for the
+% duplication process). Fair 'nough?
+%
+% This file is beer-ware. If you use it and like it, then you
+% should buy me a beer if you ever meet me. :-)
+%
+%
+% INTRO
+%
+% This is a fairly simple file, so I am not going to bother with a
+% .dtx file. Here is the whole documentation, right here. :-) No
+% \docstrip{} hastle or anything...
+%
+%
+% WHY THIS PACKAGE?
+%
+% I think the default printable area used by \LaTeX{}, frankly,
+% sucks. When I turn in three problem assignments for a math class
+% and it takes up eight pages, there is just too much blank space.
+% So, I hacked the relevant parts out of |classes.dtx| which deal
+% with setting printable area and balancing margins and fiddled with
+% some of the default values. Not only that, but it is easily
+% customisable.
+%
+%
+% HOW TO USE THIS PACKAGE
+%
+% There are two basic ways to use this package. Essentially, after
+% including the package, the macro |\resize| is available to the
+% user. After altering any of the relevant page information, one
+% can invoke |\resize| to recalculate page margins. |\resize|
+% should be called after changes to the following:
+%
+% \textheight \headheight \footskip
+% \textwidth \headsep
+%
+% and optionally after changing |\topskip|. These are the
+% dimensions on which the \LaTeX{} algorithms below depend.
+%
+% This only half solves the problem, though. Having to change the
+% height and width in every document is also not a particularly
+% ducky solution, so there is also a package option, namely |auto|.
+% In commented sections below, you will see where I have altered
+% some of the default values that \LaTeX{} uses for page layout
+% calculations. Invoking the package with the |auto| option will
+% automatically do a resize with these defaults. Of course, the
+% |\resize| command will still be available if further modifications
+% are desired. You should feel perfectly free to change these
+% defaults to something that will be more appropriate for you.
+% As the major advantage of \LaTeX's default, \emph{wide} margins is
+% the availability of |\marginpar| space, for draft annotations, I
+% also consider the revised margins of this package to be applicable
+% to final output. Therefore the option |final| will be grabbed and
+% interpreted to mean the same thing as |auto|.
+%
+%
+% BUGS
+%
+% Well, I wouldn't call this a bug, but I haven't accounted for the
+% slight differences in these calculations specific to the |book|
+% class's options for size switching. This package was written in
+% about twenty minutes, and I couldn't think of a way off the type
+% of my head to test for the invoked class. If there is one (and
+% I'm fairly sure there is), please let me know.
+%
+%
+% COMMENTS?
+%
+% If you have any, send them to me at one of the e-mail addresses
+% above. I hope this will be useful to somebody, somewhere.
+%
+% CJW, 09.05.1995
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\resize{\relax%
+ %
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ %
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ %
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ %
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ %
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ %
+ \@settopoint\evensidemargin
+ %
+ %
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip}
+ %
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+}
+
+%%%%
+%%%%
+%%
+%% CODE for the |auto| option:
+%%
+%%%%
+%%%%
+
+\if@autocalc
+
+%%
+% Compute the |\textwidth|.
+%%
+
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+
+%%
+% This choice of |\@tempdimb| is the `default' page size used by the
+% |auto| option. The values from |classes.dtx| are 345pt, 360pt and
+% 390pt respectively for 10pt, 11pt and 12pt document sizes. Feel
+% free to change these to taste. I find that adding about 40--50pt to
+% the original dimensions works pretty well.
+%%
+ \ifcase \@ptsize
+ \setlength\@tempdimb{385\p@} \or
+ \setlength\@tempdimb{400\p@} \else
+ \setlength\@tempdimb{430\p@}
+ \fi
+
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+
+ \@settopoint\textwidth
+
+%%
+% Compute the |\textheight|.
+%%
+
+ \setlength\@tempdima{\paperheight}
+%%
+% These next two lines govern the `default' |\textheight| used by the
+% |auto| option. The values from |classes.dtx| are -2in for the
+% margins and -1.5in for headers and footers. I like reducing the
+% extra space for headers/footers down to -1in. Feel free, however,
+% to change these values to taste.
+%% %%
+ \addtolength\@tempdima{-2in} % Minimum margins.
+ \addtolength\@tempdima{-1in} % Room for head/foot stuff.
+ %
+ \divide\@tempdima\baselineskip % Compute size in
+ \@tempcnta=\@tempdima % line numbers.
+ %
+ \setlength\textheight{\@tempcnta\baselineskip}%
+ \addtolength\textheight{\topskip} % First line of text has
+ % height |\topskip|.
+%% %%
+% Now call resize.
+%%
+ \resize
+
+\fi
+
+\endinput
+%%
+% End of file: cjwresize.sty
+%%