diff options
author | Karl Berry <karl@freefriends.org> | 2008-03-21 17:38:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-03-21 17:38:02 +0000 |
commit | fbad46c95a0870250bacff1df845b93b00b67b4d (patch) | |
tree | b030f07549b5ac35c3571cde8224b11acb90deb1 /Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex | |
parent | 86c756ee6f056328a39127f60560f00a7fde7cb3 (diff) |
memexsupp installed (20mar08)
git-svn-id: svn://tug.org/texlive/trunk@7061 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex b/Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex new file mode 100644 index 00000000000..5a76c95d652 --- /dev/null +++ b/Master/texmf-dist/doc/latex/memexsupp/memexsupp.tex @@ -0,0 +1,413 @@ +\documentclass[ +a4paper, +11pt, +article +]{memoir} +\usepackage[latin1]{inputenc} +\usepackage[english]{babel} +\usepackage[T1]{fontenc} +\usepackage[widespace]{fourier} +\usepackage{memexsupp} +\pagestyle{headings} +\setsecnumdepth{part} +\setlength\cftbeforechapterskip{0pt} + + +\makeatletter +\newcommand*\Arg@s[1]{\textnormal{\texttt{#1}}}% +\newcommand*\Arg@n[1]{\textnormal{$\langle$\textit{#1}$\rangle$}}% +\newcommand*\Arg{\@ifstar{\Arg@s}{\Arg@n}}% +\newcommand*\marg@s[1]{\textnormal{\texttt{\{#1\}}}} +\newcommand*\marg@n[1]{% + \textnormal{\texttt{\{}$\langle$\textit{#1}$\rangle$\texttt{\}}}% +} +\renewcommand*\marg{\@ifstar{\marg@s}{\marg@n}} + +\newcommand*\oarg@s[1]{\textnormal{\texttt{[#1]}}} +\newcommand*\oarg@n[1]{% + \textnormal{\texttt{[}$\langle$\textit{#1}$\rangle$\texttt{]}}% +} +\renewcommand*\oarg{\@ifstar{\oarg@s}{\oarg@n}} +\providecommand*\cs[1]{\textnormal{\texttt{\symbol{'134}#1}}} +\newenvironment{syntax}{% + \vskip.5\onelineskip% + \begin{adjustwidth}{\parindent}{0pt} + \parindent=0pt% + \obeylines% + \let\\=\relax% + }{% + \end{adjustwidth}% + \vskip.5\onelineskip% +} +\newoutputstream{SCS} +\newenvironment{SCSexample}{% + \openoutputfile{\jobname.ex}{SCS}% + \begingroup + \writeverbatim{SCS}% +}{% + \endwriteverbatim\relax% + \endgroup + \closeoutputstream{SCS}% + \verbatiminput{\jobname.ex}% + {\begin{minipage}{\linewidth-4mm} + \input{\jobname.ex}\end{minipage}}% + \par\bigskip\noindent +} +\makeatother + + +\begin{document} + +\title{The Memoir Experimental Support package} +\author{Lars Madsen\thanks{Email: daleif@imf.au.dk}% +\thanks{Version: 0.1, 2008/03/20}} + +\maketitle + +\tableofcontents* + + +\chapter{Introduction} +\label{cha:introduction} + +This package is meant as a sort of experimental playing +ground for code that at some later point might make it into +the memoir core. + +Anyone with an interest in improving the memoir class is +encouraged to participate. + +Whenever Peter Wilson decides to include something from this package +into the memoir core, this package will be updated and the macros, +earlier provided here, will be removed. For this reason, we +have prefixed all user macros with >>\verb+MXS+<<. + +It is also the idea that the package by it self does not +alter anything in memoir by just loading the package. The +user has to do something actively to use the features in +this package. + +\chapter{Making marks for page styles} +\label{cha:making-marks-page} + +One of memoirs advantages over the standard classes is it much +improved system of page style. The page styles are often broken out +over different names, such as >>\verb+chapter+<< for chapter title +pages or >>\verb+cleared+<< for blank pages before a right-hand-side +chapter (via \verb+\cleardoublepage+). These styles can easily be +redefined or \emph{aliased}. + +The downside of this improved system is that even though page styles +are now easy to handle, creating the \verb+\...mark+ commands is still +hard to understand for a novice, who might just want the standard +headers but without the uppercase stuff. + +In an ealier version of this document we suggested some generic macros +for helping users to create these \verb+\...mark+ macros. Those older +macros was not particularly user friendly. In contrast, most users are +more or less happy with the usual \verb+\...mark+ definitions, though +they sometimes would like to change them a little bit. To help with +this we have created the following macros: +\begin{syntax} + \cs{MXScreatesimplemark}\marg{type}\marg{text} + \cs{MXScreatemark}\marg{type}\marg{macro-type}\marg{visib.}\marg{prefix}\marg{postfix} + \cs{MXSaddtopsmarks}\marg{pagestyle}\marg{before}\marg{after} +\end{syntax} +Explanation: +\begin{verbatim} + \MXScreatesimplemark{toc}{\contentsname} +\end{verbatim} +is the same as \cs{tocmark} being equal +to +\begin{verbatim} + \markboth{\memUChead{\contentsname}}{\memUChead{\contentsname}} +\end{verbatim} +where \verb+\memUChead+ is an internal memoir macro introduced in +MemPatch version 4.9a. Use the simple mark construction for +\texttt{toc}, \texttt{lot}, \texttt{lof}, \texttt{bib} and +\texttt{index}. + +The in pseudo-code the \cs{MXScreatemark} macro corresponds to: +\begin{syntax}\ttfamily + if section or chapter number required + \qquad if mainmatter + \qquad\qquad if \Arg{visib.} equal \emph{true} + \qquad\qquad\qquad\Arg{prefix}\Arg{corresponding sectional number}\Arg{postfix} + \qquad\qquad end if + \qquad end if + end if + \Arg{the title given by \cs{chapter} etc.} +\end{syntax} +Whether this is given to \verb+\markright+ or \verb+\markboth+, +depends on the value of \Arg{macro-type}, possible values are: +\emph{both} or \emph{right}. The \Arg{type} here corresponds to +\texttt{chapter}, \texttt{section}, \texttt{subsection}, and +\texttt{subsubsection}. + +Using \cs{MXSaddtopsmarks} one can add code at the beginning or the +end of an existing ps marks registration. The syntax for the last two +arguments is the same as for memoirs \verb+\addto+ macro. + +Using the constructions above the marks settings for memoirs default +pagestyle, \emph{headings} can now be written as (for a twoside setup) +\begin{verbatim} +\makeatletter +\makepsmarks{headings}{ + \MXScreatemark{chapter}{both}{true}{\@chapapp\ }{. \ } + \MXScreatemark{section}{right}{true}{}{. \ } + \MXScreatesimplemark{toc}{\contentsname} + \MXScreatesimplemark{lof}{\listfigurename} + \MXScreatesimplemark{lot}{\listtablename} + \MXScreatesimplemark{bib}{\bibname} + \MXScreatesimplemark{index}{\indexname} +} +\makeatother +\end{verbatim} +where \verb+\@chapapp+ is a standard macro which under normal +circumstances holds the chapter name, but under an appendix holds the +appendix name. Note the dots and the spaces. Quite clearly a lot +easier to understand than the actual code in the memoir source. + +As one notices the standard \emph{headings} only includes marks for +chapter and section. But this is easy to fix: +\begin{verbatim} +\MXSaddtopsmarks{headings}{}% not adding anything at the beginning +{ + \MXScreatemark{subsection}{right}{true}{}{. \ } + \MXScreatemark{subsubsection}{right}{true}{}{. \ } +} +\end{verbatim} +And if we just wanted to add the titles, but not the numbers, then +change \emph{true} to \emph{false}. + + +% Hence enter \verb+\MXSMakeSectionalMarks+: +% \begin{syntax} +% \verb+\MXSMakeSectionalMarks+\oarg{secname} +% \end{syntax} +% \Arg{secname} has its usual meaning from \cite{memman}. +% This macro is meant to be used as in +% \begin{syntax} +% \verb+\makepsmarks{mystyle}{\MXSMakeSectionalMarks[subsection]}+ +% \end{syntax} +% Which will create \verb+\...mark+ commands for >>\texttt{chapter}<<, +% >>\texttt{section}<< and >>\texttt{subsection}<<, leaving +% >>\texttt{subsubsection}<< firing blanks. + +% Internally \verb+\MXSMakeSectionalMarks+ will use +% \begin{syntax} +% \verb+\MXSDefineChapterMark+\marg{code} +% \verb+\MXSDefineSectionMark+\marg{code} +% \verb+\MXSDefineSubsectionMark+\marg{code} +% \verb+\MXSDefineSubsubsectionMark+\marg{code} +% \verb+\MXSMakeListMarks+ +% \end{syntax} +% Each of the four first macros provide the normal text for either +% \verb+\leftmark+ (\verb+\chaptermark+ only) or \verb+\rightmark+. One +% slight change is that \verb+\chaptermark+ is defined such that it +% places an identical text in both \verb+\leftmark+ or +% \verb+\rightmark+, and not just the former, as in the usual case. (The +% section mark macros, only writes to \verb+\rightmark+ as usual.) + +% \verb+\MXSMakeListMarks+ is defined as: +% \begin{verbatim} +% \newcommand\MXSMakeListMarks{% +% \def\tocmark{\markboth{\MXSMarksFormat{\contentsname}}% +% {\MXSMarksFormat{\contentsname}}}% +% \def\lofmark{\markboth{\MXSMarksFormat{\listfigurename}}% +% {\MXSMarksFormat{\listfigurename}}}% +% \def\lotmark{\markboth{\MXSMarksFormat{\listtablename}}% +% {\MXSMarksFormat{\listtablename}}}% +% \def\bibmark{\markboth{\MXSMarksFormat{\bibname}}% +% {\MXSMarksFormat{\bibname}}}% +% \def\indexmark{\markboth{\MXSMarksFormat{\indexname}}% +% {\MXSMarksFormat{\indexname}}}% +% } +% \end{verbatim} +% The macro \verb+\MXSMarksFormat+ is also used around the code used +% inside \verb+\chatermark+ throughout \verb+\subsubsectionmark+. By +% default it does nothing. Should you want the standard uppercase memoir +% \emph{headings} style marks, simply say +% \begin{syntax} +% \verb+\renewcommand\MXSMarksFormat{\MakeUppercase}+ +% \end{syntax} +% One word of advice though, do \emph{not} add font changing +% macros into the \verb+\...mark+ definitions. Macros such as +% \verb+\bfseries+ or \verb+\small+ belongs in the page style +% configuration, not in the marks definition. + + + +% \section{What goes on inside inside the \cs{MSXDefineXMark}?} +% \label{sec:what-inside-csdef} + +% \chapterprecishere{Explanation for novice users} + +% The \verb+\chaptermark+ is a bit complicated, so we will +% leave that for a moment. \verb+\sectionmark+, +% \verb+\subsectionmark+ and \verb+\subsubsection+ mark is +% much simpler to understand. In pseudocode it is: +% \begin{syntax} +% if sectional number required +% \qquad \Arg{sectional number plus a dot plus some space} +% end if +% \Arg{the title} +% \end{syntax} +% So the code for \verb+\sectionmark+ can be written: +% \begin{verbatim} +% \renewcommand\sectionmark[1]{% +% \markright{\MXSMarkFormat{% +% \ifnum\value{secnumdepth}>0 +% \thesection. \ % +% \fi +% #1}}% +% } +% \end{verbatim} +% Here >>\texttt{0}<< is the number representation for >>chapter<<, so +% if the >>\texttt{secnumdepth}<< is larger than sero, then we need to +% have section numbers as well. The number sequence goes as +% \texttt{part=-1}, \texttt{chapter=0}, \texttt{section=1},\dots + +% Just remember that we will have to use \verb+##1+ in the +% code since the above goes inside +% \verb+\MXSDefineSectionMark+. The code we actually use is +% slightly different, since we save some memory by writing a +% few things using \LaTeX\ internals, but it is essentially +% the same as above. The actual code used for \verb+\DefineSectionMark+ +% is +% \begin{verbatim} +% \newcommand\MXSDefineSectionMark{% +% \def\sectionmark##1{% +% \markright{\MXSMarksFormat{% +% \ifnum \c@secnumdepth > \z@ +% \thesection. \ % +% \fi +% ##1}}}% +% } +% \end{verbatim} +% But it is equivalent with the code mentioned above (just saves some +% internal memory). + + + +% For \verb+\chaptermark+ there are two complications: First +% we have to write to both \verb+\leftmark+ and +% \verb+\rightmark+ (we just duplicate the code) and because +% \verb+\chatermark+ usually includes the word +% >>\emph{\chaptername}<< we also have to test whether we are +% inside the front matter, where this text should not be +% printed. So the pseudocode here becomes +% \begin{syntax} +% if chapter number required +% \qquad if mainmatter +% \qquad\qquad\Arg{Chapter/Appendix name plus number plus a dot plus some space} +% \qquad end if +% end if +% \Arg{the title} +% \end{syntax} +% Automatic distinction between >>\emph{\chaptername}<< and +% >>\emph{\appendixname}<< is handled through the internal +% macro \verb+\@chapapp+, so we will have to use +% \verb+\makeatletter+ and \verb+\makeatother+ if one have to mess with +% \verb+\chaptermark+ in the preamble. The code might look like +% this: +% \begin{verbatim} +% \renewcommand\chaptermark[1]{% +% \markboth{\MXSMarkFormat{% +% \ifnum\value{secnumdepth} > -1 +% \if@mainmatter +% \@chapapp\ \thechapter. \ % +% \fi +% \fi +% #1}}{% +% exact copy of the above +% }} +% \end{verbatim} +% Again remember to use >>\verb+##1+<< when using this inside +% \verb+\MXSDefineChapterMark+. + +\chapter{Chapterprecis in article mode} +\label{cha:chapt-article-mode} + +% In article mode vertical space is not added below the chapter title +% (which now simply resembles \cs{section}). So when you use +% \cs{chapterprecishere}, the precis text is listed too high. + +% \verb+\MXSArticlePreChapterPrecis+ fixes this by redefining +% \verb+\prechapterprecis+ to not include +% \verb+\vspace*{-2\baselineskip}+, see \cite{memman} p. 121. +% Just add +% \begin{syntax} +% \verb+\MXSArticlePreChapterPrecis+ +% \end{syntax} +% to the preamble, if you are using the memoir article option. If used +% whenever the `article' options is not in effect, a warning is issued. + +Removed, fixed in mempatch 4.9. + + +\chapter{Multi page titlingpage} +\label{cha:mult-titl} + +If one does a naive multi page titlingpage in memoir, such as +\begin{verbatim} +\documentclass{memoir} +\begin{document} +\begin{titlingpage} +\begin{center} + cover page +\end{center} +\newpage +\begin{center} + back of cover page +\end{center} +\newpage +\begin{center} + title page +\end{center} +\newpage +\begin{center} + back of title page +\end{center} +\end{titlingpage} +\end{document} +\end{verbatim} +You will soon discover that some of these pages actually have headers +or footers in contrast to the fact that the \emph{titlingpage} +environment should use the \emph{titlingpage} page style for its +pages. There is no easy way around this so the \texttt{MXStitlingpage} +environment solves this problem by redefining macros such as +\verb+\newpage+ and \verb+\clearpage+ to locally make sure the +\emph{titlingpage} page style is used on the next page. + +Just remember that if you have the habit of using \verb+\cleartorecto+ +then you might end up with a page where the page style actually used, +is not \emph{titlingpage} but rather \emph{cleared} (they are +initially aliased to the same page style). + +\begin{quote} + \itshape + If anyone have better ideas for fixing this problem regarding the + \emph{titlingpage} environment, please let me know. +\end{quote} + + +\begin{thebibliography}{9} +\bibitem{memman} Peter Wilson, \emph{The Memoir Class for Configurable + Typesetting}, The Herres Press, 2004. +\bibitem{memmanadd} +Peter Wilson, \emph{Addendum -- The Memoir Class for Configurable Typesetting; + User Guide}, 2007. +\end{thebibliography} + + +\end{document} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + + |