Current File : //usr/share/texlive/texmf-dist/doc/latex/memoir/memlays.sty |
% memlays.sty % extra layouts for membook, extension to layouts package
\ProvidesPackage{memlays}[2002/08/10 v1.0 Extra membook layouts]
\usepackage{layouts}
\providecommand\LMnote[2]{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CHAPTER HEADING
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\LMnote{2010/08/20}{added some baselineskips etc. to make the drawing
more realistic}
\newcommand{\drawchapter}{%
% Some default values first
\l@yltoc{0.85\textwidth}{\l@youthdi} % textwidth
\l@yltoc{\baselineskip}{\l@youtvdi} % baselineskip
\ifdrawparameters
% When drawparameters is TRUE, use a generic layout.
% Set dimensions and coordinates.
\Huge \l@youtvdii=\baselineskip \normalsize % Heading baselineskip
\divide\l@youtvdii by \l@yonepoint
\l@yltoc{50pt}{\l@youtvpiii} % beforeskip
\l@yltoc{20pt}{\l@youtvpi} % midskip
\l@yltoc{40pt}{\l@youtvpii} % afterskip
\fi
% Now continue setting all the other drawing lengths and coordinates.
\l@youtvdiii=\l@youtvpii % afterskip
\advance\l@youtvdiii by \l@youtparskip
\advance\l@youtvdiii by \l@youtvdi
\l@youtvdiv=\l@youtvpi % midskip
% \advance\l@youtvdiv by \l@youtparskip
\advance\l@youtvdiv by \l@youtvdii
\l@youtvdv=\l@youtvpiii % beforeskip
% \advance\l@youtvdv by \l@youtparskip
\advance\l@youtvdv by \l@youtvdii
\l@youtyci=\l@youtvdi % Y coord of base of after text
\l@youtycii=\l@youtyci % Y coord of base of heading text
\advance\l@youtycii by \l@youtvdiii
%% \l@youthdiv=\z@ % 0 or abs(-afterskip)
% Continue.
\l@youtyciii=\l@youtycii % Y coord of base Chapter N
\advance\l@youtyciii by \l@youtvdiv
\l@youtyciv=\l@youtyciii % Y coord of top of typeblock
\advance\l@youtyciv by \l@youtvdv
\l@youtycvi=\l@youtyciv % 3*l@youtvdi + l@youtyciv
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\l@youthdii=\l@youtvdi % a small amount
\l@youthdiii=\l@youthdii % half a small amount
\divide\l@youthdiii by \tw@
%
% Draw the picture!
%
\begin{center}
\setlength{\unitlength}{\l@youtunitlength}
\begin{picture}(\l@youthdi,\l@youtycvi)
\put(0,\l@youtyci){\begin{picture}(\l@youthdi,\l@youtyciv)
%
% Draw the two after heading text lines
\put(0,0){\l@ylabelfont second line of text following the heading \ldots}
\put(0,\l@youtyci){\l@ylabelfont This is the start of the after-heading text
which continues on \ldots}
% Draw the heading
\put(0,\l@youtycii){{\Huge The title}}
% Draw the Chapter
\put(0,\l@youtyciii){{\huge Chapter 3}}
% Top of the typeblock
\put(0,\l@youtyciv){\l@ylabelfont \_\_\_\_ top of the typeblock}
\testdrawdimensions
\ifl@ytempif
% Draw the dimensions if required. First the before skips.
\put(0,\l@youtyciv){\vector(0,-1){\l@youtvdv}}
\put(0,\l@youtyciv){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \l@ypcmd{beforechapskip}
+ \l@ypcmd{baselineskip} + \l@ypcmd{topskip}
}}
\end{picture}}
% The midskip
%% \put(0,\l@youtyciii){\vector(0,-1){\l@youtvdiv}}
\put(-\l@youthdiii,\l@youtyciii){\vector(0,-1){\l@youtvdiv}}
\put(0,\l@youtyciii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \l@ypcmd{midchapskip} + \l@ypcmd{baselineskip}}}
\end{picture}}
% And finish with the afterskip
\put(0,\l@youtycii){\vector(0,-1){\l@youtvdiii}}
\put(0,\l@youtycii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \l@ypcmd{afterchapskip} + \l@ypcmd{baselineskip}}}
\end{picture}}
\fi
\end{picture}}
% Draw rules.
\put(0,0){\line(1,0){\l@youthdi}}
\put(0,\l@youtycvi){\line(1,0){\l@youthdi}}
\end{picture}
\end{center}
\setlength{\unitlength}{1pt}
% The end of the definition of |\drawheading|.
}
% Shorthands.
\newcommand{\chapterdiagram}{\drawparameterstrue\drawchapter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HEADERS AND FOOTERS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\headerfooterdiagram}{%
% some initial values
\l@yltoc{0.85\textwidth}{\l@youthdi} % textwidth
\l@yltoc{\baselineskip}{\l@youtvdi} % baselineskip
% we need 4 x coordinates
\l@youtxci=\z@
\l@youtxciii=\l@youthdi
\l@youtxciv=\l@youtxciii
\advance\l@youtxciv by \l@youtvdi
\l@youtxcii=\l@youtxciii % midway between xci and xciii
\advance\l@youtxcii by \l@youtxci
\divide\l@youtxcii by \tw@
% we need 8 y coordinates
\l@youtycii=\l@youtvdi
\l@youtyciii=\l@youtycii
\advance\l@youtyciii by \l@youtvdi
\l@youtyciv=\l@youtyciii
\advance\l@youtyciv by \l@youtvdi
\l@youtycvi=\l@youtyciv
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\advance\l@youtycvi by \l@youtvdi
\l@youtycv=\l@youtyciv % midway between yciv and ycvi
\advance\l@youtycv by \l@youtycvi
\divide\l@youtycv by \tw@
\l@youtycvii=\l@youtycvi
\advance\l@youtycvii by \l@youtvdi
\l@youtycviii=\l@youtycvii
\advance\l@youtycviii by \l@youtvdi
\l@youtyci=\l@youtycviii
\advance\l@youtyci by \l@youtvdi
% we need 1 horizontal distance, which is the diagram width
% (i.e., \l@youthdi)
% and one vertical distance, total picture height
\l@youtvdii=\l@youtycviii
\advance\l@youtvdii by \l@youtvdi
\advance\l@youtvdii by \l@youtvdi
\advance\l@youtvdii by \l@youtvdi
% and a (half) small amount
\l@youthdii=\l@youtvdi
\l@youthdiii=\l@youthdii
\divide\l@youthdiii by \tw@
%
% Draw the picture
%
\begin{center}
\setlength{\unitlength}{\l@youtunitlength}
\begin{picture}(\l@youthdi,\l@youtvdii)
\thinlines
% draw the horizontals
\put(0,0){\line(1,0){\l@youthdi}}
\put(0,\l@youtvdii){\line(1,0){\l@youthdi}}
% the footer texts
\put(0,\l@youtyciii){\makebox(0,0)[bl]{left}}
\put(\l@youtxcii,\l@youtyciii){\makebox(0,0)[b]{center}}
\put(\l@youtxciii,\l@youtyciii){\makebox(0,0)[br]{right}}
% the footrule
\thicklines
\put(0,\l@youtyciv){\line(1,0){\l@youthdi}}
\put(\l@youtxciv,\l@youtyciv){\begin{picture}(\l@youthdii,\l@youthdii)
\put(0,\l@youthdiii){\makebox(0,0)[br]%
{\l@yparamfont \l@ypcmd{footrule}}}
\end{picture}}
% the TYPE BLOCK
\put(\l@youtxcii,\l@youtycv){\makebox(0,0){THE TYPE BLOCK}}
% the headrule
\put(0,\l@youtycvi){\line(1,0){\l@youthdi}}
\put(\l@youtxciv,\l@youtycvi){\begin{picture}(\l@youthdii,\l@youthdii)
\put(0,-\l@youthdiii){\makebox(0,0)[tr]%
{\l@yparamfont \l@ypcmd{headrule}}}
\end{picture}}
\thinlines
% the header texts
\put(0,\l@youtycvii){\makebox(0,0)[tl]{left}}
\put(\l@youtxcii,\l@youtycvii){\makebox(0,0)[t]{center}}
\put(\l@youtxciii,\l@youtycvii){\makebox(0,0)[tr]{right}}
% the runningwidth
\put(0,\l@youtycviii){\vector(1,0){\l@youthdi}}
\put(0,\l@youtycviii){\vector(-1,0){0}}
\put(\l@youtxcii,\l@youtyci){\makebox(0,0)%
{\l@yparamfont \l@ypcmd{runningwidth}}}
\end{picture}
\setlength{\unitlength}{1pt}
\end{center}
}
\LMnote{2011/03/15}{We removed the \cs{parskip} effect on \cs{section}
in one of the latest memoir versions, thus we need this to go away
from the drawing}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SECTIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\drawheading}[1]{%
\l@yltoc{\textwidth}{\l@youthdi} % textwidth
\l@yltoc{\baselineskip}{\l@youtvdi} % baselineskip
\ifdrawparameters
\Huge \l@youtvdii=\baselineskip \normalsize % Heading baselineskip
\divide\l@youtvdii by \l@yonepoint
\l@yltoc{40pt}{\l@youtvpi} % beforeskip
\ifruninhead
\l@yltoc{-72pt}{\l@youtvpii} % afterskip
\l@yltoc{50pt}{\l@youthpi} % indent
\else
\l@yltoc{45pt}{\l@youtvpii} % afterskip
\l@yltoc{72pt}{\l@youthpi} % indent
\fi
\setbox0 = \hbox{{\Huge 3.5 Heading Title }}
\l@yltoc{\wd0}{\l@youthdv} % width of heading text
\else
{#1 \l@youtvdii=\baselineskip\normalfont\normalsize} % heading baselineskip
\divide\l@youtvdii by \l@yonepoint
\setbox0 = \hbox{{#1 3.5 Heading Title }}
\l@yltoc{\wd0}{\l@youthdv} % width of heading text
\fi
\l@youtvdiii=\l@youtvpii % afterskip + parskip + textbaselineskip
\advance\l@youtvdiii by \l@youtparskip
\advance\l@youtvdiii by \l@youtvdi
\l@youtvdiv=\l@youtvpi % beforeskip + parskip + headbaselineskip
\ifnum\l@youtvdiv < \z@
\l@youtvdiv = -\l@youtvdiv
\fi
\advance\l@youtvdiv by \l@youtparskip
\advance\l@youtvdiv by \l@youtvdii
\l@youtyci=\l@youtvdi % Y coord of base of after text
\l@youtycii=\l@youtyci % Y coord of base of heading text
\advance\l@youtycii by \l@youtvdiii
\l@youthdiv=\z@ % 0 or abs(-afterskip)
\ifnum\l@youtvpii < \z@
\l@youthdiv = -\l@youtvpii
\l@youtvdiii=\l@youtvdi % textbaselineskip
\l@youtxci=\l@youthpi % X coord of end of heading text
\advance\l@youtxci by \l@youthdv
\l@youtxcii=\l@youtxci % X coord of start of after text
\advance\l@youtxcii by \l@youthdiv
\l@youtycii=\l@youtvdi % Y coord of base of heading text
\fi
\l@youtyciii=\l@youtycii % Y coord of base of prior text
\advance\l@youtyciii by \l@youtvdiv
\l@youtyciv=\l@youtyciii % Y coord of top of prior text
\advance\l@youtyciv by \l@youtvdi
\l@youtycv=\l@youtyciv % 2*l@youtvdi + l@youtyciv
\advance\l@youtycv by \l@youtvdi
\advance\l@youtycv by \l@youtvdi
\l@youthdii=\l@youtvdi % a small amount
\l@youthdiii=\l@youthdii % half a small amount
\divide\l@youthdiii by \tw@
\begin{center}
\setlength{\unitlength}{\l@youtunitlength}
\begin{picture}(\l@youthdi,\l@youtycv)
\ifnum\l@youtvpii < \z@
\put(0,\l@youtyci){\begin{picture}(\l@youthdi,\l@youtyciv)
\put(0,0){\l@ylabelfont second line of text following the heading \ldots}
\ifdrawparameters
\put(\l@youthpi,\l@youtycii){{\Huge 3.5 Heading Title}}
\else
\put(\l@youthpi,\l@youtycii){{#1 3.5 Heading Title}}
\fi
\put(\l@youtxcii,\l@youtycii){\l@ylabelfont Start of text \ldots}
\put(0,\l@youtyciii){\l@ylabelfont \ldots end of last line of preceding text.}
%% \ifdrawparameters
\testdrawdimensions
\ifl@ytempif
\put(0,\l@youtyciii){\vector(0,-1){\l@youtvdiv}}
\put(0,\l@youtyciii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \textit{$\|$beforeskip$\|$} +
\l@ypcmd{baselineskip}
(of heading font)}}
\end{picture}}
\put(0,\l@youtycii){\vector(1,0){\l@youthpi}}
\put(0,\l@youtycii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdii,\l@youthdiii){\l@yparamfont \textit{indent}}
\end{picture}}
\put(\l@youtxci,\l@youtycii){\vector(1,0){\l@youthdiv}}
\put(\l@youtxci,\l@youtycii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,\l@youthdii){\l@yparamfont \textit{afterskip} ($< 0$)}
\end{picture}}
\fi
\end{picture}}
\else
\put(0,\l@youtyci){\begin{picture}(\l@youthdi,\l@youtyciv)
\put(0,0){\l@ylabelfont second line of text following the heading \ldots}
\put(0,\l@youtyci){\l@ylabelfont This is the start of the after-heading text,
which continues on \ldots}
\ifdrawparameters
\put(\l@youthpi,\l@youtycii){{\Huge 3.5 Heading Title}}
\else
\put(\l@youthpi,\l@youtycii){{#1 3.5 Heading Title}}
\fi
\put(0,\l@youtyciii){\l@ylabelfont \ldots end of last line of preceding text.}
%% \ifdrawparameters
\testdrawdimensions
\ifl@ytempif
\put(0,\l@youtyciii){\vector(0,-1){\l@youtvdiv}}
\put(0,\l@youtyciii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \textit{$\|$beforeskip$\|$} +
\l@ypcmd{baselineskip}
(of heading font)}}
\end{picture}}
\put(0,\l@youtycii){\vector(1,0){\l@youthpi}}
\put(0,\l@youtycii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdii,\l@youthdiii){\l@yparamfont \textit{indent}}
\end{picture}}
\put(0,\l@youtycii){\vector(0,-1){\l@youtvdiii}}
\put(0,\l@youtycii){\begin{picture}(\l@youthdii,\l@youthdii)
\put(\l@youthdiii,-\l@youthdii){\makebox(0,0)[tl]%
{\l@yparamfont \textit{afterskip} +
\l@ypcmd{baselineskip}
(of text font)}}
\end{picture}}
\fi
\end{picture}}
\fi
\put(0,0){\line(1,0){\l@youthdi}}
\put(0,\l@youtycv){\line(1,0){\l@youthdi}}
\end{picture}
\end{center}
\setlength{\unitlength}{1pt}
%% \ifdrawparameters\else
\testprintparameters
\ifl@ytempif
\begin{center}
\begin{footnotesize}
Lengths are to the nearest pt. \\
\begin{ttfamily}
\begin{tabular}{l@{\hspace{20pt}}l}
\textit{beforeskip} = \number\l@youtvpi pt &
\textit{afterskip} = \number\l@youtvpii pt \\
\textit{indent} = \number\l@youthpi pt &
\textrm{(heading font)}
\l@ycmd{baselineskip} = \number\l@youtvdii pt \\
\l@ycmd{parskip} = \number\l@youtparskip pt &
\textrm{heading font} = \string#1 \\
\end{tabular}
\end{ttfamily}\end{footnotesize}
\end{center}
\fi
}
\endinput