summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-02-15 00:53:04 +0000
committerKarl Berry <karl@freefriends.org>2011-02-15 00:53:04 +0000
commit73b76d6d7b5047bad09c2f43f6a99334e6d5a67c (patch)
tree0d6036237854e95ade2e585cbc305979271b4b35 /Master/texmf-dist
parent82ac0ba9ed70499005296836d8be39181785d3ba (diff)
memoir 3.6h (13feb11)
git-svn-id: svn://tug.org/texlive/trunk@21406 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/memoir/README46
-rw-r--r--Master/texmf-dist/doc/latex/memoir/memman.pdfbin2668165 -> 2673365 bytes
-rw-r--r--Master/texmf-dist/doc/latex/memoir/memman.tex1141
-rw-r--r--Master/texmf-dist/doc/latex/memoir/memsty.sty16
-rw-r--r--Master/texmf-dist/source/latex/memoir/memoir.dtx905
-rw-r--r--Master/texmf-dist/source/latex/memoir/mempatch.dtx12
-rw-r--r--Master/texmf-dist/tex/latex/memoir/mem12.clo4
-rw-r--r--Master/texmf-dist/tex/latex/memoir/memhfixc.sty3
-rw-r--r--Master/texmf-dist/tex/latex/memoir/memoir.cls370
9 files changed, 1965 insertions, 532 deletions
diff --git a/Master/texmf-dist/doc/latex/memoir/README b/Master/texmf-dist/doc/latex/memoir/README
index eac6297d87f..8737fa71f1e 100644
--- a/Master/texmf-dist/doc/latex/memoir/README
+++ b/Master/texmf-dist/doc/latex/memoir/README
@@ -41,6 +41,52 @@ o Backmatter:
Command glossary ~ 40 pages
Bibliography, indexes ~ 50 pages
+
+Changes (2011/02/13)
+
+o memoir v3.6h
+
+-- provided marginfigure and margintable environments modelled after
+ tufte latex (work in progress) including special justification macro
+ to force content flush against the textblock
+-- copied the contents of the placeins package, though under a
+ different name (\FloatBlock)
+-- added \setfloatadjustment to allow users to globally add stuff to the
+ start of floats, e.g. make typeset floating tables using \small
+-- added the possibility to change the color of the head/foot rule in
+ the pagestyle
+-- reimplemented the page note construction. Note that the new
+ implementation does not rely on the same macros as the old
+ implementation
+-- Manual: checked and verified the links in the bibliography and made
+ all the CTAN links active in the PDF version of the manual.
+-- \namesubappendices and \anonsubappendices never existed,
+ their real names are \namedsubappendices and \unnamedsubappendices,
+ fixed in the manual.
+-- fixed bug in \pfbreak
+-- added hook/wrapper such that packages like bidi can control the
+ typesetting direction of the headers/footers
+-- added footer and header measuring, inspired by similar feature in
+ fancyhdr. Though we do not change, say, the \headheight we leave
+ this to the user and simply warn about it.
+-- made sure that \footnote, \sidefootnote, \sidepar and \sidebar
+ use the same baseline stretch setting (note that for now \marginpar
+ is not covered)
+-- fixed a font problem inside \quarkmarks
+-- subsequent pagenotes are now separated in the same manner af footnotes
+
+o mem12.clo
+
+-- changed \headheight to 14.5pt, to match the pattern used by
+ the other clo files.
+
+o memhfixc.sty
+
+-- now take care of using \printpagenoteshyperref to print back
+ references for page notes using hyperlinks.
+
+
+
Changes (2010/09/19)
o memoir v3.6g
diff --git a/Master/texmf-dist/doc/latex/memoir/memman.pdf b/Master/texmf-dist/doc/latex/memoir/memman.pdf
index 63428bb411d..93e812f87c7 100644
--- a/Master/texmf-dist/doc/latex/memoir/memman.pdf
+++ b/Master/texmf-dist/doc/latex/memoir/memman.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/memoir/memman.tex b/Master/texmf-dist/doc/latex/memoir/memman.tex
index 626f6beb86d..0dc77d5f764 100644
--- a/Master/texmf-dist/doc/latex/memoir/memman.tex
+++ b/Master/texmf-dist/doc/latex/memoir/memman.tex
@@ -53,14 +53,35 @@
%\MASTERtrue
\ifMASTER
+
+% add patch to fink, such that \AtEndFile still work
+\makeatletter
+\AtEndFile{fink.sty}{
+ \typeout{patching fink}
+ \renewcommand{\InputIfFileExists}[2]{%
+ \IfFileExists{##1}%
+ {##2\@addtofilelist{##1}%
+ \m@matbeginf{##1}%
+ \fink@prepare{##1}%
+ %\@@input \@filef@und
+ \expandafter\fink@input%
+ \expandafter\fink@restore\expandafter{\finkpath}%
+ \m@matendf{##1}%
+ \killm@matf{##1}}%
+ }
+}
+\makeatother
% private package, not in circulation
% enables us to gather svn information on a single file basis
-\usepackage[filehooks]{svn-multi-private}
+%\usepackage[filehooks]{svn-multi-private}
+% use the current version
+\usepackage[filehooks]{svn-multi}
+
% \svnidlong
% {}
-% {$LastChangedDate: 2010-07-01 00:21:04 +0200 (Thu, 01 Jul 2010) $}
-% {$LastChangedRevision: 244 $}
+% {$LastChangedDate: 2011-01-23 22:13:38 +0100 (Sun, 23 Jan 2011) $}
+% {$LastChangedRevision: 332 $}
% {$LastChangedBy: daleif $}
@@ -1217,8 +1238,8 @@ been answered.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-19 13:11:31 +0200 (Sun, 19 Sep 2010) $}
-{$LastChangedRevision: 275 $}
+{$LastChangedDate: 2010-09-27 11:32:07 +0200 (Mon, 27 Sep 2010) $}
+{$LastChangedRevision: 282 $}
{$LastChangedBy: daleif $}
\chapter{Introduction to the eighth edition}
@@ -1597,7 +1618,7 @@ The class automatically ignores any
\verb?\usepackage? or \verb?\RequirePackage? related to these. However, if
you want to specifically use one of these packages rather than the integrated
version then you can do so. For arguments sake, assuming you really want
-to use the \Lpack{titling} the package you can do this:
+to use the \Lpack{titling} package you can do this:
\begin{lcode}
\documentclass[...]{memoir}
\DisemulatePackage{titling}
@@ -2739,8 +2760,8 @@ want to put \cmd{\raggedbottom} in the preamble\index{preamble}.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-17 00:43:51 +0200 (Fri, 17 Sep 2010) $}
-{$LastChangedRevision: 274 $}
+{$LastChangedDate: 2011-01-16 18:03:46 +0100 (Sun, 16 Jan 2011) $}
+{$LastChangedRevision: 329 $}
{$LastChangedBy: daleif $}
\chapter{Laying out the page} \label{chap:layingpage}
@@ -3403,7 +3424,7 @@ of argument values may make it impossible to guarantee the relationship.
wide page and we want the spine margin\index{margin!spine} to be 0.8in and
the \foredge{} margin\index{margin!foredge?\foredge} to be 1.2in
(i.e., the \foredge{} margin is half as big again as the spine margin)
-this can be accomplished in three ways (with the \cmd{\pagewidth} and
+this can be accomplished in three ways (with the \cmd{\paperwidth} and
\lnc{\textwidth} being previously specified and fixed):
\begin{lcode}
% specify spine margin
@@ -3458,7 +3479,7 @@ margin\index{margin!spine} to be 0.8in and the \foredge{}
margin\index{margin!foredge?\foredge} to be 1.2in
(i.e., the \foredge\ margin is half as big again as the spine margin)
this can be accomplished in the following ways (with the \lnc{\textwidth}
-being calculated from the previously specified \cmd{\pagewidth} and the
+being calculated from the previously specified \cmd{\paperwidth} and the
specified margins):
\begin{lcode}
% specify both margins
@@ -4018,11 +4039,12 @@ standard layout parameter\index{page layout!LaTeX parameters?\ltx\ parameters}
values to the terminal and log file so that you can
compare the two sets of parameter values.
-By using the macro \cmd{\settypeoutlayoutunit}\meta{unit} the user can
-change the unit in which the layout list is shown. Very handy when
-designing in, say, centimeters. Supported units are \texttt{pt},
+By using the macro \cmd{\settypeoutlayoutunit}, the user can change
+the unit in which the layout list is shown. Very handy when designing
+in, say, centimeters. Supported units are \texttt{pt}, \texttt{pc},
\texttt{mm}, \texttt{cm}, \texttt{in}, \texttt{bp}, \texttt{dd} and
-\texttt{cc}, default being \texttt{pt}.
+\texttt{cc}, default being \texttt{pt}, see \tref{tab:units} for more
+information about the units.
\section{Side margins}
@@ -4426,7 +4448,7 @@ page size to be A5, then this will put page area at the bottom left of the
stock.
\begin{lcode}
\pagebv % sets page height and width for A5 paper
-\setpagebl{\pageheight}{\pagewidth}{*}
+\setpagebl{\paperheight}{\paperwidth}{*}
...
\checkandfixthelayout
\end{lcode}
@@ -6727,8 +6749,8 @@ optional argument of the \cmd{\twocolumn} command. In fact,
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-13 11:11:29 +0200 (Mon, 13 Sep 2010) $}
-{$LastChangedRevision: 273 $}
+{$LastChangedDate: 2011-02-06 17:15:11 +0100 (Sun, 06 Feb 2011) $}
+{$LastChangedRevision: 342 $}
{$LastChangedBy: daleif $}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -7097,30 +7119,48 @@ However, at the end of the environment, chapters are restored to their original
condition and any chapter numbers continue in sequence as though the
\Ie{appendices} environment had never been there.
+\LMnote{2010/11/18}{Wrong names for \cs{namedsubappendices} and
+ \cs{unnamedsubappendices} fixed}
\begin{syntax}
\senv{subappendices} text \eenv{subappendices} \\
-\cmd{\namesubappendices} \cmd{\anonsubappendices} \\
+\cmd{\namedsubappendices} \cmd{\unnamedsubappendices} \\
\end{syntax}
\glossary(subappendices)%
{\senv{subappendices}}%
{Like the \Pe{appendices} environment but used at the end of a chapter
for per-chapter sub-appendices.}
-\glossary(namesubappendices)%
- {\cs{namesubappendices}}%
+\glossary(namedsubappendices)%
+ {\cs{namedsubappendices}}%
{Precede sub-appendix numbers with the name \cs{appendixname}.}
-\glossary(anonsubappendices)%
- {\cs{anonsubappendices}}%
+\glossary(unnamedsubappendices)%
+ {\cs{unnamedsubappendices}}%
{Do not precede the sub-appendix number with any name (the default).}
The \Ie{subappendices}\index{appendix!subappendix} environment can be used to put appendices\index{appendix} at the end
of a chapter\index{chapter}. Within the environment \cmd{\section} starts a
new sub-appendix\index{appendix}. You may put \cmd{\addappheadtotoc} at the start
of the environment if you want a heading entry in the \toc.
-If you put the declaration \cmd{\namesubappendices}
+If you put the declaration \cmd{\namedsubappendices}
\emph{before} the \Ie{subappendices} environment, the sub-appendix number
in the body of the document will be preceded by the value of
-\cmd{\appendixname}. The \cmd{\anonsubappendices} declaration, which is the
+\cmd{\appendixname}. The \cmd{\unnamedsubappendices} declaration, which is the
default, may be used to switch off this behaviour.
+\LMnote{2010/11/19}{Added this caveat, following a question on ctt}
+\textbf{Caveat:} The inplementation of the named subappencides make
+use of \cmd{\setsecnumformat}, thus if you have used this command to
+change the formating of the section number you will need to re-do this in
+a special nammer inside the \Ie{subappencides} environemt. Something
+like this (where a user wanted to use old style numerials for
+sectioning numbers)
+\begin{verbatim}
+\begin{subappendices}
+\setsecnumformat{\sectionname\
+ \oldstylenums{\csname the#1\endcsname\quad}}
+\end{verbatim}
+The macro \cmd{sectionname} is a special macro that only lives inside
+the \Ie{subappendices} environment and is only available when
+\cmd{\namedsubappendices} is applied.
+
\section{Numbering} \label{sec:secnumbers}
@@ -7438,15 +7478,16 @@ if twocolumn typesetting was in effect before \cmd{\book} then it restores
twocolumn typesetting. The macro \cmd{\partpageend} performs similar
functions for \cmd{\part} pages.
- If, for example, you wish to put something on a \cmd{\part} page, and maybe
-something on the following normally blank page, then this is a possible way
-of doing it:\index{text on a part page}
+\LMnote{2011/02/06}{This now uncommented text is wrong!}
+% If, for example, you wish to put something on a \cmd{\part} page, and maybe
+% something on the following normally blank page, then this is a possible way
+% of doing it:\index{text on a part page}
+So to add something on the back side of a \cmd{\part} page (assuming
+twoside) use something similar to
\begin{lcode}
...
\nopartblankpage
\part{Title of the Part}
-Some text on the Part page.
-\clearpage
\thispagestyle{simple}
Text on the following (normally blank page)
\clearpage
@@ -7475,6 +7516,29 @@ then you are responsible for setting everything correctly to end off the
\twocolumn
\fi}
\end{lcode}
+Here with the default definitions, \cmd{\afterpartskip} ends off the
+\cmd{\part} page, and then the rest of the code in \cmd{\partpageend}
+takes care of typesetting the blank back side of the \cmd{\part} page
+(or send us back to twocolumn mode).
+
+\LMnote{2011/02/06}{Added the example below}
+If on the other hand we actually want to write something below the
+part title on the \cmd{\part} page, then we need a different
+route. The `air' above and below the part title is by default defined as
+\begin{lcode}
+ \newcommand*{\beforepartskip}{\null\vfil}
+ \newcommand*{\afterpartskip}{\vfil\newpage}
+\end{lcode}
+Thus we need to redefined this such that it does not change the page
+and such that it add useful spacing above and below the part
+titling. Something like this may do the trick
+\begin{lcode}
+\makeatletter
+ \newcommand*{\beforepartskip}{\null\vskip4cm}
+ \newcommand*{\afterpartskip}{\par\vskip1cm%
+ \@afterindentfalse\@afterheading}
+\makeatother
+\end{lcode}
@@ -9350,8 +9414,9 @@ be more convenient to use. The gap for the plain break is given by the
length \lnc{\pfbreakskip} which is initialised to produce two blank lines.
The fancy break, which takes the same vertical space, is given by the
\meta{text} argument of \cmd{\pfbreakdisplay}. The default definition:
+\LMnote{2010/11/22}{typo, not spelled pfbt}
\begin{lcode}
-\newcommand*{\pfbtreakdisplay}{*\quad*\quad*}
+\newcommand*{\pfbreakdisplay}{*\quad*\quad*}
\end{lcode}
typesets three asterisks, as shown a few lines before this.
@@ -9672,8 +9737,8 @@ normal size by the time subsubsection heads are reached, or before.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-13 11:11:29 +0200 (Mon, 13 Sep 2010) $}
-{$LastChangedRevision: 273 $}
+{$LastChangedDate: 2011-01-25 18:04:45 +0100 (Tue, 25 Jan 2011) $}
+{$LastChangedRevision: 335 $}
{$LastChangedBy: daleif $}
\chapterstyle{demo3}
@@ -10113,15 +10178,21 @@ footers\index{footer}, or any other purpose.
\begin{syntax}
\cmd{\makeheadrule}\marg{style}\marg{width}\marg{thickness} \\
\cmd{\makefootrule}\marg{style}\marg{width}\marg{thickness}\marg{skip} \\
+\cmd{\makeheadfootprefix}\marg{style}\marg{for headrule}\marg{for footrule}\\
\end{syntax}
\glossary(makeheadrule)%
{\cs{makeheadrule}\marg{style}\marg{width}\marg{thickness}}%
{Specifies the \meta{width} and \meta{thickness} of the rule drawn below the
- headers of the \meta{style} pagestyle.}
+ headers of the \meta{style} pagestyle.}%
\glossary(makefootrule)%
{\cs{makefootrule}\marg{style}\marg{width}\marg{thickness}\marg{skip}}%
{Specifies the \meta{width} and \meta{thickness} of the rule drawn
- \meta{skip} (see \cs{footskip}) above the footers of the \meta{style} pagestyle.}
+ \meta{skip} (see \cs{footskip}) above the footers of the
+ \meta{style} pagestyle.}%
+\glossary(makeheadfootruleprefix)
+{\cs{makeheadfootruleprefix}\marg{style}\marg{for headrule}\marg{for
+ footrule}}%
+{Can be used to add alternative colors to the head/foot rule}%
A header\index{header} may have a rule drawn between it and the top of
the typeblock\index{typeblock}, and similarly a rule may be drawn
between the bottom of the typeblock\index{typeblock} and the
@@ -10134,7 +10205,12 @@ additional \meta{skip} argument is a distance that specifies the vertical
positioning of the foot rule (see \cmd{\footruleskip}).
The \cmd{\makepagestyle} macro initialises the \meta{width} to the
\lnc{\textwidth} and the \meta{thickness} to 0pt, so by default no rules
-are visible.
+are visible. The macro \cmd{\makeheadfootruleprefix} is intended for
+adding alternative colors to the head/foot rules, e.g.
+\begin{lcode}
+ \makeheadfootruleprefix{mystyle}{\color{red}}{\color{blue}}
+\end{lcode}
+
\begin{syntax}
\lnc{\normalrulethickness} \\
@@ -12097,8 +12173,8 @@ other environments.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-06-09 15:19:40 +0200 (Wed, 09 Jun 2010) $}
-{$LastChangedRevision: 225 $}
+{$LastChangedDate: 2010-12-20 14:07:25 +0100 (Mon, 20 Dec 2010) $}
+{$LastChangedRevision: 327 $}
{$LastChangedBy: daleif $}
%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -12441,7 +12517,7 @@ instead be:
\kern \z@ \par
\end{lcode}
which would cause \ltx\ to stop and complain because of the commands
-that included the \texttt{@}\idxatincode (\seeatincode).
+that included the \texttt{@}\idxatincode\ (\seeatincode).
If you are modifying any command that includes an
\texttt{@}\idxatincode\
sign then this must be done in either a \file{.sty} file or if in the
@@ -14143,8 +14219,8 @@ before the stuff you want to have moved out of, say, a part.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-13 11:11:29 +0200 (Mon, 13 Sep 2010) $}
-{$LastChangedRevision: 273 $}
+{$LastChangedDate: 2011-02-07 00:55:43 +0100 (Mon, 07 Feb 2011) $}
+{$LastChangedRevision: 343 $}
{$LastChangedBy: daleif $}
@@ -14279,6 +14355,116 @@ As diagram~\ref{diag1} shows ...
\end{lcode}
+\begin{syntax}
+ \cmd{\setfloatadjustment}\marg{floatname}\marg{code}
+\end{syntax}
+\glossary(setfloatadjustment)%
+ {\cs{setfloatadjustment}\marg{floatname}\marg{code}}%
+ {Add global internal adjustment to a given type of float. Empty by
+ default, but can easily be used to make all floats centered or all
+ tables in a smaller font size.}
+Often it is useful to add some global configuration to a given type of
+float such that one will not have to add this to each and every
+float. For example to have all (floating) figures and tables automatically
+centered plus have all (floating) tables typeset in \cmd{\small} use
+\begin{lcode}
+ \setfloatadjustment{figure}{\centering}
+ \setfloatadjustment{table}{\small\centering}
+\end{lcode}
+The starred floats will call the un-starred adjustment followed by a
+starred adjustment (if any is defined), i.e. to center only
+\Ie{figure*} use
+\begin{lcode}
+ \setfloatadjustment{figure*}{\centering}
+\end{lcode}
+
+\subsection{Margin floats}
+\label{sec:margin-floats}
+
+We also provide two environments to insert an image or table into the
+margin (using \cmd{\marginpar}). The construction is inspired by the
+Tufte \LaTeX\ collection.
+\begin{syntax}
+ \senv{marginfigure}\oarg{len} float material \eenv{marginfigure} \\
+ \senv{margintable}\oarg{len} float material \eenv{margintable} \\
+\end{syntax}
+\glossary(marginfigure)%
+ {\senv{marginfigure}\oarg{length}}%
+ {Environment which inserts its contents into the margin, and enables
+ figure captions. The optional argument should be a length and is used
+to perform manual up/down adjustments to the placement.}
+\glossary(margintable)%
+ {\senv{margintable}\oarg{length}}%
+ {Environment which inserts its contents into the margin, and enables
+ figure captions.The optional argument should be a length and is used
+to perform manual up/down adjustments to the placement.}
+Because this is inserted differently than the ordinary \Ie{figure} or
+\Ie{table} floats, one might get into the situation where a figure
+float inserted before a margin float, might float \emph{past} the
+margin float and thus have different caption numbering. For this
+reason the margin float contain a float blocking device such that any
+unplaced floats are forced to be placed before we start typesetting a
+margin figure.
+
+\fancybreak{}
+
+The \Ie{marginfigure} and \Ie{margintable} environments can of course
+be adjusted using \cmd{\setfloatadjustment}, default
+\begin{lcode}
+ \setfloatadjustment{marginfigure}{\centering}
+ \setfloatadjustment{margintable}{\centering}
+\end{lcode}
+It may be useful to adjust the captioning separately, for this we have
+added
+\begin{syntax}
+ \cmd{\setmarginfloatcaptionadjustment}\marg{float}\marg{code}
+\end{syntax}
+where \meta{float} is \verb?figure? or \verb?table?. The intent is to
+enable the user to choose a different captioning style (or similar)
+within a margin float, for example typesetting the caption ragged
+left/right depending on the page.
+
+This \emph{left/right depending on the page} is a little hard to do,
+so for the \cmd{\marginpar} (which the margin float use internally) we
+provide the following two macros
+\begin{syntax}
+ \cmd{\setmpjustification}\marg{at left of textblock}\marg{at right
+ of textblock}\\
+ \cmd{\mpjustification}
+\end{syntax}
+\glossary(setmpjustification)%
+ {\cs{setmpjustification}\marg{at left of textblock}\marg{at right
+ of textblock}}%
+ {Loads the \cs{mpjustification} command to execute the left part
+ when placed at the left of the text block and vice versa.}%
+\glossary(mpjustification)%
+ {\cs{mpjustification}}%
+ {Specialized macro to be used within \cs{marginpar}s}
+Basically \cmd{\mpjustification} execute \meta{at left of textblock}
+when it is executed at the left of the text block and vice versa. For
+it to work the margin into which the \cmd{marginpar} should do,
+\emph{has} to be specified using \cmd{marginparmargin}. The default is
+\begin{lcode}
+ \setmpjustification{\raggedleft}{\raggedright}
+\end{lcode}
+To have both a margin figure and its caption typeset ragged against
+the text block, use
+\begin{lcode}
+ \setfloatadjustment{marginfigure}{\mpjustification}
+ \setmarginfloatcaptionadjustment{figure}{\captionstyle{\mpjustification}}
+\end{lcode}
+It may be useful to allow hyphenation within the raggedness, which can
+be done using the \Lpack{ragged2e} package and
+\begin{lcode}
+ \setmpjustification{\RaggedLeft}{\RaggedRight}
+\end{lcode}
+
+
+
+
+
+
+
\index{float!new|)}
\section{Setting off a float} \label{sec:floatsetoff}
@@ -14752,6 +14938,62 @@ prevents any floats at the top\index{float!suppress top} of the page and
prevents any floats at the bottom\index{float!suppress bottom} of the page.
The simple \cmd{\suppressfloats} prevents both top and bottom floats.
+\begin{syntax}
+ \cmd{\FloatBlock}\\
+ \cmd{\FloatBlockAllowAbove}\\
+ \cmd{\FloatBlockAllowBelow}
+\end{syntax}
+\glossary(FloatBlock)%
+ {\cs{FloatBlock}}%
+ {Force \LaTeX\ to place all unplaced floats before proceeding this point.}
+\glossary(FloatBlockAllowAbove)%
+ {\cs{FloatBlockAllowAbove}}%
+ {Lessens the restriction by \cs{FloatBlock} such that a float
+ inserted \emph{after} a \cs{FloatBlock} can appear at the top of
+ the same page as \cs{FloatBlock}.}
+\glossary(FloatBlockAllowBelow)%
+ {\cs{FloatBlockAllowBelow}}%
+ {Lessens the restriction by \cs{FloatBlock} such that a float
+ inserted \emph{before} a \cs{FloatBlock} can appear at the bottom of
+ the same page as \cs{FloatBlock}.}
+Contrary to \cmd{\suppressfloats} \cmd{\FloatBlock}\footnote{Yes, it
+ \emph{is} the same as \cs{FloatBarrier} from the
+ \Lpack{placeins} package, kudos to Donald Arseneau. For various
+ reasons we cannot emulate the \Lpack{placeins} package and its
+ options, thus we have verbatimly copied and renamed it instead.} will block
+floats from passing this point, i.e.\ it demands \LaTeX\ to place any
+unprocessed floats before proceeding. It is similar to
+\cmd{\clearpage} but it does not necessarily introduce a page break
+before proceeding.
+
+\cmd{\FloatBlockAllowAbove} lessens the restriction a little, in a
+situation like this
+\begin{lcode}
+ \FloatBlock
+ some float here
+\end{lcode}
+\cmd{\FloatBlockAllowAbove} will allow the float to be placed at the
+top of the same page as \cmd{\FloatBlock}. \cmd{\FloatBlockAllowAbove}
+is the reverse situation.
+
+It may be beneficial to be able to add \cmd{\FloatBlock} to sectional
+commands. This can be done via
+\begin{syntax}
+ \cmd{\setFloatBlockFor}\marg{sectional name}
+\end{syntax}
+\glossary(setFloatBlockFor)%
+{\cs{setFloatBLockFor}\marg{sectional name}}%
+{Adds \cs{FloatBlock} within the \cs{\meta{section name}} macro.}
+where \meta{sectional name} is \emph{withput} the \cs{}, i.e.\
+\begin{lcode}
+ \setFloatBlockFor{section}
+\end{lcode}
+
+
+
+
+\fancybreak{}
+
The \Lpack{flafter} package, which should have come with your \ltx\
distribution, provides a means of preventing floats from moving
backwards from their definition position in the text. This can be useful to
@@ -21721,8 +21963,8 @@ and the result is shown on the next page.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-13 11:11:29 +0200 (Mon, 13 Sep 2010) $}
-{$LastChangedRevision: 273 $}
+{$LastChangedDate: 2010-10-28 23:30:16 +0200 (Thu, 28 Oct 2010) $}
+{$LastChangedRevision: 305 $}
{$LastChangedBy: daleif $}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -23118,6 +23360,22 @@ It is an error if \meta{stream} is not open for input.
\subsection{Example: endnotes}
+\LMnote{2010/10/28}{It is confusing for users that the manual contain
+ an example as to how one manual provide endnotes, when memoir
+ actually provide the functionality in a later section.}
+\index{endnotes}
+\begin{itshape}
+ In an earier version of the manual, this section contained an
+ example as to how one could make endnotes. The example is now
+ irrelevant, since \theclass\ contain something similar to end notes
+ called page notes, see section~\ref{sec:endnotes} on
+ page~\pageref{sec:endnotes}.
+
+ Those interested in the code from the old example, can find it in
+ the manual source (it has just been commented out).
+\end{itshape}
+
+\begin{comment}
\index{endnotes|(}
Books like biographies often quote sources for quotations by the subject,
@@ -23245,6 +23503,7 @@ think what it might be, don't worry as it will be dealt with in another
example.
\index{endnotes|)}
+\end{comment}
\subsection{Example: end floats}
@@ -23674,11 +23933,12 @@ In increasing or decreasing order of probability (your choice) they are:
\item I just wrote the answers here.
\end{itemize}
-\vspace{\onelineskip}
-\noindent\textbf{Question 3.} If \ltx\ writes text out to an external
-file which will be read by \ltx\ at some time, any
-fragile\index{fragile} commands
-in the text must be \cmd{\protect}ed.\index{protect}
+\LMnote{2010/10/28}{Removed this answer as we have removed the question}
+% \vspace{\onelineskip}
+% \noindent\textbf{Question 3.} If \ltx\ writes text out to an external
+% file which will be read by \ltx\ at some time, any
+% fragile\index{fragile} commands
+% in the text must be \cmd{\protect}ed.\index{protect}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% mbook
@@ -24055,8 +24315,8 @@ will require the use of \cmd{\titleref} and so the declaration
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-09-13 11:11:29 +0200 (Mon, 13 Sep 2010) $}
-{$LastChangedRevision: 273 $}
+{$LastChangedDate: 2011-01-25 13:33:59 +0100 (Tue, 25 Jan 2011) $}
+{$LastChangedRevision: 334 $}
{$LastChangedBy: daleif $}
@@ -25890,6 +26150,15 @@ pdflatex memman
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Endnotes}
+\label{sec:endnotes}
+
+\LMnote{2010/10/28}{several \cs{printpagenotes} was spelled wrong}
+
+\reimplemented{December 2010}{The former implementation had some
+ difficulties handling certain types of input. A few of the macros
+ used to format the output are no longer supported/used in the new
+ implementation.}
+
Endnotes are often used instead of footnotes so as not to interrupt the
flow of the main text. Although endnotes are normally put at the end of
@@ -25897,8 +26166,11 @@ the document, they may instead be put at the end of each chapter.
The \Lpack{endnotes} package already uses the command \cmd{\endnote} for
an endnote, so the class uses \cmd{\pagenote} for an endnote so as not
-to clash if you prefer to use the package. The following was originally
-supplied as the \Lpack{pagenote} package~\cite{PAGENOTE}.
+to clash if you prefer to use the package.
+\LMnote{2011/01/23}{The implementation has nothing to do with the
+ current pagenote package, thus the remark is removed}
+% The following was originally supplied as the \Lpack{pagenote}
+% package~\cite{PAGENOTE}.
\begin{syntax}
\cmd{\makepagenote} \\
@@ -26040,11 +26312,13 @@ discarded but will be made available to notes in the endnote listing
following the \cmd{\notepageref} declaration. These declarations should
be put in your preamble.
- Because of how TeX writes information to files, when the \cmd{\notepageref}
-declaration is used there must be no notes on the page where
-\cmd{\printnotes} or \cmd{\printnotes*} closes the \pixfile{ent} file.
-If necessary, a \cmd{\clearpage} or similar must be used before the
-print command.
+\LMnote{2011/01/23}{Because of the new implementation this is no
+ longer needed as the writing to file is no longer delayed.}
+% Because of how TeX writes information to files, when the
+% \cmd{\notepageref} declaration is used there must be no notes on the
+% page where \cmd{\printpagenotes} or \cmd{\printpagenotes*} closes the
+% \pixfile{ent} file. If necessary, a \cmd{\clearpage} or similar must
+% be used before the print command.
\begin{syntax}
\cmd{\notesname} \\
@@ -26055,11 +26329,11 @@ print command.
{Name for endnotes, default \texttt{Notes}.}%
\glossary(notedivision)%
{\cs{notedivision}}%
- {Heading printed by the \cs{printnotes} and \cs{printnotes*} macros.}
+ {Heading printed by the \cs{printpagenotes} and \cs{printpagenotes*} macros.}
-When \cmd{\printnotes} (or \cmd{\printnotes*}) is called the first thing
-it does is call the macro \cmd{\notedivision}. By default this is defined
-as:
+ When \cmd{\printpagenotes} (or \cmd{\printpagenotes*}) is called the
+ first thing it does is call the macro \cmd{\notedivision}. By
+ default this is defined as:
\begin{lcode}
\newcommand*{\notesname}{Notes}
\newcommand*{\notedivision}{\chapter{\notesname}}
@@ -26071,73 +26345,70 @@ for writing and after this \verb?\input?s it to get and process the notes.
\subsection{Changing the appearance}
+\subsubsection{In the text}
+\label{sec:in-the-text}
+
+
\begin{syntax}
\cmd{\notenumintext}\marg{num} \\
-\cmd{\notenuminnotes}\marg{num} \\
\end{syntax}
\glossary(notenumintext)%
{\cs{notenumintext}\marg{num}}%
{Typesets the number \meta{num} of a page note in the main text.}%
-\glossary(notenuminnotes)%
- {\cs{notenuminnotes}\marg{num}}%
- {Typesets the number \meta{num} of a page note in the note listing.}%
The \Icn{pagenote} counter is used for pagenotes. The macro
\cmd{\notenumintext} is called by \cmd{\pagenote} with the value of the
\Icn{pagenote} counter as the \meta{num} argument to print the
value of the \Icn{pagenote} counter in the main text. By default it is
printed as a
superscript, but this can be changed, or even eliminated.
-In the note listing \cmd{\notenuminnotes} is used to print the number
-of a note. The default definitions are:
\begin{lcode}
\newcommand*{\notenumintext}[1]{\textsuperscript{#1}}
-\newcommand*{\notenuminnotes}[1]{\normalfont #1.\space}
\end{lcode}
+
+\subsubsection{In the page note list}
+\label{sec:page-note-list}
+
+\LMnote{2011/01/23}{Added to make the formating code easier to understand}
+To better understand how a page note entry is formatted in the page
+note list, we start with the following pseudo code
\begin{syntax}
-\cmd{\noteentry}\marg{notenum}\marg{id}\marg{text}\marg{pagenum} \\
-\cmd{\prenoteinnotes} \\
-\cmd{\postnoteinnotes} \\
+\cmd{\prenoteinnotes}\\
+\cmd{\noteidinnotes}\marg{notenum}\marg{id}\\
+\cmd{\pageinnotes}\marg{auto generated note label key}\\
+\cmd{\prenotetext}\\
+\quad\meta{Page note text}\\
+\cmd{\postnotetext}\\
+\cmd{\postnoteinnotes}
\end{syntax}
-\glossary(noteentry)%
- {\cs{noteentry}\marg{notenum}\marg{id}\marg{text}\marg{pagenum}}%
- {Typesets a pagenote with number \meta{notenum}, identifier \meta{id},
- contents \meta{text}, created on page \meta{pagenum}.}
+At the start and end we have the two macros \cmd{prenoteinnotes} and
+\cmd{\postnoteinnotes}, they take care of preparing for and ending an
+entry in the list. The list is typeset in a manner where each item is
+(at least) a paragraph, so the default definition is
+\begin{lcode}
+\newcommand{\prenoteinnotes}{\par\noindent}
+\newcommand{\postnoteinnotes}{\par}
+\end{lcode}
\glossary(prenoteinnotes)%
{\cs{prenoteinnotes}}%
{Called by \cs{noteentry} to initialise the printing of an endnote.}
\glossary(postnoteinnotes)%
{\cs{postnoteinnotes}}%
{Called by \cs{noteentry} to finish the printing of an endnote.}
-The \cmd{\pagenote} macro writes \cmd{\noteentry}, with the appropriate
-values for the arguments, to the \pixfile{ent} file,
-where \meta{notenum} is the note number (from the \Icn{pagenote} counter),
-\meta{id} and \meta{text} are as supplied to
-\cmd{\pagenote}, and if the \cmd{\notepageref} declaration option is used,
-\meta{pagenum} is the page number, otherwise it is empty.
-The \cmd{\noteentry} macro controls the typesetting of the note.
-
-The default definition of \cmd{\noteentry} is
-\begin{lcode}
-\newcommand{\notentry}[4]{%
- \prenoteinnotes
- \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}%
- \postnoteinnotes}
-\end{lcode}
-and the definitions of other macros are:
-\begin{lcode}
-\newcommand{\prenoteinnotes}{\par\noindent}
-\newcommand{\postnoteinnotes}{\par}
-\end{lcode}
-so that (the first paragraph of) each note is printed as a non-indented
-paragraph.
-
- If you would prefer, say, hanging paragraphs try:
+A user could change this to make it look a bit more like a list
+construction. For example the following would give a hanging
+indentation
\begin{lcode}
\renewcommand{\prenoteinnotes}{\par\noindent\hangindent 2em}
\end{lcode}
+\fancybreak{}
+
+
+The \cmd{\noteidinnotes} calls \cmd{\idtextinnotes} to print the note \meta{id}
+if it was given as the optional argument to \cmd{pagenote},
+otherwise it calls \cmd{\notenuminnotes} to print the note number.
\begin{syntax}
\cmd{\noteidinnotes}\marg{notenum}\marg{id} \\
\cmd{\idtextinnotes}\marg{id} \\
@@ -26149,46 +26420,196 @@ paragraph.
\glossary(idtextinnotes)%
{\cs{idtextinnotes}\marg{id}}%
{Prints an endnote's \meta{id} text}%
-The \cmd{\noteidinnotes} calls \cmd{\idtextinnotes} to print the note \meta{id}
-if it was given as the optional argument to \cmd{pagenote},
-otherwise it calls \cmd{\notenuminnotes} to print the note number.
+\glossary(notenuminnotes)%
+ {\cs{notenuminnotes}\marg{num}}%
+ {Typesets the number \meta{num} of a page note in the note listing.}%
These are defined respectively as:
\begin{lcode}
\newcommand*{\idtextinnotes}[1]{[#1]\space}
\newcommand*{\notenuminnotes}[1]{\normalfont #1.\space}
\end{lcode}
+\fancybreak{}
+
+Next we execute \cmd{\pageinnotes}\marg{note label key} which does
+nothing by default. But if \cmd{\notepageref} is issued in the
+preamble two things happen, (1) each page note issues a label such
+that we can refer back to its page, and (2) \cmd{\pageinnotes} calls
+\cmd{\printpageinnotes} (or if \Lpack{hyperref} is loaded
+\cmd{\printpageinnoteshyperref})
\begin{syntax}
-\cmd{\pageinnotes}\marg{pagenum} \\
-\cmd{\printpageinnotes}\marg{pagenum} \\
+\cmd{\pageinnotes}\marg{auto generated note label key}\\
+\cmd{\printpageinnotes}\marg{auto generated note label key}\\
+\cmd{\printpageinnoteshyperref}\marg{auto generated note label key}
\end{syntax}
\glossary(pageinnotes)%
- {\cs{pageinnotes}\marg{pagenum}}%
- {Controls the printing of an endnote's page reference number.}%
+{\cs{pageinnotes}\marg{pagenum}}%
+{Controls the printing of an endnote's page reference number.}%
\glossary(printpageinnotes)%
- {\cs{printpageinnotes}\marg{pagenum}}%
- {Prints an endnote's page reference number.}%
-The macro \cmd{\pageinnotes} controls the printing of a note's page
-reference. If the
-\cmd{\notepageref} declaration has been used it calls
-\cmd{\printpageinnotes} to do the actual printing. Its definition is:
+{\cs{printpageinnotes}\marg{pagenum}}%
+{Prints an endnote's page reference number.}%
+\glossary(printpageinnoteshypreref)%
+{\cs{printpageinnoteshyperref}\marg{pagenum}}%
+{Prints an endnote's page reference number whenever the
+ \protect\Lpack{hyperref} package is used, it will include a
+ hyperlink back to the page in question.}%
+Default definitions
\begin{lcode}
\newcommand*{\printpageinnotes}[1]{%
- (\pagerefname\ #1)\space}
+ (\pagerefname\ \pageref{#1})\space}
+\newcommand\printpageinnoteshyperref[1]{%
+ (\hyperref[#1]{\pagerefname\ \pageref*{#1}})\space}
\end{lcode}
+That is if \Lpack{hyperref} is loaded the entire text \meta{page 3}
+will be the text of a hyperlink.
+
+\bigskip
\begin{syntax}
-\cmd{\noteinnotes}\marg{text} \\
+ \cmd{\prenotetext}\\
+ \cmd{\postnotetext}\\
\end{syntax}
-\glossary(noteinnotes)%
- {\cs{noteinnotes}\marg{text}}%
- {Prints the text of an endnote.}%
-The macro \cmd{\noteinnotes}\marg{text} is simply:
+\glossary(prenotetext)%
+ {\cs{prenotetext}}%
+ {Called within a page note list entry to initialise the printing
+ of the text part of an endnote.}%
+\glossary(postnotetex)%
+ {\cs{postnotetext}}%
+ {Called within a page note list entry to finish the printing of an
+ endnote.}%
+The actual text part of the page note is enclosed by
+\cmd{\prenotetext} and \cmd{postnotetext}. By default they do nothing,
+but could easily be redefined such that (only) the entry text would be
+in italic:
\begin{lcode}
-\newcommand{\noteinnotes}[1]{#1}
+\renewcommand\prenotetext{\begingroup\itshape}
+\renewcommand\postnotetext{\endgroup}
\end{lcode}
-and is used to print the text of a note.
+
+
+%%%%%%%%%%%
+
+
+\LMnote{2011/01/25}{Covered above}
+% \begin{syntax}
+% \cmd{\notenuminnotes}\marg{num} \\
+% \end{syntax}
+% \glossary(notenuminnotes)%
+% {\cs{notenuminnotes}\marg{num}}%
+% {Typesets the number \meta{num} of a page note in the note listing.}%
+% In the note listing \cmd{\notenuminnotes} is used to print the number
+% of a note. The default definitions are:
+
+% \begin{lcode}
+% \newcommand*{\notenuminnotes}[1]{\normalfont #1.\space}
+% \end{lcode}
+
+
+
+\LMnote{2011/01/25}{Covered above, \cmd{\noteentry} is not used anymore}
+% \begin{syntax}
+% \cmd{\noteentry}\marg{notenum}\marg{id}\marg{text}\marg{pagenum} \\
+% \cmd{\prenoteinnotes} \\
+% \cmd{\postnoteinnotes} \\
+% \end{syntax}
+% \glossary(noteentry)%
+% {\cs{noteentry}\marg{notenum}\marg{id}\marg{text}\marg{pagenum}}%
+% {Typesets a pagenote with number \meta{notenum}, identifier \meta{id},
+% contents \meta{text}, created on page \meta{pagenum}.}
+% \glossary(prenoteinnotes)%
+% {\cs{prenoteinnotes}}%
+% {Called by \cs{noteentry} to initialise the printing of an endnote.}
+% \glossary(postnoteinnotes)%
+% {\cs{postnoteinnotes}}%
+% {Called by \cs{noteentry} to finish the printing of an endnote.}
+% The \cmd{\pagenote} macro writes \cmd{\noteentry}, with the appropriate
+% values for the arguments, to the \pixfile{ent} file,
+% where \meta{notenum} is the note number (from the \Icn{pagenote} counter),
+% \meta{id} and \meta{text} are as supplied to
+% \cmd{\pagenote}, and if the \cmd{\notepageref} declaration option is used,
+% \meta{pagenum} is the page number, otherwise it is empty.
+% The \cmd{\noteentry} macro controls the typesetting of the note.
+
+% The default definition of \cmd{\noteentry} is
+% \begin{lcode}
+% \newcommand{\notentry}[4]{%
+% \prenoteinnotes
+% \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}%
+% \postnoteinnotes}
+% \end{lcode}
+% and the definitions of other macros are:
+% \begin{lcode}
+% \newcommand{\prenoteinnotes}{\par\noindent}
+% \newcommand{\postnoteinnotes}{\par}
+% \end{lcode}
+% so that (the first paragraph of) each note is printed as a non-indented
+% paragraph.
+
+% If you would prefer, say, hanging paragraphs try:
+% \begin{lcode}
+% \renewcommand{\prenoteinnotes}{\par\noindent\hangindent 2em}
+% \end{lcode}
+
+% \begin{syntax}
+% \cmd{\noteidinnotes}\marg{notenum}\marg{id} \\
+% \cmd{\idtextinnotes}\marg{id} \\
+% \cmd{\notenuminnotes}\marg{num} \\
+% \end{syntax}
+% \glossary(noteidinnotes)%
+% {\cs{noteidinnotes}\marg{notenum}\marg{id}}%
+% {Prints an endnote's number or id in the endnote listing.}%
+% \glossary(idtextinnotes)%
+% {\cs{idtextinnotes}\marg{id}}%
+% {Prints an endnote's \meta{id} text}%
+% The \cmd{\noteidinnotes} calls \cmd{\idtextinnotes} to print the note \meta{id}
+% if it was given as the optional argument to \cmd{pagenote},
+% otherwise it calls \cmd{\notenuminnotes} to print the note number.
+% These are defined respectively as:
+% \begin{lcode}
+% \newcommand*{\idtextinnotes}[1]{[#1]\space}
+% \newcommand*{\notenuminnotes}[1]{\normalfont #1.\space}
+% \end{lcode}
+
+% \begin{syntax}
+% \cmd{\pageinnotes}\marg{pagenum} \\
+% \cmd{\printpageinnotes}\marg{pagenum} \\
+% \end{syntax}
+% \glossary(pageinnotes)%
+% {\cs{pageinnotes}\marg{pagenum}}%
+% {Controls the printing of an endnote's page reference number.}%
+% \glossary(printpageinnotes)%
+% {\cs{printpageinnotes}\marg{pagenum}}%
+% {Prints an endnote's page reference number.}%
+% The macro \cmd{\pageinnotes} controls the printing of a note's page
+% reference. If the
+% \cmd{\notepageref} declaration has been used it calls
+% \cmd{\printpageinnotes} to do the actual printing. Its definition is:
+% \begin{lcode}
+% \newcommand*{\printpageinnotes}[1]{%
+% (\pagerefname\ #1)\space}
+% \end{lcode}
+
+% \begin{syntax}
+% \cmd{\noteinnotes}\marg{text} \\
+% \end{syntax}
+% \glossary(noteinnotes)%
+% {\cs{noteinnotes}\marg{text}}%
+% {Prints the text of an endnote.}%
+% The macro \cmd{\noteinnotes}\marg{text} is simply:
+% \begin{lcode}
+% \newcommand{\noteinnotes}[1]{#1}
+% \end{lcode}
+% and is used to print the text of a note.
+
+
+
+
+\bigskip
+
+
+
+\LMnote{2011/01/25}{rewritten a bit}
\begin{syntax}
\cmd{\addtonotes}\marg{text} \\
\end{syntax}
@@ -26196,55 +26617,87 @@ and is used to print the text of a note.
{\cs{addtonotes}\marg{text}}%
{Inserts \meta{text} into the endnotes \file{ent} file.}%
The macro \cmd{\addtonotes} inserts \meta{text} into the \pixfile{ent}
-file. For example, before the first note in a chapter, \cmd{\addtonotes} is
-used to write the \cmd{\pagenotesubhead} command to the file.
+file.
-\textbf{Note:} As the argument to \cmd{\pagenote} and \cmd{\addtonotes}
-is moving you may have
-to \cmd{\protect} any fragile commands. If you get strange error messages, try
-using \cmd{\protect} and see if they go away.
+\textbf{Note:} As the argument to \cmd{\pagenote} and
+\cmd{\addtonotes} is moving you may have to \cmd{\protect} any fragile
+commands. If you get strange error messages, try using \cmd{\protect}
+and see if they go away.
+\fancybreak{}
+
+Internally in \cmd{\pagenote} \cmd{\addtonotes} is used to provide
+chapter devisions into the note list. It will detect both numbered and
+unnumbered chapters. The actual text is provided using
\begin{syntax}
\cmd{\pagenotesubhead}\marg{chapapp}\marg{num}\marg{title} \\
+\cmd{\pagenotesubheadstarred}\marg{chapapp}\marg{num}\marg{title} \\
\cmd{\pnchap} \cmd{\pnschap} \\
\end{syntax}
\glossary(pagenotesubhead)%
{\cs{pagenotesubhead}\marg{chapapp}\marg{num}\marg{title}}%
{Typesets a subheading for notes from chapter or appendix \meta{chapapp}
\meta{num} called \meta{title}.}%
+\glossary(pagenotesubheadstarred)%
+ {\cs{pagenotesubheadstarred}\marg{chapapp}\marg{num}\marg{title}}%
+ {Typesets a subheading for notes from unnumbered chapter or appendix
+ \meta{chapapp} \meta{num} called \meta{title}.}%
\glossary(pnchap)%
{\cs{pnchap}}%
{Chapter title for \cs{pagenotesubhead}. Defaults to the ToC entry.}
\glossary(pnschap)%
- {\cs{pnschap}}%
- {Starred chapter title for \cs{pagenotesubhead}. Defaults to the regular title.}
-
- The macro \cmd{\pagenotesubhead} typesets the subheadings in an endnote
-list. It is inserted into the \pixfile{ent} file via \cmd{\addtonotes}.
-The \meta{chapapp} argument is normally \cmd{\chaptername} but if the
-notes are from an appendix then \cmd{\appendixname} is used instead. \meta{num}
-is the number of the chapter, or blank if there is no number. Lastly,
-\meta{title} is \cmd{\pnchap} for regular chapters which defaults to the
-ToC entry, or \cmd{\pnschap} for starred chapters which defaults to the normal
-title. The default definition of \cmd{\pagenotesubhead} is very simply:
+{\cs{pnschap}}%
+{Starred chapter title for \cs{pagenotesubhead}. Defaults to the regular title.}
+
+The macro \cmd{\pagenotesubhead} typesets the subheadings in an
+endnote list. The \meta{chapapp} argument is normally
+\cmd{\chaptername} but if the notes are from an appendix then
+\cmd{\appendixname} is used instead. \meta{num} is the number of the
+chapter, or blank if there is no number. Lastly, \meta{title} is
+\cmd{\pnchap} for regular chapters which defaults to the ToC entry, or
+\cmd{\pnschap} for starred chapters which defaults to the normal
+title. The default definition of \cmd{\pagenotesubhead} is very
+simply:
\begin{lcode}
\newcommand*{\pagenotesubhead}[3]{%
\section*{#1 #2 #3}}
+\newcommand\pagenotesubheadstarred{\pagenotesubhead} % i.e. the same
\end{lcode}
+By default this means that the header for starred chapters will be
+something like >>Chapter Title<<, which may look odd. In that case
+redefine \cmd{\pagenotesubheadstarred} to something similar to
+\begin{lcode}
+\renewcommand\pagenotesubheadstarred{\section*{#3}}
+\end{lcode}
+Just remember that unless you have specified \cmd{\continuousnotenums}
+in the preamble the note counter (\Icn{pagenote}) will only be reset
+at the start of any numbered chapters (because it is tied to changes
+in the chapter counter).
- The scheme is set up under the assumption that notes will only be
+The scheme is set up under the assumption that notes will only be
printed at the end of the document. If you intend to put them at the
-end of each chapter, then you will probably want to change the definitions
-of the \cmd{\notedivision} and \cmd{\pagenotesubhead} macros. For example:
+end of each chapter, then you will probably want to change the
+definitions of the \cmd{\notedivision} and \cmd{\pagenotesubhead}
+macros. For example:
\begin{lcode}
\renewcommand*{\notedivision}{\section*{\notesname}}
\renewcommand*{\pagenotesubhead}[3]{}
\end{lcode}
-and remember to use \cmd{\printnotes*} at each place you want the current set
-of notes to be printed.
+and remember to use \cmd{\printpagenotes*} at each place you want the
+current set of notes to be printed.
+
+\fancybreak{}
+
+Say you have written a document with footnotes, but later on decide on
+using end notes (page notes) instead. In that case you can use
+\cmd{\foottopagenote} to make \cmd{\footnote}, \cmd{\footnotemark} and
+\cmd{\footnotetext} works as if it was implemented using end notes. On
+the other hand \cmd{\pagetofootnote} makes all page notes into
+footnotes (note that this might not work, because there are places
+where page notes can be issued but foot notes cannot).
\begin{syntax}
-\cmd{\foottopagenote} \cmd{\pagetofootnote} \\
+\cmd{\foottopagenote}\\ \cmd{\pagetofootnote} \\
\end{syntax}
\glossary(foottopagenote)%
{\cs{foottopagenote}}%
@@ -26252,21 +26705,25 @@ of notes to be printed.
\glossary(pagetofootnote)%
{\cs{pagetofootnote}}%
{Declaration which turns \cs{pagenote}s into \cs{footnote}s.}%
-You can have both footnotes and endnotes in the same document. However you
-may start with all footnotes and later decide you would have preferred endnotes
- instead, or \emph{vice-versa}. The \cmd{\foottopagenote} declaration
-makes \cmd{\footnote}s behave as \cmd{\pagenote}s, and \cmd{\pagetofootnote}
-has the opposite effect. In either conversion the optional argument will be
+ % You can have both footnotes and endnotes in the same
+ % document. However you may start with all footnotes and later
+ % decide you would have preferred endnotes instead, or
+ % \emph{vice-versa}. The \cmd{\foottopagenote} declaration makes
+ % \cmd{\footnote}s behave as \cmd{\pagenote}s, and
+ % \cmd{\pagetofootnote} has the opposite effect.
+In either conversion the optional argument will be
ignored as for \cmd{\pagenote} it can be arbitrary text whereas for
\cmd{\footnote} it must be a number.
+
+
%#% extend
%#% extstart include miscellaneous.tex
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-07-01 01:49:45 +0200 (Thu, 01 Jul 2010) $}
-{$LastChangedRevision: 250 $}
+{$LastChangedDate: 2010-12-06 00:21:35 +0100 (Mon, 06 Dec 2010) $}
+{$LastChangedRevision: 315 $}
{$LastChangedBy: daleif $}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -26391,6 +26848,7 @@ at the middle of each side of the page.
\cmd{\trimLmarks} \\
\cmd{\trimFrame} \\
\cmd{\trimNone} \\
+\cmd{\trimmarkscolor} \\
\end{syntax}
\glossary(trimXmarks)%
{\cs{trimXmarks}}%
@@ -26404,6 +26862,9 @@ at the middle of each side of the page.
\glossary(trimNone)%
{\cs{trimNone}}%
{No trim marks.}
+\glossary(trimmarkscolor)%
+ {\cs{trimmarkscolor}}%
+ {Empty macro that can be redefined to give a specific color to the trimmarks.}
Some predefined trimming styles are provided. After the declaration
\cmd{\trimXmarks} marks in the shape of a cross are placed at the four
@@ -26414,6 +26875,15 @@ coinciding with the page boundaries. The declaration \cmd{\trimNone}
disables all kinds of trim marking. All three plus \cs{quarkmarks}
(described below) is visibly shown on \fref{fig:trimmarks}.
+The macro \cs{trimmarkscolor} is despite its name a normal (empty)
+macro. By redefining it one can change the color of the trimmarks,
+handy for example if the document has a dark background color. To make
+them blue use
+\begin{lcode}
+\newcommand*{\trimmarkscolor}{\color{blue}}
+\end{lcode}
+
+
\begin{syntax}
\cmd{\trimmarks} \\
\cmd{\tmarktl} \cmd{\tmarktr} \cmd{\tmarkbr} \cmd{\tmarkbl} \\
@@ -28790,8 +29260,8 @@ of the standard commands needs to be replaced.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2010-07-01 01:44:23 +0200 (Thu, 01 Jul 2010) $}
-{$LastChangedRevision: 249 $}
+{$LastChangedDate: 2010-10-01 17:39:01 +0200 (Fri, 01 Oct 2010) $}
+{$LastChangedRevision: 285 $}
{$LastChangedBy: daleif $}
@@ -28879,7 +29349,7 @@ of the standard commands needs to be replaced.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\PWnote{2009/07/05}{Added `book' to example design chapter title}
\chapter{An example book design} \label{chap:bringhurst}
-
+
%unitlength=\printlength{\unitlength}, \\
%pwlayi=\printlength{\pwlayi}, \\
%pwlayii=\printlength{\pwlayii}.
@@ -36033,37 +36503,39 @@ access CTAN is available at \url{http://www.tug.org}.
\url{http://www.adobe.com/epaper/tips/acr5ebook/pdfs/eBook.pdf})
\end{comment}
+\LMnote{2010/09/28}{Added the \cs{CTANurl}'s and verified them}
+
%%% keep
\bibitem[Ars99]{URL}
Donald Arseneau.
\newblock \emph{The url package}.
\newblock February, 1999.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/url.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/url/})
%%% keep
\bibitem[Ars01a]{TITLEREF}
Donald Arseneau.
\newblock \emph{The titleref package}.
\newblock April, 2001.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/titleref.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/titleref/})
%%% keep
\bibitem[Ars01b]{CHAPTERBIB}
Donald Arseneau.
\newblock \emph{The chapterbib package}.
\newblock September, 2001.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/cite/chapterbib.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/cite/})
%%% keep
\bibitem[Ars07]{FRAMED}
Donald Arseneau.
\newblock \emph{The framed package} v0.95.
\newblock October, 2007.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/framed.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/framed/})
\begin{comment}
\bibitem[Bar92]{BAROLINI92}
@@ -36097,16 +36569,16 @@ access CTAN is available at \url{http://www.tug.org}.
Jens Berger.
\newblock \emph{The titlesec and titletoc packages}.
\newblock September, 2002.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/titlesec})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/titlesec/})
%%% keep
\bibitem[Bez99]{TITLESEC}
Javier Bezos.
\newblock \emph{The titlesec and titletoc packages}.
\newblock February, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/titlesec})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/titlesec/})
\bibitem[Bir04]{BIRDSALL04}
Derek Birdsall.
@@ -36128,8 +36600,8 @@ access CTAN is available at \url{http://www.tug.org}.
Johannes Braams.
\newblock \emph{The alltt environment}.
\newblock June, 1997.
- \newblock (Available from CTAN as
- \url{/macros/latex/base/alltt.dtx(ins)})
+ \newblock (Available as \texttt{alltt.dtx} and
+ \texttt{alltt.ins} from CTAN via \CTANurl{/macros/latex/base/})
%%% keep
\bibitem[Bri99]{BRINGHURST99}
@@ -36151,32 +36623,32 @@ access CTAN is available at \url{http://www.tug.org}.
David Carlisle.
\newblock \emph{The delarray package}.
\newblock March, 1994.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[Car95]{AFTERPAGE}
David Carlisle.
\newblock \emph{The afterpage package}.
\newblock October, 1995.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[Car98b]{LONGTABLE}
David Carlisle.
\newblock \emph{The longtable package}.
\newblock May, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[Car98c]{ENUMERATE}
David Carlisle.
\newblock \emph{The enumerate package}.
\newblock August, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
\begin{comment}
\bibitem[Car98d]{REMRESET}
@@ -36192,41 +36664,45 @@ access CTAN is available at \url{http://www.tug.org}.
David Carlisle.
\newblock \emph{The tabularx package}.
\newblock January, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[CR99]{GRAPHICX}
David Carlisle and Sebastian Rahtz.
\newblock \emph{The graphicx package}.
\newblock February, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/graphics})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/graphics/})
%%% keep
\bibitem[Car01]{DCOLUMN}
David Carlisle.
\newblock \emph{The dcolumn package}.
\newblock May, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[Car05]{COLOR}
David Carlisle.
\newblock \emph{Packages in the graphics bundle} (includes the color package).
\newblock November, 2005.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/graphics})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/graphics/})
+
+\begin{comment}
+%%% keep, not anymore, the bidi package is a bit different now, Vafa
+%%% is the maintainer
+ \bibitem[CK09]{BIDI} Fran\c{c}ois Charette and Vafa
+ Khalighi. \newblock \emph{Bidi: A convenient interface
+ for typesetting bidirectional texts with XeLaTeX}.
+ \newblock 2009. \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/bidi/})
+\end{comment}
+
+
-%%% keep
-\bibitem[CK09]{BIDI}
- Fran\c{c}ois Charette and Vafa Khalighi.
- \newblock \emph{Bidi: A convenient interface for typesetting bidirectional
- texts with XeLaTeX}.
- \newblock 2009.
- \newblock (Available from CTAN in
- \url{/macros/xetex/latex/bidi})
%%% keep
\bibitem[CB99]{CHAPPELL99}
@@ -36241,8 +36717,8 @@ access CTAN is available at \url{http://www.tug.org}.
\newblock `Index Preparation and Processing'.
\newblock \emph{Software: Practice and Experience}, 19:8, pp. 897--915,
September, 1988.
- \newblock (Available from CTAN in
- \url{/indexing/makeindex/paper})
+ \newblock (Available from CTAN via
+ \CTANurl{/indexing/makeindex/paper/})
\begin{comment}
\bibitem[Che05]{CHENG05}
@@ -36285,16 +36761,16 @@ access CTAN is available at \url{http://www.tug.org}.
Patrick W.~Daly.
\newblock \emph{Natural Sciences Citations and References}.
\newblock May, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/natbib})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/natbib/})
%%% keep
\bibitem[Dal99b]{MAKEBST}
Patrick W.~Daly.
\newblock \emph{Customizing Bibliographic Style Files}.
\newblock August, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/custom-bib})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/custom-bib})
\begin{comment}
\bibitem[Deg92]{DEGANI92}
@@ -36327,8 +36803,8 @@ access CTAN is available at \url{http://www.tug.org}.
Michael J.~Downes.
\newblock \emph{The patchcmd package}.
\newblock July, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/patchcmd})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/patchcmd/})
%%% keep
\bibitem[Eij92]{TEXBYTOPIC}
@@ -36343,8 +36819,8 @@ access CTAN is available at \url{http://www.tug.org}.
Victor Eijkhout.
\newblock \emph{comment.sty}
\newblock October, 1999.
- \newblock (Available from CTAN in
- \url{/macros/???????????})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/comment/})
\begin{comment}
\bibitem[Fai98]{MOREVERB}
@@ -36361,21 +36837,22 @@ access CTAN is available at \url{http://www.tug.org}.
\newblock \emph{footmisc --- a portmanteau package for customising
footnotes in LaTeX2e}.
\newblock March, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/footmisc})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/footmisc/})
%%% keep
+\LMnote{2010/09/28}{link changed}
\bibitem[FAQ]{FAQ}
Robin Fairbairns.
\newblock \emph{The UK TeX FAQ}.
- \newblock (Available from CTAN in
- \url{/help/uk-tex-faq})
+ \newblock (Available from CTAN via
+ \url{http://faq.tug.org/})
\LMnote{2010/02/08}{Added from the main bib file}
\bibitem[Far90]{FARIN90}
Gerald Farin.
-\newblock {\em Curves and Surfaces for Computer Aided Geometric Design --- A
- Practical Guide}.
+\newblock \emph{Curves and Surfaces for Computer Aided Geometric
+ Design --- A Practical Guide}.
\newblock Academic Press, 2 edition, 1990.
\LMnote{2010/02/08}{Added from the main bib file}
@@ -36391,15 +36868,15 @@ I.~D. Faux and M.~J. Pratt.
Simon Fear.
\newblock \emph{Publication quality tables in LaTeX}.
\newblock March, 2003.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/booktabs})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/booktabs})
\begin{comment}
\bibitem[Fli98]{LETTRINE}
Daniel Flipo.
\newblock \emph{Typesetting `lettrines' in LaTeX2e documents}.
\newblock March, 1998.
- \newblock (Available from CTAN in
+ \newblock (Available from CTAN in
\url{/macros/latex/contrib/lettrine})
\end{comment}
@@ -36409,8 +36886,8 @@ I.~D. Faux and M.~J. Pratt.
\newblock \emph{Formatting Information: A Beginner's Introduction to
Typesetting with LaTeX2}.
\newblock 2002.
- \newblock (Available from CTAN in
- \url{/info/beginlatex})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/beginlatex/})
\begin{comment}
\bibitem[Fra00]{CROP}
@@ -36493,22 +36970,32 @@ I.~D. Faux and M.~J. Pratt.
David M.~Jones.
\newblock \emph{A new implementation of LaTeX's indexing commands}.
\newblock September, 1995.
- \newblock (Available from CTAN in \url{/macros/latex/contrib/camel})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/camel})
%%% keep
\bibitem[Keh98]{XINDY}
Roger Kehr.
\newblock \emph{xindy: A flexible indexing system}.
\newblock February, 1998.
- \newblock (Available from CTAN in \url{/indexing/xindy})
+ \newblock (Available from CTAN via \CTANurl{/indexing/xindy/})
%%% keep
\bibitem[Ker07]{XCOLOR}
Uwe Kern.
\newblock \emph{Extending LaTeX's color facilities: the xcolor package}.
\newblock January, 2007.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/xcolor})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/xcolor/})
+
+%%% keep, moved herer /daleif 2020/09/28
+\bibitem[Kha10]{BIDI} Vafa
+ Khalighi.
+ \newblock \emph{The \textsf{Bidi} package}.
+ \newblock 2010. \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/bidi/})
+
+
%%% keep
\bibitem[Knu84]{TEXBOOK}
@@ -36550,7 +37037,8 @@ I.~D. Faux and M.~J. Pratt.
Leslie Lamport, Victor Eijkhout and Johannes Braams.
\newblock \emph{NTG document classes for LaTeX version 2e}.
\newblock June, 2004.
- \newblock (Available from CTAN in \url{/macros/latex/contrib/ntg})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/ntgclass/})
\begin{comment}
\bibitem[LMB99]{CLASSES}
@@ -36585,8 +37073,8 @@ I.~D. Faux and M.~J. Pratt.
Philipp Lehman.
\newblock \emph{The Font Installation Guide}.
\newblock December 2004.
- \newblock (Available from CTAN in
- \url{/info/Type1fonts/fontinstallationguide})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/Type1fonts/fontinstallationguide})
%%% keep
\bibitem[Leu92]{LEUNEN92}
@@ -36609,29 +37097,32 @@ I.~D. Faux and M.~J. Pratt.
F.~W.~Long.
\newblock \emph{multind}.
\newblock August, 1991.
- \newblock (Available from CTAN as \url{/macros/latex209/contrib/misc/multind.sty})
+ \newblock (Available from CTAN as
+ \CTANurl{/macros/latex209/contrib/misc/multind.sty})
%%% keep
\bibitem[Mad06]{CHAPSTYLES}
Lars Madsen.
\newblock \emph{Various chapter styles for the memoir class}.
\newblock July, 2006.
- \newblock (Available from CTAN in \url{/info/latex-samples/MemoirChapStyles})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/latex-samples/MemoirChapStyles/})
%%% keep
\bibitem[Mad07]{MEMEXSUPP}
Lars Madsen.
\newblock \emph{The Memoir Experimental Support Package}.
\newblock 2007.
- \newblock (Available from CTAN in \url{/macros/latex/contrib/memexsupp})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/memexsupp/})
%%% keep
\bibitem[McD98]{SECTSTY}
Rowland McDonnell.
\newblock \emph{The sectsty package}.
\newblock November, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/secsty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/sectsty/})
\begin{comment}
\bibitem[McL75]{MCLEAN75}
@@ -36674,23 +37165,23 @@ I.~D. Faux and M.~J. Pratt.
Frank Mittelbach.
\newblock \emph{An environment for multicolumn output}.
\newblock January, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN (the \texttt{multicol} package) via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[MC98]{ARRAY}
Frank Mittelbach and David Carlisle.
\newblock \emph{A new implementation of LaTeX's tabular and array environment}. \newblock May, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN (the \texttt{array} package) via
+ \CTANurl{/macros/latex/required/tools/})
%%% keep
\bibitem[MC00]{FIXLTX2E}
Frank Mittelbach and David Carlisle.
\newblock \emph{The fixltx2e package}.
\newblock September, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/base})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/base/})
%%% keep
\bibitem[MG\textsuperscript{+}04]{COMPANION}
@@ -36710,7 +37201,7 @@ I.~D. Faux and M.~J. Pratt.
\LMnote{2010/02/08}{Added from the main bib file}
\bibitem[Mor85]{MORTENSON85}
Michael~E. Mortenson.
-\newblock {\em Geometric Modeling}.
+\newblock \emph{Geometric Modeling}.
\newblock John Wiley \& Sons, 1985.
@@ -36719,31 +37210,31 @@ Michael~E. Mortenson.
Rolf Niespraschk and Hubert G\"{a}\ss{}lein.
\newblock \emph{The sidecap package}.
\newblock June, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/sidecap})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/sidecap/})
%%% keep
\bibitem[Oet]{LSHORT}
Tobias Oetiker.
\newblock \emph{The Not So Short Introduction to LaTeX2e}.
- \newblock (Available from CTAN in
- \url{/info/lshort/english})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/lshort/})
%%% keep
\bibitem[Oos96]{FANCYHDR}
Piet van Oostrum.
\newblock \emph{Page Layout in LaTeX}.
\newblock June, 1996.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/fancyhdr})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/fancyhdr/})
%%% keep
\bibitem[Pak01]{SYMBOLS}
Scott Pakin.
\newblock \emph{The Comprehensive LaTeX Symbol List}.
\newblock July, 2001.
- \newblock (Available from CTAN in
- \url{/info/symbols/comprehensive})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/symbols/comprehensive/})
%%% keep
\bibitem[dP84]{PARVILLE84}
@@ -36758,7 +37249,7 @@ Michael~E. Mortenson.
\newblock \emph{BibTeXing}.
\newblock February, 1988.
\newblock (Available from CTAN as
- \url{/bibliography/bibtex/distribs/doc/btxdoc.tex})
+ \CTANurl{/bibliography/bibtex/distribs/doc/btxdoc.tex})
%%% keep
\bibitem[Pat88b]{BIBTEXHACK}
@@ -36766,7 +37257,7 @@ Michael~E. Mortenson.
\newblock \emph{Designing BibTeX Styles}.
\newblock February, 1988.
\newblock (Available from CTAN as
- \url{/bibliography/bibtex/distribs/doc/btxhak.tex})
+ \CTANurl{/bibliography/bibtex/distribs/doc/btxhak.tex})
%%% keep
\bibitem[Pug02]{MATHPAZO}
@@ -36774,32 +37265,32 @@ Michael~E. Mortenson.
\newblock \emph{The Pazo Math fonts for mathematical typesetting
with the Palatino fonts}.
\newblock May, 2002.
- \newblock (Available from CTAN in
- \url{/fonts/mathpazo})
+ \newblock (Available from CTAN via
+ \CTANurl{/fonts/mathpazo/})
%%% keep
\bibitem[Rahtz01]{NAMEREF}
Sebastian Rahtz.
\newblock \emph{Section name references in LaTeX}.
- \newblock January, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/hyperref})
+ \newblock January, 2001.
+ \newblock (Available from CTAN (the \texttt{nameref} package) via
+ \CTANurl{/macros/latex/contrib/hyperref/})
%%% keep
\bibitem[Rahtz02]{HYPERREF}
Sebastian Rahtz.
\newblock \emph{Hypertext marks in LaTeX}.
- \newblock May, 2002.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/hyperref})
+ \newblock May, 2002. Now maintained and frequently updated by Heiko Oberdiek.
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/hyperref/})
%%% keep
\bibitem[Rec97]{EPSLATEX}
Keith Reckdahl.
\newblock \emph{Using Imported Graphics in LaTeX2e}.
- \newblock December, 1997.
- \newblock (Available from CTAN as
- \url{/info/epspatex.ps} or \url{/info/epslatex.pdf})
+ \newblock December, 1997. Updated in 2006.
+ \newblock (Available from CTAN via
+ \CTANurl{/info/epslatex.pdf})
\begin{comment}
\bibitem[Reh72]{REHE72}
@@ -36861,8 +37352,8 @@ Michael~E. Mortenson.
\newblock \emph{A New Implementation of LaTeX's verbatim
and verbatim* Environments}.
\newblock December, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/required/tools})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
\begin{comment}
\bibitem[Sch97]{SCHRIVER97}
@@ -36888,7 +37379,8 @@ Martin Scharrer,
\bibitem[Sch09]{svn-multi}
Martin Scharrer,
\newblock\emph{The \textsf{svn-multi} package}, 2009.
-\newblock (Available from CTAN in \url{/macros/latex/contrib/svn-multi/})
+\newblock (Available from CTAN via
+\CTANurl{/macros/latex/contrib/svn-multi/})
%%% keep
@@ -36904,8 +37396,8 @@ Martin Scharrer,
Nicola L. C. Talbot.
\newblock \emph{datetime.sty: Formatting Current Date and Time}.
\newblock December, 2006.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/datetime})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/datetime/})
%%% keep
\bibitem[Thi98]{ORNAMENTAL}
@@ -36926,8 +37418,8 @@ Martin Scharrer,
Kresten Krab Thorup, Frank Jensen (and Chris Rowley).
\newblock \emph{The calc package --- Infix notation arithmetic in LaTeX}.
\newblock August, 2005.
- \newblock (Available from CTAN in
- \url{/macros/latex/required})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/required/tools/})
\begin{comment}
\bibitem[Tin63]{TINKER63}
@@ -36941,8 +37433,8 @@ Martin Scharrer,
Geoffrey Tobin.
\newblock \emph{setspace.sty}.
\newblock December, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/setspace})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/setspace/})
%%% keep
\bibitem[Tsc91]{TSCHICHOLD91}
@@ -36964,7 +37456,7 @@ Martin Scharrer,
\newblock \emph{The geometry package}.
\newblock November, 1999.
\newblock (Available from CTAN in
- \url{/macros/latex/contrib/geometry})
+ \CTANurl{/macros/latex/contrib/geometry/})
\begin{comment}
@@ -36979,7 +37471,8 @@ Martin Scharrer,
\bibitem[Wil00]{CATALOGUE}
Graham Williams.
\newblock \emph{The TeX Catalogue}.
- \newblock (Latest version on CTAN as \url{/help/Catalogue/catalogue.html})
+ \newblock (Latest version on CTAN as
+ \CTANurl{/help/Catalogue/catalogue.html})
%%% keep
\bibitem[Wil93]{ADRIANWILSON93}
@@ -36994,24 +37487,24 @@ Martin Scharrer,
Peter Wilson.
\newblock \emph{The tocvsec2 package}.
\newblock January, 1999.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/tocvsec2})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/tocvsec2/})
%%% keep
\bibitem[Wil00a]{EPIGRAPH}
Peter Wilson.
\newblock \emph{The epigraph package}.
\newblock February, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/epigraph})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/epigraph/})
%%% keep
\bibitem[Wil00b]{ISOCLASS}
Peter Wilson.
\newblock \emph{LaTeX files for typesetting ISO standards}.
\newblock February, 2000.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/isostds/iso})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/isostds/iso/})
%%% keep
\bibitem[Wil00c]{NEXTPAGE}
@@ -37019,7 +37512,7 @@ Martin Scharrer,
\newblock \emph{The nextpage package}.
\newblock February, 2000.
\newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/nextpage.sty})
+ \CTANurl{/macros/latex/contrib/misc/nextpage.sty})
\begin{comment}
\bibitem[Wil00d]{NEEDSPACE}
@@ -37035,26 +37528,27 @@ Martin Scharrer,
Peter Wilson.
\newblock \emph{The xtab package}.
\newblock April 2000.
- \newblock (Available from CTAN in
- \texttt{macros/latex/contrib/xtab})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/xtab})
%%% keep
\bibitem[Wil01a]{ABSTRACT}
Peter Wilson.
\newblock \emph{The abstract package}.
\newblock February, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/abstract})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/abstract/})
-%%% keep
+\begin{comment}
+%%% it no longer exist
+\LMnote{2010/09/28}{Removed as it no longer exist}
\bibitem[Wil01b]{CHNGPAGE}
Peter Wilson.
- \newblock \emph{The chngpage package}.
+ \newblock \emph{The changepage package}.
\newblock February, 2001.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/chngpage.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/changepage/})
-\begin{comment}
\bibitem[Wil01c]{APPENDIX}
Peter Wilson.
\newblock \emph{The appendix package}.
@@ -37068,48 +37562,48 @@ Martin Scharrer,
Peter Wilson.
\newblock \emph{The ccaption package}.
\newblock March, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/ccaption})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/ccaption/})
%%% keep
\bibitem[Wil01e]{CHNGCNTR}
Peter Wilson.
\newblock \emph{The chngcntr package}.
\newblock April, 2001.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/chngcntr.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/chngcntr/})
%%% keep
\bibitem[Wil01f]{HANGING}
Peter Wilson.
\newblock \emph{The hanging package}.
\newblock March, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/hanging})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/hanging/})
%%% keep
\bibitem[Wil01g]{TITLING}
Peter Wilson.
\newblock \emph{The titling package}.
\newblock March, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/titling})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/titling/})
%%% keep
\bibitem[Wil01h]{TOCBIBIND}
Peter Wilson.
\newblock \emph{The tocbibind package}.
\newblock April, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/tocbibind})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/tocbibind/})
%%% keep
\bibitem[Wil01i]{TOCLOFT}
Peter Wilson.
\newblock \emph{The tocloft package}.
\newblock April, 2001.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/tocloft})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/tocloft/})
\begin{comment}
@@ -37142,16 +37636,16 @@ Martin Scharrer,
\newblock \emph{The layouts package}
\newblock November, 2003.
\newblock (Available from CTAN in
- \url{/macros/latex/contrib/layouts})
+ \CTANurl{/macros/latex/contrib/layouts/})
%%% keep
\bibitem[Wil03b]{LEDMAC}
Peter Wilson.
- \newblock \emph{ledmac: A presumptuous attempt to port EDMAC and TABMAC
- to LaTeX}
+ \newblock \emph{ledmac: A presumptuous attempt to port EDMAC and
+ TABMAC to LaTeX}
\newblock November, 2003.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/ledmac})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/ledmac/})
\begin{comment}
\bibitem[Wil04a]{GLISTER3}
@@ -37164,8 +37658,8 @@ Martin Scharrer,
\LMnote{2010/02/08}{Added from the main bib file}
\bibitem[Wil04a]{BEZ123}
Peter Wilson.
-\newblock {\em The bez123 and multiply packages}, April 2004.
-\newblock (Available from CTAN in \url{/macros/latex/contrib/bez123})
+\newblock \emph{The bez123 and multiply packages}, April 2004.
+\newblock (Available from CTAN in \CTANurl{/macros/latex/contrib/bez123/})
%%% keep
@@ -37173,8 +37667,8 @@ Peter Wilson.
Peter Wilson.
\newblock \emph{The pagenote package}
\newblock September, 2004.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/pagenote})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/pagenote/})
@@ -37184,7 +37678,8 @@ Peter Wilson.
Peter Wilson.
\newblock \emph{Some Examples of Title Pages}.
\newblock Herries Press, 2007.
- \newblock (Available from CTAN as \url{info/latex-samples/titlepages.pdf})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/latex-samples/TitlePages/})
%%% keep
\begin{comment}
@@ -37196,14 +37691,18 @@ Peter Wilson.
\end{comment}
%%% keep
-%%% keep
+%%% keep, outcommented, as we do not use an addendum at the moment
+\LMnote{2010/09/28}{out commented as we do not provide one at the moment}
+\begin{comment}
\bibitem[Wil07d]{MEMADD}
Peter Wilson.
- \newblock \emph{ADDENDUM: The Memoir Class for Configurable Typesetting --- User Guide}
+ \newblock \emph{ADDENDUM: The Memoir Class for Configurable
+ Typesetting --- User Guide}
\newblock November, 2007.
\newblock (Available from CTAN in
\url{/macros/latex/contrib/memoir})
-
+\end{comment}
+
%%% keep
\bibitem[Wil07e]{GLISTER07}
Peter Wilson.
@@ -37221,8 +37720,8 @@ Peter Wilson.
Peter Wilson.
\newblock \emph{The changepage package}.
\newblock March, 2008.
- \newblock (Available from CTAN as
- \url{/macros/latex/contrib/misc/changepage.sty})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/changepage/})
%%% keep
\bibitem[Wil08b]{GLISTER08}
@@ -37234,29 +37733,31 @@ Peter Wilson.
Peter Wilson.
\newblock \emph{The fonttable package}
\newblock April, 2009.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/fonttable})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/fonttable/})
\bibitem[Wil09b]{MEMCODE}
Peter Wilson (with the assistance of Lars Madsen).
- \newblock \emph{The \ltx\ memoir class for configurable book typesetting: source code}
+ \newblock \emph{The \ltx\ memoir class for configurable book
+ typesetting: source code}
\newblock July, 2009.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/memoir})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/memoir/})
\bibitem[Wil07c]{MEMMAN}
-Peter Wilson.
- \newblock \emph{The Memoir Class for Configurable Typesetting --- User Guide}
- \newblock August, 2009.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/memoir})
+Peter Wilson (with the assistance of Lars Madsen).
+ \newblock \emph{The Memoir Class for Configurable Typesetting ---
+ User Guide}
+ \newblock August, 2009. Regularly updated.
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/memoir/})
\bibitem[Wil09d]{MEMDESIGN}
Peter Wilson.
\newblock \emph{A Few Notes on Book Design}
\newblock August, 2009.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/memoir})
+ \newblock (Available from CTAN via
+ \CTANurl{/info/memdesign/})
%%% keep
@@ -37290,10 +37791,10 @@ David Wishart.
\bibitem[Zan98]{FANCYBOX}
Timothy Van Zandt.
\newblock \emph{Documentation for fancybox.sty: Box tips and tricks for
- LaTeX},
+ LaTeX},
\newblock November, 1998.
- \newblock (Available from CTAN in
- \url{/macros/latex/contrib/fancybox})
+ \newblock (Available from CTAN via
+ \CTANurl{/macros/latex/contrib/fancybox/})
\begin{comment}
\bibitem[Zap00]{ZAPF00}
diff --git a/Master/texmf-dist/doc/latex/memoir/memsty.sty b/Master/texmf-dist/doc/latex/memoir/memsty.sty
index ac6ce2a46b2..f829b130c4b 100644
--- a/Master/texmf-dist/doc/latex/memoir/memsty.sty
+++ b/Master/texmf-dist/doc/latex/memoir/memsty.sty
@@ -1066,6 +1066,22 @@ it to use the new width for the margin par}
}{}
+%%% CTAN links
+\providecommand\CTANurl{}
+\AtBeginDocument{
+ \@ifpackageloaded{hyperref}{
+ \renewcommand*\CTANurl[1]{\href{http://mirror.ctan.org#1}{\nolinkurl{#1}}}
+ }{
+ \renewcommand*\CTANurl[1]{\url{#1}}
+ }
+}
+
+
+\newcommand\reimplemented[2]{%
+ \textit{Reimplemented, #1\footnote{#2}}
+ \fancybreak{}
+}
+
\typeout{End memsty.sty}
\endinput
diff --git a/Master/texmf-dist/source/latex/memoir/memoir.dtx b/Master/texmf-dist/source/latex/memoir/memoir.dtx
index 7c73b4e7277..a3d9f3a9162 100644
--- a/Master/texmf-dist/source/latex/memoir/memoir.dtx
+++ b/Master/texmf-dist/source/latex/memoir/memoir.dtx
@@ -4,7 +4,7 @@
% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
% Maintainer: Lars Madsen (daleif+memoir at imf dot au dot dk)
% Copyright 2001--2010 Peter R. Wilson
-%
+%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any
@@ -19,7 +19,7 @@
% This work consists of the files listed in the README file.
%
% \fi
-% \CheckSum{29717}
+% \CheckSum{30114}
%
% \changes{v0.1}{2001/05/20}{First public alpha release}
% \changes{v0.2}{2001/06/03}{First beta release}
@@ -147,6 +147,7 @@
% \def\fileversion{v3.6e} \def\filedate{2010/08/20}
% \def\fileversion{v3.6f} \def\filedate{2010/08/22}
% \def\fileversion{v3.6g} \def\filedate{2010/09/19}
+% \def\fileversion{v3.6h} \def\filedate{2011/02/13}
% \title{The LaTeX \Lpack{memoir} class for configurable book
% typesetting: Source code\thanks{This
% file (\texttt{\dtxfile}) has version number \fileversion, last revised
@@ -294,6 +295,8 @@
\newcommand*{\ctt}{\textsc{ctt}} % comp.text.tex
\newenvironment{PW}{\em}{}
\newcommand*{\theTeXbook}{\textit{The \TeX book}}
+\let\oldllap\llap
+\def\llap#1{\oldllap{#1\quad}} % might be evil
% \end{macrocode}
% We want the full details printed.
% \begin{macrocode}
@@ -374,7 +377,7 @@
% Announce the name, option files and version for LaTeX2e files:
% \begin{macrocode}
%<class>\ProvidesClass{memoir}%
-%<class> [2010/09/19 v3.6g configurable book, report, article document class]
+%<class> [2011/02/13 v3.6h 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}%
@@ -382,7 +385,7 @@
%<11pt>\ProvidesFile{mem11.clo}%
%<11pt> [2008/01/30 v0.3 memoir class 11pt size option]
%<12pt>\ProvidesFile{mem12.clo}%
-%<12pt> [2008/01/30 v0.4 memoir class 12pt size option]
+%<12pt> [2010/10/19 v0.4b memoir class 12pt size option]
%<14pt>\ProvidesFile{mem14.clo}%
%<14pt> [2008/01/30 v0.4 memoir class 14pt size option]
%<17pt>\ProvidesFile{mem17.clo}%
@@ -1598,7 +1601,17 @@
% \begin{macro}{\memRTLvrightskip}
% \begin{macro}{\memRTLraggedright}
% \begin{macro}{\memRTLraggedleft}
-% These are the hooks required to support the \Lpack{bidi} package.
+% \begin{macro}{\memRTLmainraggedright}
+% \begin{macro}{\memRTLmainraggedleft}
+% These are the hooks required to support the \Lpack{bidi} package,
+% plus some we added that \Lpack{bidi} can use. The idea behind the
+% \cs{XmainraggedX} macros are documents fully in RTL mode, then it
+% makes sense to have the raggedness of the header and footer
+% reversed. By default they do what the normally do, but in main RTL
+% mode, \Lpack{bidi} can redefine them to reverse the order of the
+% headers, i.e. the `left' part of the header is typeset as the
+% `right' part.
+% \changes{v3.6h}{2010/10/22}{Added \cs{mem@RTLmainraggedX} macros}
% \begin{macrocode}
\newcommand*{\memRTLleftskip}{\leftskip}
\newcommand*{\memRTLrightskip}{\rightskip}
@@ -1606,6 +1619,8 @@
\newcommand*{\memRTLvrightskip}{\rightskip}
\newcommand*{\memRTLraggedright}{\raggedright}
\newcommand*{\memRTLraggedleft}{\raggedleft}
+\newcommand*{\memRTLmainraggedright}{\raggedright}
+\newcommand*{\memRTLmainraggedleft}{\raggedleft}
% \end{macrocode}
% \end{macro}
@@ -1614,8 +1629,10 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% It is expected that the \Lpack{bidi} package will redefine these as:
+% It is expected that the \Lpack{bidi} package will redefine these as:
% \begin{verbatim}
% \renewcommand*{\memRTLleftskip}{\if@RTL\rightskip\else\leftskip\fi}
% \renewcommand*{\memRTLrightskip}{\if@RTL\leftskip\else\rightskip\fi}
@@ -1623,6 +1640,8 @@
% \renewcommand*{\memRTLvrightskip}{\if@RTL\vleftskip\else\vrightskip\fi}
% \renewcommand*{\memRTLraggedright}{\if@RTL\raggedleft\else\raggedright\fi}
% \renewcommand*{\memRTLraggedleft}{\if@RTL\raggedright\else\raggedleft\fi}
+% \renewcommand*{\memRTLmainraggedright}{\if@RTLmain\raggedleft\else\raggedright\fi}
+% \renewcommand*{\memRTLmainraggedleft}{\if@RTLmain\raggedright\else\raggedleft\fi}
% \end{verbatim}
%
% \section{Declaration of Options} \label{sec:opt}
@@ -3392,6 +3411,7 @@
% font size.
% \changes{v0.11 (mem14.clo)}{2001/10/30}{Changed \cs{headheight} from 16pt to 17.5pt}
% \changes{v0.11 (mem11.clo)}{2002/03/10}{Changed \cs{headheight} from 13pt to 13.6pt}
+% \changes{v0.4b (mem12.clo)}{2010/10/19}{Changed \cs{headheight} from 14pt to 14.5pt}
% \begin{macrocode}
%</class>
%<*9pt|10pt|11pt|12pt|14pt|17pt|20pt|25pt|30pt|36pt|48pt|60pt>
@@ -3414,7 +3434,7 @@
\setlength\footskip{.38in}
%</11pt>
%<*12pt>
-\setlength\headheight{14\p@}
+\setlength\headheight{14.5\p@}
\setlength\headsep{.275in}
\setlength\topskip{12\p@}
\setlength\footskip{30\p@}
@@ -5608,12 +5628,12 @@
\newcommand{\makeheadrule}[3]{%
\mem@ps@safe@change{#1}%
\@namedef{#1headrule}{%
- \hrule\@width #2\@height #3 \vskip-#3}}
+ \@nameuse{#1headruleprefix}\hrule\@width #2\@height #3 \vskip-#3}}
\newcommand{\makefootrule}[4]{%
\mem@ps@safe@change{#1}%
\@namedef{#1footrule}{%
- \vskip-#4\vskip-#3
- \hrule\@width #2\@height #3 \vskip #4}}
+ \vskip-#4\vskip-#3%
+ \@nameuse{#1footruleprefix}\hrule\@width #2\@height #3 \vskip #4}}
% \end{macrocode}
% \end{macro}
@@ -5622,6 +5642,19 @@
% \end{macro}
% \end{macro}
%
+% \changes{v3.6h}{2011/01/25}{Added this macro}
+% \begin{macro}{\makeheadfootruleprefix}
+% We insert a maro at the start of the head and foot rule. By default
+% it does nothing, but it can be ised to specify a different color to
+% the head or foot rules.
+% \begin{macrocode}
+\newcommand\makeheadfootruleprefix[3]{%
+ \@namedef{#1headruleprefix}{#2}%
+ \@namedef{#1footruleprefix}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\makeheadposition}
% \cs{makeheadposition}\marg{style}\marg{eheadpos}\marg{oheadpos}\marg{efootpos}\marg{ofootpos}
% specifies the horizontal positioning of the even and odd headers and footers,
@@ -5730,9 +5763,109 @@
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\mem@maxheadheight}
+% \begin{macro}{\mem@maxfootheight}
+% \begin{macro}{\mem@sayonce@head}
+% \begin{macro}{\mem@sayonce@foot}
+% \begin{macro}{\mem@hf@measure@vbox}
+% \begin{macro}{\mem@toolarge@header@message}
+% \begin{macro}{\mem@toolarge@footer@message}
+% \changes{v3.6h}{2010/10/21}{Added the above seven macros to be able
+% to measure the headers and warn users if their design takes them outside.}
+% \verb?\mem@maxheadheight? and \verb?\mem@maxfootheight? globally
+% stores the max measured head and foot heights. Actually the footer
+% ought to be measuring the total height and depth. We may add this
+% later. The two XsayonceX macros are toggles used such that we can
+% add a warning at only the first bad head/foot. We repeat the message
+% at the end of the document.
+% \begin{macrocode}
+\newlength\mem@maxheadheight
+\newlength\mem@maxfootheight
+\newcommand\mem@sayonce@head{00}
+\newcommand\mem@sayonce@foot{00}
+% \end{macrocode}
+% This is the work horse of this construction. First argument is the
+% height to compare against, second should be \texttt{head} or
+% \texttt{foot}, third is the warning message, and the fourth is the
+% material to be measured. The idea to taken from \Lpack{fancyhdr}.
+% \begin{macrocode}
+\newcommand\mem@hf@measure@vbox[4]{%
+ \setbox0\vbox{#4}%
+ \ifdim\ht0>#1\relax%
+ \setlength\@tempdima{\@nameuse{mem@max#2height}}%
+ \ifdim\ht0>\@tempdima\relax%
+ \expandafter\global\@nameuse{mem@max#2height}=\ht0%
+ \expandafter\if\@nameuse{mem@sayonce@#2}\relax%
+ \@memwarn{#3}%
+ \global\@namedef{mem@sayonece@#2}{01}%
+ \fi%
+ \fi%
+ \fi%
+ \box0%
+}
+% \end{macrocode}
+% Warning messages
+% \begin{macrocode}
+\newcommand\mem@toolarge@header@message{%
+ The material used in the headers is too large^^J%
+ (\the\mem@maxheadheight) for the given head height
+ (\the\headheight), it is recommended to^^J%
+ either increase the head height or redesign the header^^J%
+ (in both cases you will find help in the memoir manual).%
+}
+\newcommand\mem@toolarge@footer@message{%
+ The material used in the footer is too large^^J%
+ (\the\mem@maxfootheight) for the given foot skip
+ (\the\footskip), it is recommended to^^J%
+ either increase the foot skip or redesign the fotoer^^J%
+ (in both cases you will find help in the memoir manual).%
+}
+% \end{macrocode}
+% To make things easier to read we make two short cut macros
+% \begin{macrocode}
+\newcommand\mem@hvboxm[1]{%
+ \mem@hf@measure@vbox\headheight{head}\mem@toolarge@header@message{#1}}
+\newcommand\mem@fvboxm[1]{%
+ \mem@hf@measure@vbox\footskip{foot}\mem@toolarge@footer@message{#1}}
+% \end{macrocode}
+% Make sure to repeat the message at the end of the document. This
+% will show the max value up until the point where the end of document
+% stuff is executed.
+% \begin{macrocode}
+\AtEndDocument{
+ \ifdim\mem@maxheadheight>\headheight
+ \@memwarn{\mem@toolarge@header@message}
+ \fi
+ \ifdim\mem@maxfootheight>\footskip
+ \@memwarn{\mem@toolarge@footer@message}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
+% \begin{macro}{\mem@ps@entry@wrap}
+% \changes{v3.6h}{2010/10/06}{Added this to help bidi control the
+% typesetting direction of the header and footer}
+% This macro is wrapped around eash entry in the headers and
+% footers. By default it does nothing, but can be redefined by
+% packages such as \Lpack{bidi} to control the typesetting direction
+% in the header. Bidi for example has two modes such that headers
+% can be RTL locally while the header stay at LTR. If this macro is
+% changed, it will be a good idea to coordinate it with the bidi
+% maintainer.
+% \begin{macrocode}
+\newcommand\mem@ps@entry@wrap{}
+% \end{macrocode}
+%
+% \end{macro}
% \begin{macro}{\mem@ps@HLH}
-% \changes{v3.6d}{20101/06/24}{Factored \cs{makepagestyle}}
+% \changes{v3.6d}{201010/06/24}{Factored \cs{makepagestyle}}
% The entries in the header used in \cs{makepagestyle} (below) are
% more or less the same. It depends on \emph{head/foot},
% \emph{odd/even} and a shorter \emph{o/e}. So to make the code more
@@ -5750,22 +5883,30 @@
% \end{macrocode}
% In footers the line goes before the text, so we test and add the
% footline if \texttt{\#2} equals \texttt{foot}.
-% \begin{macrocode}
- \vbox{\nametest{#2}{foot}\ifsamename\@nameuse{#1#2rule}\fi%
+% \changes{v3.6h}{2010/10/06}{added the entry wrapper}
+% \changes{v3.6h}{201010/10/21}{Added the header/footer measuring feature.}
+% For the header/footer measuring stuff we look at \#2 and make the
+% suiting macro from that value.
+% \changes{v3.6h}{2010/10/22}{Added \cs{memRTLmainraggedX} macros such
+% that \Lpack{bidi} can also change the order of the header if RTL is
+% the main direction of the document.}
+% \begin{macrocode}
+ \nametest{#2}{head}\ifsamename\let\mem@hfboxer\mem@hvboxm\else\let\mem@hfboxer\mem@fvboxm\fi%
+ \mem@hfboxer{\nametest{#2}{foot}\ifsamename\@nameuse{#1#2rule}\fi%
\hbox{%
\rlap{%
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
- \raggedright\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2l}%
+ \memRTLmainraggedright\@nameuse{#1ps#2strut}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2l}}%
\@nameuse{#1ps#2strut}}}\hfill
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
\centering\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2c}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2c}}%
\@nameuse{#1ps#2strut}}\hfill
\llap{%
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
- \raggedleft\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2r}%
+ \memRTLmainraggedleft\@nameuse{#1ps#2strut}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2r}}%
\@nameuse{#1ps#2strut}}}%
}%
% \end{macrocode}
@@ -5925,14 +6066,16 @@
\makeevenfoot{#1}{}{}{}%
\makeoddfoot{#1}{}{}{}%
% \end{macrocode}
-% Make the headers/footers the same width as the \cs{textwidth}, center
-% them, and ensure
-% that the rules have zero height so that they will be invisible.
+% Make the headers/footers the same width as the \cs{textwidth},
+% center them, and ensure that the rules have zero height so that they
+% will be invisible. Also initialize the head/foot prefixes.
+% \changes{v3.6h}{2011/01/25}{Added the \cs{makeheadfootruleprefix}}
% \begin{macrocode}
\makerunningwidth{#1}{\textwidth}%
\makeheadposition{#1}{}{}{}{}%
\makeheadrule{#1}{\textwidth}{0pt}%
\makefootrule{#1}{\textwidth}{\footruleheight}{\footruleskip}%
+ \makeheadfootruleprefix{#1}{}{}
% \end{macrocode}
% Set the initial vertical header and footer positions.
% \changes{v1.6180339c}{2009/01/13}{Added head/foot position initialisation}
@@ -6012,10 +6155,13 @@
\@namedef{#1evenfpr}{\@nameuse{#2evenfpr}}%
\@namedef{#1oddfpr}{\@nameuse{#2oddfpr}}%
% \end{macrocode}
-% Specify the head and foot rules.
+% Specify the head and foot rules and the prefixes.
+% \changes{v3.6h}{2011/01/25}{Added the \cs{makeheadfootruleprefix}}
% \begin{macrocode}
\@namedef{#1headrule}{\@nameuse{#2headrule}}%
\@namedef{#1footrule}{\@nameuse{#2footrule}}%
+ \@namedef{#1headruleprefix}{\@nameuse{#2headruleprefix}}%
+ \@namedef{#1footruleprefix}{\@nameuse{#2footruleprefix}}%
% \end{macrocode}
% \changes{v3.6d}{2010/06/24}{Added strut copying to \cs{copypagestyle}}
% And remember the struts
@@ -8596,9 +8742,15 @@
% \changes{v1.2}{2002/07/27}{New optarg in \cs{chapter} for short heading}
% \changes{v1.618}{2005/09/03}{Made article chapter start on a newline (mempatch v3.5)}
% \changes{v3.6e}{2010/07/16}{Factored out the \cs{@afterindentfalse}}
+% \changes{v3.6h}{2011/02/07}{Added the chapter block}
% \begin{macrocode}
\newcommand\chapter{%
- \ifartopt\par\else
+% \end{macrocode}
+% The block macro can be defined to execute a \cs{FloatBlock} when we
+% are in article mode. Outside article mode \cs{clearforchapter} is
+% expected to be used for this.
+% \begin{macrocode}
+ \ifartopt\par\@nameuse{chapterblock}\else
\clearforchapter
\thispagestyle{chapter}
\global\@topnum\z@
@@ -9822,6 +9974,10 @@
% \begin{macrocode}
\renewcommand{\@startsection}[6]{%
% \end{macrocode}
+% \changes{v3.6h}{2011/02/07}{Added float block hook}
+% \begin{macrocode}
+ \@nameuse{#1block}%
+% \end{macrocode}
% Do raggedbottom stuff.
% \begin{macrocode}
\ifraggedbottomsection\if@nobreak\else
@@ -10399,10 +10555,10 @@
% Donald Arseneau said that \cs{plainfancybreak} guessed at the amount
% of space available and gave code based on a modified output routine
% to make it more robust. The following code is based on that thread.
-% \changes{v1.3}{2002/11/14}{Added lots of code for new \cs{fpbreak}}
+% \changes{v1.3}{2002/11/14}{Added lots of code for new \cs{pfbreak}}
%
-% \begin{macro}{\pen@ltyabovefpbreak}
-% \begin{macro}{\pen@ltybelowfpbreak}
+% \begin{macro}{\pen@ltyabovepfbreak}
+% \begin{macro}{\pen@ltybelowpfbreak}
% Penalities for communication with the output routine.
% \begin{macrocode}
\newcommand*{\pen@ltyabovepfbreak}{2}
@@ -10486,6 +10642,8 @@
%
% \begin{macro}{\@pfbreakgap}
% Unstarred version of \cs{pfbreak}.
+% \changes{v3.6h}{2010/10/06}{fixed \cs{@pfbreakgab} kudos to DA for
+% the fix}
% \begin{macrocode}
\newcommand{\@pfbreakgap}{%
\par {%
@@ -10501,6 +10659,7 @@
\advance\skip@ -1\skip@ \advance\skip@ 1\pfbreakskip
\fi
\penalty\pen@ltyabovepfbreak
+ \prevdepth\z@ % added
\vskip\skip@
\penalty\pen@ltybelowpfbreak
}
@@ -10512,6 +10671,8 @@
%
% \begin{macro}{\@spfbreakgap}
% Starred version of \cs{pfbreak}.
+% \changes{v3.6h}{2010/10/06}{fixed \cs{@pfbreakgab} kudos to DA for
+% the fix}
% \begin{macrocode}
\newcommand{\@spfbreakgap}{%
\par {%
@@ -10527,6 +10688,7 @@
\advance\skip@ -1\skip@ \advance\skip@ 1\pfbreakskip
\fi
\penalty\pen@ltyabovepfbreak
+ \prevdepth\z@ % added
\vskip\skip@
\penalty\pen@ltybelowpfbreak
}
@@ -18081,10 +18243,14 @@
% \begin{environment}{X}
% \begin{environment}{X*}
% Finally define the new float environment, in both normal and starred
-% forms.
+% forms. We also al an internal macro that can be used to globally
+% adjust floats, e.g. making all tables in small size.
+% \changes{v3.6h}{2011/02/01}{Added the calling of the adjustment
+% macros, and changed the handling of optional arguments a little.}
% \begin{macrocode}
- \newenvironment{#2}{\@float{#2}}{\end@float}
- \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}
+ \newenvironment{#2}[1][\@nameuse{fps@#2}]{\@float{#2}[##1]\@nameuse{#2adjustment}}{\end@float}
+ \newenvironment{#2*}[1][\@nameuse{fps@#2}]{%
+ \@dblfloat{#2}[##1]\@nameuse{#2adjustment}\@nameuse{#2*adjustment}}{\end@dblfloat}
% \end{macrocode}
% \end{environment}
% \end{environment}
@@ -18107,6 +18273,19 @@
% \end{macrocode}
% \end{macro}
+% \changes{v3.6h}{2011/02/01}{Added \cs{setfloatadjustment}}
+% \begin{macro}{\setfloatadjustment}
+% \cs{setfloatadjustment}\marg{float}\marg{code} can be used to
+% globally add internal adjustments to all floats of a certain
+% type. For example to typeset the contents of all tables in
+% \cs{small} use \verb|\setfloatadjustment{table}{\small}|.
+% \begin{macrocode}
+\newcommand*\setfloatadjustment[2]{\@namedef{#1adjustment}{#2}}
+
+% \end{macrocode}
+%
+% \end{macro}
+%
%
% To define subcaptions for use in a new float environment, say \texttt{fenv}, the
% following macros must be defined~\cite{SUBFIGURE}:
@@ -18238,6 +18417,153 @@
% \end{macro}
% \end{macro}
%
+% \changes{v3.6h}{2011/02/01}{Added \cs{FloatBlock}}
+% \subsubsection{Float blockage}
+%
+% This is basically a slightly modified copy of \cs{FloatBarrier} from
+% the \Lpack{placeins} package by Donald Arseneau, renamed such that
+% both can be used in the same document. We could have emulated the
+% \Lpack{placeins} package, but people might use it with options, so,
+% since the code is so short we just copy it. Kudos to Donald Arseneau.
+% For more defaults see
+% \cite{PLACEINS}.
+% \begin{macro}{\FloatBlock}
+% \begin{macro}{\FloatBlockAllowAbove}
+% \begin{macro}{\FloatBlockAllowBelow}
+% The two \cs{XAllowY} macros is our way of supporting the
+% \Lpack{placeins} package options.
+% \begin{macrocode}
+\def\mem@fb@botlist{\@botlist}
+\def\mem@fb@topblock{\suppressfloats[t]}
+\def\FloatBlock{\par\begingroup \let\@elt\relax
+ \edef\@tempa{\mem@fb@botlist\@deferlist\@dbldeferlist}%
+ \ifx\@tempa\@empty
+ \else
+ \ifx\@fltovf\relax % my indicator of recursion
+ \if@firstcolumn
+ \clearpage
+ \else
+ \null\newpage\FloatBlock
+ \fi
+ \else
+ \newpage \let\@fltovf\relax
+ \FloatBlock % recurse once only
+ \fi\fi \endgroup
+ \mem@fb@topblock}
+\newcommand*\FloatBlockAllowAbove{\def\mem@fb@topblock{}}
+\newcommand*\FloatBlockAllowBelow{\def\mem@fb@botlist{}}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\setFloatBlockFor}
+% This can be used to add \cs{FloatBLock} into various sectional
+% macros. Supported: \cs{chapter} (when in article mode) and all
+% sectional macros made using \cs{@startsection}.
+% \begin{macrocode}
+\newcommand\setFloatBlockFor[1]{%
+ \@namedef{#1block}{\FloatBlock}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \subsubsection{Margin floats}
+%
+% The next two constructions are inspired by \texttt{tufte-common.def}
+% by Bil Kleb, Bill Wood, and Kevin Godby and provide a manner to
+% insert figures or tables into the margin. Note that the
+% \cs{setfloatadjustment} also applies here.
+% \begin{macro}{\mem@margin@floatbox}
+% Box to save the contents of a margin float in.
+% \begin{macrocode}
+\newsavebox{\mem@margin@floatbox}
+% \end{macrocode}
+% \end{macro}
+% % \begin{environment}{mem@margin@float}
+% \begin{environment}{marginfigure}
+% \begin{environment}{margintable}
+% \begin{macro}{\marginfloatmarginmacro}
+% Since the two environments only differ in `name' a constructor is used.
+% Since these margin floats are wrapped inside another type of float
+% (\cs{marginpar}) they may cause problems when used combined with
+% regular floats (the float order may be wrong). For that reason the
+% margin float throws a \cs{FloatBlock} before issuing the \cs{marginpar}.
+% \begin{macrocode}
+\newcommand\marginfloatmarginmacro{\marginpar}
+\newenvironment{mem@margin@float}[2][-1.2ex]%
+ {\FloatBlock%
+ \begin{lrbox}{\mem@margin@floatbox}%
+ \begin{minipage}{\marginparwidth}%
+ \def\@captype{#2}%
+ \hbox{}\vspace*{#1}%
+ \@nameuse{margin#2adjustment}%
+ \@nameuse{margin#2captionadjustment}%
+ \noindent%
+ }
+ {\end{minipage}%
+ \end{lrbox}%
+ \marginfloatmarginmacro{\usebox{\mem@margin@floatbox}}%
+ }
+% \end{macrocode}
+% The two environment is then just two applications of the
+% constructor. The option can be used to move the margins float up and down.
+% \begin{macrocode}
+\newenvironment{marginfigure}[1][-1.2ex]{%
+ \begin{mem@margin@float}[#1]{figure}}
+ {\end{mem@margin@float}}
+\newenvironment{margintable}[1][-1.2ex]{%
+ \begin{mem@margin@float}[#1]{table}}
+ {\end{mem@margin@float}}
+\setfloatadjustment{marginfigure}{\centering}
+\setfloatadjustment{margintable}{\centering}
+
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \begin{macro}{\setmarginfloatcaptionadjustment}
+% Because of the very narrow margin area, it may be fruitful to
+% reconfigure the caption style when used in a margin float. This can
+% be done globally for all captions (e.g. if all floats are margin
+% floats, or just for margin floats.
+% \begin{macrocode}
+\newcommand*\setmarginfloatcaptionadjustment[2]{%
+ \@namedef{margin#1captionadjustment}{#2}}
+
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.6h}{2011/02/06}{Added these two macros}
+% \begin{macro}{\setmpjustification}
+% \begin{macro}{\mpjustification}
+% Can be just to use and configure a specialized justification. It
+% follows the \verb?\marginpar? placement, and make use of the first
+% argument when at the left of the text block and the other when at
+% the right. It makes use of an internal setting from within
+% \verb?\marginparmargin?, thus that need to have been executed.
+% \begin{macrocode}
+\newcommand\setmpjustification[2]{%
+ \@namedef{mem@mp@justification}{%
+ \ifm@msetmp\else\@memerror{In order to use
+ \string\marginCmdAdjust,^^J%
+ please make sure to specify into which margin the^^J%
+ \string\marginpar\space should go, using \string\marginparmargin}{}\fi
+ \m@mwhich@margin{\m@mmpar@margin}%
+ \ifmemtortm #2 \else #1\fi}%
+}
+% \end{macrocode}
+% Default value
+% \begin{macrocode}
+\newcommand\mpjustification{%
+ \@nameuse{mem@mp@justification}}
+\setmpjustification{\raggedleft}{\raggedright}
+
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
% \subsection{Captions}
%
% The caption styling
@@ -18314,14 +18640,15 @@
% asking for separate controls for the short and long captions. \\
% \cs{captionstyle}\oarg{short}\marg{normal}.
% \changes{v1.4}{2003/11/22}{Extended \cs{captionstyle} (from patch v1.5)}
+% \changes{v3.6h}{2011/01/16}{Removed sporadic spaces}
% \begin{macrocode}
\renewcommand{\captionstyle}{%
- \@ifnextchar[ {\@memcshort}{\@memcnorm}}
+ \@ifnextchar[{\@memcshort}{\@memcnorm}}
\def\@memcshort[#1]#2{%
- \def\@contcshortstyle{#1}
+ \def\@contcshortstyle{#1}%
\def\@contcstyle{#2}}
\def\@memcnorm#1{%
- \def\@contcshortstyle{#1}
+ \def\@contcshortstyle{#1}%
\def\@contcstyle{#1}}
\captionstyle{}
@@ -18486,9 +18813,11 @@
% and secondly to actually typeset it. To avoid problems caused by
% a footnote in the caption getting processed twice, we temporarily
% disable the expected relevant commands.
+% \changes{v3.6h}{2011/01/20}{Provided the same for \cs{pagentote}}
% \begin{macrocode}
\let\@contfnote\footnote \renewcommand{\footnote}[2][]{}
\let\@contfmark\footnotemark \renewcommand{\footnotemark}[1][]{}
+ \let\@contpnote\pagenote\renewcommand\pagenote[2][]{}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -18498,6 +18827,7 @@
\sbox\@tempboxa{\@contnfont #1\@contdelim \@conttfont #2\@contfinal}
\let\footnote\@contfnote
\let\footnotemark\@contfmark
+ \let\pagenote\@contpnote
% \end{macrocode}
% If the caption is less than one
% line, then the whole caption needs to be centered on the page (otherwise
@@ -18508,9 +18838,12 @@
% \end{macrocode}
% For typesetting at anything other than the normal width, put the caption
% into a \cs{parbox} of the specified width. This must be centered.
+% \changes{v3.6h}{2010/12/06}{Align inner parbox at top
+% line. Vertically centered parbox cause different spacing when
+% \cs{changecaptionwidth} compared when it is not used.}
% \begin{macrocode}
\centering
- \parbox{\@contcwidth}{%
+ \parbox[t]{\@contcwidth}{%
% \end{macrocode}
% Henrik Holm\footnote{Email from \texttt{henrik@tele.ntnu.no} on
% 2002/02/10.} proposed adding the next line to center short, narrow captions.
@@ -24367,6 +24700,8 @@
% \changes{v1.61803398d}{2010/01/25}{\cs{@sidepar} changed to fit the
% interface just added}
% \changes{v1.61803398d}{2010/02/05}{added \cs{sideparform}}
+% \changes{v3.6h}{2010/10/29}{The inserted text should have the same
+% baseline stretch as the rest of the page notes.}
% \begin{macrocode}
\newcommand{\sidepar}{\@dblarg{\@sidepar}}
\long\def\@sidepar[#1]#2{\leavevmode\@bsphack\strut\vadjust{%
@@ -24385,6 +24720,7 @@
\fi
\setbox0=\vtop to 0pt{%
\begin{minipage}[t]{\marginparwidth}%
+ \def\baselinestretch{\m@m@footnote@spacing}%
\sideparform\sideparfont%
\ifmemtortm #2\else #1\fi
\end{minipage}%
@@ -24721,9 +25057,12 @@
% anything; see the code further on instead.
% \changes{v1.61803398d}{2010/02/05}{removed
% \cs{normalfont}\cs{normalsize}, as these are now in the \cs{sidebarfont}}
+% \changes{v3.6h}{2010/10/29}{the text should have the same baseline
+% stretch as the rest of the page notes.}
% \begin{macrocode}
\hsize\sidebarwidth
\@parboxrestore
+ \def\baselinestretch{\m@m@footnote@spacing}%
% \end{macrocode}
% \changes{v1.61803398d}{2010/02/05}{Added margin placement check
% inside \cs{sidebar}}
@@ -25079,29 +25418,18 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@footnotetext}
-% \begin{macro}{\m@mold@footnotetext}
% \begin{macro}{\@footnotemark}
-% We have to modify the kernel's \cs{@footnotetext} and \cs{@footnotemark}
+% We have to modify the kernel's % \cs{@footnotetext} and
+% \cs{@footnotemark}
% to implement the separator.
% \changes{v1.618}{2005/09/03}{Stop body font changes leaking into footnotes (mempatch v3.7)}
% \changes{v1.61803}{2008/01/30}{Keep single spacing in footnotes (mempatch v4.6)}
% \changes{v3.6g}{2010/09/19}{Made the 'single spacing' configurable.}
+% \changes{v3.6h}{2010/20/22}{\cs{@footnotetext} is redefined later
+% on, so the \cs{m@mold@footnotetext} needs to be moved, we also
+% remove this version of \cs{@footnotetext} such that people do
+% not mistake this for the `real' \cs{@footnotetext}}.
% \begin{macrocode}
-\renewcommand{\@footnotetext}[1]{\insert\footins{%
- \def\baselinestretch{\m@m@footnote@spacing}%
- \reset@font%
- \foottextfont
- \@preamfntext
- \hsize\columnwidth
- \protected@edef\@currentlabel{%
- \csname p@footnote\endcsname\@thefnmark}%
- \color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces{\foottextfont #1}%
- \@finalstrut\strutbox}%
- \color@endgroup}\m@mmf@prepare}
-\let\m@mold@footnotetext\@footnotetext
\renewcommand*{\@footnotemark}{%
\leavevmode
\ifhmode
@@ -25116,9 +25444,28 @@
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
+% \begin{macro}{\mem@multiple@marker}
+% \changes{v3.6h}{2010/12/07}{We copy the code above into a utility
+% macro to be used else where} This code is rather handy, so we
+% make an internal macro to reuse it later (for page notes).
+% \begin{macrocode}
+\newcommand{\mem@multiple@marker}[1]{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \m@mmf@check
+ \nobreak
+ \fi
+ #1%
+ \m@mmf@prepare
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+% \end{macrocode}
+%
+% \end{macro}
+% %
% \begin{macro}{\footmarkwidth}
% \begin{macro}{\footmarksep}
% \begin{macro}{\footparindent}
@@ -25442,7 +25789,7 @@
% We are going to change some of the kernel footnote macros
%
% \begin{macro}{\@mpfootnotetext}
-% \begin{macro}{\m@mold@mpfootnotetext}
+% \begin{macro}{\@plainmpfootnotetext}
% \changes{v1.6180}{2006/06/12}{Stop font changes leaking into footnotes.
% The v1.618 change was too early}
% \changes{v3.6g}{2010/09/19}{made 'single spacing' configurable'}
@@ -25463,8 +25810,9 @@
% \end{macrocode}
% Save our revised version of \cs{@mpfootnotetext}
+% \changes{v3.6h}{2010/10/22}{\cs{m@mold@mpfootnotetext} renamed to \cs{@plainmpfootnotetext}}
% \begin{macrocode}
-\let\m@mold@mpfootnotetext\@mpfootnotetext
+\let\@plainmpfootnotetext\@mpfootnotetext
% \end{macrocode}
% \end{macro}
@@ -25532,10 +25880,12 @@
% \begin{macro}{\plainfootnotes}
% The declaration for standard footnotes; easy, just use the saved
% versions of \cs{@footnotetext} and \cs{@mpfootnotetext}.
+% \changes{v3.6h}{2010/10/22}{\cs{m@mold@footnotetext} renamed
+% \cs{@plainfootnotetext} and \cs{m@mold@mpfootnotetext} as \cs{@plainmpfootnotetext}}
% \begin{macrocode}
\newcommand{\plainfootnotes}{%
- \let\@footnotetext\m@mold@footnotetext
- \let\@mpfootnotetext\m@mold@mpfootnotetext}
+ \let\@footnotetext\@plainfootnotetext
+ \let\@mpfootnotetext\@plainmpfootnotetext}
% \end{macrocode}
% \end{macro}
@@ -26954,6 +27304,7 @@
% several \cs{@footnotetext} in memoir, might be an idea to clean this
% up at some point/daleif}
% \begin{macro}{\@footnotetext}
+% \begin{macro}{\m@mold@footnotetext}
% Change \cs{@footnotetext} to enable footnotes to be put into the margin
% by using \cs{marginpar}.
% \begin{macrocode}
@@ -26994,9 +27345,17 @@
\color@endgroup}%
\fi%
\m@mmf@prepare}
+% \end{macrocode}
+% Need to save this version of \cs{@footnotetext}, it is
+% used within \cs{plainfootnotes}.
+% \changes{v3.6h}{2010/10/22}{Moved \cs{m@mold@footnotetext} to this
+% location, and renamed it to \cs{@plainfootnotetext}}
+% \begin{macrocode}
+\let\@plainfootnotetext\@footnotetext
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \subsection{Bottom aligned side footnotes}
%
@@ -27551,8 +27910,34 @@
%
% \subsection{End notes}
%
-% This is from the \Lpack{pagenote} package, with minor amendments.
-% \changes{v1.61803}{2008/01/30}{Added page notes (mempatch v4.5)}
+% \changes{v3.6h}{2011/01/19+}{Reimplemented page notes}
+% This used to be a copy of the \Lpack{pagenote} package, with minor
+% amendments. But it turned out that the implementation used by
+% \Lpack{pagenote} at that time, had a few serious flaws. In this
+% implementation we will instead turn to the trick used by the
+% \Lpack{endnotes} package to overcome the same problem.
+% For the sake of history, let us summarise what the actual problem
+% was. Basically the command \cs{pagenote}\marg{text} would write an
+% entry to an external file in the following format
+% \begin{verbatim}
+% \noteentry{nom}{id}{text}{pagenum}
+% \end{verbatim}
+% and when typesetting the page notes, this file would be read into
+% the document and \cs{noteentry} would typeset each page note. The
+% main problem here is \verb|{text}| which is written verbatimly to
+% the external file, but it is written on a single line!, thus an
+% input like this
+% \begin{verbatim}
+% \pagenote{Test%
+% test}
+% \end{verbatim}
+% would give us the entry
+% \begin{verbatim}
+% \noteentry{num}{id}{Test%test}{pagenum}
+% \end{verbatim}
+% oops! This is what we will solve using inspiration from
+% \Lpack{endnotes}, kudos to John Lavagnino.
+%
%
% \begin{macro}{\ifm@mpnpageopt}
% \begin{macro}{\ifm@mpncontopt}
@@ -27582,9 +27967,11 @@
%
% \begin{macro}{\notepageref}
% \begin{macro}{\continuousnotenums}
-% Let the user change the default options.
-% \cs{notepageref} makes page numbers available (the package \Lopt{page} option)% and \cs{continuousnotenums} means that notes will be numbered continuously
-% throughout the document(the package \Lopt{continuous} option).
+% \changes{v3.6h}{2011/01/19}{Removed references to pagenote package}
+% Let the user change the default options. \cs{notepageref} makes
+% page numbers available in the typeset list of page note and
+% \cs{continuousnotenums} means that notes will be numbered
+% continuously throughout the document.
% \begin{macrocode}
\newcommand*{\notepageref}{\m@mpnpageopttrue}
\@onlypreamble\notepageref
@@ -27617,13 +28004,28 @@
\mempagenotestrue
% \end{macrocode}
% \begin{macro}{\pagenote}
-% Make sure that this has a useful definition.
+% Make sure that this has a useful definition.
+% \changes{v3.6h}{2011/01/19}{Made \cs{pagenote} robust}
+% \begin{macrocode}
+ \DeclareRobustCommand\pagenote{\@bsphack\begingroup
+ \@sanitize
+ \m@m@wrpnote}%
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.6h}{2011/01/19}{Added the redefinition of \cs{mem@footto@pagenote}}
+% \begin{macro}{\mem@footto@pagenote}
+% The same as for \cs{pagenote} but here we use a special version of
+% the writing macro that will ignore the optional argument. This will
+% internally be used when the user ask for foot notes to be turned
+% into page notes.
% \begin{macrocode}
- \def\pagenote{\@bsphack\begingroup
+ \DeclareRobustCommand\mem@footto@pagenote{\@bsphack\begingroup
\@sanitize
+ \def\mem@pn@step{01}%
\m@m@wrpnote}%
% \end{macrocode}
% \end{macro}
+% At the end we make sure \cs{makepagenote} can only do something once.
% \begin{macrocode}
\typeout{Writing note file \jobname.ent}%
\let\makepagenote\@empty}
@@ -27647,15 +28049,13 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\m@m@pnwrite}
-% If the \Lopt{page} option is used we cannot use an immediate write
-% because the page number is only known in the output routine.
+% \begin{macro}{\m@m@pnwrite}
+% In the old implementation we used \cs{immediate@protected@write}
+% unless the user asked for page numbers in the notes, the new
+% implementation use the same writing method for all cases, for easy
+% of notation we collect it in a macro.
% \begin{macrocode}
-\let\m@m@pnwrite\immediate@protected@write
-\AtBeginDocument{%
- \ifm@mpnpageopt
- \let\m@m@pnwrite\protected@write
- \fi}
+\newcommand{\m@m@pnwrite}[3]{\immediate\write#1{#3}}
% \end{macrocode}
% \end{macro}
@@ -27670,21 +28070,75 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \begin{macro}{\c@pagenoteshadow}
+% \begin{macro}{\mem@pn@step}
+% \begin{macro}{\mem@pn@lastkern}
+% Utilities, a counter to provide us with a unique name for each page
+% note, a toggle macro and a length to hold a lastkern (because
+% someone may hide it from us).
+% \begin{macrocode}
+\newcounter{pagenoteshadow}
+ \setcounter{pagenoteshadow}{0}
+\newcommand\mem@pn@step{00} % i.e. true
+\newlength\mem@pn@lastkern
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\m@m@wrpnote}
% This writes the note information to the note file. If the optional argument
% is empty it increments the
% note counter and calls \cs{notenumintext} to handle its appearance in
-% the body text.
+% the body text. We write an entry of the following design
+% \begin{verbatim}
+% \startnoteentry{notenumber}{id}{auto label key}
+% macro:->text
+% \endnoteentry
+% \end{verbatim}
% \changes{v1.61803}{2008/05/25}{Made \cs{m@m@wrpnote} match the effect
% described in memman regarding the optional argument.}
+% \changes{v3.6h}{2011/01/19}{Changed the internal implementation}
% \begin{macrocode}
\newcommand{\m@m@wrpnote}[2][]{%
- \@ifmtarg{#1}{\refstepcounter{pagenote}%
- \notenumintext{\thepagenote}}{}%
+% \end{macrocode}
+% If \Lpack{hyperref} is loaded it issues a whatisit and thus
+% hide/reset the last kern, which is needed for the algorithm used for
+% the multiple notes in a row feature (adding commas). So we start by
+% storing the last kern, and refstep a shadow counter such that we
+% can generate more or less unique label keys.
+% \begin{macrocode}
+ \mem@pn@lastkern=\lastkern%
+ \refstepcounter{pagenoteshadow}%
+% \end{macrocode}
+% If the user asks for it enable page back refs, we use labels and
+% references for this (bonus: automatic support for hyperlinks if
+% \Lpack{hyperref} is available).
+% \begin{macrocode}
+ \ifm@mpnpageopt%
+ \phantomsection%
+ \label{pagenote\thepagenoteshadow-\thesheetsequence}%
+ \fi%
+% \end{macrocode}
+% Next we want to be able to reuse this macro just for writing the
+% entry to disk, no writing a marker in the text (think replacement
+% for \cs{footnotetext}), we use the toggle for this and also remember
+% to re-insert the code needed for comma separated multiple markers
+% \begin{macrocode}
+ \if\mem@pn@step%
+ \@ifmtarg{#1}{\refstepcounter{pagenote}%
+ % this enables the ^{1,2} feature
+ \ifdim\mem@pn@lastkern=\multiplefootnotemarker%
+ \m@mmf@prepare% rerun
+ \fi%
+ \mem@multiple@marker{\notenumintext{\thepagenote}}%
+ }{}%
+ \fi%
% \end{macrocode}
% Check if this is the first note in a division, and if so indicate this
% in the file.
+% \changes{v3.6h}{2011/01/25}{Added \cs{pagenotesubheadstarred}}
% \begin{macrocode}
\ifm@mpn@new@chap
\global\m@mpn@new@chapfalse
@@ -27692,27 +28146,53 @@
\fi
\ifm@mpn@new@schap
\global\m@mpn@new@schapfalse
- \addtonotes{\string\pagenotesubhead{\@chapapp}{}{\pnschap}}%
+ \addtonotes{\string\pagenotesubheadstarred{\@chapapp}{}{\pnschap}}%
\fi
% \end{macrocode}
-% Finally, write the entry.
+% Next we write to the notes file. Instead of writing everything as a
+% macro with arguments, we will use three writes. One to start a new
+% entry with a few (non-text) arguments, then the text itself, and
+% finally an end of entry marker macro.
+% \begin{macrocode}
+ \m@m@pnwrite\@notefile{}%
+ {\string\startnoteentry{\thepagenote}{#1}%
+ {pagenote\thepagenoteshadow-\thesheetsequence}}%
+% \end{macrocode}
+% Store the text in a temp macro, change the endline char to force a
+% line break at any space in the text, this also helps with line
+% length limits on inputs. Getting the newline stuff to work require
+% \verb|\immediate\write| which we defined earlier. We then write the
+% text `verbatimly' using the trick that \Lpack{endnotes} makes use
+% of: \cs{meaning}, works quite nicely.
+% \begin{macrocode}
+ \def\next{#2}%
+ \begingroup%
+ \newlinechar='40%
+ \m@m@pnwrite\@notefile{}{\meaning\next}%
+ \endgroup%
+% \end{macrocode}
+% Remember to also write a marker that ends the entry.
% \begin{macrocode}
- \m@m@pnwrite\@notefile{}
- {\string\noteentry{\thepagenote}{#1}{#2}{\thepage}}%
+ \m@m@pnwrite\@notefile{}%
+ {\string\endnoteentry}%
\endgroup
\@esphack}
% \end{macrocode}
% \end{macro}
%
-%
% \begin{macro}{\pagenote}
+% \begin{macro}{\mem@footto@pagenote}
% The user command to generate a note. It is given substance
-% by \cs{makepagenote}.
+% by \cs{makepagenote}. Supplied with a special version used if the
+% user asks for all footnotes to be turned into page notes.
+% \changes{v3.6h}{2011/01/19}{Added \cs{mem@footto@pagenote}}
% \begin{macrocode}
\def\pagenote{\@bsphack\begingroup \@sanitize\m@m@pagenote}
+\let\mem@footto@pagenote\pagenote
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\m@m@pagenote}
% \begin{macrocode}
@@ -27727,13 +28207,51 @@
% \begin{macro}{\memsavepagenote}
% Let the user change pagenotes to footnotes, or vice-versa. In either
% case the optional argument is ignored.
+% \changes{v3.6h}{2010/12/07}{\cs{footnote} should be long}
+% \changes{v3.6h}{2010/12/09}{because of the way
+% \cs{pagenote} is defined, we cannot redefine \cs{footnote} to have
+% any arguments, we need to go another route}
+% \changes{v3.6h}{2010/12/09}{Added a check for the race condition}
+% We have a race condition, if both \cs{pagetofootnote} and
+% \cs{makepagenote} is issued in the same document,
+% \cs{pagetofootnote} need to come last.
% \begin{macrocode}
\newcommand*{\pagetofootnote}{%
\let\memsavepagenote\pagenote
- \renewcommand{\pagenote}[2][]{\footnote{##2}}}
+ \renewcommand{\pagenote}[2][]{\footnote{##2}}
+% \end{macrocode}
+% Basic idea is, if pagenotes mode is on when \cs{pagetofootnote} is
+% issued, everything is fine. Else we test at end document (because
+% \cs{makepagenote} can go anywhere).
+% \begin{macrocode}
+ \ifmempagenotes\else%
+ \AtEndDocument{%
+ \ifmempagenotes%
+ \@memerror{The use of \string\pagetofootnote\space before
+ \string\makepagenote\space^^Jdoes not make
+ sense. \string\makepagenote\space make some redefinitions that
+ are not picked up if \string\pagetofootnote\space is issued
+ before \string\makepagenote
+ }{}
+ \fi
+ }
+ \fi
+}
+% \end{macrocode}
+% Next the more challenging one. We make the footnote counter act as
+% the page note counter, this ensure that \cs{footnotemark} still work
+% when the user ask to have footnotes converted into page
+% notes. \cs{footnotetext} is the same as the page note writer macro,
+% but without writing the marker, here we use the special page note macro.
+% \begin{macrocode}
\newcommand*{\foottopagenote}{%
\let\memsavefootnote\footnote
- \renewcommand*{\footnote}[2][]{\pagenote{##2}}}
+ % now also \footnotemark work
+ \letcountercounter{footnote}{pagenote}
+ % and this takes care of \footnotetext
+ \renewcommand\footnotetext[2][]{\mem@footto@pagenote{##2}}
+ \renewcommand{\footnote}[2][]{\pagenote{##2}}
+}
% \end{macrocode}
% \end{macro}
@@ -27753,12 +28271,14 @@
%
% \begin{macro}{\notenumintext}
% \begin{macro}{\notenuminnotes}
-% \cs{notenumintext}\marg{notenum} typesets \meta{notenum} (in the body text).
+% \cs{notenumintext}\marg{notenum} typesets \meta{notenum} (in the
+% body text).
% \begin{macrocode}
\newcommand{\notenumintext}[1]{%
\textsuperscript{#1}}
% \end{macrocode}
-% \cs{notenuminnotes}\marg{notenum} typesets \meta{notenum} (as part of the note).
+% \cs{notenuminnotes}\marg{notenum} typesets \meta{notenum} (i.e. the
+% very first item when typesetting a note).
% \begin{macrocode}
\newcommand{\notenuminnotes}[1]{%
{\normalfont #1.}\space}
@@ -27767,13 +28287,12 @@
% \end{macro}
%
% \begin{macro}{\noteentry}
-% \cs{noteentry}\marg{notenum}\marg{id}\marg{pagenum}\marg{text}
-% typesets a note.
+% \changes{v3.6}{2010/12/14}{explanation was wrong}
+% \changes{v3.6h}{2011/01/19}{removed}
+% \cs{noteentry}\marg{notenum}\marg{id}\marg{text}\marg{pagenum}
+% typesets a note. This macro is not used anymore.
% \begin{macrocode}
-\newcommand{\noteentry}[4]{%
- \prenoteinnotes
- \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}%
- \postnoteinnotes}
+ %\newcommand{\noteentry}[4]{} % not used any more!
% \end{macrocode}
% \end{macro}
@@ -27799,25 +28318,33 @@
%
% \begin{macro}{\pageinnotes}
% \begin{macro}{\printpageinnotes}
-% \cs{pageinnotes}\meta{pagenum} calls
-% \cs{printpageinnotes}\marg{pagenum} to typeset the originating
+% \begin{macro}{\printpageinnoteshyperref}
+% \changes{v3.6h}{2011/01/19}{Changed to match new implementation}
+% \cs{pageinnotes}\marg{key} calls
+% \cs{printpageinnotes}\marg{key} to typeset the originating
% page number (in the note), but only if the \cs{notepageref} declaration
-% has been used (the page number is not trustworthy unless the
-% \cs{notepageref} has been used).
+% has been used. Remember we provide an automatically generated label
+% key, thus we use \cs{pageref} to get the page number. We provide a
+% \Lpack{hyperref} version which is automatically used whenever
+% \Lpack{hyperref} is loaded.
% \begin{macrocode}
\newcommand{\pageinnotes}[1]{%
\ifm@mpnpageopt \printpageinnotes{#1}\fi}
\newcommand*{\printpageinnotes}[1]{%
- (\pagerefname\ #1)\space}
+ (\pagerefname\ \pageref{#1})\space}
+\newcommand\printpageinnoteshyperref[1]{%
+(\hyperref[#1]{\pagerefname\ \pageref*{#1}})\space}
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\noteinnotes}
% \cs{noteinnotes}\marg{text} is used to typeset the note's text
-% (in the note list).
+% (in the note list). This macro is not used any more, but doesn't do
+% any harm to leave it here.
% \begin{macrocode}
-\newcommand{\noteinnotes}[1]{#1}
+\newcommand{\noteinnotes}[1]{#1} % not used anymore!
% \end{macrocode}
% \end{macro}
@@ -27834,6 +28361,19 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\prenotetext}
+% \begin{macro}{\postnotetext}
+% Thise two macros are executed just before and just after the note
+% text. Does nothing by default.
+% \begin{macrocode}
+\newcommand\prenotetext{}
+\newcommand\postnotetext{}
+
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\notesname}
% \begin{macro}{\notedivision}
% Heading for note list.
@@ -27845,12 +28385,14 @@
% \end{macro}
% \end{macro}
%
-%
-% \begin{macro}{\printnotes}
+% \changes{v3.6h}{2010/12/14}{typo}
+% \changes{v3.6h}{2011/01/19}{There is no reason to use two macros to
+% implement a starred and non starred version in this case.}
+% \begin{macro}{\printpagenotes}
% \begin{macro}{\printpagenotes*}
% User commands to print the note file.
% \begin{macrocode}
-\newcommand*{\printpagenotes}{\@ifstar{\@sprintpagenotes}{\@printpagenotes}}
+\newcommand*{\printpagenotes}{\@ifstar{\mem@printpagenotes{00}}{\mem@printpagenotes{01}}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -27863,51 +28405,126 @@
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{\startnoteentrystart}
+% \begin{macro}{\endnoteentryend}
+% Two utility macros making it easier for the user to change the order.
+% \begin{macrocode}
+\newcommand\startnoteentrystart[3]{%
+ \prenoteinnotes%
+ \noteidinnotes{#1}{#2}%
+ \pageinnotes{#3}%
+ \prenotetext%
+}
+\def\endnoteentryend{\postnotetext\postnoteinnotes}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\@sprintpagenotes}
-% Macro implementing \cs{printpagenotes*}.
+% \begin{macro}{\mem@make@gt@safe}
+% Macro copied from \Lpack{endnotes}, in the notes file, the text
+% begins with \verb|macro:->|, but some languages make \verb|>|
+% active. For more information see the \Lpack{endnotes}
+% implementation.
% \begin{macrocode}
-\newcommand*{\@sprintpagenotes}{%
- \ifmempagenotes
- \notedivision
-\IfFileExists{\jobname.ent}{%
- \immediate\closeout\@notefile
- \input{\jobname.ent}%
- \immediate\openout\@notefile=\jobname.ent%
- }{%
- \mempnofilewarn
-}%
-\fi}
-
+\newcommand\mem@make@gt@safe{%
+ \edef\@tempa{`\string >}%
+ \ifnum\catcode\@tempa=12%
+ \let\@ResetGT\relax%
+ \else%
+ \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
+ \@makeother\>%
+ \fi%
+}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@printpagenotes}
-% Macro implementing \cs{printpagenotes}.
+% \begin{macro}{\mem@printpagenotes}
+% \begin{macro}{\startnoteentry}
+% \begin{macro}{\ednoteentry}
+% The internal macro for printing the list of page notes. The two
+% macros \cs{startnoteentry} and \cs{endnoteentry} are also defined here.
% \begin{macrocode}
-\newcommand*{\@printpagenotes}{%
+\newcommand\mem@printpagenotes[1]{%
\ifmempagenotes
\notedivision
\IfFileExists{\jobname.ent}{%
+ \begingroup
+ \mem@make@gt@safe%
+ \def\startnoteentry####1####2####3####4>{%
+ \begingroup
+ \@ResetGT
+ \startnoteentrystart{####1}{####2}{####3}%
+ }
+ \def\endnoteentry{\endnoteentryend\endgroup}
\immediate\closeout\@notefile
\input{\jobname.ent}%
- }{%
- \mempnofilewarn
- }
- \fi}
+ \if#1\immediate\openout\@notefile=\jobname.ent\fi%
+ \endgroup
+ }{%
+ \mempnofilewarn
+ }%
+ \fi%
+}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@sprintpagenotes}
+% Macro implementing \cs{printpagenotes*}. Removed
+% \changes{v3.6h}{2011/01/20}{Removed}
+% \begin{macrocode}
+ % \newcommand*{\@sprintpagenotes}{%
+ % \ifmempagenotes
+ % \notedivision
+ % \IfFileExists{\jobname.ent}{%
+ % \immediate\closeout\@notefile
+ % \input{\jobname.ent}%
+ % \immediate\openout\@notefile=\jobname.ent%
+ % }{%
+ % \mempnofilewarn
+ % }%
+ % \fi}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@printpagenotes}
+% Macro implementing \cs{printpagenotes}. Removed
+% \changes{v3.6h}{2011/01/20}{Removed}
+% \begin{macrocode}
+ % \newcommand*{\@printpagenotes}{%
+ % \ifmempagenotes
+ % \notedivision
+ % \IfFileExists{\jobname.ent}{%
+ % \immediate\closeout\@notefile
+ % \input{\jobname.ent}%
+ % }{%
+ % \mempnofilewarn
+ % }
+ % \fi}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pagenotesubhead}
+% \begin{macro}{\pagenotesubheadstarred}
+% \changes{v3.6h}{2011/01/25}{Added \cs{pagenotesubheadstarred}}
% The section heading before each set of notes. \\
% \cs{pagenotesubhead}\marg{chaptername}\marg{number}\marg{title}
+% The \cs{pagenotesubheadstarred} macro is used for unnumbered
+% devisions. By default it is the same as \cs{pagenotesubhead}, but
+% the user can change this. For example it may look odd with an title
+% like this: >>Chapter Title<< when there is no number.
% \begin{macrocode}
\newcommand*{\pagenotesubhead}[3]{%
\section*{#1 #2 #3}}
-
+\newcommand\pagenotesubheadstarred{\pagenotesubhead}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \section{Change marks} \label{sec:vct}
%
@@ -28276,18 +28893,23 @@
% \end{macro}
%
% \begin{macro}{\trimmarks}
+% \begin{macro}{\trimmarkscolor}
% This positions four marks (\cs{trimmark}) at the corners of a
% logical page. It is basically a \cs{vbox} with zero height and width.
%
% Bastiaan Niels Veelo reported (2003/07/11) odd things (e.g., some
% macros ignored) when changing trim marks. Turns out to be related
-% to the use of \cs{protect}.
+% to the use of \cs{protect}. The macro \cs{trimmarkscolor} can be
+% used to change the color of the trimmarks. Despite its name, it is
+% not a color but just an empty macro.
% \changes{v1.1}{2002/03/10}{Changed \cs{trimmarks} to work properly with the oneside option}
% \changes{v1.3}{2002/10/10}{Changed \cs{trimmarks} to use \cs{tmarktl}, etc.,
% instead of four \cs{trimmark}s}
% \changes{v1.4}{2003/11/22}{Fiddled \cs{protect} in \cs{trimmaks}
% (from patch v1.7)}
+% \changes{v3.6h}{2010/12/05}{Added \cs{trimmarkscolor}}
% \begin{macrocode}
+\newcommand*\trimmarkscolor{}
\newcommand*{\trimmarks}{%
\vbox to \z@{\vskip-1in \vskip\trimtop % top of logical page
\hb@xt@\z@{\hskip-1in
@@ -28302,16 +28924,17 @@
\fi
\vbox to \paperheight{%
\let\protect\relax % <- v1.4 addition
- \hb@xt@\paperwidth{\tmarktl\hfil\tmarktm\hfil\tmarktr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarktl\hfil\tmarktm\hfil\tmarktr}%
\vfil
- \hb@xt@\paperwidth{\tmarkml\hfil\tmarkmr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkml\hfil\tmarkmr}%
\vfil
- \hb@xt@\paperwidth{\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
\hss}%
\vss}}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \subsection{Quark marks}
@@ -28323,6 +28946,9 @@
% \begin{macro}{\quarkmarks}
% Trim marks on the style of Quark Express.
% \changes{v1.61803}{2008/01/30}{Added \cs{quarkmarks} (mempatch v4.6)}
+% \changes{v3.6h}{2010/12/05}{Added \cs{normalfont} such that font
+% changes going over a page break does not effect the quarks
+% text. Reported by Rasmus Villemoes.}
% \begin{macrocode}
\newcommand*{\registrationColour}[1]{#1}
\newcommand*{\quarkmarks}{%
@@ -28331,7 +28957,7 @@
\setlength{\unitlength}{1bp}\thicklines
\put(-36,0){\line(1,0){24}}
\put(0,12){\line(0,1){24}}
- \put(3,27){\ttfamily\fontsize{8bp}{10bp}\selectfont\jobname\ \
+ \put(3,27){\normalfont\ttfamily\fontsize{8bp}{10bp}\selectfont\jobname\ \
\today\ \ \printtime\ \ Page \thepage}
\end{picture}}}
\renewcommand*{\tmarktm}{\registrationColour{%
@@ -28396,11 +29022,15 @@
\fi
\vbox to \paperheight{%
\let\protect\relax % <- v1.4 addition
- \hb@xt@\paperwidth{\tmarktl\hfil\tmarktm\hfil\tmarktr}%
+% \end{macrocode}
+% We remember to add \cs{trimmarkscolor}
+% \changes{v3.6h}{2010/12.05}{added \cs{trimmarkscolor}}
+% \begin{macrocode}
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarktl\hfil\tmarktm\hfil\tmarktr}%
\vfil
- \hb@xt@\paperwidth{\tmarkml\hfil\tmarkmr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkml\hfil\tmarkmr}%
\vfil
- \hb@xt@\paperwidth{\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
\hss}%
\vss}}%
}}
@@ -34046,6 +34676,14 @@ keyword "\\glossaryentry"
% \newblock (Available from CTAN as
% \texttt{macros/latex/contrib/misc/framed.sty})
%
+% \bibitem[Ars05]{PLACEINS}
+% Donald Arseneau.
+% \newblock \emph{\Lpack{Placeins} package (version 2.2)}.
+% \newblock May 2005.
+% \newblock (Available from CTN as
+% \texttt{macros/latex/contrib/placeins/placeins.sty})
+%
+%
% \bibitem[ArWi00]{IFMTARG}
% Donald Arseneau and Peter Wilson.
% \newblock \emph{The ifmtarg package}.
@@ -34155,6 +34793,13 @@ keyword "\\glossaryentry"
% \newblock
% Addison-Wesley, Reading, Massachusetts, 1984.
%
+%
+% \bibitem[KWG]{TUFTE}
+% Bil Kleb, Bill Wood, and Kevin Godby.
+% \newblock \emph{Tufte LaTeX}.
+% \newblock December 2009.
+% \newblock (Available from CTAN in \texttt{macros/latex/contrib/tufte-latex/})
+%
% \bibitem[Lam94]{bk:lamport}
% Leslie Lamport.
% \newblock \emph{\LaTeX\ --- A Document Preparation System}.
diff --git a/Master/texmf-dist/source/latex/memoir/mempatch.dtx b/Master/texmf-dist/source/latex/memoir/mempatch.dtx
index c600a86386c..8888e87e972 100644
--- a/Master/texmf-dist/source/latex/memoir/mempatch.dtx
+++ b/Master/texmf-dist/source/latex/memoir/mempatch.dtx
@@ -20,7 +20,7 @@
%
%
% \fi
-% \CheckSum{510}
+% \CheckSum{514}
%
% \def\dtxfile{\texttt{mempatch.dtx}}
% \def\fileversion{v1.0} \def\filedate{2003/10/04}
@@ -787,6 +787,16 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\printpageinnoteshyperref}
+% When \Lpack{hyperref} is active, page references in the page notes
+% list looks better with a specialised macro. The macro is provided
+% within the class, and here we activate it.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \let\printpageinnotes\printpageinnoteshyperref%
+}
+% \end{macrocode}
+% \end{macro}
%
% The end of the \Lpack{hyperref} related patches.
%
diff --git a/Master/texmf-dist/tex/latex/memoir/mem12.clo b/Master/texmf-dist/tex/latex/memoir/mem12.clo
index 99d51ad2cf7..f064303e9f6 100644
--- a/Master/texmf-dist/tex/latex/memoir/mem12.clo
+++ b/Master/texmf-dist/tex/latex/memoir/mem12.clo
@@ -25,7 +25,7 @@
%% This work consists of the files listed in the README file.
%%
\ProvidesFile{mem12.clo}%
- [2008/01/30 v0.4 memoir class 12pt size option]
+ [2010/10/19 v0.4b memoir class 12pt size option]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xiipt{14.5}%
\abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
@@ -83,7 +83,7 @@
\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
-\setlength\headheight{14\p@}
+\setlength\headheight{14.5\p@}
\setlength\headsep{.275in}
\setlength\topskip{12\p@}
\setlength\footskip{30\p@}
diff --git a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty
index c305304cfbe..16341bb79cc 100644
--- a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty
+++ b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty
@@ -282,6 +282,9 @@
\let\M@TitleReference\@mem@theTR % interrupt recursion of \ref
\ref*{#1}\endgroup}
+\AtBeginDocument{%
+ \let\printpageinnotes\printpageinnoteshyperref%
+}
\endinput
%%
%% End of file `memhfixc.sty'.
diff --git a/Master/texmf-dist/tex/latex/memoir/memoir.cls b/Master/texmf-dist/tex/latex/memoir/memoir.cls
index e1b29b992e0..153b22ced90 100644
--- a/Master/texmf-dist/tex/latex/memoir/memoir.cls
+++ b/Master/texmf-dist/tex/latex/memoir/memoir.cls
@@ -26,7 +26,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{memoir}%
- [2010/09/19 v3.6g configurable book, report, article document class]
+ [2011/02/13 v3.6h configurable book, report, article document class]
\newcommand*{\@ptsize}{}
\newcommand*{\@memptsize}{}
\newlength{\onelineskip}
@@ -433,6 +433,8 @@
\newcommand*{\memRTLvrightskip}{\rightskip}
\newcommand*{\memRTLraggedright}{\raggedright}
\newcommand*{\memRTLraggedleft}{\raggedleft}
+\newcommand*{\memRTLmainraggedright}{\raggedright}
+\newcommand*{\memRTLmainraggedleft}{\raggedleft}
\newlength{\stockheight}
\newlength{\stockwidth}
@@ -1561,13 +1563,17 @@
\newcommand{\makeheadrule}[3]{%
\mem@ps@safe@change{#1}%
\@namedef{#1headrule}{%
- \hrule\@width #2\@height #3 \vskip-#3}}
+ \@nameuse{#1headruleprefix}\hrule\@width #2\@height #3 \vskip-#3}}
\newcommand{\makefootrule}[4]{%
\mem@ps@safe@change{#1}%
\@namedef{#1footrule}{%
- \vskip-#4\vskip-#3
- \hrule\@width #2\@height #3 \vskip #4}}
+ \vskip-#4\vskip-#3%
+ \@nameuse{#1footruleprefix}\hrule\@width #2\@height #3 \vskip #4}}
+\newcommand\makeheadfootruleprefix[3]{%
+ \@namedef{#1headruleprefix}{#2}%
+ \@namedef{#1footruleprefix}{#3}%
+}
\newcommand{\makeheadposition}[5]{%
\mem@ps@safe@change{#1}%
\nametest{flushleft}{#2}
@@ -1623,6 +1629,51 @@
\mem@ps@safe@change{#1}%
\@namedef{#1headvplacement}{#2}\@namedef{#1footvplacement}{#3}}
+\newlength\mem@maxheadheight
+\newlength\mem@maxfootheight
+\newcommand\mem@sayonce@head{00}
+\newcommand\mem@sayonce@foot{00}
+\newcommand\mem@hf@measure@vbox[4]{%
+ \setbox0\vbox{#4}%
+ \ifdim\ht0>#1\relax%
+ \setlength\@tempdima{\@nameuse{mem@max#2height}}%
+ \ifdim\ht0>\@tempdima\relax%
+ \expandafter\global\@nameuse{mem@max#2height}=\ht0%
+ \expandafter\if\@nameuse{mem@sayonce@#2}\relax%
+ \@memwarn{#3}%
+ \global\@namedef{mem@sayonece@#2}{01}%
+ \fi%
+ \fi%
+ \fi%
+ \box0%
+}
+\newcommand\mem@toolarge@header@message{%
+ The material used in the headers is too large^^J%
+ (\the\mem@maxheadheight) for the given head height
+ (\the\headheight), it is recommended to^^J%
+ either increase the head height or redesign the header^^J%
+ (in both cases you will find help in the memoir manual).%
+}
+\newcommand\mem@toolarge@footer@message{%
+ The material used in the footer is too large^^J%
+ (\the\mem@maxfootheight) for the given foot skip
+ (\the\footskip), it is recommended to^^J%
+ either increase the foot skip or redesign the fotoer^^J%
+ (in both cases you will find help in the memoir manual).%
+}
+\newcommand\mem@hvboxm[1]{%
+ \mem@hf@measure@vbox\headheight{head}\mem@toolarge@header@message{#1}}
+\newcommand\mem@fvboxm[1]{%
+ \mem@hf@measure@vbox\footskip{foot}\mem@toolarge@footer@message{#1}}
+\AtEndDocument{
+ \ifdim\mem@maxheadheight>\headheight
+ \@memwarn{\mem@toolarge@header@message}
+ \fi
+ \ifdim\mem@maxfootheight>\footskip
+ \@memwarn{\mem@toolarge@footer@message}
+ \fi
+}
+\newcommand\mem@ps@entry@wrap{}
\newcommand\mem@ps@HLH[4]{%
% #1 ps name
% #2 type: head, foot
@@ -1630,21 +1681,22 @@
% #4 odd/even short (o,e)
\@namedef{#1@#3#2}{%
\@nameuse{#1#3hpl}\hb@xt@\@nameuse{#1#2runwidth}{\m@mhe@dreset%
- \vbox{\nametest{#2}{foot}\ifsamename\@nameuse{#1#2rule}\fi%
+ \nametest{#2}{head}\ifsamename\let\mem@hfboxer\mem@hvboxm\else\let\mem@hfboxer\mem@fvboxm\fi%
+ \mem@hfboxer{\nametest{#2}{foot}\ifsamename\@nameuse{#1#2rule}\fi%
\hbox{%
\rlap{%
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
- \raggedright\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2l}%
+ \memRTLmainraggedright\@nameuse{#1ps#2strut}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2l}}%
\@nameuse{#1ps#2strut}}}\hfill
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
\centering\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2c}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2c}}%
\@nameuse{#1ps#2strut}}\hfill
\llap{%
\parbox[\@nameuse{#1#2vplacement}]{\@nameuse{#1#2runwidth}}{%
- \raggedleft\@nameuse{#1ps#2strut}%
- \@nameuse{#1#4#2r}%
+ \memRTLmainraggedleft\@nameuse{#1ps#2strut}%
+ \mem@ps@entry@wrap{\@nameuse{#1#4#2r}}%
\@nameuse{#1ps#2strut}}}%
}%
\nametest{#2}{head}\ifsamename\@nameuse{#1#2rule}\fi%
@@ -1717,6 +1769,7 @@
\makeheadposition{#1}{}{}{}{}%
\makeheadrule{#1}{\textwidth}{0pt}%
\makefootrule{#1}{\textwidth}{\footruleheight}{\footruleskip}%
+ \makeheadfootruleprefix{#1}{}{}
\makeheadfootvposition{#1}{b}{b}%
\makepsmarks{#1}{}}
@@ -1746,6 +1799,8 @@
\@namedef{#1oddfpr}{\@nameuse{#2oddfpr}}%
\@namedef{#1headrule}{\@nameuse{#2headrule}}%
\@namedef{#1footrule}{\@nameuse{#2footrule}}%
+ \@namedef{#1headruleprefix}{\@nameuse{#2headruleprefix}}%
+ \@namedef{#1footruleprefix}{\@nameuse{#2footruleprefix}}%
\@namedef{#1psheadstrut}{\@nameuse{#2psheadstrut}}
\@namedef{#1psfootstrut}{\@nameuse{#2psfootstrut}}
\makepsmarks{#1}{\@nameuse{#2pshook}}}
@@ -2761,7 +2816,7 @@
\aliaspagestyle{afterpart}{empty}
\newcommand\chapter{%
- \ifartopt\par\else
+ \ifartopt\par\@nameuse{chapterblock}\else
\clearforchapter
\thispagestyle{chapter}
\global\@topnum\z@
@@ -3395,6 +3450,7 @@
\newcommand{\memsecstarinfo}[2]{}
\renewcommand{\@startsection}[6]{%
+ \@nameuse{#1block}%
\ifraggedbottomsection\if@nobreak\else
\vskip\z@\@plus\bottomsectionskip
\penalty\z@
@@ -3674,6 +3730,7 @@
\advance\skip@ -1\skip@ \advance\skip@ 1\pfbreakskip
\fi
\penalty\pen@ltyabovepfbreak
+ \prevdepth\z@ % added
\vskip\skip@
\penalty\pen@ltybelowpfbreak
}
@@ -3694,6 +3751,7 @@
\advance\skip@ -1\skip@ \advance\skip@ 1\pfbreakskip
\fi
\penalty\pen@ltyabovepfbreak
+ \prevdepth\z@ % added
\vskip\skip@
\penalty\pen@ltybelowpfbreak
}
@@ -6127,12 +6185,15 @@
\@namedef{fleg#2}{#4} % legend naming
\@namedef{flegtoc#2}##1{} % legend name in ToC
- \newenvironment{#2}{\@float{#2}}{\end@float}
- \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}
+ \newenvironment{#2}[1][\@nameuse{fps@#2}]{\@float{#2}[##1]\@nameuse{#2adjustment}}{\end@float}
+ \newenvironment{#2*}[1][\@nameuse{fps@#2}]{%
+ \@dblfloat{#2}[##1]\@nameuse{#2adjustment}\@nameuse{#2*adjustment}}{\end@dblfloat}
} % end \newfloat
\newcommand*{\setfloatlocations}[2]{\@namedef{fps@#1}{#2}}
+\newcommand*\setfloatadjustment[2]{\@namedef{#1adjustment}{#2}}
+
\newcommand{\newsubfloat}[1]{%
\newlistentry[#1]{sub#1}{\@nameuse{ext@#1}}{1}
\@namedef{ext@sub#1}{\csname ext@#1\endcsname}
@@ -6176,6 +6237,69 @@
\end@float
\fi}}{}}
+\def\mem@fb@botlist{\@botlist}
+\def\mem@fb@topblock{\suppressfloats[t]}
+\def\FloatBlock{\par\begingroup \let\@elt\relax
+ \edef\@tempa{\mem@fb@botlist\@deferlist\@dbldeferlist}%
+ \ifx\@tempa\@empty
+ \else
+ \ifx\@fltovf\relax % my indicator of recursion
+ \if@firstcolumn
+ \clearpage
+ \else
+ \null\newpage\FloatBlock
+ \fi
+ \else
+ \newpage \let\@fltovf\relax
+ \FloatBlock % recurse once only
+ \fi\fi \endgroup
+ \mem@fb@topblock}
+\newcommand*\FloatBlockAllowAbove{\def\mem@fb@topblock{}}
+\newcommand*\FloatBlockAllowBelow{\def\mem@fb@botlist{}}
+
+\newcommand\setFloatBlockFor[1]{%
+ \@namedef{#1block}{\FloatBlock}}
+\newsavebox{\mem@margin@floatbox}
+\newcommand\marginfloatmarginmacro{\marginpar}
+\newenvironment{mem@margin@float}[2][-1.2ex]%
+ {\FloatBlock%
+ \begin{lrbox}{\mem@margin@floatbox}%
+ \begin{minipage}{\marginparwidth}%
+ \def\@captype{#2}%
+ \hbox{}\vspace*{#1}%
+ \@nameuse{margin#2adjustment}%
+ \@nameuse{margin#2captionadjustment}%
+ \noindent%
+ }
+ {\end{minipage}%
+ \end{lrbox}%
+ \marginfloatmarginmacro{\usebox{\mem@margin@floatbox}}%
+ }
+\newenvironment{marginfigure}[1][-1.2ex]{%
+ \begin{mem@margin@float}[#1]{figure}}
+ {\end{mem@margin@float}}
+\newenvironment{margintable}[1][-1.2ex]{%
+ \begin{mem@margin@float}[#1]{table}}
+ {\end{mem@margin@float}}
+\setfloatadjustment{marginfigure}{\centering}
+\setfloatadjustment{margintable}{\centering}
+
+\newcommand*\setmarginfloatcaptionadjustment[2]{%
+ \@namedef{margin#1captionadjustment}{#2}}
+
+\newcommand\setmpjustification[2]{%
+ \@namedef{mem@mp@justification}{%
+ \ifm@msetmp\else\@memerror{In order to use
+ \string\marginCmdAdjust,^^J%
+ please make sure to specify into which margin the^^J%
+ \string\marginpar\space should go, using \string\marginparmargin}{}\fi
+ \m@mwhich@margin{\m@mmpar@margin}%
+ \ifmemtortm #2 \else #1\fi}%
+}
+\newcommand\mpjustification{%
+ \@nameuse{mem@mp@justification}}
+\setmpjustification{\raggedleft}{\raggedright}
+
\newif\if@contcw
\newif\if@conthang
\newif\if@contindent
@@ -6193,12 +6317,12 @@
\captionstyle{}
\renewcommand{\captionstyle}{%
- \@ifnextchar[ {\@memcshort}{\@memcnorm}}
+ \@ifnextchar[{\@memcshort}{\@memcnorm}}
\def\@memcshort[#1]#2{%
- \def\@contcshortstyle{#1}
+ \def\@contcshortstyle{#1}%
\def\@contcstyle{#2}}
\def\@memcnorm#1{%
- \def\@contcshortstyle{#1}
+ \def\@contcshortstyle{#1}%
\def\@contcstyle{#1}}
\captionstyle{}
@@ -6247,13 +6371,15 @@
\else \def\@memtempa{\vbox to\topskip{}}\fi
\let\@contfnote\footnote \renewcommand{\footnote}[2][]{}
\let\@contfmark\footnotemark \renewcommand{\footnotemark}[1][]{}
+ \let\@contpnote\pagenote\renewcommand\pagenote[2][]{}
\sbox\@tempboxa{\@contnfont #1\@contdelim \@conttfont #2\@contfinal}
\let\footnote\@contfnote
\let\footnotemark\@contfmark
+ \let\pagenote\@contpnote
\ifdim\wd\@tempboxa<\linewidth \centering \fi
\if@contcw
\centering
- \parbox{\@contcwidth}{%
+ \parbox[t]{\@contcwidth}{%
\ifdim\wd\@tempboxa<\@contcwidth \centering \fi
\fi
\ifdim\wd\@tempboxa<\linewidth
@@ -8585,6 +8711,7 @@
\fi
\setbox0=\vtop to 0pt{%
\begin{minipage}[t]{\marginparwidth}%
+ \def\baselinestretch{\m@m@footnote@spacing}%
\sideparform\sideparfont%
\ifmemtortm #2\else #1\fi
\end{minipage}%
@@ -8691,6 +8818,7 @@
\insert\sideins{%
\hsize\sidebarwidth
\@parboxrestore
+ \def\baselinestretch{\m@m@footnote@spacing}%
\m@mwhich@margin{\m@msidebar@margin}%
\sidebarform\sidebarfont
\splittopskip=\ht\strutbox
@@ -8730,20 +8858,6 @@
\spacefactor\@x@sf\relax
\fi}
-\renewcommand{\@footnotetext}[1]{\insert\footins{%
- \def\baselinestretch{\m@m@footnote@spacing}%
- \reset@font%
- \foottextfont
- \@preamfntext
- \hsize\columnwidth
- \protected@edef\@currentlabel{%
- \csname p@footnote\endcsname\@thefnmark}%
- \color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces{\foottextfont #1}%
- \@finalstrut\strutbox}%
- \color@endgroup}\m@mmf@prepare}
-\let\m@mold@footnotetext\@footnotetext
\renewcommand*{\@footnotemark}{%
\leavevmode
\ifhmode
@@ -8756,6 +8870,18 @@
\ifhmode\spacefactor\@x@sf\fi
\relax}
+\newcommand{\mem@multiple@marker}[1]{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \m@mmf@check
+ \nobreak
+ \fi
+ #1%
+ \m@mmf@prepare
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
\newlength{\footmarkwidth}
\newlength{\footmarksep}
\newlength{\footparindent}
@@ -8890,7 +9016,7 @@
\@finalstrut\strutbox}%
\color@endgroup}}
-\let\m@mold@mpfootnotetext\@mpfootnotetext
+\let\@plainmpfootnotetext\@mpfootnotetext
\newcommand{\m@mdoextrafeetmini}{%
\extrafeetminihook}
@@ -8922,8 +9048,8 @@
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
\newcommand{\plainfootnotes}{%
- \let\@footnotetext\m@mold@footnotetext
- \let\@mpfootnotetext\m@mold@mpfootnotetext}
+ \let\@footnotetext\@plainfootnotetext
+ \let\@mpfootnotetext\@plainmpfootnotetext}
\newcommand{\newfootnoteseries}[1]{%
\expandafter\newinsert\csname footins#1\endcsname% -> \footins#1
@@ -9708,6 +9834,7 @@
\color@endgroup}%
\fi%
\m@mmf@prepare}
+\let\@plainfootnotetext\@footnotetext
\newcommand*{\sidefootmargin}[1]{%
\m@msetm@argin{#1}%
@@ -10000,9 +10127,13 @@
\newwrite\@notefile
\immediate\openout\@notefile=\jobname.ent
\mempagenotestrue
- \def\pagenote{\@bsphack\begingroup
+ \DeclareRobustCommand\pagenote{\@bsphack\begingroup
\@sanitize
\m@m@wrpnote}%
+ \DeclareRobustCommand\mem@footto@pagenote{\@bsphack\begingroup
+ \@sanitize
+ \def\mem@pn@step{01}%
+ \m@m@wrpnote}%
\typeout{Writing note file \jobname.ent}%
\let\makepagenote\@empty}
@@ -10015,40 +10146,80 @@
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
-\let\m@m@pnwrite\immediate@protected@write
-\AtBeginDocument{%
- \ifm@mpnpageopt
- \let\m@m@pnwrite\protected@write
- \fi}
+\newcommand{\m@m@pnwrite}[3]{\immediate\write#1{#3}}
\newcommand*{\pnchap}{\f@rtoc}
\newcommand*{\pnschap}{\f@rbdy}
+\newcounter{pagenoteshadow}
+ \setcounter{pagenoteshadow}{0}
+\newcommand\mem@pn@step{00} % i.e. true
+\newlength\mem@pn@lastkern
\newcommand{\m@m@wrpnote}[2][]{%
- \@ifmtarg{#1}{\refstepcounter{pagenote}%
- \notenumintext{\thepagenote}}{}%
+ \mem@pn@lastkern=\lastkern%
+ \refstepcounter{pagenoteshadow}%
+ \ifm@mpnpageopt%
+ \phantomsection%
+ \label{pagenote\thepagenoteshadow-\thesheetsequence}%
+ \fi%
+ \if\mem@pn@step%
+ \@ifmtarg{#1}{\refstepcounter{pagenote}%
+ % this enables the ^{1,2} feature
+ \ifdim\mem@pn@lastkern=\multiplefootnotemarker%
+ \m@mmf@prepare% rerun
+ \fi%
+ \mem@multiple@marker{\notenumintext{\thepagenote}}%
+ }{}%
+ \fi%
\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}}%
+ \addtonotes{\string\pagenotesubheadstarred{\@chapapp}{}{\pnschap}}%
\fi
- \m@m@pnwrite\@notefile{}
- {\string\noteentry{\thepagenote}{#1}{#2}{\thepage}}%
+ \m@m@pnwrite\@notefile{}%
+ {\string\startnoteentry{\thepagenote}{#1}%
+ {pagenote\thepagenoteshadow-\thesheetsequence}}%
+ \def\next{#2}%
+ \begingroup%
+ \newlinechar='40%
+ \m@m@pnwrite\@notefile{}{\meaning\next}%
+ \endgroup%
+ \m@m@pnwrite\@notefile{}%
+ {\string\endnoteentry}%
\endgroup
\@esphack}
\def\pagenote{\@bsphack\begingroup \@sanitize\m@m@pagenote}
+\let\mem@footto@pagenote\pagenote
\newcommand{\m@m@pagenote}[2][]{\endgroup\@esphack}
\newcommand*{\pagetofootnote}{%
\let\memsavepagenote\pagenote
- \renewcommand{\pagenote}[2][]{\footnote{##2}}}
+ \renewcommand{\pagenote}[2][]{\footnote{##2}}
+ \ifmempagenotes\else%
+ \AtEndDocument{%
+ \ifmempagenotes%
+ \@memerror{The use of \string\pagetofootnote\space before
+ \string\makepagenote\space^^Jdoes not make
+ sense. \string\makepagenote\space make some redefinitions that
+ are not picked up if \string\pagetofootnote\space is issued
+ before \string\makepagenote
+ }{}
+ \fi
+ }
+ \fi
+}
\newcommand*{\foottopagenote}{%
\let\memsavefootnote\footnote
- \renewcommand*{\footnote}[2][]{\pagenote{##2}}}
+ % now also \footnotemark work
+ \letcountercounter{footnote}{pagenote}
+ % and this takes care of \footnotetext
+ \renewcommand\footnotetext[2][]{\mem@footto@pagenote{##2}}
+ \renewcommand{\footnote}[2][]{\pagenote{##2}}
+}
\newcommand{\addtonotes}[1]{\ifmempagenotes
\IfFileExists{\jobname.ent}{\m@m@pnwrite\@notefile{}{#1}}{\mempnofilewarn}%
@@ -10058,10 +10229,7 @@
\textsuperscript{#1}}
\newcommand{\notenuminnotes}[1]{%
{\normalfont #1.}\space}
-\newcommand{\noteentry}[4]{%
- \prenoteinnotes
- \noteidinnotes{#1}{#2}\pageinnotes{#4}\noteinnotes{#3}%
- \postnoteinnotes}
+ %\newcommand{\noteentry}[4]{} % not used any more!
\newcommand{\idtextinnotes}[1]{%
[#1]\space}
@@ -10071,45 +10239,88 @@
\newcommand{\pageinnotes}[1]{%
\ifm@mpnpageopt \printpageinnotes{#1}\fi}
\newcommand*{\printpageinnotes}[1]{%
- (\pagerefname\ #1)\space}
-\newcommand{\noteinnotes}[1]{#1}
+ (\pagerefname\ \pageref{#1})\space}
+\newcommand\printpageinnoteshyperref[1]{%
+(\hyperref[#1]{\pagerefname\ \pageref*{#1}})\space}
+\newcommand{\noteinnotes}[1]{#1} % not used anymore!
\newcommand{\prenoteinnotes}{\par\noindent}
\newcommand{\postnoteinnotes}{\par}
+\newcommand\prenotetext{}
+\newcommand\postnotetext{}
+
\providecommand*{\notesname}{Notes}
\newcommand*{\notedivision}{\chapter{\notesname}}
-\newcommand*{\printpagenotes}{\@ifstar{\@sprintpagenotes}{\@printpagenotes}}
+\newcommand*{\printpagenotes}{\@ifstar{\mem@printpagenotes{00}}{\mem@printpagenotes{01}}}
\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}{%
+\newcommand\startnoteentrystart[3]{%
+ \prenoteinnotes%
+ \noteidinnotes{#1}{#2}%
+ \pageinnotes{#3}%
+ \prenotetext%
+}
+\def\endnoteentryend{\postnotetext\postnoteinnotes}
+\newcommand\mem@make@gt@safe{%
+ \edef\@tempa{`\string >}%
+ \ifnum\catcode\@tempa=12%
+ \let\@ResetGT\relax%
+ \else%
+ \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
+ \@makeother\>%
+ \fi%
+}
+\newcommand\mem@printpagenotes[1]{%
\ifmempagenotes
\notedivision
\IfFileExists{\jobname.ent}{%
+ \begingroup
+ \mem@make@gt@safe%
+ \def\startnoteentry####1####2####3####4>{%
+ \begingroup
+ \@ResetGT
+ \startnoteentrystart{####1}{####2}{####3}%
+ }
+ \def\endnoteentry{\endnoteentryend\endgroup}
\immediate\closeout\@notefile
\input{\jobname.ent}%
- }{%
- \mempnofilewarn
- }
- \fi}
+ \if#1\immediate\openout\@notefile=\jobname.ent\fi%
+ \endgroup
+ }{%
+ \mempnofilewarn
+ }%
+ \fi%
+}
+
+ % \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}}
-
+\newcommand\pagenotesubheadstarred{\pagenotesubhead}
\newif\ifchangemarks\changemarksfalse
\newcommand*{\changemarks}{\changemarkstrue}
\newcommand*{\nochangemarks}{\changemarksfalse}
@@ -10243,6 +10454,7 @@
\let\tmarkmr\relax
\let\tmarkbm\relax}
+\newcommand*\trimmarkscolor{}
\newcommand*{\trimmarks}{%
\vbox to \z@{\vskip-1in \vskip\trimtop % top of logical page
\hb@xt@\z@{\hskip-1in
@@ -10257,11 +10469,11 @@
\fi
\vbox to \paperheight{%
\let\protect\relax % <- v1.4 addition
- \hb@xt@\paperwidth{\tmarktl\hfil\tmarktm\hfil\tmarktr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarktl\hfil\tmarktm\hfil\tmarktr}%
\vfil
- \hb@xt@\paperwidth{\tmarkml\hfil\tmarkmr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkml\hfil\tmarkmr}%
\vfil
- \hb@xt@\paperwidth{\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
\hss}%
\vss}}
@@ -10272,7 +10484,7 @@
\setlength{\unitlength}{1bp}\thicklines
\put(-36,0){\line(1,0){24}}
\put(0,12){\line(0,1){24}}
- \put(3,27){\ttfamily\fontsize{8bp}{10bp}\selectfont\jobname\ \
+ \put(3,27){\normalfont\ttfamily\fontsize{8bp}{10bp}\selectfont\jobname\ \
\today\ \ \printtime\ \ Page \thepage}
\end{picture}}}
\renewcommand*{\tmarktm}{\registrationColour{%
@@ -10337,11 +10549,11 @@
\fi
\vbox to \paperheight{%
\let\protect\relax % <- v1.4 addition
- \hb@xt@\paperwidth{\tmarktl\hfil\tmarktm\hfil\tmarktr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarktl\hfil\tmarktm\hfil\tmarktr}%
\vfil
- \hb@xt@\paperwidth{\tmarkml\hfil\tmarkmr}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkml\hfil\tmarkmr}%
\vfil
- \hb@xt@\paperwidth{\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
+ \hb@xt@\paperwidth{\trimmarkscolor\tmarkbl\hfil\tmarkbm\hfil\tmarkbr}}%
\hss}%
\vss}}%
}}