diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/memoir/memoir.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/memoir/memoir.dtx | 204 |
1 files changed, 143 insertions, 61 deletions
diff --git a/Master/texmf-dist/source/latex/memoir/memoir.dtx b/Master/texmf-dist/source/latex/memoir/memoir.dtx index cba17ce08e3..aabacc0b5a8 100644 --- a/Master/texmf-dist/source/latex/memoir/memoir.dtx +++ b/Master/texmf-dist/source/latex/memoir/memoir.dtx @@ -18,7 +18,7 @@ % This work consists of the files listed in the README file. % % \fi -% \CheckSum{27414} +% \CheckSum{27470} % % \changes{v0.1}{2001/05/20}{First public alpha release} % \changes{v0.2}{2001/06/03}{First beta release} @@ -66,6 +66,8 @@ % \changes{v1.6180}{2006/06/12}{Footnote font fix} % \changes{v1.61803}{2008/05/26}{Folded in all mempatch v4.9a patches} % \changes{v1.618033}{2008/06/02}{Fixed(?) page layout algorithms} +% \changes{v1.6180339}{2008/07/23}{Unemulated if... packages} +% \changes{v1.6180339}{2008/07/23}{Folded in all mempatch v5.1 patches} % % \def\dtxfile{memoir.dtx} % @@ -90,6 +92,7 @@ % \def\fileversion{v1.6180} \def\filedate{2006/06/12} % \def\fileversion{v1.61803} \def\filedate{2008/05/26} % \def\fileversion{v1.618033} \def\filedate{2008/06/02} +% \def\fileversion{v1.6180339} \def\filedate{2008/07/23} % \title{The LaTeX \Lpack{memoir} class for configurable book % typesetting: Source code\thanks{This % file (\texttt{\dtxfile}) has version number \fileversion, last revised @@ -310,7 +313,7 @@ % Announce the name, option files and version for LaTeX2e files: % \begin{macrocode} %<class>\ProvidesClass{memoir}% -%<class> [2008/06/02 v1.618033 configurable book, report, article document class] +%<class> [2008/07/23 v1.6180339 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}% @@ -664,11 +667,12 @@ % % \changes{v1.618}{2005/09/04}{Added \cs{EmulatedPackage} and % \cs{EmulatedPackageWithOptions}} +% \changes{v1.6180339}{2008/07/23}{Extended \cs{EmulatedPackage}} % \begin{macrocode} \providecommand*{\EmulatedPackage}{} \renewcommand*{\EmulatedPackage}[1]{% \@ifnextchar[{\@emulated@package{#1}}% - {\@emulated@package{#1}[]}%] + {\@emulated@package{#1}[\@empty]}%] } \providecommand*{\EmulatedPackageWithOptions}{} \renewcommand*{\EmulatedPackageWithOptions}[2]{% @@ -686,8 +690,9 @@ \expandafter\xdef\csname ver@#1.\@pkgextension\endcsname{#2}% \@ifundefined{opt@#1.\@pkgextension}% {\@namedef{opt@#1.\@pkgextension}{}}{}% - \wlog{Package #1 \if,\csname opt@#1.\@pkgextension\endcsname,\else - (with options \csname opt@#1.\@pkgextension\endcsname)\fi + \wlog{Package #1 \ifx\@empty#2\else[#2] \fi + \if,\csname opt@#1.\@pkgextension\endcsname,\else + (with options \csname opt@#1.\@pkgextension\endcsname) \fi emulated by \@currname.}% } \@onlypreamble\EmulatedPackage @@ -701,9 +706,10 @@ % \cs{DisemulatePackage}\marg{package} undoes a previous % \cs{EmulatedPackage...} % \changes{v1.61803}{2008/01/30}{Added \cs{DisemulatePackage} from memptach v4.5} +% \changes{v1.6180339}{2008/07/23}{Fixed \cs{DisemulatePackage} from mempatch v5.1} % \begin{macrocode} \newcommand*{\DisemulatePackage}[1]{% - \@namelet{ver@#1.\pkgextension}\relax} + \@namelet{ver@#1.\@pkgextension}\relax} \@onlypreamble\DisemulatePackage % \end{macrocode} @@ -967,6 +973,24 @@ % % \subsection{Checking the processor} % +% Prior to 2008/07/22 the \Lpack{hyperref} package was modified in such a +% way as to produce warnings about versions of the \Lpack{ifpdf} and +% \Lpack{ifxetex} packages when \Lpack{hyperref} was used with versions +% v1.618033, +% v1.61803, or v1.618 mempatch v4.9 of the class. +% \Lpack{hyperref}'s author refused to +% make any changes to his package, insisting that emulating a package was +% `ugly hacking'. He did, though, provide an example code that could be +% added to memoir +% to use a package if it was available. I have used it for the emulations +% in this section. There will be no further changes to the class to accomodate +% any further changes to \Lpack{hyperref} --- it's easy for a package to +% determine what class is being used and make arrangements accordingly, +% especially as there are not all that many classes. There are hundreds +% of packages that might be used with a particular class and it would be +% senseless for a class to attempt to take account of everything that might +% be used with it. +% % \begin{macro}{\ifpdf} % \begin{macro}{\pdftrue} % \begin{macro}{\pdffalse} @@ -975,7 +999,15 @@ % \changes{v1.0}{2001/09/21}{Made checking of \cs{pdfouput} more robust} % \changes{v1.618}{2005/09/03}{Prohibit loading the ifpdf package (mempatch v3.9)} % \changes{v1.618033}{2008/06/02}{Further improved pdf checking} -% \begin{macrocode} +% \changes{v1.6180339}{2008/07/23}{Use ifpdf package if available} +% \begin{macrocode} +\newif\ifm@mifpdf + \m@mifpdffalse +\IfFileExists{ifpdf.sty}{\RequirePackage{ifpdf}\relax}{% + \ClassWarningNoLine{memoir}{% + Package `ifpdf' is not installed.\MessageBreak + The package is being emulated}% +\m@mifpdftrue \newif\ifpdf \pdffalse \ifx\pdfoutput\undefined @@ -990,6 +1022,8 @@ \fi \fi \fi +%%\EmulatedPackage{ifpdf}[2008/07/23] +} % \end{macrocode} % \end{macro} @@ -1000,10 +1034,19 @@ % \begin{macro}{\etextrue} % \begin{macro}{\etexfalse} % Check if \texttt{etex} is being used. This is based on the check for -% \texttt{pdf(latex)}. +% \texttt{pdf(latex)}. Someone may have created a package for this, +% or perhaps not. % \changes{v1.61803}{2008/01/30}{Added check for etex (mempatch v4.9)} % \changes{v1.618033}{2008/06/02}{Improved check for etex} -% \begin{macrocode} +% \changes{v1.6180339}{2008/07/23}{Use an ifetex package if available} +% \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}% +\m@mifetextrue \newif\ifetex \etexfalse \ifx\eTeXversion\undefined @@ -1018,6 +1061,8 @@ \fi \fi \fi +%%\EmulatedPackage{ifetex}[2008/07/23] +} % \end{macrocode} % \end{macro} @@ -1033,18 +1078,29 @@ % \begin{macro}{\RequireXeTeX} % Checks if XeTeX is being used. % \changes{v1.61803}{2008/01/30}{Added checks for XeTeX (mempatch v4.9)} -% \begin{macrocode} +% \changes{v1.6180339}{2008/07/23}{Use ifxetex package if available} +% \begin{macrocode} +\newif\ifm@mifxetex + \m@mifxetexfalse +\IfFileExists{ifxetex.sty}{\RequirePackage{ifxetex}\relax}{% + \ClassWarningNoLine{memoir}{% + The `ifxetex' package is not installed.\MessageBreak + The package is being emulated}% \newif\ifxetex \@ifundefined{XeTeXrevision}{\xetexfalse}{\xetextrue} % \end{macrocode} % Check for XeTeX from the \Lpack{ifxetex} package. % \begin{macrocode} +%%\EmulatedPackage{ifxetex}[2008/07/23] +} +\ifm@mifxetex \def\RequireXeTeX{% \ifxetex\else \@memerror{XeTeX is required to process this document}% {Try again with xelatex, not (pdf)latex.\MessageBreak Or try removing any XeTeX package(s).} \fi} +\fi % \end{macrocode} % \end{macro} @@ -1056,9 +1112,18 @@ % \begin{macro}{\luatextrue} % \begin{macro}{\luatexfalse} % Check if \texttt{luatex} is being used. This is based on the check for -% \texttt{pdf(latex)}. +% \texttt{pdf(latex)}. Someone may have created a package for this, or +% perhaps not. % \changes{v1.61803}{2008/01/30}{Added check for luatex} -% \begin{macrocode} +% \changes{v1.6180339}{2008/07/23}{Use an ifluatex package if available} +% \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 package is being emulated}% +\m@mifluatextrue \newif\ifluatex \luatexfalse \ifx\luatexversion\@undefined @@ -1071,6 +1136,8 @@ \fi \fi \fi +%%\EmulatedPackage{ifluatex}[2008/07/23] +} % \end{macrocode} % \end{macro} @@ -5883,12 +5950,14 @@ % % \subsection{Double spacing} % -% This is an embedding of the code from the \Lpack{setspace} package, with +% This is an embedding and extension of the code from the \Lpack{setspace} +% package, with % names changed. % % \begin{macro}{\setSpacing} % \cs{setSpacing}\marg{num} effectively increases the \cs{baselineskip} to -% \meta{num}*\cs{baselineskip} +% \meta{num}*\cs{baselineskip}. +% (In package was \cs{setstretch}). % \begin{macrocode} \newcommand*{\setSpacing}[1]{% \def\baselinestretch{#1}% @@ -5900,7 +5969,7 @@ % \begin{macro}{\setSingleSpace} % \cs{setSingleSpace}\marg{num} effectively increases the \cs{baselineskip} for % single spacing to \meta{num}*\cs{baselineskip} (\meta{num} should be -% close to 1.0). +% close to 1.0). (In package was \cs{SetSinglespace}). % \begin{macrocode} \newcommand*{\setSingleSpace}[1]{% \def\m@m@singlespace{#1}} @@ -5910,7 +5979,7 @@ % \end{macro} % % \begin{macro}{\SingleSpacing} -% \cs{SingleSpacing} starts single spacing. +% \cs{SingleSpacing} starts single spacing. (In package was \cs{singlespacing}). % \begin{macrocode} \newcommand*{\SingleSpacing}{% \setSpacing{\m@m@singlespace}% @@ -5925,6 +5994,7 @@ % \begin{macro}{\OnehalfSpacing} % \cs{OnehalfSpacing} starts `one and a half' spacing, which to most % thesis nitpickers will look like double spacing. +% (In package was \cs{onehalfspacing}). % \begin{macrocode} \newcommand*{\OnehalfSpacing}{ \setSpacing{1.25}% default (10pt) @@ -5949,7 +6019,7 @@ % % \begin{macro}{\DoubleSpacing} % \cs{DoubleSpacing} starts double spacing, which to most thesis nitpickers -% will look far too spaced out. +% will look far too spaced out. (In package was \cs{doublespacing}). % \begin{macrocode} \newcommand*{\DoubleSpacing}{ \setSpacing{1.667}% default (10pt) @@ -5995,7 +6065,7 @@ % % % \begin{environment}{SingleSpace} -% Environment form of \cs{SingleSpacing}. +% Environment form of \cs{SingleSpacing}. (In package was \texttt{singlespace}). % \begin{macrocode} \newenvironment{SingleSpace}{% \vskip\baselineskip @@ -6008,6 +6078,7 @@ % % \begin{environment}{SingleSpace*} % Don't use this; it's only here to match the \Lpack{setspace} package. +% (In package was \texttt{singlespace*}). % \begin{macrocode} \newenvironment{SingleSpace*}{% %% \vskip\baselineskip @@ -6033,7 +6104,7 @@ % % \begin{environment}{Spacing} % \verb?\begin{Spacing}{num}? increases the \cs{baselineskip} -% to \verb?num*\baselineskip?. +% to \verb?num*\baselineskip?. (In package was \texttt{spacing}). % \begin{macrocode} \newenvironment{Spacing}[1]{% \par @@ -6044,7 +6115,7 @@ % \end{environment} % % \begin{environment}{OnehalfSpace} -% Environment form of \cs{OnehalfSpacing}. +% Environment form of \cs{OnehalfSpacing}. (In package was \texttt{onehalfspace}). % \begin{macrocode} \newenvironment{OnehalfSpace}{% \begingroup @@ -6054,7 +6125,7 @@ % \end{environment} % % \begin{environment}{DoubleSpace} -% Environment form of \cs{DoubleSpacing}. +% Environment form of \cs{DoubleSpacing}. (In package was \texttt{doublespace}). % \begin{macrocode} \newenvironment{DoubleSpace}{% \begingroup @@ -6071,7 +6142,8 @@ % \begin{macro}{\noDisplayskipStretch} % \cs{setDisplayskipStretch}\marg{num} changes space around displays by the % factor (1+\meta{num}). \cs{noDisplaydkipStretch} keeps the regular -% spacing around displays. +% spacing around displays. (In package were \cs{setdisplayskipstretch} and +% the \texttt{nodisplayskipstretch} option). % \begin{macrocode} \newcommand*{\memdskipstretch}{0.0} \newcommand*{\setDisplayskipStretch}[1]{% @@ -20111,6 +20183,9 @@ % \begin{macro}{\booknumberline} % Now for the ToC entry. % \changes{v1.61803}{2008/01/30}{Added \cs{l@book} and supports (mempatch v4.4)} +% \changes{v1.6180339}{2008/07/23}{Deleted \cs{space} from \cs{booknumberline} +% and \cs{partnumberline} +% (per Lars Henrik Gam Madsen mempatch v5.1)} % \begin{macrocode} \newcommand*{\cftbookbreak}{\addpenalty{-\@highpenalty}% \addvspace{\cftbeforebookskip}} @@ -20141,7 +20216,7 @@ \fi} \newcommand{\booknumberline}[1]{% \hb@xt@\@tempdima{% - \cftbookname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb\space} + \cftbookname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}%%\space} % \end{macrocode} % \end{macro} @@ -20270,7 +20345,7 @@ % \begin{macrocode} \newcommand{\partnumberline}[1]{% \hb@xt@\@tempdima{% - \cftpartname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb\space} + \cftpartname\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}%%\space} % \end{macrocode} % \end{macro} @@ -31166,44 +31241,51 @@ % % \subsection{Emulated packages} % -% \begin{macrocode} -\EmulatedPackage{abstract} -\EmulatedPackage{appendix} -\EmulatedPackage{array} -\EmulatedPackage{booktabs} -\EmulatedPackage{ccaption} -\EmulatedPackage{changepage} -\EmulatedPackage{chngcntr} -\EmulatedPackage{chngpage} +% Many of the `emulations' are extensions and integration of package +% facilities. In some cases an `emulated' package just won't work with the +% class, so I've added it here to prevent it from being loaded. In any case, +% most of the packages are mine. +% \changes{v1.6180339}{2008/07/23}{Added dates to emulated packages} +% \begin{macrocode} +\EmulatedPackage{abstract}[2008/07/23] +\EmulatedPackage{appendix}[2008/07/23] +\EmulatedPackage{array}[2008/07/23] +\EmulatedPackage{booktabs}[2008/07/23] +\EmulatedPackage{ccaption}[2008/07/23] +\EmulatedPackage{changepage}[2008/07/23] +\EmulatedPackage{chngcntr}[2008/07/23] +\EmulatedPackage{chngpage}[2008/07/23] \EmulatedPackage{crop} -\EmulatedPackage{dcolumn} -\EmulatedPackage{delarray} -\EmulatedPackage{enumerate} -\EmulatedPackage{epigraph} -%%%%%\EmulatedPackage{framed} -\EmulatedPackage{ifmtarg} -\EmulatedPackage{ifpdf} -\EmulatedPackage{ifxetex} -\EmulatedPackage{index} -\EmulatedPackage{makeidx} -\EmulatedPackage{moreverb} -\EmulatedPackage{mparhack} -\EmulatedPackage{needspace} -\EmulatedPackage{newfile} -\EmulatedPackage{nextpage} -\EmulatedPackage{pagenote} -\EmulatedPackage{parskip} -\EmulatedPackage{patchcmd} -\EmulatedPackage{setspace} -\EmulatedPackage{shortvrb} -\EmulatedPackage{showidx} -\EmulatedPackage{tabularx} -\EmulatedPackage{titleref} -\EmulatedPackage{titling} -\EmulatedPackage{tocbibind} -\EmulatedPackage{tocloft} -\EmulatedPackage{verbatim} -\EmulatedPackage{verse} +\EmulatedPackage{dcolumn}[2008/07/23] +\EmulatedPackage{delarray}[2008/07/23] +\EmulatedPackage{enumerate}[2008/07/23] +\EmulatedPackage{epigraph}[2008/07/23] +%%%%%\EmulatedPackage{framed}[2008/07/23] +\EmulatedPackage{ifmtarg}[2008/07/23] +\ifm@mifetex\EmulatedPackage{ifetex}[2008/07/23]\fi +\ifm@mifluatex\EmulatedPackage{ifluatex}[2008/07/23]\fi +\ifm@mifpdf\EmulatedPackage{ifpdf}[2008/07/23]\fi +\ifm@mifxetex\EmulatedPackage{ifxetex}[2008/07/23]\fi +\EmulatedPackage{index}[2008/07/23] +\EmulatedPackage{makeidx}[2008/07/23] +\EmulatedPackage{moreverb}[2008/07/23] +\EmulatedPackage{mparhack}[2008/07/23] +\EmulatedPackage{needspace}[2008/07/23] +\EmulatedPackage{newfile}[2008/07/23] +\EmulatedPackage{nextpage}[2008/07/23] +\EmulatedPackage{pagenote}[2008/07/23] +\EmulatedPackage{parskip}[2008/07/23] +\EmulatedPackage{patchcmd}[2008/07/23] +\EmulatedPackage{setspace}[2008/07/23] +\EmulatedPackage{shortvrb}[2008/07/23] +\EmulatedPackage{showidx}[2008/07/23] +\EmulatedPackage{tabularx}[2008/07/23] +\EmulatedPackage{titleref}[2008/07/23] +\EmulatedPackage{titling}[2008/07/23] +\EmulatedPackage{tocbibind}[2008/07/23] +\EmulatedPackage{tocloft}[2008/07/23] +\EmulatedPackage{verbatim}[2008/07/23] +\EmulatedPackage{verse}[2008/07/23] % \end{macrocode} % |