summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/memoir
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-13 23:42:35 +0000
committerKarl Berry <karl@freefriends.org>2006-08-13 23:42:35 +0000
commitad1d09658f9af8b50c69d1c5bdf9b92623ebbba4 (patch)
tree705679eaabe7f4a6838a2174379b484ad9bdf236 /Master/texmf-dist/tex/latex/memoir
parent782deb6d565d097328fff63a6e7bca1527c0532c (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.sty85
-rw-r--r--Master/texmf-dist/tex/latex/memoir/mempatch.sty1364
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'.