diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-13 23:42:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-13 23:42:35 +0000 |
commit | ad1d09658f9af8b50c69d1c5bdf9b92623ebbba4 (patch) | |
tree | 705679eaabe7f4a6838a2174379b484ad9bdf236 /Master/texmf-dist/tex/latex/memoir | |
parent | 782deb6d565d097328fff63a6e7bca1527c0532c (diff) |
memoir update
git-svn-id: svn://tug.org/texlive/trunk@1943 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/memoir')
-rw-r--r-- | Master/texmf-dist/tex/latex/memoir/memhfixc.sty | 85 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/memoir/mempatch.sty | 1364 |
2 files changed, 1439 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty index f0b20bdfebb..15502dd75fe 100644 --- a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty +++ b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty @@ -6,9 +6,8 @@ %% %% mempatch.dtx (with options: `hyper') %% -%% Author: Peter Wilson (CUA) now at peter.r.wilson@boeing.com until June 2004 -%% (or at: pandgwilson at earthlink dot net) -%% Copyright 2001 --- 2004 Peter R. Wilson +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 2001 --- 2006 Peter R. Wilson %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -36,6 +35,8 @@ %% \usepackage[...]{hyperref} %% \usepackage{memhfixc} %% +%% Version 1.8 2006/01/21 +%% Version 1.7 2005/11/15 %% Version 1.6 2004/05/13 %% Version 1.5 2003/10/14 %% Version 1.4 2003/09/26 @@ -44,7 +45,7 @@ %% Version 1.1 2003/01/22 %% Version 1.0 2002/10/22 %% -\ProvidesPackage{memhfixc}[2004/05/13 v1.6 package fixes for memoir class] +\ProvidesPackage{memhfixc}[2006/01/21 v1.8 nameref/hyperref package fixes for memoir class] \let\M@hfixcfinish\relax \@ifclassloaded{memoir}{}% {\let\M@hfixcfinish\endinput @@ -96,6 +97,41 @@ \@ifpackageloaded{hyperref}{}{\let\M@hfixcfinish\endinput} \M@hfixcfinish +\let\H@old@sbook\@sbook +\def\@sbook#1{% + \H@old@sbook{#1}% + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{book*.\the\Hy@linkcounter}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% +} + +\@ifundefined{Hy@captionsenglish}{}{% + \g@addto@macro{\Hy@captionsenglish}{\def\bookautorefname{Book}}} +\@ifundefined{HyLang@english}{}{% + \g@addto@macro{\HyLang@english}{\def\bookautorefname{Book}}} + +\@ifundefined{Hy@captionsgerman}{}{% + \g@addto@macro{\Hy@captionsgerman}{\def\bookautorefname{Buch}}} +\@ifundefined{HyLang@german}{}{% + \g@addto@macro{\HyLang@german}{\def\bookautorefname{Buch}}} + +\@ifundefined{Hy@captionsportuges}{}{% + \g@addto@macro{\Hy@captionsportuges}{\def\bookautorefname{Livro}}} +\@ifundefined{HyLang@portuges}{}{% + \g@addto@macro{\HyLang@portuges}{\def\bookautorefname{Livro}}} + +\@ifundefined{Hy@captionsspanish}{}{% + \g@addto@macro{\Hy@captionsspanish}{\def\bookautorefname{Libro}}} +\@ifundefined{HyLang@spanish}{}{% + \g@addto@macro{\HyLang@spanish}{\def\bookautorefname{Libro}}} + +\@ifundefined{Hy@captionsafrikaans}{}{% + \g@addto@macro{\Hy@captionsafrikaans}{\def\bookautorefname{Boek}}} +\@ifundefined{HyLang@afrikaans}{}{% + \g@addto@macro{\HyLang@afrikaans}{\def\bookautorefname{Boek}}} + +\providecommand{\bookautorefname}{Book} + \def\@@writetorep#1#2#3#4#5{% \begingroup \def\Hy@tempa{#5}% @@ -133,10 +169,12 @@ \fi \ifHy@bookmarksnumbered \let\numberline\Hy@numberline + \let\booknumberline\Hy@numberline % <- added \let\partnumberline\Hy@numberline % <- added \let\chapternumberline\Hy@numberline % <- added \else \let\numberline\@gobble + \let\booknumberline\@gobble % <- added \let\partnumberline\@gobble % <- added \let\chapternumberline\@gobble % <- added \fi @@ -184,6 +222,45 @@ \let\m@moldhypcaption\caption \renewcommand{\caption}{\donemaincaptiontrue\m@moldhypcaption} +\newcounter{memhycontfloat} +\renewcommand*{\thememhycontfloat}{\arabic{memhycontfloat}} +\renewcommand{\theHmemhycontfloat}{\arabic{memhycontfloat}} +\setcounter{memhycontfloat}{0} + +\renewcommand{\contcaption}{% + \refstepcounter{memhycontfloat}% + \addtocounter{\@captype}{\m@ne}\H@refstepcounter{\@captype}% + \@contcaption\@captype} + +\def\endsidecaption{% + \m@mscapend@fbox + \H@refstepcounter{\@captype}% + \hyper@makecurrent{\@captype}% + \m@mscaplabel + \begin{lrbox}{\m@mscap@capbox}% + \begin{minipage}[c]{\sidecapwidth}% + \sidecapstyle + \@caption\@captype[\m@mscap@fortoc]{\m@mscap@forcap}% + \end{minipage}% + \end{lrbox}% + \m@mscapopboxes} + +\renewcommand*{\sidecontcaption}{% + \refstepcounter{memhycontfloat}% + \@sidecontcaption} +\def\endsidecontcaption{% + \m@mscapend@fbox + \addtocounter{\@captype}{\m@ne}\H@refstepcounter{\@captype}% + \hyper@makecurrent{memhycontfloat}% + \m@mscaplabel + \begin{lrbox}{\m@mscap@capbox}% + \begin{minipage}[c]{\sidecapwidth}% + \sidecapstyle + \@contcaption\@captype{\m@mscap@forcap}% + \end{minipage}% + \end{lrbox}% + \m@mscapopboxes} + \endinput %% %% End of file `memhfixc.sty'. diff --git a/Master/texmf-dist/tex/latex/memoir/mempatch.sty b/Master/texmf-dist/tex/latex/memoir/mempatch.sty index 124029e6113..b2dc44a17d8 100644 --- a/Master/texmf-dist/tex/latex/memoir/mempatch.sty +++ b/Master/texmf-dist/tex/latex/memoir/mempatch.sty @@ -7,7 +7,7 @@ %% mempatch.dtx (with options: `patch') %% %% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net -%% Copyright 2001 --- 2005 Peter R. Wilson +%% Copyright 2001 --- 2006 Peter R. Wilson %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -22,11 +22,24 @@ %% %% This work consists of the files listed in the README file. %% -\ProvidesFile{mempatch.sty}[2005/10/06 v4.1 Patches for memoir class v1.618] +\ProvidesFile{mempatch.sty}[2006/08/08 v4.5 Patches for memoir class v1.618] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Version 4.0 was released simultaneously with version 1.618 of memoir. +%%% Version 4.0 was released simultaneously with version 1.618 of memoir. %%% By definition there were no patches. +%%% Most of the subsequent additions are noted in the Addendum. +%%% +%%% Version 4.3 introduces the \reparticle macro which is not in the +%%% Addendum. +%%% +%%% Version 4.4 introduces several additional commands, in particular +%%% the \book command provides a document division above Part. See the +%%% code (towards the end) for details of the new commands. +%%% +%%% Version 4.5 introduces commands for switching trim marks off and on +%%% and a \DisemulatePackage macro to negate a prior \EmulatedPackage. +%%% It also provides the functions of the pagenote package for end notes. +%%% See the code (near the end) for details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -38,6 +51,10 @@ \memsecstarinfo{\m@msecn@mame}{#5}% \@mem@old@ssect{#1}{#2}{#3}{#4}{#5}} +%%%%%%%%%%%% +%%%%%%%%%%%% Side captions +%%%%%%%%%%%% + \newsavebox{\m@mscap@capbox} \newsavebox{\m@mscap@fbox} @@ -62,7 +79,7 @@ \def\@tempb{c}% \ifx\@tempb\m@mscappos \else - \@memerror{Argument to \string\setsidecappos\space not t, c, or b. + \@memerror{Argument to \string\setsidecappos\space is not t or c or b. \MessageBreak Set to c}{\@ehc}% \def\m@mscappos{c}% \fi @@ -210,7 +227,7 @@ \scapmargleftfalse \else \ifnum\m@mscapmarg=\tw@% % outer - \scapmargleftrue + \scapmarglefttrue \ifoddpage \scapmargleftfalse \fi @@ -312,7 +329,1342 @@ \end{lrbox}% \m@mscapopboxes} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Version 4.2 (2005/11/21 and later) + +%%%%%%%%%%%% +%%%%%%%%%%%% Extensions to \AtBeginDocument +%%%%%%%%%%%% + +\renewcommand{\InputIfFileExists}[2]{% + \IfFileExists{#1}% + {#2\@addtofilelist{#1}\m@matbeginf{#1}% + \@@input \@filef@und + \m@matendf{#1}% + \killm@matf{#1}}} + +\newcommand{\m@matbeginf}[1]{\@ifundefined{#1-m@mfb}{}% + {\@nameuse{#1-m@mfb}}} +\newcommand{\m@matendf}[1]{\@ifundefined{#1-m@mfe}{}% + {\@nameuse{#1-m@mfe}}} + +\newcommand*{\killm@matf}[1]{% + \@namelet{#1-m@mfb}\relax + \@namelet{#1-m@mfe}\relax} + +\newcommand{\AtBeginFile}[2]{\@ifundefined{#1-m@mfb}% + {\@namedef{#1-m@mfb}{#2}}% + {\expandafter\addtodef\csname #1-m@mfb\endcsname{}{#2}}} +\newcommand{\AtEndFile}[2]{\@ifundefined{#1-m@mfe}% + {\@namedef{#1-m@mfe}{#2}}% + {\expandafter\addtodef\csname #1-m@mfe\endcsname{}{#2}}} + +\newcommand{\AtBeginPackage}[2]{% + \AtBeginFile{#1.\@pkgextension}{#2}} +\newcommand{\AtEndPackage}[2]{% + \AtEndFile{#1.\@pkgextension}{#2}} +\newcommand{\RequireAtEndPackage}[2]{% + \@ifpackageloaded{#1}{#2}% + {\AtEndFile{#1.\@pkgextension}{#2}}} + +\newcommand{\AtBeginClass}[2]{% + \AtBeginFile{#1.\@clsextension}{#2}} +\newcommand{\AtEndClass}[2]{% + \AtEndFile{#1.\@clsextension}{#2}} +\newcommand{\RequireAtEndClass}[2]{% + \@ifclassloaded{#1}{#2}% + {\AtEndFile{#1.\@clsextension}{#2}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Version 4.3 (2005/12/13 and later) + +%%% Replicate the appearance of a \section in the article class +\makechapterstyle{reparticle}{% + \setlength{\beforechapskip}{3.5ex \@plus 1ex \@minus .2ex}% + \renewcommand*{\chapterheadstart}{\vspace{\beforechapskip}}% + \setlength{\afterchapskip}{2.3ex \@plus .2ex}% + \renewcommand*{\printchaptername}{}% + \renewcommand*{\chapternamenum}{}% + \renewcommand*{\chaptitlefont}{\normalfont\Large\bfseries}% + \renewcommand*{\chapnumfont}{\chaptitlefont}% + \renewcommand*{\printchapternum}{\@hangfrom{\chapnumfont \thechapter\quad}}% + \renewcommand*{\afterchapternum}{}} + +%%% \reparticle redefines the higher level division heads fonts and spacing +%%% to replicate the article class (but \chapter must still be used). +%%% Use, for example like: \ifartopt \reparticle \fi +\newcommand*{\reparticle}{% + \chapterstyle{reparticle}% + \setsecheadstyle{\large\bfseries\raggedright}% + \setsubsecheadstyle{\normalsize\bfseries\raggedright}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Version 4.4 (2006/01/06 and later) + +%%% \captiontitlefinal{<stuff>} will put <stuff> immediately at the +%%% end of a \caption's title text and it will not appear in the +%%% LoF/LoT/etc. For example: \captiontitlefinal{.} +%%% (Code supplied by Frederic Connes) +\newcommand*{\captiontitlefinal}[1]{\def\@contfinal{#1}} +\captiontitlefinal{} + +\renewcommand{\@makecaption}[2]{\let\@memtempa\relax + \ifdim\prevdepth>-99\p@ \vskip\abovecaptionskip + \else \def\@memtempa{\vbox to\topskip{}}\fi + \let\@contfnote\footnote \renewcommand{\footnote}[2][]{}% + \let\@contfmark\footnotemark \renewcommand{\footnotemark}[1][]{}% + \sbox\@tempboxa{\@contnfont #1\@contdelim \@conttfont #2\@contfinal}% + \let\footnote\@contfnote + \let\footnotemark\@contfmark + \ifdim\wd\@tempboxa<\linewidth \centering\fi + \if@contcw + \centering + \parbox{\@contcwidth}{% + \ifdim\wd\@tempboxa<\@contcwidth \centering\fi + \fi + \if@conthang + \sbox\@tempboxa{\@contnfont #1\@contdelim}% + \@contpre% + {\@contcstyle\hangindent=\wd\@tempboxa + \noindent\box\@tempboxa\@memtempa \@conttfont #2\@contfinal\par}% + \else + \if@contindent + \@contpre% + {\@contnfont #1\@contdelim}\@memtempa + {\@contcstyle\hangindent=\@contindw + \hangafter=\@ne\@conttfont #2\@contfinal\par}% <- v1.4 + \else + \@contpre% + {\@contnfont #1\@contdelim}\@memtempa + {\ifdim\wd\@tempboxa<\linewidth + \@contcshortstyle\else \@contcstyle\fi% <- v1.4 + \@conttfont #2\@contfinal\par}% + \fi + \fi + \@contpost + \if@contcw + \par + }% end of the parbox + \fi + \vskip\belowcaptionskip} + +%%% Use the declaration \xindyindex if you will be using the xindy program +%%% instead of MakeIndex to process index entries. As yet, xindy will not +%%% hyperref any entries. +%%% (Code supplied by Frederic Connes) +\newif\ifm@mxindy +\m@mxindyfalse +\newcommand*{\xindyindex}{\m@mxindytrue} +\def\@@wrspindexhyp#1|#2|#3\\{% + \ifshowindexmark\@showidx{#1}\fi + \ifx\\#2\\% + \protected@write\@auxout{}% + {\string\@@wrindexm@m{\@idxfile}% + \ifm@mxindy{#1}\else{#1|hyperspindexpage(\thepage)}\fi + {\@nameuse{the\@sptheidx}}}% + \else + \def\Hy@temp@A{#2}% + \ifx\Hy@temp@A\HyInd@ParenLeft + \protected@write\@auxout{}% + {\string\@@wrindexm@m{\@idxfile}% + \ifm@mxindy{#1|#2}\else{#1|#2hyperspindexpage(\thepage)}\fi + {\@nameuse{the\@sptheidx}}}% + \else + \protected@write\@auxout{}% + {\string\@@wrindexm@m{\@idxfile}{#1|#2}% + {\@nameuse{the\@sptheidx}}}% + \fi + \fi + \endgroup + \@esphack} + +\renewenvironment{theindex}{% + \clearforchapter% <- added + \if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \ifonecolindex + \onecolumn + \chapter*{\indexname} + \preindexhook + \else + \setlength{\columnseprule}{\indexrule}% + \setlength{\columnsep}{\indexcolsep}% + \twocolumn[\@makeschapterhead{\indexname} + \preindexhook]% + \fi + \indexmark + \ifnoindexintoc\else + \phantomsection + \addcontentsline{toc}{chapter}{\indexname} + \fi + \thispagestyle{chapter}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem}% + {\if@restonecol\onecolumn\else\twocolumn\fi} + +%%% \ignorespaces fix by Aaron Rendahl to remove extraneous space +%%% with \\>[0pt] ending a verse line +\renewcommand*{\verselinebreak}[1][\z@]{\newline\hspace*{#1}\ignorespaces} + +%%% Use the \verselinenumbersleft declaration to set verse line numbers +%%% at the left. To later return to the default of setting them at the right +%%% use the \verselinenumbersright declaration. +\newcommand*{\verselinenumbersright}{\def\@vstypelinenum{\@vslnumright}} +\newcommand*{\verselinenumbersleft}{\def\@vstypelinenum{\@vslnumleft}} +\verselinenumbersright + +\newcommand*{\@vslnumright}{% + \hfill\rlap{\kern\rightskip\kern\rightmargin% + \vlvnumfont\getthelinenumber{poemline}}} +\newcommand*{\@vslnumleft}{% + \hfill\rlap{\kern-\textwidth\kern-\rightskip% + \vlvnumfont\getthelinenumber{poemline}}} +\renewcommand*{\@vscentercr}{% + \ifhmode \unskip\else \@nolnerr\fi + \@vstypelinenum% + \@vsifgt{\verselinebreak}{% + \incr@vsline + \par\@ifstar{\nobreak\@vsxcentercr}{% + \@vsifbang{\@ifnextchar[ {\@vsicentercr}{}}{\@vsxcentercr}}}} + +%%% Fix for wrapped verbatims in list environments. +\newcommand*{\raggedwrap}{% + \@rightskip\@flushglue + \rightskip\@rightskip + \leftskip\@totalleftmargin + \parindent\ragrparindent} +\renewcommand*{\wrappingon}{% + \def\@xobeysp{~\discretionary{\verbatimbreakchar}% + {\kern\verbatimindent}{}}% + \def\wrapright{\raggedwrap}} + +%%% Use the \nopartblankpage declaration if you don't want a blank +%%% page after a Part title page. The default is set by \partblankpage. +\newif\ifm@mnopartnewpage +\newcommand*{\partblankpage}{\m@mnopartnewpagefalse} +\newcommand*{\nopartblankpage}{\m@mnopartnewpagetrue} + +\renewcommand*{\@endpart}{\afterpartskip + \ifm@mnopartnewpage + \else + \if@twoside + \if@openright + \null + \thispagestyle{afterpart}% + \newpage + \fi + \fi + \fi + \if@tempswa + \twocolumn + \fi} + +\renewcommand{\partnumberline}[1]{% + \hb@xt@\@tempdima{% + \cftpartname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb\space} + +\aliaspagestyle{afterpart}{empty} +\aliaspagestyle{book}{empty} +\aliaspagestyle{afterbook}{empty} + +%%% The \book (and \book*) document division is one level higher than +%%% a \cs{part}. It has the same kind of controls over its appearance in +%%% the body of the document and in the ToC as \part has. +\newcommand*{\book}{% + \@setupbook + \secdef\@book\@sbook} + +\newcommand*{\bookmark}[1]{} +\newcounter{book} \setcounter{book}{0} +\renewcommand*{\thebook}{\Roman{book}} +\newcommand*{\theHbook}{\arabic{book}} +\newcommand*{\toclevel@book}{-2} + +\newcommand*{\beforebookskip}{\null\vfil} +\newcommand*{\midbookskip}{\par \vskip 2\baselineskip} +\newcommand*{\afterbookskip}{\vfil\newpage} + +\newcommand*{\@setupbook}{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{book}% + \if@twocolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \beforebookskip} + +\newcommand*{\bookname}{Book} +\newcommand*{\booknamefont}{\normalfont\huge\bfseries} +\newcommand*{\booknumfont}{\normalfont\huge\bfseries} +\newcommand*{\booktitlefont}{\normalfont\Huge\bfseries} + +\newcommand*{\printbookname}{\booknamefont \bookname} +\newcommand*{\booknamenum}{\space} +\newcommand*{\printbooknum}{\booknumfont \thebook} +\newcommand{\printbooktitle}[1]{\booktitlefont #1} + +\newcommand*{\membookinfo}[3]{} +\newcommand*{\membookstarinfo}[1]{} + +\long\def\@book[#1]#2{% + \M@gettitle{#1}% + \phantomsection + \ifnum\c@secnumdepth > -3\relax + \refstepcounter{book}% + \addcontentsline{toc}{book}% + {\protect\booknumberline{\thebook}#1}% + \membookinfo{\thebook}{#1}{#2}% + \else + \addcontentsline{toc}{book}{#1}% + \membookinfo{}{#1}{#2}% + \fi + \bookmark{#1}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-3\relax + \printbookname \booknamenum \printbooknum + \midbookskip + \fi + \printbooktitle{#2}\par}% + \@endbook} + +\def\@sbook#1{% + \M@gettitle{#1}% + \phantomsection + \membookstarinfo{#1}% + {\centering + \interlinepenalty \@M + \normalfont + \printbooktitle{#1}\par}% + \@endbook} + +%%% Use the \nobookblankpage declaration if you don't want a blank +%%% page after a Book title page. The default is set by \bookblankpage. +\newif\ifm@mnobooknewpage +\newcommand*{\bookblankpage}{\m@mnobooknewpagefalse} +\newcommand*{\nobookblankpage}{\m@mnobooknewpagetrue} + +\newcommand*{\@endbook}{\afterbookskip + \ifm@mnobooknewpage + \else + \if@twoside + \if@openright + \null + \thispagestyle{afterbook}% + \newpage + \fi + \fi + \fi + \if@tempswa + \twocolumn + \fi} + +\newcommand*{\cftbookname}{} +\newcommand*{\l@book}[2]{% + \ifnum\c@tocdepth >-3\relax + \addpenalty{-\@highpenalty}% + \addvspace{\cftbeforebookskip}% + \begingroup + {\leftskip \cftbookindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftbookindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \settowidth{\@tempdima}{\cftbookfont\cftbookname}% + \addtolength{\@tempdima}{\cftbooknumwidth}% + \let\@cftbsnum \cftbookpresnum + \let\@cftasnum \cftbookaftersnum + \let\@cftasnumb \cftbookaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftbookfont #1}% + \cftbookfillnum{#2}} + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand{\booknumberline}[1]{% + \hb@xt@\@tempdima{% + \cftbookname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb\space} + +\newlength{\cftbeforebookskip} + \setlength{\cftbeforebookskip}{2.25em \@plus\p@} +\newdimen\cftbookindent + \setlength{\cftbookindent}{0em} +\newdimen\cftbooknumwidth + \setlength{\cftbooknumwidth}{1.5em} +\newcommand*{\cftbookfont}{\large\bfseries} +\newcommand*{\cftbookpresnum}{} +\newcommand*{\cftbookaftersnum}{} +\newcommand*{\cftbookaftersnumb}{} +\newcommand*{\cftbookleader}{% + \large\bfseries\cftdotfill{\cftbookdotsep}} +\newcommand*{\cftbookdotsep}{\cftnodots} +\newcommand*{\cftbookpagefont}{\large\bfseries} +\newcommand{\cftbookafterpnum}{} +\newcommand{\cftbookfillnum}[1]{% + {\cftbookleader}% + {\hb@xt@\@pnumwidth{\hss {\cftbookpagefont #1}}}% + \cftbookafterpnum\par} + +\renewcommand*{\@setclcnt}[2]{% + \@tempswafalse + \nametest{#1}{none}% + \ifsamename + \setcounter{#2}{-10}% + \@tempswatrue + \fi + \nametest{#1}{book}% + \ifsamename + \setcounter{#2}{-2}% + \@tempswatrue + \fi + \nametest{#1}{part}% + \ifsamename + \setcounter{#2}{-1}% + \@tempswatrue + \fi + \nametest{#1}{chapter}% + \ifsamename + \setcounter{#2}{0}% + \@tempswatrue + \fi + \nametest{#1}{section}% + \ifsamename + \setcounter{#2}{1}% + \@tempswatrue + \fi + \nametest{#1}{subsection}% + \ifsamename + \setcounter{#2}{2}% + \@tempswatrue + \fi + \nametest{#1}{subsubsection}% + \ifsamename + \setcounter{#2}{3}% + \@tempswatrue + \fi + \nametest{#1}{paragraph}% + \ifsamename + \setcounter{#2}{4}% + \@tempswatrue + \fi + \nametest{#1}{subparagraph}% + \ifsamename + \setcounter{#2}{5}% + \@tempswatrue + \fi + \nametest{#1}{all}% + \ifsamename + \setcounter{#2}{50}% + \@tempswatrue + \fi + \if@tempswa\else + \@memerror{% + Unknown document division name (#1) + }{% + I'll ignore it. + Type \space <return> and I'll continue.\MessageBreak + If you haven't mistyped the name then use + \protect\setcounter\space instead.}% + \fi} + +\renewcommand*{\settocdepth}[1]{% + \@tempswafalse + \nametest{#1}{none}% + \ifsamename + \addtocontents{toc}{\changetocdepth{-10}}% + \@tempswatrue + \fi + \nametest{#1}{book}% + \ifsamename + \addtocontents{toc}{\changetocdepth{-2}}% + \@tempswatrue + \fi + \nametest{#1}{part}% + \ifsamename + \addtocontents{toc}{\changetocdepth{-1}}% + \@tempswatrue + \fi + \nametest{#1}{chapter}% + \ifsamename + \addtocontents{toc}{\changetocdepth{0}}% + \@tempswatrue + \fi + \nametest{#1}{section}% + \ifsamename + \addtocontents{toc}{\changetocdepth{1}}% + \@tempswatrue + \fi + \nametest{#1}{subsection}% + \ifsamename + \addtocontents{toc}{\changetocdepth{2}}% + \@tempswatrue + \fi + \nametest{#1}{subsubsection}% + \ifsamename + \addtocontents{toc}{\changetocdepth{3}}% + \@tempswatrue + \fi + \nametest{#1}{paragraph}% + \ifsamename + \addtocontents{toc}{\changetocdepth{4}}% + \@tempswatrue + \fi + \nametest{#1}{subparagraph}% + \ifsamename + \addtocontents{toc}{\changetocdepth{5}}% + \@tempswatrue + \fi + \nametest{#1}{all}% + \ifsamename + \addtocontents{toc}{\changetocdepth{50}}% + \@tempswatrue + \fi + \if@tempswa + \@ifundefined{toclevel@#1}{% + @memwarn{Unknown toclevel for #1}% + }{% + \setcounter{tocdepth}{\@nameuse{toclevel@#1}}% + } + \else + \@memerror{% + Unknown document division name (#1) + }{% + I'll ignore it. + Type \space <return> and I'll continue.}% + \fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Version 4.5 (2006/02/11 and later) + +%%% \DisemulatePackage{pack} undoes a previous \EmulatedPackage{pack}. +%%% For example \DisemulatePackage{index} if you need to use the index package. +\providecommand*{\DisemulatePackage}[1]{% + \@namelet{ver@#1.\@pkgextension}\relax} + +\renewcommand{\@nameedef}[1]{% + \expandafter\protected@edef\csname #1\endcsname} + +%%% change timing of \@mainmattertrue in \@smemmain +\renewcommand*{\@smemmain}{% + \ifartopt + \clearpage + \else + \cleardoublepage + \counterwithin{figure}{chapter}% + \counterwithin{table}{chapter}% + \fi + \@mainmattertrue + \setcounter{secnumdepth}{\value{maxsecnumdepth}}} + +\renewcommand{\@footnotetext}[1]{% + \reset@font\m@mold@footnotetext{#1}\m@mmf@prepare} + +\newif\ifm@mpn@new@chap + \m@mpn@new@chapfalse +\newif\ifm@mpn@new@schap + \m@mpn@new@schapfalse + +%%% Fix for mistiming of \chaptermark with article option +\def\@chapter[#1]#2{% + \m@mpn@new@chaptrue + \def\f@rbdy{#2}% + \ifx\ch@pt@c\@empty % no optional args + \def\f@rtoc{#2}% + \def\f@rhdr{#2}% + \else % at least one opt arg + \let\f@rtoc\ch@pt@c + \ifx\@empty#1\@empty + \let\f@rhdr\ch@pt@c + \else + \def\f@rhdr{#1}% + \fi + \fi + \m@m@Andfalse + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \m@m@Andtrue + \fi + \fi + \ifm@m@And + \refstepcounter{chapter}% + \fi + \ifartopt + \@makechapterhead{#2}% + \@afterheading + \chaptermark{\f@rhdr}% + \else + \chaptermark{\f@rhdr}% + \insertchapterspace + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \fi + \@afterheading + \fi + \ifm@m@And + \ifanappendix + \addcontentsline{toc}{appendix}{% + \protect\chapternumberline{\thechapter}\f@rtoc}% + \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \else + \addcontentsline{toc}{chapter}{% + \protect\chapternumberline{\thechapter}\f@rtoc}% + \memchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \fi + \else + \addcontentsline{toc}{chapter}{\f@rtoc}% + \ifanappendix + \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% + \else + \memchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% + \fi + \fi + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi} + +\renewcommand{\@schapter}[1]{% + \m@mpn@new@schaptrue + \def\f@rbdy{#1}% + \ifartopt + \@makeschapterhead{#1}% + \else + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}] + \else + \@makeschapterhead{#1}% + \fi + \fi + \@afterheading} +\renewcommand{\@m@mschapter}[2][\@empty]{% + \@schapter{#2}% + \ifx \@empty#1 + \def\f@rhdr{#2}% + \else + \def\f@rhdr{#1}% + \setcounter{secnumdepth}{-10}% + \chaptermark{#1}% + \setcounter{secnumdepth}{\value{maxsecnumdepth}}% + \fi + \ifanappendix + \memappchapstarinfo{\f@rhdr}{#2}% + \else + \memchapstarinfo{\f@rhdr}{#2}% + \fi + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{#2}\fi} + +%%%% Use \showtrimsoff and \showtrimson to switch trim marks off and on. +%%%% If the showtrims option has not been used, these do nothing. +\newcommand*{\showtrimsoff}{\showtrimsfalse} +\newcommand*{\showtrimson}{\showtrimstrue} +\renewcommand*{\mem@shipii}{% + \ifvoid\@cclv + \mem@oldshipout\box\@cclv + \else + \ifshowtrims + \mem@oldshipout\vbox{\trimmarks\unvbox\@cclv}% + \else + \mem@oldshipout\box\@cclv + \fi + \fi} + +%%%% Fix to stop \sidepars moving up or down +\long\def\@sidepar[#1]#2{\@bsphack\strut\vadjust{% + \checkoddpage + \ifsideparswitch + \ifreversesidepar + \ifoddpage + \oddpagefalse + \else + \oddpagetrue + \fi + \fi + \else + \oddpagetrue + \ifreversesidepar + \oddpagefalse + \fi + \fi + \rlap{\kern-\parindent + \if@twocolumn + \if@firstcolumn% put at left + \kern -\marginparsep \kern -\marginparwidth + \else% put at right + \kern \columnwidth \kern \marginparsep + \fi + \else + \ifoddpage% put at right + \kern \textwidth \kern \marginparsep + \else% put at left + \kern -\marginparsep \kern -\marginparwidth + \fi + \fi + \setbox0=\vtop to 0pt{% + \begin{minipage}[t]{\marginparwidth}% + \ifoddpage #2\else #1\fi% + \end{minipage}% + \vss}% + \vtop to 0pt{\kern\sideparvshift% default should be 0pt + \kern-\dp\strutbox + \kern-\ht0 + \box0 \vss}}}% + \@esphack} +\setlength{\sideparvshift}{0pt} + +%%%% Ensure that fancybreaks close the paragraph they start +\renewcommand{\@fbreak}[1]{\par + \penalty -100 + \noindent\parbox{\linewidth}{\centering #1}% + \par + \@afterindentfalse + \@afterheading} +\renewcommand{\@sfbreak}[1]{\par + \penalty -100 + \noindent\parbox{\linewidth}{\centering #1}% + \par + \@afterindenttrue + \@afterheading} + +%%%% \begin{vplace}[<num>] vertically centered stuff \end{vplace} +%%%% <num> adjusts above space wrt to below space +\newenvironment{vplace}[1][1]{% + \par\vspace*{\stretch{#1}}% +}{% + \vspace*{\stretch{1}}% + \par} + +%%%% +%%%% Include the functions of the pagenote package +%%%% + +\newif\ifm@mpnpageopt + \m@mpnpageoptfalse +\newif\ifm@mpncontopt + \m@mpncontoptfalse +\newcommand*{\notepageref}{\m@mpnpageopttrue} +\newcommand*{\continuousnotenums}{% + \counterwithout{pagenote}{chapter} + \renewcommand{\thepagenote}{\arabic{pagenote}}} + + \newcounter{pagenote}[chapter] +\renewcommand{\thepagenote}{\arabic{pagenote}} +\setcounter{pagenote}{0} +\newif\ifmempagenotes + \mempagenotesfalse + +\newcommand*{\makepagenote}{% + \newwrite\@notefile + \immediate\openout\@notefile=\jobname.ent + \mempagenotestrue + \def\pagenote{\@bsphack\begingroup + \@sanitize + \m@m@wrpnote}% + \typeout{Writing note file \jobname.ent}% + \let\makepagenote\@empty} + +\newcommand{\immediate@protected@write}[3]{% + \begingroup + #2% + \let\protect\@unexpandable@protect + \edef\reserved@a{\immediate\write#1{#3}}% + \reserved@a + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi} + +\ifm@mpnpageopt + \let\m@m@pnwrite\protected@write +\else + \let\m@m@pnwrite\immediate@protected@write +\fi + +\newcommand*{\pnchap}{\f@rtoc} +\newcommand*{\pnschap}{\f@rbdy} + +\newcommand{\m@m@wrpnote}[2][]{% + \refstepcounter{pagenote}% + \notenumintext{\thepagenote}% + \ifm@mpn@new@chap + \global\m@mpn@new@chapfalse + \addtonotes{\string\pagenotesubhead{\@chapapp}{\thechapter}{\pnchap}}% + \fi + \ifm@mpn@new@schap + \global\m@mpn@new@schapfalse + \addtonotes{\string\pagenotesubhead{\@chapapp}{}{\pnschap}}% + \fi + \m@m@pnwrite\@notefile{} + {\string\noteentry{\thepagenote}{#1}{#2}{\thepage}}% + \endgroup + \@esphack} + +\def\pagenote{\@bsphack\begingroup \@sanitize\m@m@pagenote} +\newcommand{\m@m@pagenote}[2][]{\endgroup\@esphack} + +\newcommand*{\pagetofootnote}{% + \let\memsavepagenote\pagenote + \renewcommand{\pagenote}[2][]{\footnote{##2}}} +\newcommand*{\foottopagenote}{% + \let\memsavefootnote\footnote + \renewcommand*{\footnote}[2][]{\pagenote{##2}}} + +\newcommand{\addtonotes}[1]{% + \ifmempagenotes + \IfFileExists{\jobname.ent}{\m@m@pnwrite\@notefile{}{#1}}{\mempnofilewarn}% +\fi} + +\newcommand{\notenumintext}[1]{% + \textsuperscript{#1}} +\newcommand{\notenuminnotes}[1]{% + {\normalfont #1.}\space} +\newcommand{\noteentry}[4]{% + \prenoteinnotes + \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}% + \postnoteinnotes} + +\newcommand{\idtextinnotes}[1]{% + [#1]\space} +\newcommand{\noteidinnotes}[2]{% + \@ifmtarg{#2}{% + \notenuminnotes{#1}}{\idtextinnotes{#2}}} +\newcommand{\pageinnotes}[1]{% + \ifm@mpnpageopt \printpageinnotes{#1}\fi} +\newcommand*{\printpageinnotes}[1]{% + (\pagerefname\ #1)\space} +\newcommand{\noteinnotes}[1]{#1} + +\newcommand{\prenoteinnotes}{\par\noindent} +\newcommand{\postnoteinnotes}{\par} + +\providecommand*{\notesname}{Notes} +\newcommand*{\notedivision}{\chapter{\notesname}} + +\newcommand*{\printpagenotes}{\@ifstar{\@sprintpagenotes}{\@printpagenotes}} +\newcommand*{\mempnofilewarn}{% + \ClassWarning{memoir}{There is no .ent file}} + +\newcommand*{\@sprintpagenotes}{% + \ifmempagenotes + \notedivision +\IfFileExists{\jobname.ent}{% + \immediate\closeout\@notefile + \input{\jobname.ent}% + \immediate\openout\@notefile=\jobname.ent% + }{% + \mempnofilewarn +}% +\fi} + +\newcommand*{\@printpagenotes}{% + \ifmempagenotes + \notedivision + \IfFileExists{\jobname.ent}{% + \immediate\closeout\@notefile + \input{\jobname.ent}% + }{% + \mempnofilewarn + } + \fi} + +\newcommand*{\pagenotesubhead}[3]{% + \section*{#1 #2 #3}} + +\EmulatedPackage{pagenote} + +\newcommand*{\@cftn@me}{} +\renewcommand*{\numberline}[1]{% + \hb@xt@\@tempdima{\@cftn@me\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb} + +\renewcommand*{\newlistentry}[4][\@empty]{% + \@ifundefined{c@#2}{% check & set the counter + \ifx \@empty#1\relax + newcounter{#2}% + \else + \newcounter{#2}[#1]% + \expandafter\edef\csname the#2\endcsname{% + \expandafter\noexpand\csname the#1\endcsname.\noexpand\arabic{#2}}% + \fi}{} + \setcounter{#2}{0} + \@namedef{l@#2}##1##2{% + \ifnum \@nameuse{c@#3depth} > #4\relax + \vskip \@nameuse{cftbefore#2skip}% + {\leftskip \@nameuse{cft#2indent}\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \@nameuse{cft#2indent}\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \settowidth{\@tempdima}{\@nameuse{cft#2font}\@nameuse{cft#2name}}% + \addtolength{\@tempdima}{\@nameuse{cft#2numwidth}}% +\expandafter\let\expandafter\@cftbsnum\csname cft#2presnum\endcsname +\expandafter\let\expandafter\@cftasnum\csname cft#2aftersnum\endcsname +\expandafter\let\expandafter\@cftasnumb\csname cft#2aftersnumb\endcsname +\expandafter\let\expandafter\@cftn@me\csname cft#2name\endcsname + \advance\leftskip\@tempdima \null\nobreak\hskip -\leftskip + {\@nameuse{cft#2font}##1}\nobreak + \@nameuse{cft#2fillnum}{##2}} + \fi + }% end of \l@#2 + \expandafter\newlength\csname cftbefore#2skip\endcsname + \setlength{\@nameuse{cftbefore#2skip}}{\z@ \@plus .2\p@} + \expandafter\newlength\csname cft#2indent\endcsname + \expandafter\newlength\csname cft#2numwidth\endcsname + \ifcase #4\relax% 0 (level 1) + \setlength{\@nameuse{cft#2indent}}{0em} + \setlength{\@nameuse{cft#2numwidth}}{2.3em} + \or% 1 (level 2) + \setlength{\@nameuse{cft#2indent}}{2.3em} + \setlength{\@nameuse{cft#2numwidth}}{3.2em} + \or% 2 (level 3) + \setlength{\@nameuse{cft#2indent}}{5.5em} + \setlength{\@nameuse{cft#2numwidth}}{4.1em} + \or% 3 (level 4) + \setlength{\@nameuse{cft#2indent}}{8.5em} + \setlength{\@nameuse{cft#2numwidth}}{5.0em} + \else% anything else + \setlength{\@nameuse{cft#2indent}}{10.5em} + \setlength{\@nameuse{cft#2numwidth}}{6.0em} + \fi + \@namedef{cft#2font}{\normalfont} + \@namedef{cft#2name}{} + \@namedef{cft#2presnum}{} + \@namedef{cft#2aftersnum}{} + \@namedef{cft#2aftersnumb}{} + \@namedef{cft#2dotsep}{\cftdotsep} + \@namedef{cft#2leader}{\normalfont\cftdotfill{\@nameuse{cft#2dotsep}}} + \@namedef{cft#2pagefont}{\normalfont} + \@namedef{cft#2afterpnum}{} + \@namedef{cft#2toclevel@#2}{#4} + \@namedef{cft#2fillnum}##1{% + {\@nameuse{cft#2leader}}\nobreak + \hb@xt@\@pnumwidth{% + \hfil\@nameuse{cft#2pagefont}##1}\@nameuse{cft#2afterpnum}\par} +}% end of \newlistentry + +\let\cftbeforesectionskip\relax +\let\cftsectionindent\relax +\let\cftsectionnumwidth\relax +\newlistentry[chapter]{section}{toc}{0} + \cftsetindents{section}{1.5em}{2.3em} +\let\cftbeforesubsectionskip\relax +\let\cftsubsectionindent\relax +\let\cftsubsectionnumwidth\relax +\newlistentry[section]{subsection}{toc}{1} + \cftsetindents{subsection}{3.8em}{3.2em} +\let\cftbeforesubsubsectionskip\relax +\let\cftsubsubsectionindent\relax +\let\cftsubsubsectionnumwidth\relax +\newlistentry[subsection]{subsubsection}{toc}{2} + \cftsetindents{subsubsection}{7.0em}{4.1em} +\let\cftbeforeparagraphskip\relax +\let\cftparagraphindent\relax +\let\cftparagraphnumwidth\relax +\newlistentry[subsubsection]{paragraph}{toc}{3} + \cftsetindents{paragraph}{10.0em}{5.0em} +\let\cftbeforesubparagraphskip\relax +\let\cftsubparagraphindent\relax +\let\cftsubparagraphnumwidth\relax +\newlistentry[paragraph]{subparagraph}{toc}{4} + \cftsetindents{subparagraph}{12.0em}{6.0em} + +\let\cftbeforefigureskip\relax +\let\cftfigureindent\relax +\let\cftfigurenumwidth\relax +\newlistentry[chapter]{figure}{lof}{0} + \cftsetindents{figure}{0em}{2.3em} +\let\cftbeforetableskip\relax +\let\cfttableindent\relax +\let\cfttablenumwidth\relax +\newlistentry[chapter]{table}{lot}{0} + \cftsetindents{table}{0em}{2.3em} + +\renewcommand*{\setrectanglesize}[3]{% + \nametest{#1}{*}% + \ifsamename % H = * + \nametest{#2}{*}% + \ifsamename % W = * + \@memerror{% + The combination of argument values is ambiguous.\MessageBreak + The lengths will be set to zero}{\@ehd} + \setlength{\@tempdima}{0pt}% + \setlength{\@tempdimb}{0pt}% + \else % W + \nametest{#3}{*}% + \ifsamename % r = * + \setlength{\@tempdimb}{#2}% + \setlength{\@tempdima}{\@tempdimb}% + \else % r + \setlength{\@tempdimb}{#2} + \setlength{\@tempdima}{#3\@tempdimb} + \fi + \fi + \else % H + \nametest{#2}{*}% + \ifsamename % W = * + \nametest{#3}{*}% + \ifsamename % r = * + \setlength{\@tempdima}{#1}% + \setlength{\@tempdimb}{\@tempdima}% + \else % r + \setlength{\@tempdima}{#1}% + \setlength{\@tempdimb}{#3\@tempdima}% + \fi + \else % W + \setlength{\@tempdima}{#1}% + \setlength{\@tempdimb}{#2}% + \fi + \fi +} + +\renewcommand*{\setfillsize}[5]{% + \nametest{#2}{*}% + \ifsamename % C = * + \nametest{#3}{*}% + \ifsamename % L = * + \nametest{#4}{*}% + \ifsamename % R = * + \@memerror{% + The combination of argument values is ambiguous.\MessageBreak + The lengths will be set to zero}{\@ehd} + \setlength{\@tempdima}{0pt}% + \setlength{\@tempdimb}{0pt}% + \setlength{\@tempdimc}{0pt}% + \else % R + \nametest{#5}{*}% + \ifsamename % r = * + \setlength{\@tempdimb}{#4}% + \setlength{\@tempdima}{\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \advance\@tempdimc -\@tempdima + \advance\@tempdimc -\@tempdimb + \else % r + \setlength{\@tempdimb}{#4}% + \setlength{\@tempdima}{#5\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \advance\@tempdimc -\@tempdima + \advance\@tempdimc -\@tempdimb + \fi + \fi + \else % L + \nametest{#4}{*}% + \ifsamename % R = * + \nametest{#5}{*}% + \ifsamename % r = * + \setlength{\@tempdima}{#3}% + \setlength{\@tempdimb}{\@tempdima}% + \setlength{\@tempdimc}{#1}% + \advance\@tempdimc -\@tempdima + \advance\@tempdimc -\@tempdimb + \else % r + \setlength{\@tempdima}{#3}% + \setlength{\@tempdimb}{#5\@tempdima}% + \setlength{\@tempdimc}{#1}% + \advance\@tempdimc -\@tempdima + \advance\@tempdimc -\@tempdimb + \fi + \else % R + \setlength{\@tempdima}{#3}% + \setlength{\@tempdimb}{#4}% + \setlength{\@tempdimc}{#1}% + \advance\@tempdimc -\@tempdima + \advance\@tempdimc -\@tempdimb + \fi + \fi + \else % C is valued + \nametest{#3}{*}% + \ifsamename % L = * + \nametest{#4}{*}% + \ifsamename % R = * + \nametest{#5}{*}% + \ifsamename % r = * + \setlength{\@tempdimc}{#2}% + \setlength{\@tempdima}{#1}% + \advance\@tempdima -\@tempdimc + \@tempdima = 0.5\@tempdima + \@tempdimb = \@tempdima + \else % r (CODE PERHAPS FIXED) + \setlength{\@tempdimc}{#2}% + \setlength{\@tempdimb}{#1}% % T + \advance\@tempdimb -\@tempdimc % T - C + \@tempdima = 1000sp + \@tempdima = #5\@tempdima % 1000r sp + \advance\@tempdima by 1000sp % 1000(1+r)sp + \@tempcnta = \@tempdima % 1000(1+r) + \@tempdima = \@tempdimb % T - C + \divide\@tempdima by \@tempcnta % (T-C)/1000(1+r) pts + \@tempdima = 1000\@tempdima % (T-C)/(1+r) pts = L + \advance\@tempdimb by -\@tempdima % = R + \fi + \else % R + \setlength{\@tempdimc}{#2}% + \setlength{\@tempdimb}{#4}% + \setlength{\@tempdima}{#1}% + \advance\@tempdima -\@tempdimc + \advance\@tempdima -\@tempdimb + \fi + \else % L + \nametest{#4}{*}% + \ifsamename % R = * + \setlength{\@tempdimc}{#2}% + \setlength{\@tempdima}{#3}% + \setlength{\@tempdimb}{#1}% + \advance\@tempdimb -\@tempdimc + \advance\@tempdimb -\@tempdima + \else % R + \@memerror{% + The combination of argument values is ambiguous.\MessageBreak + The lengths will be set to zero}{\@ehd}% + \setlength{\@tempdima}{0pt}% + \setlength{\@tempdimb}{0pt}% + \setlength{\@tempdimc}{#2}% + \fi + \fi + \fi} + +\newcommand*{\m@mclassicht}{% + \setlength{\@tempdima}{\textheight}% + \divide\@tempdima \baselineskip + \@tempcnta=\@tempdima + \setlength{\textheight}{\@tempcnta\baselineskip}% + \addtolength{\textheight}{\topskip}} + +\newcommand*{\m@mlinesht}{% + \setlength{\@tempdima}{\textheight}% + \advance\@tempdima -\baselineskip + \divide\@tempdima \baselineskip + \@tempcnta=\@tempdima + \setlength{\textheight}{\@tempcnta\baselineskip}% + \addtolength{\textheight}{\topskip}} + +\newcommand*{\m@mnearestht}{% + \setlength{\@tempdima}{\textheight}% + \advance\@tempdima -\topskip + \advance\@tempdima 0.5\baselineskip + \divide\@tempdima \baselineskip + \@tempcnta=\@tempdima + \setlength{\textheight}{\@tempcnta\baselineskip}% + \addtolength{\textheight}{\topskip}} + +\renewcommand*{\checkthelayout}[1][classic]{% + \@memnegtest{\trimedge} + \@memnegtest{\trimtop} + \@memznegtest{\stockwidth} + \@memznegtest{\paperwidth} + \@memznegtest{\textwidth} + \@memznegtest{\spinemargin} + \@memznegtest{\foremargin} + \@memznegtest{\marginparsep} + \@memznegtest{\marginparwidth} + \@memznegtest{\stockheight} + \@memznegtest{\paperheight} + \@memznegtest{\textheight} + \@memznegtest{\uppermargin} + \@memznegtest{\lowermargin} + \@memznegtest{\headheight} + \@memznegtest{\headsep} + \@memznegtest{\footskip} + \nametest{#1}{classic}% + \ifsamename + \m@mclassicht + \else + \nametest{#1}{lines}% + \ifsamename + \m@mlinesht + \else + \nametest{#1}{nearest}% + \ifsamename + \m@mnearestht + \else + \nametest{#1}{fixed} + \ifsamename + \else% not classic, lines, nearest, or fixed + \@memerror{Optional argument is not one of:\MessageBreak + classic, fixed, lines, or nearest. \MessageBreak + I will assume the default}% + {\@ehc}% + \fi + \fi + \fi + \fi + \setulmargins{\uppermargin}{*}{*} + \@tempdimb = -1pt + \@tempdima=\stockwidth + \advance\@tempdima -\trimedge + \advance\@tempdima -\paperwidth + \ifdim\@tempdima<\@tempdimb + \@tempdima = -\@tempdima + \@memerror{\protect\paperwidth\space and/or + \protect\trimedge\space + are too large for \protect\stockwidth\space + by \the\@tempdima}% + {\@ehd} + \fi + \@tempdima = \paperwidth + \advance\@tempdima -\foremargin + \advance\@tempdima -\textwidth + \advance\@tempdima -\spinemargin + \ifdim\@tempdima<\@tempdimb + \@tempdima = -\@tempdima + \@memerror{\protect\spinemargin\space and/or + \protect\textwidth\space and/or + \protect\foremargin\space + are too large for \protect\paperwidth\space + by \the\@tempdima}% + {\@ehd} + \fi + \@tempdima = \stockheight + \advance\@tempdima -\trimtop + \advance\@tempdima -\paperheight + \ifdim\@tempdima<\@tempdimb + \@tempdima = -\@tempdima + \@memerror{\protect\paperheight\space and/or + \protect\trimtop\space + are too large for \protect\stockheight\space + by \the\@tempdima}% + {\@ehd} + \fi + \@tempdima = \paperheight + \advance\@tempdima -\uppermargin + \advance\@tempdima -\textheight + \advance\@tempdima -\lowermargin + \ifdim\@tempdima<\@tempdimb + \@tempdima = -\@tempdima + \@memerror{\protect\uppermargin\space and/or + \protect\textheight\space and/or + \protect\lowermargin\space + are too large for \protect\paperheight\space + by \the\@tempdima}% + {\@ehd} + \fi + \@tempdima = \uppermargin + \advance\@tempdima -\headheight + \advance\@tempdima -\headsep + \ifdim\@tempdima<\@tempdimb + \@tempdima = -\@tempdima + \@memerror{\protect\headheight\space and/or + \protect\headsep\space + are too large for \protect\uppermargin\space + by \the\@tempdima}% + {\@ehd} + \fi + \@tempdima = \lowermargin + \advance\@tempdima -\footskip + \ifdim\@tempdima<\z@ + \@tempdima = -\@tempdima + \@memerror{\protect\footskip + is too large for \protect\lowermargin\space + by \the\@tempdima}% + {\@ehd} + \fi +} +\renewcommand*{\checkandfixthelayout}[1][classic]{% + \checkthelayout[#1]% + \fixthelayout + \typeoutlayout} + +\newcommand*{\midsloppy}{% + \tolerance 5000% + \hbadness 4000% + \emergencystretch 1.5em% + \hfuzz .1\p@ + \vfuzz\hfuzz} +\newenvironment{midsloppypar}{\par\midsloppy}{\par} + +\newdimen\everylistparindent + \everylistparindent \z@ +\renewcommand*{\list}[2]{% + \ifnum \@listdepth >5\relax + \@toodeep + \else + \global\advance\@listdepth\@ne + \fi + \rightmargin\z@ + \listparindent\everylistparindent + \itemindent\z@ + \csname @list\romannumeral\the\@listdepth\endcsname + \def\@itemlabel{#1}% + \let\makelabel\@mklab + \@nmbrlistfalse + #2\relax + \@trivlist + \parskip\parsep + \parindent\listparindent + \advance\linewidth -\rightmargin + \advance\linewidth -\leftmargin + \advance\@totalleftmargin \leftmargin + \parshape \@ne \@totalleftmargin \linewidth + \ignorespaces} + +\renewcommand*{\defaultlists}{% + \setlength{\partopsep}{0.2\onelineskip \@plus 0.1\onelineskip + \@minus 0.1\onelineskip}% + \parsepi = 0.3333\onelineskip \@plus 0.1667\onelineskip \@minus \p@ + \itemsepi = \parsepi + \topsepi = 0.6667\onelineskip \@plus 0.3333\onelineskip + \@minus 0.2\onelineskip + \parsepii = 0.1667\onelineskip \@plus \p@ \@minus \p@ + \topsepii = \parsepi + \topsepiii = \parsepii + \everylistparindent \z@} +\defaultlists + +\newcommand*{\firmlists}{% + \@ifstar{\m@msfirmlists}{\m@mfirmlists}} + +\newcommand*{\m@msfirmlists}{ + \setlength{\partopsep}{\z@ \@plus \p@ \@minus \p@}% + \parsepi = 0.1667\onelineskip \@plus 0.0833\onelineskip \@minus \p@ + \itemsepi = \parsepi + \topsepi = \parsepi + \parsepii = 0.0833\onelineskip \@plus \p@ \@minus \p@ + \topsepii = \parsepi + \topsepiii = \parsepii + \everylistparindent\z@} + +\newcommand*{\m@mfirmlists}{ + \setlength{\partopsep}{0.1\onelineskip \@plus 0.05\onelineskip + \@minus 0.05\onelineskip}% + \parsepi = 0.1667\onelineskip \@plus 0.0833\onelineskip \@minus \p@ + \itemsepi = \parsepi + \topsepi = \parsepi + \parsepii = 0.0833\onelineskip \@plus \p@ \@minus \p@ + \topsepii = \parsepi + \topsepiii = \parsepii + \everylistparindent\z@} + +\renewcommand*{\tightlists}{% + \@ifstar{\m@mstightlists}{\m@mtightlists}} + +\newcommand*{\m@mstightlists}{% + \setlength{\partopsep}{\z@ \@plus \p@ \@minus \p@}% + \parsepi = \z@ \@plus \p@ \@minus \p@ + \itemsepi = \parsepi + \topsepi = \z@ \@plus \p@ \@minus \p@ + \parsepii = \z@ \@plus \p@ \@minus \p@ + \topsepii = \parsepi + \topsepiii = \parsepii + \everylistparindent\parindent} + +\newcommand*{\m@mtightlists}{% + \setlength{\partopsep}{0.5\onelineskip \@plus \p@ \@minus \p@}% + \parsepi = \z@ \@plus \p@ \@minus \p@ + \itemsepi = \parsepi + \topsepi = \z@ \@plus \p@ \@minus \p@ + \parsepii = \z@ \@plus \p@ \@minus \p@ + \topsepii = \parsepi + \topsepiii = \parsepii + \everylistparindent\parindent} + \endinput %% %% End of file `mempatch.sty'. |