summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/memoir/memoir.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-07-04 00:30:23 +0000
committerKarl Berry <karl@freefriends.org>2008-07-04 00:30:23 +0000
commitca48791ca2d6647686560b55b4ff0696326b33e5 (patch)
tree5989b3da27f55871c2625f6debb96d05f104d002 /Master/texmf-dist/source/latex/memoir/memoir.dtx
parent19079987720be6eda03332d3c091a24db0821b53 (diff)
memoir update (3jul08)
git-svn-id: svn://tug.org/texlive/trunk@9206 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/memoir/memoir.dtx')
-rw-r--r--Master/texmf-dist/source/latex/memoir/memoir.dtx151
1 files changed, 109 insertions, 42 deletions
diff --git a/Master/texmf-dist/source/latex/memoir/memoir.dtx b/Master/texmf-dist/source/latex/memoir/memoir.dtx
index 42c0f13726a..cba17ce08e3 100644
--- a/Master/texmf-dist/source/latex/memoir/memoir.dtx
+++ b/Master/texmf-dist/source/latex/memoir/memoir.dtx
@@ -18,7 +18,7 @@
% This work consists of the files listed in the README file.
%
% \fi
-% \CheckSum{27322}
+% \CheckSum{27414}
%
% \changes{v0.1}{2001/05/20}{First public alpha release}
% \changes{v0.2}{2001/06/03}{First beta release}
@@ -65,6 +65,7 @@
% \changes{v1.618}{2005/09/25}{Support for glossaries}
% \changes{v1.6180}{2006/06/12}{Footnote font fix}
% \changes{v1.61803}{2008/05/26}{Folded in all mempatch v4.9a patches}
+% \changes{v1.618033}{2008/06/02}{Fixed(?) page layout algorithms}
%
% \def\dtxfile{memoir.dtx}
%
@@ -88,6 +89,7 @@
% \def\fileversion{v1.618} \def\filedate{2005/09/27}
% \def\fileversion{v1.6180} \def\filedate{2006/06/12}
% \def\fileversion{v1.61803} \def\filedate{2008/05/26}
+% \def\fileversion{v1.618033} \def\filedate{2008/06/02}
% \title{The LaTeX \Lpack{memoir} class for configurable book
% typesetting: Source code\thanks{This
% file (\texttt{\dtxfile}) has version number \fileversion, last revised
@@ -304,10 +306,11 @@
%<class>\NeedsTeXFormat{LaTeX2e}
% \end{macrocode}
%
+% ^^A Use the Golden Section as the version number (1.6180339887 4989484820 4586834365)
% Announce the name, option files and version for LaTeX2e files:
% \begin{macrocode}
%<class>\ProvidesClass{memoir}%
-%<class> [2008/05/26 v1.61803 configurable book, report, article document class]
+%<class> [2008/06/02 v1.618033 configurable book, report, article document class]
%<9pt>\ProvidesFile{mem9.clo}%
%<9pt> [2008/01/30 v0.4 memoir class 9pt size option]
%<10pt>\ProvidesFile{mem10.clo}%
@@ -965,27 +968,33 @@
% \subsection{Checking the processor}
%
% \begin{macro}{\ifpdf}
+% \begin{macro}{\pdftrue}
+% \begin{macro}{\pdffalse}
% This can be used to check whether or not a document is being processed
% by \LaTeX{} or pdf\LaTeX.
% \changes{v1.0}{2001/09/21}{Made checking of \cs{pdfouput} more robust}
% \changes{v1.618}{2005/09/03}{Prohibit loading the ifpdf package (mempatch v3.9)}
+% \changes{v1.618033}{2008/06/02}{Further improved pdf checking}
% \begin{macrocode}
\newif\ifpdf
+ \pdffalse
\ifx\pdfoutput\undefined
\else
- \ifx\pdfoutput\relax
+ \ifx\pdfoutput\@undefined
\else
- \ifcase\pdfoutput
+ \ifx\pdfoutput\relax
\else
- \pdftrue
+ \ifnum\pdfoutput>0\relax
+ \pdftrue
+ \fi
\fi
\fi
\fi
% \end{macrocode}
% \end{macro}
-%
-%
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\ifetex}
% \begin{macro}{\etextrue}
@@ -993,13 +1002,19 @@
% Check if \texttt{etex} is being used. This is based on the check for
% \texttt{pdf(latex)}.
% \changes{v1.61803}{2008/01/30}{Added check for etex (mempatch v4.9)}
+% \changes{v1.618033}{2008/06/02}{Improved check for etex}
% \begin{macrocode}
\newif\ifetex
\etexfalse
-\ifx\eTeXversion\@undefined\else
- \ifx\eTeXversion\relax\else
- \ifnum\eTeXversion>0\relax
- \etextrue
+\ifx\eTeXversion\undefined
+\else
+ \ifx\eTeXversion\@undefined
+ \else
+ \ifx\eTeXversion\relax
+ \else
+ \ifnum\eTeXversion>0\relax
+ \etextrue
+ \fi
\fi
\fi
\fi
@@ -1046,9 +1061,14 @@
% \begin{macrocode}
\newif\ifluatex
\luatexfalse
-\ifx\luatexversion\@undefined\else
- \ifx\luatexversion\relax
- \luatextrue
+\ifx\luatexversion\@undefined
+\else
+ \ifx\luatexversion\undefined
+ \else
+ \ifx\luatexversion\relax
+ \else
+ \luatextrue
+ \fi
\fi
\fi
@@ -2036,6 +2056,18 @@
% \end{macrocode}
%
+% \begin{macro}{\memoirpostopthook}
+% A user could define this \emph{before} the \cs{documentclass} command
+% to do something at this point. For example, to set up a new stock size: \\
+% \verb?\def\memoirpostopthook{\stockheight=44in \stockwidth=34in}?
+% \changes{v1.618033}{2008/06/02}{Added \cs{memoirpostopthook}}
+% \begin{macrocode}
+\providecommand*{\memoirpostopthook}{}
+ \memoirpostopthook
+
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\cleartorecto}
% A repeat of \cs{cleardoublepage}; clears to a recto (odd-numbered) page.
% \begin{macrocode}
@@ -4096,14 +4128,20 @@
\addtolength\marginparwidth{-0.8in} % don't know why this isn't .4
\fi
\ifdim\marginparwidth>2in
- \setlength\marginparwidth{2in}
+ \setlength\marginparwidth{2in}%
\fi
% \end{macrocode}
-% Set these values to integer numbers of points, and calculate the
+% Set these values to integer numbers of points, and afterwards calculate the
% \cs{evensidemargin}.
+% Jonathon Stickel (\url{jjstickel@vcn.com}) on 2008/05/30 noted that
+% \cs{marginparwidth} had to be positive for the initial setting of the sidebar
+% geometry through \cs{setsidebars}.
+% \changes{v1.618033}{2008/06/02}{Ensured initial value of \cs{marginparwidth}
+% was positive}
% \begin{macrocode}
\@settopoint\oddsidemargin
\@settopoint\marginparwidth
+\ifdim\marginparwidth<1pt \setlength\marginparwidth{1pt}\fi
\setlength\evensidemargin {\paperwidth}
\addtolength\evensidemargin{-2in}
@@ -4169,10 +4207,14 @@
% If its length variable argument is zero or less it reports an error.
%
% \changes{v1.4}{2003/02/27}{Added \cs{@memznegtest}}
+% \changes{v1.618033}{2008/06/02}{Changed \cs{@memznegtest} and
+% \cs{@memnegtest} to issue warnings instead of errors}
+%
% \begin{macrocode}
\newcommand*{\@memznegtest}[1]{%
\ifdim#1>\z@\else
- \@memerror{\protect#1\space is zero or negative}{\@ehd}%
+ %%%% \@memerror{\protect#1\space is zero or negative}{\@ehd}%
+ \@memwarn{\protect#1\space is zero or negative}%
\fi}
% \end{macrocode}
% \end{macro}
@@ -4183,7 +4225,8 @@
% \begin{macrocode}
\newcommand*{\@memnegtest}[1]{%
\ifdim#1<\z@
- \@memerror{\protect#1\space is negative}{\@ehd}%
+%%%% \@memerror{\protect#1\space is negative}{\@ehd}%
+ \@memwarn{\protect#1\space is negative}%
\fi}
% \end{macrocode}
@@ -4310,6 +4353,8 @@
%
% Check that all the sums add up correctly, or
% at least to within a small (\cs{@tempdimb}) error.
+% \changes{v1.618033}{2008/06/02}{Added more information about problematic
+% layout values}
% \begin{macrocode}
\@tempdimb = -1pt
\@tempdima=\stockwidth
@@ -4317,9 +4362,9 @@
\advance\@tempdima -\paperwidth
\ifdim\@tempdima<\@tempdimb
\@tempdima = -\@tempdima
- \@memerror{\protect\paperwidth\space and/or
- \protect\trimedge\space
- are too large for \protect\stockwidth\space
+ \@memerror{\protect\paperwidth\space (\the\paperwidth) and/or
+ \protect\trimedge\space (\the\trimedge)
+ are too large for \protect\stockwidth\space (\the\stockwidth)
by \the\@tempdima}%
{\@ehd}
\fi
@@ -4329,10 +4374,10 @@
\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
+ \@memerror{\protect\spinemargin\space (\the\spinemargin) and/or
+ \protect\textwidth\space (\the\textwidth) and/or
+ \protect\foremargin\space (\the\foremargin)
+ are too large for \protect\paperwidth\space (\the\paperwidth)
by \the\@tempdima}%
{\@ehd}
\fi
@@ -4341,9 +4386,9 @@
\advance\@tempdima -\paperheight
\ifdim\@tempdima<\@tempdimb
\@tempdima = -\@tempdima
- \@memerror{\protect\paperheight\space and/or
- \protect\trimtop\space
- are too large for \protect\stockheight\space
+ \@memerror{\protect\paperheight\space (\the\paperheight) and/or
+ \protect\trimtop\space (\the\trimtop)
+ are too large for \protect\stockheight\space (\the\stockheight)
by \the\@tempdima}%
{\@ehd}
\fi
@@ -4353,10 +4398,10 @@
\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
+ \@memerror{\protect\uppermargin\space (\the\uppermargin) and/or
+ \protect\textheight\space (\the\textheight) and/or
+ \protect\lowermargin\space (\the\lowermargin)
+ are too large for \protect\paperheight\space (\the\paperheight)
by \the\@tempdima}%
{\@ehd}
\fi
@@ -4365,9 +4410,9 @@
\advance\@tempdima -\headsep
\ifdim\@tempdima<\@tempdimb
\@tempdima = -\@tempdima
- \@memerror{\protect\headheight\space and/or
- \protect\headsep\space
- are too large for \protect\uppermargin\space
+ \@memerror{\protect\headheight\space (\the\headheight) and/or
+ \protect\headsep\space (\the\headsep)
+ are too large for \protect\uppermargin\space (\the\uppermargin)
by \the\@tempdima}%
{\@ehd}
\fi
@@ -4375,8 +4420,8 @@
\advance\@tempdima -\footskip
\ifdim\@tempdima<\z@
\@tempdima = -\@tempdima
- \@memerror{\protect\footskip
- is too large for \protect\lowermargin\space
+ \@memerror{\protect\footskip\space (\the\footskip)
+ is too large for \protect\lowermargin\space (\the\lowermargin)
by \the\@tempdima}%
{\@ehd}
\fi}
@@ -22583,7 +22628,8 @@
\nametest{#6}{*}\ifsamename\else
\setsidebarheight{#6}%
\ifdim\dimen\sideins>\z@\else
- \@memerror{\protect\sidebarheight\space is zero or negative}{\@ehd}%
+%%%% \@memerror{\protect\sidebarheight\space is zero or negative}{\@ehd}%
+ \@memwarn{\protect\sidebarheight\space is zero or negative}%
\fi
\fi}
\setsidebars{\marginparsep}% sidebarhsep
@@ -24814,6 +24860,26 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\m@mopfootnotebf}
+% (footnote) code in support of footnotes below floats.
+% Problem with original code noted by J{\o}rgen Larsen (\url{jl@ruc.dk})
+% on 2008/05/24.
+% \changes{v1.618033}{2008/06/02}{Added \cs{m@mopfootnotebf}}
+% \begin{macrocode}
+\newcommand*{\m@mopfootnotebf}{%
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth\@maxdepth
+ \unvbox\@outputbox
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup}}
+
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\m@mopsidebar}
% (sidebar) code for possible use in \cs{@makecol}.
% From DA's latest sidebar fixes.
@@ -24852,19 +24918,20 @@
% \begin{macro}{\mem@makecolbf}
% A version of \cs{@makecol} which puts footnotes at the bottom of the page
% (after any bottom floats).
+% \changes{v1.618033}{2008/06/02}{Used \cs{m@mopfootnotebf} instead of
+% \cs{m@mopfootnote} in \cs{mem@makecolbf}}
% \begin{macrocode}
\gdef\mem@makecolbf{%
\m@m@makecolintro
\setbox\@outputbox \box\@cclv
\m@m@makecolfloats
- \ifvoid\footins
- \else
- \m@mopfootnote
+ \ifvoid\footins\else
+ \m@mopfootnotebf
\fi
\m@mdoextrafeet
\m@mopsidebar
\m@m@makecoltext
- \global \maxdepth \@maxdepth}
+ \global\maxdepth \@maxdepth}
% \end{macrocode}
% \end{macro}