diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/memoir/README | 120 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/memoir/memoir.dtx | 836 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/memoir/memoir.ins | 1 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/memoir/mempatch.dtx | 15 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/memoir/memhfixc.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/memoir/memoir.cls | 384 |
6 files changed, 1157 insertions, 205 deletions
diff --git a/Master/texmf-dist/doc/latex/memoir/README b/Master/texmf-dist/doc/latex/memoir/README index 4ffba1fa0cf..c0164884cb8 100644 --- a/Master/texmf-dist/doc/latex/memoir/README +++ b/Master/texmf-dist/doc/latex/memoir/README @@ -7,7 +7,7 @@ you create your particular design. The class incorporates over 30 of the more popular packages. IF YOU HAVE ANY QUESTIONS PLEASE ASK THEM ON THE COMP.TEXT.TEX NEWSGROUP; -YOU ARE LIKELY TO GET FASER AND BETTER ANSWERS THAN IF YOU EMAIL ME DIRECTLY +YOU ARE LIKELY TO GET FASTER AND BETTER ANSWERS THAN IF YOU EMAIL ME DIRECTLY AS I AM AWAY MORE OFTEN THAN NOT. NOTE: In order to provide fixes for any problems that may arise @@ -40,6 +40,120 @@ o Backmatter: Command glossary ~ 40 pages Bibliography, indexes ~ 50 pages +Changes (2009/01/26) +o Memoir v1.6180339c released with minor bug fixes that could + not be done via the patch file, plus some new functionality. The + manual has NOT been updated and the changes are noted below. + +-- New paper size options: `a0paper', `a1paper', `a2paper', `b0paper', + `b1paper', and `b2paper' for A0, A1, A2, B0,B1, and B2 size stock paper. + +-- Macro \memoirpostopthook{} which is called after the options are + processed but before anything else is done (like setting the page layout). + As an example, you may define it as (before the \documentclass} + command): + \newcommand*{\memoirpostopthook}{% + \setlength{\stockwidth}{<wid>}\setlength{\stockheight}{<ht>}} + \documentclass[...]{memoir} + to specify a stock paper size of <wid> by <ht> that is not provided by the + defined options. + +-- New `portrait' option (default, the opposite of `landscape'). + +-- New command \setbinding{<length>} for a binding offset of <length>. + +-- New commands: \setpagetm, \setpagetr, \setpagemr, \setpagebr, \setpagebm, + \setpagecc to position a (smaller) page on a (larger) stock at the + top-middle, top-right, middle-right, bottom-right, bottom-middle, and + centered with respect to the stock. + + The macros are to be used instead of \settrimmedsize taking the + same arguments. + +-- New optional parameter in \makeheadwidth{<style>}[<footerwidth>]{<headerwidth>} + to set the width of the <style>'s headers to <headerwidth> and the footers + to <headerwidth> or, if given, to <footerwidth>. The two widths can also + be set individually using \makerunningheadwidth{<style>}{<length>} + and similarly with \makerunningfootwidth. The lengths, if needed + are stored in \styleheadrunwidth and \stylefootrunwidth. + +-- New `showlocs' pagestyle, which is provided as an example of what can be + done to show the positions of headers, footers, and the textblock (lines + are drawn showing the header and footer vertical locations and a box is + drawn around the text block. It is implemented by two zero-sized pictures: + \framepichead which draws a line at the header location, and \framepictextfoot + which draws a frame around the textblock and a line at the footer location. + Following the declaration \showheadfootlocoff the header/footer lines + will not be drawn (\showheadfootlocon turns them on again), and following + the \showtextblocklocoff declaration the frame around the text block will + not be drawn (\showtextblocklocon turns it on again). If you want a box + around your text you could create your own pagestyle using \framepictextfoot + and with the showlocs code as a starting point. + +-- New command \centerfloat is a version of \centering which centers a wide + float or other known width element with respect to the textblock. E.g., + \begin{table} \centerfloat \caption{A wide table} ... \end{table} + +-- New command \sourceatright[<length>]{<short text>}. Use at the end of a + paragraph to put <short text> flushright. If it is short enough it will + go at the end of the last line preceded by at least <length> (default 2em) + space, otherwise it is set (flushright) on the following line. + +-- New macro \leftspringright{<lfrac>}{<rfrac>}{<ltext>}{<rtext>} sets + <ltext> as a flushleft column, width <lfrac> of the textwidth, and <rtext> + as a flushright column, width <rfrac> of the textwidth, with + (1.0 - <lfrac> - <rfrac>) textwidth space between them. E.g., + \spring{0.4}{0.5}{On the left}{Right stuff} + +-- Following the declaration \linenottooshort{<length>} paragraphs will be set: + As normal but the last line will not be shorter than <length> (default 4em) + +-- Using \russianpar instead of \par to end a paragraph causes it to be set + following Russian typographic rules + +-- Using \lastlinerulefill instead of \par to end a paragraph will be + cause any short line to be filled with a rule (\lastlineparrule) up to + the righthand margin. + +-- Following the declaration \leftcenterright paragraphs will be set: + First line raggedright, the last line raggedleft, and the remainder + centered. If you use this shape, set \everypar{} afterwards. + +-- Following the declaration \justlastraggedleft paragraphs will be set: + All lines normal except the last is raggedleft. + +-- Following the declaration \raggedrightthenleft paragraphs will be set: + First line raggedright and remainder raggedleft. + +-- If you use the above unusual paragraph shapes then using \\ to break + a line may give a surprising result. If so, you could try instead + \atcentercr (a memoir macro) or \break (a standard LaTeX macro) to see + if the result is any better for you. In addition, just in case, memoir + stores the original definitions of \\ and \par as \memorigdbs and + \memorigpar respectively. + +-- \titleref have been extended with a \titleref*, which under + hyperref will provide the title but no link. Without hyperref, it + is the same as \titleref + +-- added hooks around the internals used by sidecaption, + sidecontcaption, sidenamedlegend and sidelegend. They do nothing by + default but can be used for something like this + + \makeatletter + \newenvironment{sidecaption*}{ + \renewcommand\@mem@scap@beforehook{\checkoddpage\ifoddpage\else\raggedleft\fi} + \renewcommand\@mem@scap@afterhook{\par} + \begin{sidecaption}} + {\end{sidecaption}} + \makeatother + + which, if the user has placed the sidecaption on the outside in an + twosided layout, then the figure will automatically be pushed + towards the spine margin. + + + Changes (2008/08/23) o memhfixc v1.10 released to fix problem with tex4ht o NO CHANGES TO ANYTHING ELSE @@ -292,7 +406,7 @@ o First public experimental alpha release ------------------------------------------------------------------- Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net - Copyright 2001--2005 Peter R. Wilson + Copyright 2001--2009 Peter R. Wilson This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either @@ -383,6 +497,6 @@ o Print the manual -2008/08/23 +2009/01/25 Peter Wilson herries dot press at earthlink dot net diff --git a/Master/texmf-dist/source/latex/memoir/memoir.dtx b/Master/texmf-dist/source/latex/memoir/memoir.dtx index 930055df98f..c53f51c29ed 100644 --- a/Master/texmf-dist/source/latex/memoir/memoir.dtx +++ b/Master/texmf-dist/source/latex/memoir/memoir.dtx @@ -2,7 +2,7 @@ % % memoir.dtx % Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net -% Copyright 2001--2008 Peter R. Wilson +% Copyright 2001--2009 Peter R. Wilson % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -18,7 +18,7 @@ % This work consists of the files listed in the README file. % % \fi -% \CheckSum{27470} +% \CheckSum{27993} % % \changes{v0.1}{2001/05/20}{First public alpha release} % \changes{v0.2}{2001/06/03}{First beta release} @@ -69,6 +69,8 @@ % \changes{v1.6180339}{2008/07/23}{Unemulated if... packages} % \changes{v1.6180339}{2008/07/23}{Folded in all mempatch v5.1 patches} % \changes{v1.6180339a}{2008/08/07}{Removed extra space in footnotes} +% \changes{v1.6180339c}{2009/01/21}{Minor bug fixes and extensions} +% \changes{v1.6180339c}{2009/01/25}{A few more} % % \def\dtxfile{memoir.dtx} % @@ -95,6 +97,8 @@ % \def\fileversion{v1.618033} \def\filedate{2008/06/02} % \def\fileversion{v1.6180339} \def\filedate{2008/07/23} % \def\fileversion{v1.6180339a} \def\filedate{2008/08/07} +% \def\fileversion{v1.6180339c} \def\filedate{2009/01/21} +% \def\fileversion{v1.6180339c} \def\filedate{2009/01/25} % \title{The LaTeX \Lpack{memoir} class for configurable book % typesetting: Source code\thanks{This % file (\texttt{\dtxfile}) has version number \fileversion, last revised @@ -315,7 +319,7 @@ % Announce the name, option files and version for LaTeX2e files: % \begin{macrocode} %<class>\ProvidesClass{memoir}% -%<class> [2008/08/07 v1.6180339a configurable book, report, article document class] +%<class> [2009/01/25 v1.6180339c 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}% @@ -1041,13 +1045,13 @@ % \changes{v1.61803}{2008/01/30}{Added check for etex (mempatch v4.9)} % \changes{v1.618033}{2008/06/02}{Improved check for etex} % \changes{v1.6180339}{2008/07/23}{Use an ifetex package if available} +% \changes{v1.6180339c}{2008/12/27}{Changed ifetex message from Warning to Info} % \begin{macrocode} \newif\ifm@mifetex \m@mifetexfalse \IfFileExists{ifetex.sty}{\RequirePackage{ifetex}\relax}{% - \ClassWarningNoLine{memoir}{% - If there is an `ifetex' package then it is not installed.\MessageBreak - The package is being emulated}% + \ClassInfo{memoir}{% + An `ifetex' package is being emulated}% \m@mifetextrue \newif\ifetex \etexfalse @@ -1118,12 +1122,14 @@ % perhaps not. % \changes{v1.61803}{2008/01/30}{Added check for luatex} % \changes{v1.6180339}{2008/07/23}{Use an ifluatex package if available} +% \changes{v1.6180339c}{2008/12/31}{It seems that Heiko Oberdiek has created an +% ifluatex package.} % \begin{macrocode} \newif\ifm@mifluatex \m@mifluatexfalse \IfFileExists{ifluatex.sty}{\RequirePackage{ifluatex}\relax}{% \ClassWarningNoLine{memoir}{% - If there is an `ifluatex' package then it is not installed.\MessageBreak + The `ifluatex' package is not installed.\MessageBreak The package is being emulated}% \m@mifluatextrue \newif\ifluatex @@ -1617,12 +1623,20 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\stockao} +% \begin{macro}{\stockai} +% \begin{macro}{\stockaii} % \begin{macro}{\stockaiii} % \begin{macro}{\stockaiv} % \begin{macro}{\stockav} % \begin{macro}{\stockavi} -% The A series, A3 --- A6. +% The A series, A0 --- A6. +% \changes{v1.6180339c}{2008/12/26}{Extended the A and B stock/paper size +% seies with A/B0 through A/B2} % \begin{macrocode} +\newcommand*{\stockao} {\stockheight=1189mm \stockwidth=841mm} +\newcommand*{\stockai} {\stockheight=841mm \stockwidth=594mm} +\newcommand*{\stockaii} {\stockheight=594mm \stockwidth=420mm} \newcommand*{\stockaiii}{\stockheight=420mm \stockwidth=297mm} \newcommand*{\stockaiv} {\stockheight=297mm \stockwidth=210mm} \newcommand*{\stockav} {\stockheight=210mm \stockwidth=148mm} @@ -1633,13 +1647,22 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % +% \begin{macro}{\stockbo} +% \begin{macro}{\stockbi} +% \begin{macro}{\stockbii} % \begin{macro}{\stockbiii} % \begin{macro}{\stockbiv} % \begin{macro}{\stockbv} % \begin{macro}{\stockbvi} -% The B series, B3 --- B6. +% The B series, B0 --- B6. % \begin{macrocode} +\newcommand*{\stockbo} {\stockheight=1414mm \stockwidth=1000mm} +\newcommand*{\stockbi} {\stockheight=1000mm \stockwidth=707mm} +\newcommand*{\stockbii} {\stockheight=707mm \stockwidth=500mm} \newcommand*{\stockbiii}{\stockheight=500mm \stockwidth=353mm} \newcommand*{\stockbiv} {\stockheight=353mm \stockwidth=250mm} \newcommand*{\stockbv} {\stockheight=250mm \stockwidth=176mm} @@ -1650,6 +1673,9 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % It will be useful also to provide macros that set the page sizes. % @@ -1661,16 +1687,19 @@ % \begin{macro}{\pagelegal} % \begin{macro}{\pageledger} % \begin{macro}{\pagebroadsheet} +% \changes{v1.6180339c}{\cs{pageheight} and \cs{pagewidth} should be +% \cs{paperheight} and \cs{paperwidth} +% (courtesy Wilhelm Muller)} % US page sizes. % \begin{macrocode} -\newcommand*{\pagedbill} {\pageheight=7in \pagewidth=3in} -\newcommand*{\pagestatement} {\pageheight=8.5in \pagewidth=5.5in} -\newcommand*{\pageexecutive} {\pageheight=10.5in \pagewidth=7.25in} -\newcommand*{\pageletter} {\pageheight=11in \pagewidth=8.5in} -\newcommand*{\pageold} {\pageheight=12in \pagewidth=9in} -\newcommand*{\pagelegal} {\pageheight=14in \pagewidth=8.5in} -\newcommand*{\pageledger} {\pageheight=17in \pagewidth=11in} -\newcommand*{\pagebroadsheet}{\pageheight=22in \pagewidth=17in} +\newcommand*{\pagedbill} {\paperheight=7in \paperwidth=3in} +\newcommand*{\pagestatement} {\paperheight=8.5in \paperwidth=5.5in} +\newcommand*{\pageexecutive} {\paperheight=10.5in \paperwidth=7.25in} +\newcommand*{\pageletter} {\paperheight=11in \paperwidth=8.5in} +\newcommand*{\pageold} {\paperheight=12in \paperwidth=9in} +\newcommand*{\pagelegal} {\paperheight=14in \paperwidth=8.5in} +\newcommand*{\pageledger} {\paperheight=17in \paperwidth=11in} +\newcommand*{\pagebroadsheet}{\paperheight=22in \paperwidth=17in} % \end{macrocode} % \end{macro} @@ -1691,13 +1720,13 @@ % \begin{macro}{\pagesmalldemyvo} % British traditional page sizes, octavo. % \begin{macrocode} -\newcommand*{\pagepottvo} {\pageheight=6.25in \pagewidth=4in} -\newcommand*{\pagefoolscapvo} {\pageheight=6.75in \pagewidth=4.25in} -\newcommand*{\pagecrownvo} {\pageheight=7.5in \pagewidth=5in} -\newcommand*{\pagepostvo} {\pageheight=8in \pagewidth=5in} -\newcommand*{\pagelargecrownvo}{\pageheight=8in \pagewidth=5.25in} -\newcommand*{\pagelargepostvo} {\pageheight=8.25in \pagewidth=5.25in} -\newcommand*{\pagesmalldemyvo} {\pageheight=8.5in \pagewidth=5.675in} +\newcommand*{\pagepottvo} {\paperheight=6.25in \paperwidth=4in} +\newcommand*{\pagefoolscapvo} {\paperheight=6.75in \paperwidth=4.25in} +\newcommand*{\pagecrownvo} {\paperheight=7.5in \paperwidth=5in} +\newcommand*{\pagepostvo} {\paperheight=8in \paperwidth=5in} +\newcommand*{\pagelargecrownvo}{\paperheight=8in \paperwidth=5.25in} +\newcommand*{\pagelargepostvo} {\paperheight=8.25in \paperwidth=5.25in} +\newcommand*{\pagesmalldemyvo} {\paperheight=8.5in \paperwidth=5.675in} % \end{macrocode} % \end{macro} % \end{macro} @@ -1714,12 +1743,12 @@ % \begin{macro}{\pagesuperroyalvo} % \begin{macro}{\pageimperialvo} % \begin{macrocode} -\newcommand*{\pagedemyvo} {\pageheight=8.75in \pagewidth=5.675in} -\newcommand*{\pagemediumvo} {\pageheight=9in \pagewidth=5.75in} -\newcommand*{\pagesmallroyalvo}{\pageheight=9.25in \pagewidth=6.175in} -\newcommand*{\pageroyalvo} {\pageheight=10in \pagewidth=6.25in} -\newcommand*{\pagesuperroyalvo}{\pageheight=10.25in \pagewidth=6.75in} -\newcommand*{\pageimperialvo} {\pageheight=11in \pagewidth=7.5in} +\newcommand*{\pagedemyvo} {\paperheight=8.75in \paperwidth=5.675in} +\newcommand*{\pagemediumvo} {\paperheight=9in \paperwidth=5.75in} +\newcommand*{\pagesmallroyalvo}{\paperheight=9.25in \paperwidth=6.175in} +\newcommand*{\pageroyalvo} {\paperheight=10in \paperwidth=6.25in} +\newcommand*{\pagesuperroyalvo}{\paperheight=10.25in \paperwidth=6.75in} +\newcommand*{\pageimperialvo} {\paperheight=11in \paperwidth=7.5in} % \end{macrocode} % \end{macro} @@ -1736,10 +1765,10 @@ % \begin{macro}{\pagemsmallroyalvo} % Metric sizes. % \begin{macrocode} -\newcommand*{\pagemcrownvo} {\pageheight=186mm \pagewidth=123mm} -\newcommand*{\pagemlargecrownvo} {\pageheight=198mm \pagewidth=129mm} -\newcommand*{\pagemdemyvo} {\pageheight=216mm \pagewidth=138mm} -\newcommand*{\pagemsmallroyalvo} {\pageheight=234mm \pagewidth=156mm} +\newcommand*{\pagemcrownvo} {\paperheight=186mm \paperwidth=123mm} +\newcommand*{\pagemlargecrownvo} {\paperheight=198mm \paperwidth=129mm} +\newcommand*{\pagemdemyvo} {\paperheight=216mm \paperwidth=138mm} +\newcommand*{\pagemsmallroyalvo} {\paperheight=234mm \paperwidth=156mm} % \end{macrocode} % \end{macro} @@ -1747,48 +1776,74 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\pageao} +% \begin{macro}{\pageai} +% \begin{macro}{\pageaii} % \begin{macro}{\pageaiii} % \begin{macro}{\pageaiv} % \begin{macro}{\pageav} % \begin{macro}{\pageavi} -% The A series, A3 --- A6. +% The A series, A0 --- A6. % \begin{macrocode} -\newcommand*{\pageaiii}{\pageheight=420mm \pagewidth=297mm} -\newcommand*{\pageaiv} {\pageheight=297mm \pagewidth=210mm} -\newcommand*{\pageav} {\pageheight=210mm \pagewidth=148mm} -\newcommand*{\pageavi} {\pageheight=148mm \pagewidth=105mm} +\newcommand*{\pageao} {\paperheight=1189mm \paperwidth=841mm} +\newcommand*{\pageai} {\paperheight=841mm \paperwidth=594mm} +\newcommand*{\pageaii} {\paperheight=594mm \paperwidth=420mm} +\newcommand*{\pageaiii}{\paperheight=420mm \paperwidth=297mm} +\newcommand*{\pageaiv} {\paperheight=297mm \paperwidth=210mm} +\newcommand*{\pageav} {\paperheight=210mm \paperwidth=148mm} +\newcommand*{\pageavi} {\paperheight=148mm \paperwidth=105mm} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % +% \begin{macro}{\pagebo} +% \begin{macro}{\pagebi} +% \begin{macro}{\pagebii} % \begin{macro}{\pagebiii} % \begin{macro}{\pagebiv} % \begin{macro}{\pagebv} % \begin{macro}{\pagebvi} -% The B series, B3 --- B6. +% The B series, B0 --- B6. % \begin{macrocode} -\newcommand*{\pagebiii}{\pageheight=500mm \pagewidth=353mm} -\newcommand*{\pagebiv} {\pageheight=353mm \pagewidth=250mm} -\newcommand*{\pagebv} {\pageheight=250mm \pagewidth=176mm} -\newcommand*{\pagebvi} {\pageheight=176mm \pagewidth=125mm} +\newcommand*{\pagebo} {\paperheight=1414mm \paperwidth=1000mm} +\newcommand*{\pagebi} {\paperheight=1000mm \paperwidth=707mm} +\newcommand*{\pagebii} {\paperheight=707mm \paperwidth=500mm} +\newcommand*{\pagebiii}{\paperheight=500mm \paperwidth=353mm} +\newcommand*{\pagebiv} {\paperheight=353mm \paperwidth=250mm} +\newcommand*{\pagebv} {\paperheight=250mm \paperwidth=176mm} +\newcommand*{\pagebvi} {\paperheight=176mm \paperwidth=125mm} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % Declare the stock size options. % % Metric paper stock sizes. +% \changes{v1.6180339c}{2008/12/26}{Extended class options to include stock +% sizes A0, A1, A2, B0, B1 and B2} % \begin{macrocode} +\DeclareOption{a0paper}{\stockao} +\DeclareOption{a1paper}{\stockai} +\DeclareOption{a2paper}{\stockaii} \DeclareOption{a3paper}{\stockaiii} \DeclareOption{a4paper}{\stockaiv} \DeclareOption{a5paper}{\stockav} \DeclareOption{a6paper}{\stockavi} +\DeclareOption{b0paper}{\stockbo} +\DeclareOption{b1paper}{\stockbi} +\DeclareOption{b2paper}{\stockbii} \DeclareOption{b3paper}{\stockbiii} \DeclareOption{b4paper}{\stockbiv} \DeclareOption{b5paper}{\stockbv} @@ -1838,12 +1893,24 @@ % % The \Lopt{landscape} option switches the values of the height and width, % assuming that the dimensions were originally given for portrait -% orientation. +% orientation. (At the suggestion of Wilhelm M\"{u}ller made this independent +% of the option sequence). +% \changes{v1.6180339c}{2008/12/26}{`Stabilised' the landscape option and +% added a portrait option}. +% \begin{macro}{\ifmemlandscape} +% \begin{macro}{\memlandscapetrue} +% \begin{macro}{\memlandscapefalse} % \begin{macrocode} -\DeclareOption{landscape} - {\setlength\@tempdima {\stockheight} - \setlength\stockheight{\stockwidth} - \setlength\stockwidth {\@tempdima}} +\newif\ifmemlandscape + \memlandscapefalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption{landscape}{\memlandscapetrue} +\DeclareOption{portrait}{\memlandscapefalse} % \end{macrocode} % @@ -2109,7 +2176,8 @@ % Here we execute the default options to initialize certain % variables. % \begin{macrocode} -\ExecuteOptions{final,letterpaper,10pt,onecolumn,openright,twoside} +\ExecuteOptions{final,letterpaper,10pt,onecolumn,openright,twoside, + portrait} % \end{macrocode} % % The \cs{ProcessOptions} command causes the execution of the code @@ -2120,8 +2188,19 @@ % which is not declared, the option is assumed to be a global option. % All options will be passed as document options to any % \cs{usepackage} command in the document preamble. -% \begin{macrocode} -\ProcessOptions +% +% \cs{ProcessOptions*} processes the options in the order they are given +% in the \cs{documentclass} command, instead of the definition order. +% \changes{v1.6180339c}{2008/12/26}{Change \cs{ProcessOptions} to +% \cs{ProcessOptions*} and handle landscape/portrait +% option after \cs{ProcessOptions*}} +% \begin{macrocode} +\ProcessOptions* + \ifmemlandscape + \setlength\@tempdima {\stockheight} + \setlength\stockheight{\stockwidth} + \setlength\stockwidth {\@tempdima} + \fi % \end{macrocode} % @@ -3985,19 +4064,38 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\binding} +% \begin{macro}{\setbinding} +% The length \cs{binding} is an allowance on the spine margin for +% binding. \cs{setbinding}\marg{length} sets the \cs{binding}. +% \changes{v1.6180339c}{2008/12/29}{Added binding offset code to the +% layout functions} +% \begin{macrocode} +\newlength{\binding} +\newcommand*{\setbinding}[1]{\setlength{\binding}{#1}} + \setbinding{0pt} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\spinemargin} % \begin{macro}{\foremargin} % \begin{macro}{\setlrmargins} % \cs{setlrmargins}\marg{L}\marg{R}\marg{r} sets the Left (spine) % and Right (fore edge) margins with constant typeblock. +% \changes{v1.6180339c}{2008/12/29}{Added binding to \cs{setlrmargins}} % \begin{macrocode} \newlength{\spinemargin} \newlength{\foremargin} \newcommand{\setlrmargins}[3]{% + \advance\paperwidth -\binding \setfillsize{\paperwidth}{\textwidth}{#1}{#2}{#3}% \setlength{\textwidth}{\@tempdimc}% \setlength{\spinemargin}{\@tempdima}% - \setlength{\foremargin}{\@tempdimb}} + \setlength{\foremargin}{\@tempdimb}% + \advance\paperwidth \binding + \advance\spinemargin \binding} % \end{macrocode} % \end{macro} @@ -4007,12 +4105,16 @@ % \begin{macro}{\setlrmarginsandblock} % \cs{setlrmarginsandblock}\marg{L}\marg{R}\marg{r} sets the Left (spine) % and Right (fore edge) margins with variable typeblock. +% \changes{v1.6180339c}{2008/12/29}{Added binding to \cs{setlrmarginsandblock}} % \begin{macrocode} \newcommand{\setlrmarginsandblock}[3]{% + \advance\paperwidth -\binding \setfillsize{\paperwidth}{*}{#1}{#2}{#3}% \setlength{\textwidth}{\@tempdimc}% \setlength{\spinemargin}{\@tempdima}% - \setlength{\foremargin}{\@tempdimb}} + \setlength{\foremargin}{\@tempdimb}% + \advance\paperwidth \binding + \advance\spinemargin \binding} % \end{macrocode} % \end{macro} @@ -4757,18 +4859,20 @@ % \begin{macro}{\setpagebl} % \begin{macro}{\setpageml} % \begin{macro}{\setpagetl} +% \begin{macro}{\setpagetm} % \cs{setpagebl}\marg{height}\marg{width}\marg{ratio} sets a page smaller than % the stock size at the bottom left of the stock. The arguments are the % the same as for \cs{settrimmedsize}; % \meta{height}, \meta{width} and \meta{ratio} of height and width % (choose any two) of the desired page size. The trims are adjusted to suit. -% \cs{setpagetl} puts the page at the top left, and \cs{setpageml} at the -% middle left. +% \cs{setpagetl} puts the page at the top left, \cs{setpageml} at the +% middle left, and \cs{setpagetm} at the top middle. % \changes{v1.61803}{2008/01/30}{Added \cs{setpagebl}, \cs{setpageml}, and % \cs{setpagetl}} +% \changes{v1.6180339c}{2008/12/26}{Added \cs{setpagetm}} % \begin{macrocode} \newcommand*{\setpagebl}[3]{% - \settrimmedsize{#1}{#2}{#3} + \settrimmedsize{#1}{#2}{#3}% \trimtop=\stockheight \advance\trimtop -\paperheight \trimedge=\stockwidth \advance\trimedge -\paperwidth} \newcommand*{\setpageml}[3]{% @@ -4780,11 +4884,60 @@ \settrimmedsize{#1}{#2}{#3} \trimtop=0pt \trimedge=\stockwidth \advance\trimedge -\paperwidth} +\newcommand*{\setpagetm}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=0pt + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setpagetr} +% \begin{macro}{\setpagemr} +% \begin{macro}{\setpagebr} +% \begin{macro}{\setpagebm} +% \begin{macro}{\setpagecc} +% Similar to those above, these macros set the page on the stock +% at the top right, middle right, bottom right, bottom middle, and centered. +% \changes{v1.6180339c}{2008/12/26}{Added \cs{setpagetr}, \cs{setpagemr}, \cs{setpagebr}, +% \cs{setpagebm} and \cs{setpagecc}} +% \begin{macrocode} +\newcommand*{\setpagetr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=0pt + \trimedge=0pt} +\newcommand*{\setpagemr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \advance\trimtop -0.5\trimtop + \trimedge=0pt} +\newcommand*{\setpagebr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \trimedge=0pt} +\newcommand*{\setpagebm}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} +\newcommand*{\setpagecc}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \advance\trimtop -0.5\trimtop + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% % % % \subsection{Float placement parameters} @@ -4969,7 +5122,7 @@ % The command % \cs{makeevenhead}\marg{style}\marg{left}\marg{center}\marg{right} % specifies that the left, center and right portions of the even header for -% pagestyle \meta{style} are defined as the other thre arguments, respectiveley. +% pagestyle \meta{style} are defined as the other three arguments, respectiveley. % Internally it defines the commands \cs{styleeheadl}, \cs{styleeheadc} and % \cs{styleeheadr} to be \meta{left}, \meta{center} and \meta{right} respectively. % \begin{macrocode} @@ -5009,13 +5162,57 @@ % \end{macro} % % \begin{macro}{\makerunningwidth} -% The macro \cs{makerunningwidth}\marg{style}\marg{length} sets the -% width of the headers and footers of pagestyle \meta{style} to be \meta{length}. -% \begin{macrocode} -\newcommand{\makerunningwidth}[2]{% - \@namedef{#1runwidth}{#2}} +% \begin{macro}{\makerunningheadwidth} +% \begin{macro}{\makerunningfootwidth} +% \begin{macro}{\m@mhfstyle} +% \begin{macro}{\m@mopthfwidth} +% The macro \cs{makerunningwidth}\marg{style}\oarg{ftlength}\marg{length} +% sets the +% width of the headers and footers of pagestyle \meta{style} to +% be \meta{length}, but if \meta{ftlength} is present the footer +% width is set to \meta{ftlength}. The lengths are stored as the +% macros \cs{styleheadrunwidth} and \cs{stylefootrunwidth}. The two +% widths can be set individually using +% \cs{makerunningheadwidth}\marg{style}\marg{length} and +% \cs{makerunningfootwidth}\marg{style}\marg{length}. +% \changes{v1.6180339c}{2008/12/26}{Enabled the width of headers and footers +% to be different +% (requested by Wilhelm M\"{u}ller).} +% \changes{v1.6180339c}{2009/01/13}{Added \cs{makerunningheadwidth} +% and \cs{makerunningfootwidth}}. +% \begin{macrocode} +\newcommand*{\makerunningwidth}[1]{% + \def\m@mhfstyle{#1}% + \m@mopthfwidth} +\newcommand*{\m@mopthfwidth}[2][\@mpty]{% + \setlength\@tempdima{#2} +% \@namedef{\m@mhfstyle headrunwidth}{#2}% + \expandafter\edef\csname \m@mhfstyle headrunwidth\endcsname{\the\@tempdima} + \ifx\@mpty #1 +% \@namedef{\m@mhfstyle footrunwidth}{#2}% + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima} + \else +% \@namedef{\m@mhfstyle footrunwidth}{#1}% + \setlength\@tempdima{#1} + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima} + \fi} +\newcommand*{\makerunningheadwidth}[2]{% + \setlength\@tempdima{#2}% + \expandafter\edef\csname \m@mhfstyle headrunwidth\endcsname{\the\@tempdima}% +% \@namedef{#1headrunwidth}{#2} +} +\newcommand*{\makerunningfootwidth}[2]{% + \setlength\@tempdima{#2}% +% \@namedef{#1footrunwidth}{#2} + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima}% +} + % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\normalrulethickness} % \begin{macro}{\footruleheight} @@ -5152,6 +5349,21 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\makeheadfootvposition} +% The headers and footers are typeset inside \cs{parbox}'es, using +% \cs{makeheadfootvposition}\marg{style}\marg{headvpos}\marg{footvpost} +% users can specify whether the alignment should be b,t or c.The +% detault is b. +% \changes{v1.6180339c}{2009/01/13}{Added support for for +% controlling the alignment of the headers and footers} +% \begin{macrocode} +\newcommand*\makeheadfootvposition[3]{% + \@namedef{#1headvplacement}{#2}\@namedef{#1footvplacement}{#3}} + +% \end{macrocode} +% \end{macro} +% +% % \begin{macro}{\makepagestyle} % At last we can put everything together for defining a new pagestyle, % via the macro \cs{makepagestyle}\marg{style} which initially sets up @@ -5181,23 +5393,27 @@ % % First the left filler which is either \cs{relax} or \cs{hss}, and then % start the main box. +% \changes{v1.6180339c}{2008/12/26}{Replaced \cs{...runwidth} by \cs{...headrunwidth} +% or \cs{...footrunwidth}, as appropriate for headers and footers.} +% \changes{v1.6180339c}{2009/01/13}{Replaced \cs{parbox}\texttt[b] +% with \cs{parbox}\texttt{[\cs{nameuse{#1headvplacement}}]} etc.} % \begin{macrocode} - \@nameuse{#1evenhpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1evenhpl}\hb@xt@\@nameuse{#1headrunwidth}{\m@mhe@dreset% \vbox{\hbox{% % \end{macrocode} % The left part of the header. % \begin{macrocode} - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedright\@nameuse{#1eheadl}\strut}}\hfill % \end{macrocode} % The center part of the header. % \begin{macrocode} - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \centering\@nameuse{#1eheadc}\strut}\hfill % \end{macrocode} % The right part of the header. % \begin{macrocode} - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedleft\@nameuse{#1eheadr}\strut}}}% % \end{macrocode} % Finally, the header rule and finish with the right filler, which @@ -5209,13 +5425,13 @@ % a similar pattern. Here is \cs{@oddhead}. % \begin{macrocode} \@namedef{#1@oddhead}{% - \@nameuse{#1oddhpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1oddhpl}\hb@xt@\@nameuse{#1headrunwidth}{\m@mhe@dreset% \vbox{\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedright\@nameuse{#1oheadl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \centering\@nameuse{#1oheadc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedleft\@nameuse{#1oheadr}\strut}}}% \@nameuse{#1headrule}}}\@nameuse{#1oddhpr}}% % \end{macrocode} @@ -5223,26 +5439,26 @@ % entries. % \begin{macrocode} \@namedef{#1@evenfoot}{% - \@nameuse{#1evenfpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1evenfpl}\hb@xt@\@nameuse{#1footrunwidth}{\m@mhe@dreset% \vbox{\@nameuse{#1footrule}\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedright\@nameuse{#1efootl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \centering\@nameuse{#1efootc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedleft\@nameuse{#1efootr}\strut}}}% }}\@nameuse{#1evenfpr}}% % \end{macrocode} % Lastly the \cs{@oddfoot}. % \begin{macrocode} \@namedef{#1@oddfoot}{% - \@nameuse{#1oddfpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1oddfpl}\hb@xt@\@nameuse{#1footrunwidth}{\m@mhe@dreset% \vbox{\@nameuse{#1footrule}\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedright\@nameuse{#1ofootl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \centering\@nameuse{#1ofootc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedleft\@nameuse{#1ofootr}\strut}}}% }}\@nameuse{#1oddfpr}}% % \end{macrocode} @@ -5276,6 +5492,11 @@ \makeheadrule{#1}{\textwidth}{0pt}% \makefootrule{#1}{\textwidth}{\footruleheight}{\footruleskip}% % \end{macrocode} +% Set the initial vertical header and footer positions. +% \changes{v1.6180339c}{2009/01/13}{Added head/foot position initialisation} +% \begin{macrocode} + \makeheadfootvposition{#1}{b}{b}% +% \end{macrocode} % Finally, there is no addtional code needed, so make the hook empty, and % we are done. % \begin{macrocode} @@ -5322,7 +5543,7 @@ % \end{macrocode} % Set the width. % \begin{macrocode} - \makerunningwidth{#1}{\@nameuse{#2runwidth}}% + \makerunningwidth{#1}[\@nameuse{#2footrunwidth}]{\@nameuse{#2headrunwidth}}% % \end{macrocode} % Specify the \cs{headposition}. % \begin{macrocode} @@ -5331,6 +5552,11 @@ \@namedef{#1evenhpr}{\@nameuse{#2evenhpr}}% \@namedef{#1oddhpr}{\@nameuse{#2oddhpr}}% % \end{macrocode} +% Also vertically +% \changes{v1.6180339c}{2008/01/13}{Also copy the vertical positions} +% \begin{macrocode} + \makeheadfootvposition{#1}{\@namedef{#2headvplacement}}{\@namedef{#2footvplacement}}% +% \end{macrocode} % Specify the feet % \begin{macrocode} \@namedef{#1evenfpl}{\@nameuse{#2evenfpl}}% @@ -5476,7 +5702,7 @@ % \end{macro} % % \begin{macro}{\createmark} -% \cs{createmark}\marg{division}\marg{marks}\mark{show}\marg{prefix}\marg{postfix} +% \cs{createmark}\marg{division}\marg{marks}\marg{show}\marg{prefix}\marg{postfix} % creates a \cs{divisionmark} with \meta{marks} (= \texttt{left}, \texttt{both} % or \texttt{right}) controlling which marks are set, % \meta{show} (= \texttt{shownumber} or \texttt{nonumber}) controls the @@ -5890,6 +6116,101 @@ % \end{macro} % \end{macro} % +% Another pagestyle called \pstyle{showlocs} can be used to show the +% locations of the header, footer and textblock. I would expect that +% this would be mainly used as an example for authors to create their +% own similar styles. +% \changes{v1.6180339c}{2008/12/28}{Added the showlocs pagestyle and supporting +% macros} +% \changes{v1.6180339c}{2009/01/25}{Added more supporting macros for the +% showlocs pagestyle} +% +% \begin{macro}{\ifshowheadfootloc} +% \begin{macro}{\showheadfootloctrue} +% \begin{macro}{\showheadfootlocfalse} +% \begin{macro}{\showheadfootlocon} +% \begin{macro}{\showheadfootlocoff} +% \begin{macro}{\ifshowtextblockloc} +% \begin{macro}{\showtextblockloctrue} +% \begin{macro}{\showtextblocklocfalse} +% \begin{macro}{\showtextblocklocon} +% \begin{macro}{\showtextblocklocoff} +% Booleans controlling the appearance, or not, of the header/footer lines +% and text frame in \pstyle{showlocs}. +% \begin{macrocode} +\newif\ifshowheadfootloc + \showheadfootloctrue +\newcommand*{\showheadfootlocon}{\showheadfootloctrue} +\newcommand*{\showheadfootlocoff}{\showheadfootlocfalse} +\newif\ifshowtextblockloc + \showtextblockloctrue +\newcommand*{\showtextblocklocon}{\showtextblockloctrue} +\newcommand*{\showtextblocklocoff}{\showtextblocklocfalse} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\framepichead} +% For producing a zero-sized picture of a line at the base of the header. +% It is meant to be used as the left part of the header for a pagestyle. +% \changes{v1.6180339c}{2008/12/28}{Added \cs{framepichead}} +% \begin{macrocode} +\newcommand*{\framepichead}{% +\ifshowheadfootloc + \begin{picture}(0,0) + \unitlength 1pt + \put(0,0){\line(1,0){\strip@pt\textwidth}} + \end{picture}% +\fi} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\framepictextfoot} +% For producing a zero-sized picture of a line at the base of the footer +% and a frame around the text block. It is meant to be used as the left +% part of a footer for a pagestyle. +% \changes{v1.6180339c}{2008/12/28}{Added \cs{framepictextfoot}} +% \begin{macrocode} +\newcommand*{\framepictextfoot}{% + \begin{picture}(0,0) + \unitlength 1pt + \ifshowheadfootloc + \put(0,0){\line(1,0){\strip@pt\textwidth}} + \fi + \ifshowtextblockloc + \put(0,\strip@pt\footskip)% + {\framebox(\strip@pt\textwidth,\strip@pt\textheight){}} + \fi + \end{picture}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@showlocs} +% The \pstyle{showlocs} pagestyle. This is more to show what can be done. +% \changes{v1.6180339c}{2008/12/28}{Added the showlocs pagestyle} +% \begin{macrocode} +\makepagestyle{showlocs} +\makeevenhead{showlocs}{\framepichead\thepage}{\thepage}{\thepage} +\makeoddhead{showlocs}{\framepichead\thepage}{\thepage}{\thepage} +\makeevenfoot{showlocs}{\framepictextfoot\thepage}{\thepage}{\thepage} +\makeoddfoot{showlocs}{\framepictextfoot\thepage}{\thepage}{\thepage} + +% \end{macrocode} +% \end{macro} +% +% +% % \subsection{Page numbering} % % The kernel includes the \cs{pagenumbering} command for setting the @@ -10312,6 +10633,168 @@ % % \subsection{Paragraphs} % +% Much of the code in this section is taken from my \textit{Glisterings} +% columns~\cite{GLISTER07,GLISTER08}. +% \changes{v1.6180339c}{2009/01/09}{Added several new paragraph types} +% +% \begin{macro}{\memorigdbs} +% \begin{macro}{\memorigpar} +% \begin{macro}{\atcentercr} +% \cs{memorigdbs} saves the original definition of \verb?\\? and +% \cs{memorigpar} saves the original \cs{par}. The macro \cs{atcentercr} +% provides a user call to \cs{@centercr}. These could come in handy for +% odd paragraph shapes. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{memorigdbs} and +% \cs{memorigpar} \cs{atcentercr}} +% \begin{macrocode} +\let\memorigdbs\\ +\let\memorigpar\par +\let\atcentercr\@centercr + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Normal (block) paragraphs} +% +% +% \begin{macro}{\flushleftright} +% Sets the paragraphing to \LaTeX's normal form. +% \changes{v1.61803}{2008/01/30}{Used \cs{@flushglue} in \cs{flushleftright} and +% \cs{centerlastline} (mempatch v4.7)} +% \changes{v1.6180339c}{2009/01/09}{Extended \cs{flushleftright} to set all +% the regular paragraphing controls} +% \begin{macrocode} +\newcommand*{\flushleftright}{% + \let\\\memorigdbs + \leftskip\z@skip + \rightskip\leftskip + \parfillskip\@flushglue + \everypar{}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\linenottooshort} +% This declaration \cs{linenottooshort}\oarg{length} specifies paragraphs +% such that the last line is at least about \meta{length} long (the default +% is 4em). +% \changes{v1.6180339c}{2009/01/09}{Added \cs{linenottooshort} paragraph} +% \begin{macrocode} +\newcommand*{\linenottooshort}[1][4em]{% + \@tempdima=\hsize + \advance\@tempdima -#1 + \leftskip\z@skip + \rightskip\leftskip + \parfillskip=\@tempdima \@minus \@tempdima} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\russianpar} +% Using \cs{russianpar} instead of \cs{par} to end a paragraph causes it +% to be set according to Russian typography, where the last line of a +% multiline paragraph must be either at least as +% long as \cs{parindent} and have at least \cs{parindent} space at the +% right, or it must be flushleft and flushright. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{russianpar} paragraph} +% \begin{macrocode} +\newcommand*{\russianpar}{\ifhmode\unskip + \strut\vadjust{}\nobreak + \discretionary{}% + {\hbox{\hskip2\parindent + \vrule depth 273sp width 0sp height \ht\strutbox}}% + {\hbox{\hskip\parindent}}% + \hskip-2\parindent \@minus 2\parindent + \hskip\hsize \@minus \hsize + \kern\z@ \parfillskip\z@ + \memorigpar + \ifdim\prevdepth=273sp + \nobreak + \vskip-2\baselineskip + \hbox{\strut}% + \fi\fi} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\lastlineparrule} +% \begin{macro}{\lastlinerulefill} +% Using \cs{lastlinerulefill} instead of \cs{par} to end a paragraph +% causes all short lines to be filled at the right by a rule +% (\cs{lastlineparrule}) extending to the righthand margin. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{lastlineparrule} and +% \cs{lastlinerulefill} paragraph} +% \begin{macrocode} +\newcommand*{\lastlineparrule}{% + \hrule height 0.5ex depth \@tempdimb\relax} +\newcommand*{\lastlinerulefill}{% + \let\\\@centercr + \@tempdimb=-0.5ex \advance\@tempdimb 0.4pt + \unskip\nobreak\space + \leaders\lastlineparrule\hskip\@flushglue + \vadjust{}{\parfillskip\z@\memorigpar}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{Centered lines} +% +% \begin{macro}{\centerlastline} +% This declaration specifies normal paragraphs except that the last line of +% each is centered. +% \begin{macrocode} +\newcommand*{\centerlastline}{% + \leftskip\@flushglue + \rightskip=\z@ plus -1fil + \parfillskip=\z@ plus 2fil} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\leftcenterright} +% This declaration specifies paragraphs where the first line is flushleft +% (raggedright), the +% last is flushright (raggedleft) and all inbetween are centered. +% Set \verb?\everypar{}? afterwards. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{leftcenterright} paragraph} +% \begin{macrocode} +\newcommand*{\leftcenterright}{%; + \let\\\break + \parindent\z@ + \leftskip\@flushglue + \rightskip\leftskip + \parfillskip \z@ \@plus -1fil + \everypar={\hskip \z@ \@plus -1fil}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\centerfloat} +% This is a version of \cs{centering} that can be used to center a wide +% float with respect to the text block (normally the left of a wide float +% is aligned with the left of the textblock). This can only be used for +% centering something where LaTeX knows the width (e.g., a figure or a +% table / tabular). +% +% This is a modified version of code by Robin Fairbairns +% (CTT, \textit{Re: Centering a table: problem with rotating.sty, maybe +% a strange document class?}, 3 Jan 2009). +% \changes{v1.6180339c}{2009/01/11}{Added \cs{centerfloat}} +% \begin{macrocode} +\newcommand*{\centerfloat}{% + \parindent \z@ + \leftskip \z@ \@plus 1fil \@minus \textwidth + \rightskip\leftskip + \parfillskip \z@skip} + +% \end{macrocode} +% \end{macro} +% % \subsubsection{Ragged} % % The kernel code for raggedright (in \file{ltmiscen.dtx}): @@ -10320,7 +10803,8 @@ % \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip % \leftskip\z@skip % \parindent\z@} -% %% \@flushglue = 0pt plus 1fil %% from ltalloc.dtx +% %% \@flushglue = 0pt plus 1fil %% from ltalloc.dtx +% %% \z@skip = 0pt plus 0pt minus 0pt %% % \end{verbatim} % produces very ragged text with no paragraph indent. % @@ -10340,6 +10824,39 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\justlastraggedleft} +% This declaration specifies paragraphs where the lines are justified, +% except for the last which is raggedleft (flushright).. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{justlastraggedleft} paragraph} +% \begin{macrocode} +\newcommand*{\justlastraggedleft}{% + \leftskip\@flushglue + \rightskip-\leftskip + \parfillskip\leftskip + \parindent \z@} + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\raggedrightthenleft} +% This declaration specifies paragraphs where the first line is raggedright +% (flushleft) and all the rest are raggedleft (flushright). Note that +% this alters \cs{everpar}, which may need to be reset afterwards to +% \verb?\everypar{}?. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{raggedrightthenleft} paragraph} +% \begin{macrocode} +\newcommand*{\raggedrightthenleft}{% + \parindent \z@ + \leftskip \z@ \@plus 1fill + \rightskip\@flushglue + \parfillskip \z@ + \everypar{\hskip \z@ \@plus -1fill}} + +% \end{macrocode} +% \end{macro} +% +% % \subsubsection{Hanging} % % \begin{macro}{\hangfrom} @@ -10379,7 +10896,42 @@ % \end{macrocode} % \end{environment} % +% \subsubsection{Miscellaneous} % +% \begin{macro}{\leftspringright} +% \cs{leftspringright}\marg{leftfrac}\marg{rightfrac}\marg{lefttext}\marg{righttext} +% sets the \meta{lefttext} flushleft (raggedright) in a column \meta{leftfrac} +% of the current textwidth and the \meta{righttext} flushright (raggedleft) +% in a column \meta{rightfrac} of the textwidth, with space +% (1.0 - \meta{leftfrac} - \meta{rightfrac}) +% of the textwidth between them. Both \meta{leftfrac} and \meta{rightfrac} +% must be given as decimal numbers (e.g., \texttt{0.25} not \texttt{1/4}). +% \changes{v1.6180339c}{2009/01/09}{Added \cs{leftspringright} paragraph} +% \begin{macrocode} +\newcommand{\leftspringright}[4]{% + \@tempdimb=\hsize + \par\noindent\hbox to\@tempdimb{% + \vtop{\hsize=#1\@tempdimb \flushleft#3\par}\hss + \vtop{\hsize=#2\@tempdimb \flushright#4\par}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sourceatright} +% Putting \cs{sourceatright}\oarg{length}\marg{text} at the end of a +% paragraph will set \meta{text} flushright on the same line provided the line +% is short enough to allow \meta{length} (default 2em) between the end of the +% line and \meta{text}. If there is not enough space then \meta{text} is +% set flushright on the following line. +% \changes{v1.6180339c}{2009/01/09}{Added \cs{sourceatright} paragraph} +% \begin{macrocode} +\newcommand*{\sourceatright}[2][2em]{{% + \unskip\nobreak\hfil\penalty50 + \hskip#1\hbox{}\nobreak\hfil{#2} + \parfillskip\z@\finalhyphendemerits=0\par}} + +% \end{macrocode} +% \end{macro} % % % \section{Lists} @@ -16971,28 +17523,6 @@ % \end{macro} % % -% \begin{macro}{\flushleftright} -% \begin{macro}{\centerlastline} -% These are in addition to the \cs{centering}, \cs{raggedleft} and \cs{raggedright} -% declarations for paragraphing. \cs{flushleftright} sets the skips to \TeX's -% normal (block) paragraphing values, -% while \cs{centerlastline} sets the skips to give a centered last line in -% a block paragraph. -% \changes{v1.61803}{2008/01/30}{Used \cs{@flushglue} in \cs{flushleftright} and -% \cs{centerlastline} (mempatch v4.7)} -% \begin{macrocode} -\newcommand*{\flushleftright}{% - \leftskip\z@ \rightskip\z@ - \parfillskip\@flushglue} -\newcommand*{\centerlastline}{% - \parfillskip=\z@ plus 2fil - \rightskip=\z@ plus -1fil - \leftskip\@flushglue} - -% \end{macrocode} -% \end{macro} -% \end{macro} -% % \begin{macro}{\captionstyle} % \begin{macro}{\@contcstyle} % The paragraphing style for the caption. @@ -18404,6 +18934,35 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\@mem@scap@beforehook} +% \begin{macro}{\@mem@scap@afterhook} +% Two hooks into the 'scap' internals. By default they do nothing, but +% can be used make say sidecaption align towards the spine in twosided +% documents. This is done by redefining \emph{before} to +% \verb+\checkoddpage\ifoddpage\else\raggedleft\fi+ and redefining +% \emph{after} to \verb+\par+. Note that since 'sidecontcaption', +% 'sidenamedlegend' and 'sidelegend' all share the same basic +% internals redefining the two hooks will affect those as well. The +% user might want to create their own special environment, say, like this: +% \begin{verbatim} +% \makeatletter +% \newenvironment{sidecaption*}{ +% \renewcommand\@mem@scap@beforehook{\checkoddpage\ifoddpage\else\raggedleft\fi} +% \renewcommand\@mem@scap@afterhook{\par} +% \begin{sidecaption}} +% {\end{sidecaption}} +% \makeatother +% \end{verbatim} +% \changes{v1.6180339c}{2009/01/21}{Added 'before' and 'after' hooks +% to shared sidecaption internals} +% \begin{macrocode} +\newcommand\@mem@scap@beforehook{} +\newcommand\@mem@scap@afterhook{} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\@@sidecaption} % \cs{@@sidecaption}\marg{fortoc}\marg{title}\oarg{label} is the % last macro in the chain and handles all three arguments. @@ -18445,6 +19004,10 @@ % The macro \cs{m@mscapend@fbox} ends the box. % \begin{macrocode} \newcommand*{\m@mscapstart@fbox}{% +% \end{macrocode} +% \changes{v1.6180339c}{2009/01/21}{Added \cs{@mem@scap@beforehook}} +% \begin{macrocode} + \@mem@scap@beforehook% \setlength{\m@mscapmainwidth}{\sidecapfloatwidth}% \setm@mscaplkern \begin{lrbox}{\m@mscap@fbox}% @@ -18505,7 +19068,12 @@ % \end{macrocode} % Finally, make \cs{m@mscapthisside} a no-op. % \begin{macrocode} - \gdef\m@mscapthisside{}} + \gdef\m@mscapthisside{}% +% \end{macrocode} +% \changes{v1.6180339c}{2009/01/21}{Added \cs{@mem@scap@afterhook}} +% \begin{macrocode} + \@mem@scap@afterhook% +} % \end{macrocode} % \end{macro} @@ -19468,18 +20036,34 @@ % % \begin{macro}{\titleref} % \begin{macro}{\currenttitle} -% \cs{titleref}\marg{key} prints the title corresponding to \verb?\label{key}?. -% \cs{currenttitle} prints the latest title. -% \begin{macrocode} -\DeclareRobustCommand{\titleref}[1]{\begingroup \let\numberline\@gobble +% \begin{macro}{\@mem@titleref} +% \begin{macro}{\@mem@titlerefnolink} +% \cs{titleref}\marg{key} prints the title corresponding to +% \verb?\label{key}?. \cs{currenttitle} prints the latest title. +% \cs{titleref} extended to support a starred version that will not +% provide hyperlinks when using \Lpack{hyperref}. The +% \Lpack{hyperref} definition of \cs{@mem@titlerefnolink} is found +% in \Lpack{memhfixc}. +% \changes{v1.6180339c}{2009/01/18}{Extended \cs{titleref}, suggestion +% on ctt by martin@helios.de} +% \begin{macrocode} +\newcommand*\@mem@titleref[1]{\begingroup + \let\numberline\@gobble \let\M@TitleReference\@mem@theTR % interrupt recursion of \ref \ref{#1}\endgroup} -\DeclareRobustCommand{\currenttitle}{\begingroup \let\numberline\@gobble +\let\@mem@titlerefnolink\@mem@titleref + +\DeclareRobustCommand\titleref{\@ifstar{\@mem@titlerefnolink}{\@mem@titleref}} + +\DeclareRobustCommand{\currenttitle}{\begingroup + \let\numberline\@gobble \theTitleReference\@currentlabel\M@currentTitle\endgroup} % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % % \begin{verbatim} @@ -19676,6 +20260,7 @@ % % \begin{macro}{\@starZ} % The starred listof version +% \changes{v1.6180339c}{2009/01/20}{Missing \cs{parskip} change} % \begin{macrocode} \@namedef{@star#2}{% \ensureonecol @@ -19683,6 +20268,7 @@ \begingroup %%% \parindent\z@ \parskip\cftparskip \@nameuse{@#2maketitle} +\parskip\cftparskip \@starttoc{#2}% \endgroup \restorefromonecol} @@ -20224,7 +20810,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} % % \begin{macro}{\cftbeforebookskip} % \begin{macro}{\cftbookindent} @@ -20765,8 +21350,10 @@ % \end{macrocode} % Start a group to localize changes to the paragraphing. Set the % left margin to the chapter indent plus the chapter number width. +% \changes{v1.6180339c}{2009/01/20}{Added a \cs{nopagebreak}, though +% this only disencourage a page break} % \begin{macrocode} - {\leftskip \cftchapterindent\relax + {\nopagebreak\leftskip \cftchapterindent\relax \advance\leftskip \cftchapternumwidth\relax % \end{macrocode} % Set the right hand margin to \cs{@tocrmarg}. @@ -22454,8 +23041,17 @@ % \begin{macro}{\parnopar} % From \theTeXbook{} Exercise 14.15. It creates an `invisible' end/start paragraph, % and may be used for getting \TeX{} to try a pagebreak. +% +% Roman Eisle (email 2008/09/05) found a problem with the original +% definition as its effects continued on: \\ +% \verb?\newcommand{\parnopar}{\parfillskip=0pt\par\parskip=0pt\noindent}? \\ +% and he supplied the fix used below. +% +% \changes{v1.6180339c}{2008/12/24}{Changed \cs{parnopar} to limit its effect +% to a single instance} % \begin{macrocode} -\newcommand{\parnopar}{\parfillskip=0pt\par\parskip=0pt\noindent} +\newcommand{\parnopar}{\parfillskip=0pt\par\parskip=0pt\noindent + \parfillskip\@flushglue} % \end{macrocode} % \end{macro} @@ -31380,8 +31976,10 @@ % as the final act. (This is preferable to my series of \file{memfixa.sty}, % \file{memfixb.sty} packages, and so on, for each release of the class.) % \changes{v1.3}{2002/11/14}{Added input of mempatch.sty} +% \changes{v1.6180339c}{2008/12/26}{Added the two missing arguments when inputting +% mempatch.sty (courtesy of Wilhelm Muller)} % \begin{macrocode} -\InputIfFileExists{mempatch.sty} % should be this +\InputIfFileExists{mempatch.sty}{}{} % should be this % \end{macrocode} % @@ -31730,6 +32328,16 @@ keyword "\\glossaryentry" % \newblock (Available from CTAN in % \texttt{macros/latex/contrib/ledmac}) % +% \bibitem[Wil07]{GLISTER07} +% Peter Wilson. +% \newblock `Glisterings' \emph{TUGboat}, 28(2):229--232, +% \newblock 2007. +% +% \bibitem[Wil08]{GLISTER08} +% Peter Wilson. +% \newblock `Glisterings' \emph{TUGboat}, 29(2):324--327, +% \newblock 2008. +% % % % diff --git a/Master/texmf-dist/source/latex/memoir/memoir.ins b/Master/texmf-dist/source/latex/memoir/memoir.ins index 6ad343c81c6..ecc94ebe73e 100644 --- a/Master/texmf-dist/source/latex/memoir/memoir.ins +++ b/Master/texmf-dist/source/latex/memoir/memoir.ins @@ -54,6 +54,7 @@ \generateFile{memoir.cls}{t}{\from{memoir.dtx}{class}} + \Msg{*** Generating the LaTeX2e document class option files ***} \generateFile{mem9.clo}{t}{\from{memoir.dtx}{9pt}} diff --git a/Master/texmf-dist/source/latex/memoir/mempatch.dtx b/Master/texmf-dist/source/latex/memoir/mempatch.dtx index 74779475cea..c2b79992fa8 100644 --- a/Master/texmf-dist/source/latex/memoir/mempatch.dtx +++ b/Master/texmf-dist/source/latex/memoir/mempatch.dtx @@ -64,6 +64,7 @@ % \def\fileversion{v5.1} \def\filedate{2008/07/11} % \def\fileversion{v6.0} \def\filedate{2008/07/23} % \def\fileversion{v6.0a} \def\filedate{2008/08/23} +% \def\fileversion{v6.0b} \def\filedate{2009/01/18} % % \title{The LaTeX \Lpack{memoir} class for configurable book % typesetting: Code patches\thanks{This @@ -302,6 +303,7 @@ %% With thanks to Heiko Oberdiek, if you use hyperref dated 2006/11/15 %% or later, memhfixc will be automatically loaded after hyperref. %% +%% Version 1.11 2009/01/18 %% Version 1.10 2008/08/23 %% Version 1.9 2006/11/22 %% Version 1.8 2006/01/21 @@ -318,7 +320,7 @@ % % % \begin{macrocode} -\ProvidesPackage{memhfixc}[2008/08/23 v1.10 nameref/hyperref package fixes for memoir class] +\ProvidesPackage{memhfixc}[2009/01/18 v1.11 nameref/hyperref package fixes for memoir class] % \end{macrocode} % % \begin{macro}{\M@hfixcfinish} @@ -726,7 +728,16 @@ % \end{macro} % \end{macro} % -% +% \begin{macro}{\@mem@titlerefnolink} +% \Lpack{hyperref} provide a \cs{ref*} command that does not give a +% hyperlink under \Lpack{hyperref}, we extend \cs{titleref} to +% support it. +% \begin{macrocode} +\def\@mem@titlerefnolink#1{\begingroup \let\numberline\@gobble + \let\M@TitleReference\@mem@theTR % interrupt recursion of \ref + \ref*{#1}\endgroup} +% \end{macrocode} +% \end{macro} % % The end of the \Lpack{hyperref} related patches. % diff --git a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty index 1ee23cf5f29..6488626bfb1 100644 --- a/Master/texmf-dist/tex/latex/memoir/memhfixc.sty +++ b/Master/texmf-dist/tex/latex/memoir/memhfixc.sty @@ -38,6 +38,7 @@ %% With thanks to Heiko Oberdiek, if you use hyperref dated 2006/11/15 %% or later, memhfixc will be automatically loaded after hyperref. %% +%% Version 1.11 2009/01/18 %% Version 1.10 2008/08/23 %% Version 1.9 2006/11/22 %% Version 1.8 2006/01/21 @@ -50,7 +51,7 @@ %% Version 1.1 2003/01/22 %% Version 1.0 2002/10/22 %% -\ProvidesPackage{memhfixc}[2008/08/23 v1.10 nameref/hyperref package fixes for memoir class] +\ProvidesPackage{memhfixc}[2009/01/18 v1.11 nameref/hyperref package fixes for memoir class] \let\M@hfixcfinish\relax \@ifclassloaded{memoir}{}% {\let\M@hfixcfinish\endinput @@ -269,6 +270,9 @@ \end{lrbox}% \m@mscapopboxes} +\def\@mem@titlerefnolink#1{\begingroup \let\numberline\@gobble + \let\M@TitleReference\@mem@theTR % interrupt recursion of \ref + \ref*{#1}\endgroup} \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 a421c26c08e..cdde4cba8d1 100644 --- a/Master/texmf-dist/tex/latex/memoir/memoir.cls +++ b/Master/texmf-dist/tex/latex/memoir/memoir.cls @@ -25,7 +25,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesClass{memoir}% - [2008/08/07 v1.6180339a configurable book, report, article document class] + [2009/01/25 v1.6180339c configurable book, report, article document class] \newcommand*{\@ptsize}{} \newcommand*{\@memptsize}{} \newlength{\onelineskip} @@ -226,9 +226,8 @@ \newif\ifm@mifetex \m@mifetexfalse \IfFileExists{ifetex.sty}{\RequirePackage{ifetex}\relax}{% - \ClassWarningNoLine{memoir}{% - If there is an `ifetex' package then it is not installed.\MessageBreak - The package is being emulated}% + \ClassInfo{memoir}{% + An `ifetex' package is being emulated}% \m@mifetextrue \newif\ifetex \etexfalse @@ -270,7 +269,7 @@ \m@mifluatexfalse \IfFileExists{ifluatex.sty}{\RequirePackage{ifluatex}\relax}{% \ClassWarningNoLine{memoir}{% - If there is an `ifluatex' package then it is not installed.\MessageBreak + The `ifluatex' package is not installed.\MessageBreak The package is being emulated}% \m@mifluatextrue \newif\ifluatex @@ -456,58 +455,76 @@ \newcommand*{\stockmdemyvo} {\stockheight=216mm \stockwidth=138mm} \newcommand*{\stockmsmallroyalvo} {\stockheight=234mm \stockwidth=156mm} +\newcommand*{\stockao} {\stockheight=1189mm \stockwidth=841mm} +\newcommand*{\stockai} {\stockheight=841mm \stockwidth=594mm} +\newcommand*{\stockaii} {\stockheight=594mm \stockwidth=420mm} \newcommand*{\stockaiii}{\stockheight=420mm \stockwidth=297mm} \newcommand*{\stockaiv} {\stockheight=297mm \stockwidth=210mm} \newcommand*{\stockav} {\stockheight=210mm \stockwidth=148mm} \newcommand*{\stockavi} {\stockheight=148mm \stockwidth=105mm} +\newcommand*{\stockbo} {\stockheight=1414mm \stockwidth=1000mm} +\newcommand*{\stockbi} {\stockheight=1000mm \stockwidth=707mm} +\newcommand*{\stockbii} {\stockheight=707mm \stockwidth=500mm} \newcommand*{\stockbiii}{\stockheight=500mm \stockwidth=353mm} \newcommand*{\stockbiv} {\stockheight=353mm \stockwidth=250mm} \newcommand*{\stockbv} {\stockheight=250mm \stockwidth=176mm} \newcommand*{\stockbvi} {\stockheight=176mm \stockwidth=125mm} -\newcommand*{\pagedbill} {\pageheight=7in \pagewidth=3in} -\newcommand*{\pagestatement} {\pageheight=8.5in \pagewidth=5.5in} -\newcommand*{\pageexecutive} {\pageheight=10.5in \pagewidth=7.25in} -\newcommand*{\pageletter} {\pageheight=11in \pagewidth=8.5in} -\newcommand*{\pageold} {\pageheight=12in \pagewidth=9in} -\newcommand*{\pagelegal} {\pageheight=14in \pagewidth=8.5in} -\newcommand*{\pageledger} {\pageheight=17in \pagewidth=11in} -\newcommand*{\pagebroadsheet}{\pageheight=22in \pagewidth=17in} - -\newcommand*{\pagepottvo} {\pageheight=6.25in \pagewidth=4in} -\newcommand*{\pagefoolscapvo} {\pageheight=6.75in \pagewidth=4.25in} -\newcommand*{\pagecrownvo} {\pageheight=7.5in \pagewidth=5in} -\newcommand*{\pagepostvo} {\pageheight=8in \pagewidth=5in} -\newcommand*{\pagelargecrownvo}{\pageheight=8in \pagewidth=5.25in} -\newcommand*{\pagelargepostvo} {\pageheight=8.25in \pagewidth=5.25in} -\newcommand*{\pagesmalldemyvo} {\pageheight=8.5in \pagewidth=5.675in} -\newcommand*{\pagedemyvo} {\pageheight=8.75in \pagewidth=5.675in} -\newcommand*{\pagemediumvo} {\pageheight=9in \pagewidth=5.75in} -\newcommand*{\pagesmallroyalvo}{\pageheight=9.25in \pagewidth=6.175in} -\newcommand*{\pageroyalvo} {\pageheight=10in \pagewidth=6.25in} -\newcommand*{\pagesuperroyalvo}{\pageheight=10.25in \pagewidth=6.75in} -\newcommand*{\pageimperialvo} {\pageheight=11in \pagewidth=7.5in} - -\newcommand*{\pagemcrownvo} {\pageheight=186mm \pagewidth=123mm} -\newcommand*{\pagemlargecrownvo} {\pageheight=198mm \pagewidth=129mm} -\newcommand*{\pagemdemyvo} {\pageheight=216mm \pagewidth=138mm} -\newcommand*{\pagemsmallroyalvo} {\pageheight=234mm \pagewidth=156mm} - -\newcommand*{\pageaiii}{\pageheight=420mm \pagewidth=297mm} -\newcommand*{\pageaiv} {\pageheight=297mm \pagewidth=210mm} -\newcommand*{\pageav} {\pageheight=210mm \pagewidth=148mm} -\newcommand*{\pageavi} {\pageheight=148mm \pagewidth=105mm} - -\newcommand*{\pagebiii}{\pageheight=500mm \pagewidth=353mm} -\newcommand*{\pagebiv} {\pageheight=353mm \pagewidth=250mm} -\newcommand*{\pagebv} {\pageheight=250mm \pagewidth=176mm} -\newcommand*{\pagebvi} {\pageheight=176mm \pagewidth=125mm} - +\newcommand*{\pagedbill} {\paperheight=7in \paperwidth=3in} +\newcommand*{\pagestatement} {\paperheight=8.5in \paperwidth=5.5in} +\newcommand*{\pageexecutive} {\paperheight=10.5in \paperwidth=7.25in} +\newcommand*{\pageletter} {\paperheight=11in \paperwidth=8.5in} +\newcommand*{\pageold} {\paperheight=12in \paperwidth=9in} +\newcommand*{\pagelegal} {\paperheight=14in \paperwidth=8.5in} +\newcommand*{\pageledger} {\paperheight=17in \paperwidth=11in} +\newcommand*{\pagebroadsheet}{\paperheight=22in \paperwidth=17in} + +\newcommand*{\pagepottvo} {\paperheight=6.25in \paperwidth=4in} +\newcommand*{\pagefoolscapvo} {\paperheight=6.75in \paperwidth=4.25in} +\newcommand*{\pagecrownvo} {\paperheight=7.5in \paperwidth=5in} +\newcommand*{\pagepostvo} {\paperheight=8in \paperwidth=5in} +\newcommand*{\pagelargecrownvo}{\paperheight=8in \paperwidth=5.25in} +\newcommand*{\pagelargepostvo} {\paperheight=8.25in \paperwidth=5.25in} +\newcommand*{\pagesmalldemyvo} {\paperheight=8.5in \paperwidth=5.675in} +\newcommand*{\pagedemyvo} {\paperheight=8.75in \paperwidth=5.675in} +\newcommand*{\pagemediumvo} {\paperheight=9in \paperwidth=5.75in} +\newcommand*{\pagesmallroyalvo}{\paperheight=9.25in \paperwidth=6.175in} +\newcommand*{\pageroyalvo} {\paperheight=10in \paperwidth=6.25in} +\newcommand*{\pagesuperroyalvo}{\paperheight=10.25in \paperwidth=6.75in} +\newcommand*{\pageimperialvo} {\paperheight=11in \paperwidth=7.5in} + +\newcommand*{\pagemcrownvo} {\paperheight=186mm \paperwidth=123mm} +\newcommand*{\pagemlargecrownvo} {\paperheight=198mm \paperwidth=129mm} +\newcommand*{\pagemdemyvo} {\paperheight=216mm \paperwidth=138mm} +\newcommand*{\pagemsmallroyalvo} {\paperheight=234mm \paperwidth=156mm} + +\newcommand*{\pageao} {\paperheight=1189mm \paperwidth=841mm} +\newcommand*{\pageai} {\paperheight=841mm \paperwidth=594mm} +\newcommand*{\pageaii} {\paperheight=594mm \paperwidth=420mm} +\newcommand*{\pageaiii}{\paperheight=420mm \paperwidth=297mm} +\newcommand*{\pageaiv} {\paperheight=297mm \paperwidth=210mm} +\newcommand*{\pageav} {\paperheight=210mm \paperwidth=148mm} +\newcommand*{\pageavi} {\paperheight=148mm \paperwidth=105mm} + +\newcommand*{\pagebo} {\paperheight=1414mm \paperwidth=1000mm} +\newcommand*{\pagebi} {\paperheight=1000mm \paperwidth=707mm} +\newcommand*{\pagebii} {\paperheight=707mm \paperwidth=500mm} +\newcommand*{\pagebiii}{\paperheight=500mm \paperwidth=353mm} +\newcommand*{\pagebiv} {\paperheight=353mm \paperwidth=250mm} +\newcommand*{\pagebv} {\paperheight=250mm \paperwidth=176mm} +\newcommand*{\pagebvi} {\paperheight=176mm \paperwidth=125mm} + +\DeclareOption{a0paper}{\stockao} +\DeclareOption{a1paper}{\stockai} +\DeclareOption{a2paper}{\stockaii} \DeclareOption{a3paper}{\stockaiii} \DeclareOption{a4paper}{\stockaiv} \DeclareOption{a5paper}{\stockav} \DeclareOption{a6paper}{\stockavi} +\DeclareOption{b0paper}{\stockbo} +\DeclareOption{b1paper}{\stockbi} +\DeclareOption{b2paper}{\stockbii} \DeclareOption{b3paper}{\stockbiii} \DeclareOption{b4paper}{\stockbiv} \DeclareOption{b5paper}{\stockbv} @@ -544,10 +561,10 @@ {\setlength\stockheight {9in}% \setlength\stockwidth {6in}} -\DeclareOption{landscape} - {\setlength\@tempdima {\stockheight} - \setlength\stockheight{\stockwidth} - \setlength\stockwidth {\@tempdima}} +\newif\ifmemlandscape + \memlandscapefalse +\DeclareOption{landscape}{\memlandscapetrue} +\DeclareOption{portrait}{\memlandscapefalse} \renewcommand*{\@ptsize}{0} \renewcommand*{\@memptsize}{10} @@ -623,8 +640,14 @@ \DeclareOption{oldfontcommands}{\@memoldfonttrue} \DeclareOption{extrafontsizes}{\extrafontsizestrue} -\ExecuteOptions{final,letterpaper,10pt,onecolumn,openright,twoside} -\ProcessOptions +\ExecuteOptions{final,letterpaper,10pt,onecolumn,openright,twoside, + portrait} +\ProcessOptions* + \ifmemlandscape + \setlength\@tempdima {\stockheight} + \setlength\stockheight{\stockwidth} + \setlength\stockwidth {\@tempdima} + \fi \providecommand*{\memoirpostopthook}{} \memoirpostopthook @@ -881,19 +904,29 @@ \setlength{\textheight}{\@tempdima}% \setlength{\textwidth}{\@tempdimb}} +\newlength{\binding} +\newcommand*{\setbinding}[1]{\setlength{\binding}{#1}} + \setbinding{0pt} + \newlength{\spinemargin} \newlength{\foremargin} \newcommand{\setlrmargins}[3]{% + \advance\paperwidth -\binding \setfillsize{\paperwidth}{\textwidth}{#1}{#2}{#3}% \setlength{\textwidth}{\@tempdimc}% \setlength{\spinemargin}{\@tempdima}% - \setlength{\foremargin}{\@tempdimb}} + \setlength{\foremargin}{\@tempdimb}% + \advance\paperwidth \binding + \advance\spinemargin \binding} \newcommand{\setlrmarginsandblock}[3]{% + \advance\paperwidth -\binding \setfillsize{\paperwidth}{*}{#1}{#2}{#3}% \setlength{\textwidth}{\@tempdimc}% \setlength{\spinemargin}{\@tempdima}% - \setlength{\foremargin}{\@tempdimb}} + \setlength{\foremargin}{\@tempdimb}% + \advance\paperwidth \binding + \advance\spinemargin \binding} \newlength{\uppermargin} \newlength{\lowermargin} @@ -1281,7 +1314,7 @@ \setulmarginsandblock{\uppermargin}{*}{2}} \newcommand*{\setpagebl}[3]{% - \settrimmedsize{#1}{#2}{#3} + \settrimmedsize{#1}{#2}{#3}% \trimtop=\stockheight \advance\trimtop -\paperheight \trimedge=\stockwidth \advance\trimedge -\paperwidth} \newcommand*{\setpageml}[3]{% @@ -1293,6 +1326,36 @@ \settrimmedsize{#1}{#2}{#3} \trimtop=0pt \trimedge=\stockwidth \advance\trimedge -\paperwidth} +\newcommand*{\setpagetm}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=0pt + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} + +\newcommand*{\setpagetr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=0pt + \trimedge=0pt} +\newcommand*{\setpagemr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \advance\trimtop -0.5\trimtop + \trimedge=0pt} +\newcommand*{\setpagebr}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \trimedge=0pt} +\newcommand*{\setpagebm}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} +\newcommand*{\setpagecc}[3]{% + \settrimmedsize{#1}{#2}{#3}% + \trimtop=\stockheight \advance\trimtop -\paperheight + \advance\trimtop -0.5\trimtop + \trimedge=\stockwidth \advance\trimedge -\paperwidth + \advance\trimedge -0.5\trimedge} \setcounter{topnumber}{3} \renewcommand{\topfraction}{.85} @@ -1325,8 +1388,27 @@ \@namedef{#1ofootr}{#4} } -\newcommand{\makerunningwidth}[2]{% - \@namedef{#1runwidth}{#2}} +\newcommand*{\makerunningwidth}[1]{% + \def\m@mhfstyle{#1}% + \m@mopthfwidth} +\newcommand*{\m@mopthfwidth}[2][\@mpty]{% + \setlength\@tempdima{#2} + \expandafter\edef\csname \m@mhfstyle headrunwidth\endcsname{\the\@tempdima} + \ifx\@mpty #1 + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima} + \else + \setlength\@tempdima{#1} + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima} + \fi} +\newcommand*{\makerunningheadwidth}[2]{% + \setlength\@tempdima{#2}% + \expandafter\edef\csname \m@mhfstyle headrunwidth\endcsname{\the\@tempdima}% +} +\newcommand*{\makerunningfootwidth}[2]{% + \setlength\@tempdima{#2}% + \expandafter\edef\csname \m@mhfstyle footrunwidth\endcsname{\the\@tempdima}% +} + \newlength{\normalrulethickness} \setlength{\normalrulethickness}{0.4pt} \newcommand{\footruleheight}{0pt} @@ -1389,46 +1471,49 @@ \newcommand*{\m@mhe@dreset}{\def\baselinestretch{1}\normalsize} +\newcommand*\makeheadfootvposition[3]{% + \@namedef{#1headvplacement}{#2}\@namedef{#1footvplacement}{#3}} + \newcommand{\makepagestyle}[1]{% \@namedef{ps@#1}{% \@namedef{#1@evenhead}{% - \@nameuse{#1evenhpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1evenhpl}\hb@xt@\@nameuse{#1headrunwidth}{\m@mhe@dreset% \vbox{\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedright\@nameuse{#1eheadl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \centering\@nameuse{#1eheadc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedleft\@nameuse{#1eheadr}\strut}}}% \@nameuse{#1headrule}}}\@nameuse{#1evenhpr}}% \@namedef{#1@oddhead}{% - \@nameuse{#1oddhpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1oddhpl}\hb@xt@\@nameuse{#1headrunwidth}{\m@mhe@dreset% \vbox{\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedright\@nameuse{#1oheadl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \centering\@nameuse{#1oheadc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1headvplacement}]{\@nameuse{#1headrunwidth}}{% \raggedleft\@nameuse{#1oheadr}\strut}}}% \@nameuse{#1headrule}}}\@nameuse{#1oddhpr}}% \@namedef{#1@evenfoot}{% - \@nameuse{#1evenfpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1evenfpl}\hb@xt@\@nameuse{#1footrunwidth}{\m@mhe@dreset% \vbox{\@nameuse{#1footrule}\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedright\@nameuse{#1efootl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \centering\@nameuse{#1efootc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedleft\@nameuse{#1efootr}\strut}}}% }}\@nameuse{#1evenfpr}}% \@namedef{#1@oddfoot}{% - \@nameuse{#1oddfpl}\hb@xt@\@nameuse{#1runwidth}{\m@mhe@dreset% + \@nameuse{#1oddfpl}\hb@xt@\@nameuse{#1footrunwidth}{\m@mhe@dreset% \vbox{\@nameuse{#1footrule}\hbox{% - \rlap{\parbox[b]{\@nameuse{#1runwidth}}{% + \rlap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedright\@nameuse{#1ofootl}\strut}}\hfill - \parbox[b]{\@nameuse{#1runwidth}}{% + \parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \centering\@nameuse{#1ofootc}\strut}\hfill - \llap{\parbox[b]{\@nameuse{#1runwidth}}{% + \llap{\parbox[\@nameuse{#1footvplacement}]{\@nameuse{#1footrunwidth}}{% \raggedleft\@nameuse{#1ofootr}\strut}}}% }}\@nameuse{#1oddfpr}}% \def\@evenhead{\@nameuse{#1@evenhead}}% @@ -1444,6 +1529,7 @@ \makeheadposition{#1}{}{}{}{}% \makeheadrule{#1}{\textwidth}{0pt}% \makefootrule{#1}{\textwidth}{\footruleheight}{\footruleskip}% + \makeheadfootvposition{#1}{b}{b}% \makepsmarks{#1}{}} \newcommand{\aliaspagestyle}[2]{% @@ -1459,11 +1545,12 @@ {\@nameuse{#2efootc}}{\@nameuse{#2efootr}}% \makeoddfoot{#1}{\@nameuse{#2ofootl}}% {\@nameuse{#2ofootc}}{\@nameuse{#2ofootr}}% - \makerunningwidth{#1}{\@nameuse{#2runwidth}}% + \makerunningwidth{#1}[\@nameuse{#2footrunwidth}]{\@nameuse{#2headrunwidth}}% \@namedef{#1evenhpl}{\@nameuse{#2evenhpl}}% \@namedef{#1oddhpl}{\@nameuse{#2oddhpl}}% \@namedef{#1evenhpr}{\@nameuse{#2evenhpr}}% \@namedef{#1oddhpr}{\@nameuse{#2oddhpr}}% + \makeheadfootvposition{#1}{\@namedef{#2headvplacement}}{\@namedef{#2footvplacement}}% \@namedef{#1evenfpl}{\@nameuse{#2evenfpl}}% \@namedef{#1oddfpl}{\@nameuse{#2oddfpl}}% \@namedef{#1evenfpr}{\@nameuse{#2evenfpr}}% @@ -1758,6 +1845,41 @@ \makeoddhead{companion}{\normalfont\bfseries\rightmark}{}% {\normalfont\bfseries\thepage} +\newif\ifshowheadfootloc + \showheadfootloctrue +\newcommand*{\showheadfootlocon}{\showheadfootloctrue} +\newcommand*{\showheadfootlocoff}{\showheadfootlocfalse} +\newif\ifshowtextblockloc + \showtextblockloctrue +\newcommand*{\showtextblocklocon}{\showtextblockloctrue} +\newcommand*{\showtextblocklocoff}{\showtextblocklocfalse} + +\newcommand*{\framepichead}{% +\ifshowheadfootloc + \begin{picture}(0,0) + \unitlength 1pt + \put(0,0){\line(1,0){\strip@pt\textwidth}} + \end{picture}% +\fi} + +\newcommand*{\framepictextfoot}{% + \begin{picture}(0,0) + \unitlength 1pt + \ifshowheadfootloc + \put(0,0){\line(1,0){\strip@pt\textwidth}} + \fi + \ifshowtextblockloc + \put(0,\strip@pt\footskip)% + {\framebox(\strip@pt\textwidth,\strip@pt\textheight){}} + \fi + \end{picture}} + +\makepagestyle{showlocs} +\makeevenhead{showlocs}{\framepichead\thepage}{\thepage}{\thepage} +\makeoddhead{showlocs}{\framepichead\thepage}{\thepage}{\thepage} +\makeevenfoot{showlocs}{\framepictextfoot\thepage}{\thepage}{\thepage} +\makeoddfoot{showlocs}{\framepictextfoot\thepage}{\thepage}{\thepage} + \renewcommand{\pagenumbering}{% \@ifstar{\@smempnum}{\@mempnum}} \newcommand{\@smempnum}[1]{% @@ -3695,6 +3817,68 @@ \twocolumn \fi} +\let\memorigdbs\\ +\let\memorigpar\par +\let\atcentercr\@centercr + +\newcommand*{\flushleftright}{% + \let\\\memorigdbs + \leftskip\z@skip + \rightskip\leftskip + \parfillskip\@flushglue + \everypar{}} + +\newcommand*{\linenottooshort}[1][4em]{% + \@tempdima=\hsize + \advance\@tempdima -#1 + \leftskip\z@skip + \rightskip\leftskip + \parfillskip=\@tempdima \@minus \@tempdima} + +\newcommand*{\russianpar}{\ifhmode\unskip + \strut\vadjust{}\nobreak + \discretionary{}% + {\hbox{\hskip2\parindent + \vrule depth 273sp width 0sp height \ht\strutbox}}% + {\hbox{\hskip\parindent}}% + \hskip-2\parindent \@minus 2\parindent + \hskip\hsize \@minus \hsize + \kern\z@ \parfillskip\z@ + \memorigpar + \ifdim\prevdepth=273sp + \nobreak + \vskip-2\baselineskip + \hbox{\strut}% + \fi\fi} + +\newcommand*{\lastlineparrule}{% + \hrule height 0.5ex depth \@tempdimb\relax} +\newcommand*{\lastlinerulefill}{% + \let\\\@centercr + \@tempdimb=-0.5ex \advance\@tempdimb 0.4pt + \unskip\nobreak\space + \leaders\lastlineparrule\hskip\@flushglue + \vadjust{}{\parfillskip\z@\memorigpar}} + +\newcommand*{\centerlastline}{% + \leftskip\@flushglue + \rightskip=\z@ plus -1fil + \parfillskip=\z@ plus 2fil} + +\newcommand*{\leftcenterright}{%; + \let\\\break + \parindent\z@ + \leftskip\@flushglue + \rightskip\leftskip + \parfillskip \z@ \@plus -1fil + \everypar={\hskip \z@ \@plus -1fil}} + +\newcommand*{\centerfloat}{% + \parindent \z@ + \leftskip \z@ \@plus 1fil \@minus \textwidth + \rightskip\leftskip + \parfillskip \z@skip} + \newdimen\ragrparindent \setlength{\ragrparindent}{\parindent} \newcommand{\raggedyright}[1][2em]{% @@ -3702,6 +3886,19 @@ \leftskip\z@skip \parindent\ragrparindent} +\newcommand*{\justlastraggedleft}{% + \leftskip\@flushglue + \rightskip-\leftskip + \parfillskip\leftskip + \parindent \z@} + +\newcommand*{\raggedrightthenleft}{% + \parindent \z@ + \leftskip \z@ \@plus 1fill + \rightskip\@flushglue + \parfillskip \z@ + \everypar{\hskip \z@ \@plus -1fill}} + \newcommand{\hangfrom}[1]{% \setbox\@tempboxa\hbox{{#1}}% \hangindent \wd\@tempboxa\noindent\box\@tempboxa} @@ -3710,6 +3907,17 @@ \newenvironment{hangparas}[2]{\setlength{\parindent}{\z@} \everypar={\hangpara{#1}{#2}}}{\par} +\newcommand{\leftspringright}[4]{% + \@tempdimb=\hsize + \par\noindent\hbox to\@tempdimb{% + \vtop{\hsize=#1\@tempdimb \flushleft#3\par}\hss + \vtop{\hsize=#2\@tempdimb \flushright#4\par}}} + +\newcommand*{\sourceatright}[2][2em]{{% + \unskip\nobreak\hfil\penalty50 + \hskip#1\hbox{}\nobreak\hfil{#2} + \parfillskip\z@\finalhyphendemerits=0\par}} + \if@twocolumn \setlength{\leftmargini}{2em} \else @@ -5653,14 +5861,6 @@ \newcommand{\captiontitlefont}[1]{\def\@conttfont{#1}} \captiontitlefont{} -\newcommand*{\flushleftright}{% - \leftskip\z@ \rightskip\z@ - \parfillskip\@flushglue} -\newcommand*{\centerlastline}{% - \parfillskip=\z@ plus 2fil - \rightskip=\z@ plus -1fil - \leftskip\@flushglue} - \newcommand*{\captionstyle}[1]{\def\@contcstyle{#1}} \captionstyle{} @@ -6282,6 +6482,9 @@ \@ifnextchar [{\@sidecaption}{\@sidecaption[]}} \def\@sidecaption[#1]#2{% \@ifnextchar [{\@@sidecaption{#1}{#2}}{\@@sidecaption{#1}{#2}[]}} +\newcommand\@mem@scap@beforehook{} +\newcommand\@mem@scap@afterhook{} + \def\@@sidecaption#1#2[#3]{% \ifx\@empty#1\@empty \def\m@mscap@fortoc{#2}% @@ -6297,6 +6500,7 @@ \m@mscapstart@fbox} \newcommand*{\m@mscapstart@fbox}{% + \@mem@scap@beforehook% \setlength{\m@mscapmainwidth}{\sidecapfloatwidth}% \setm@mscaplkern \begin{lrbox}{\m@mscap@fbox}% @@ -6326,7 +6530,9 @@ \rlap{\kern\sidecapsep \raisebox{\m@mscapraise}{\usebox{\m@mscap@capbox}}}% \fi - \gdef\m@mscapthisside{}} + \gdef\m@mscapthisside{}% + \@mem@scap@afterhook% +} \newcommand*{\m@mcalcscapraise}{% \def\@tempb{t}% @@ -6719,10 +6925,16 @@ \let\@mem@nestwarn\@gobble \let\M@TitleReference\@firstoftwo -\DeclareRobustCommand{\titleref}[1]{\begingroup \let\numberline\@gobble +\newcommand*\@mem@titleref[1]{\begingroup + \let\numberline\@gobble \let\M@TitleReference\@mem@theTR % interrupt recursion of \ref \ref{#1}\endgroup} -\DeclareRobustCommand{\currenttitle}{\begingroup \let\numberline\@gobble +\let\@mem@titlerefnolink\@mem@titleref + +\DeclareRobustCommand\titleref{\@ifstar{\@mem@titlerefnolink}{\@mem@titleref}} + +\DeclareRobustCommand{\currenttitle}{\begingroup + \let\numberline\@gobble \theTitleReference\@currentlabel\M@currentTitle\endgroup} \let\M@currentTitle\@empty @@ -6762,6 +6974,7 @@ \begingroup %%% \parindent\z@ \parskip\cftparskip \@nameuse{@#2maketitle} +\parskip\cftparskip \@starttoc{#2}% \endgroup \restorefromonecol} @@ -7125,7 +7338,7 @@ \newcommand{\chapterprecistoc}[1]{% \addtocontents{toc}{\precistoctext{#1}}} \DeclareRobustCommand{\precistoctext}[1]{% - {\leftskip \cftchapterindent\relax + {\nopagebreak\leftskip \cftchapterindent\relax \advance\leftskip \cftchapternumwidth\relax \rightskip \@tocrmarg\relax \precistocfont #1\par}} @@ -7797,7 +8010,8 @@ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}% } -\newcommand{\parnopar}{\parfillskip=0pt\par\parskip=0pt\noindent} +\newcommand{\parnopar}{\parfillskip=0pt\par\parskip=0pt\noindent + \parfillskip\@flushglue} \newif\ifreversesidepar \reversesidepartrue @@ -11438,7 +11652,7 @@ \AtBeginPackage{float}{\let\newfloat\relax} -\InputIfFileExists{mempatch.sty} % should be this +\InputIfFileExists{mempatch.sty}{}{} % should be this \endinput %% |