summaryrefslogtreecommitdiff
path: root/macros/latex/required/amscls/amsbooka.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/required/amscls/amsbooka.dtx
Initial commit
Diffstat (limited to 'macros/latex/required/amscls/amsbooka.dtx')
-rw-r--r--macros/latex/required/amscls/amsbooka.dtx590
1 files changed, 590 insertions, 0 deletions
diff --git a/macros/latex/required/amscls/amsbooka.dtx b/macros/latex/required/amscls/amsbooka.dtx
new file mode 100644
index 0000000000..4ff8e24ae7
--- /dev/null
+++ b/macros/latex/required/amscls/amsbooka.dtx
@@ -0,0 +1,590 @@
+% \def\filename{amsbooka.dtx}
+% \def\fileversion{2.08}
+% \def\filedate{2014/07/11}
+%
+% \iffalse meta-comment
+%
+% American Mathematical Society
+% Technical Support
+% Publications Technical Group
+% 201 Charles Street
+% Providence, RI 02904
+% USA
+% tel: (401) 455-4080
+% (800) 321-4267 (USA and Canada only)
+% fax: (401) 331-3842
+% email: tech-support@ams.org
+%
+% Copyright 1995, 2008, 2014 American Mathematical Society.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is the American Mathematical
+% Society.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{amsdtx}
+
+\CodelineIndex
+
+\begin{document}
+\title{The \pkg{amsbooka} package}
+\author{American Mathematical Society\\Barbara Beeton}
+\date{Version \fileversion, \filedate}
+\DocInput{amsbooka.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \maketitle
+%
+% \MakeShortVerb\|
+%
+% \section{Introduction}
+%
+% This package is an add-on to the \amslatex/ document classes for
+% monographs. It provides the facility to include an author's name
+% with a part or chapter title of a monograph, and automatically pass
+% the author information on to the table of contents for presentation
+% in a style compatible with the regular (series-specific) TOC style.
+% It also provides facilities to add elements often associated with
+% separately authored chapters, including a copyright notice,
+% uunumbered footnotes, and a section-level bibliography.
+%
+% This package may become part of the \amslatex/ collection of
+% document classes and related packages.
+%
+% \StopEventually{}
+%
+% Standard file identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1995/06/01]% LaTeX date must be June 1995 or later
+\ProvidesPackage{amsbooka}[2014/07/11 v2.08 monograph part/chapter authors]
+% \end{macrocode}
+%
+% \section{User instructions}
+%
+% \textbf{Getting started:} The front matter of the book must include
+% (at least) a \cn{title} and \cn{\maketitle}. If these are absent,
+% an unintelligible error message will result. This is caused by
+% the redefinition of the \cn{author} command, which is ordinarily
+% expected to occur only in the book's front matter.
+%
+% \subsection{Chapter and part headings}
+%
+% A part or chapter with no associated author is input in the usual
+% way:\\[2pt]
+% \verb|\part{|\<full title>\verb|}|\\
+% \verb|\chapter[|\<short title>\verb|]{|\<full title>\verb|}|\\[2pt]
+% The part or chapter title will be set in the regular style for
+% the series.
+%
+% If an author is to be associated with a chapter, then the short
+% title \emph{must} be provided, and the author is included within
+% the full title, thus:\\[2pt]
+% \verb|\chapter[|\<short title>\verb|]{|\<full title>%
+% \verb| \author{|\<author name>\verb|}}|
+%
+% \vspace{2pt}
+%
+% This works for both \verb|\chapter| and \verb|\chapter*|.
+% Similarly, a part title with an associated author must include
+% the author as follows:\\[2pt]
+% \verb|\part{|\<full title>\verb| \author{|\<author name>\verb|}}|\\[2pt]
+% No short title is required for a part title with author.
+%
+% The author name will be set following the title and also included
+% in the table of contents, both in the appropriate style for the
+% series.
+%
+% When an author is specified for a chapter, the left-hand running
+% head will be the author name; the right-hand running head will
+% be the chapter title, taken from the short title. For a chapter
+% with no specified author, the running heads will be the same as
+% for an ``ordinary'' monograph: chapter title on the left and
+% section heading on the right, except that, if the chapter has
+% no sections, the chapter title will also appear on the right.
+%
+% By default, ``authored'' chapters will be numbered, but chapter
+% numbers will be omitted from the running heads. (Most volumes
+% encountered so far in this style are essentially collections.)
+% Chapter numbers can be restored to the running heads by using the
+% documentclass option \opt{[rhchapnum]}. In the present version
+% of \pkg{amsbooka} this is an all-or-nothing proposition, but
+% this decision may be reconsidered if an example emerges in which
+% there is justification for including chapter numbers in some
+% running heads but not in others.
+%
+% Similarly, the ``standard'' monograph running heads (chapter on
+% the left, section on the right) can be forced for all authored
+% chapters by specifying the documentclass option \opt{[rhchapsec]}.
+% With this option, chapter numbers will not be suppressed. Again,
+% this is an all-or-nothing choice.
+%
+% \subsection{Elements at the bottom of the first page}
+%
+% If information such as a previous publication or an alternate
+% source is noted, this should appear on the first page of the
+% chapter as an unnumbered footnote. Enter this immediately
+% after the \verb|\chapter| title, using this command:\\[2pt]
+% \verb|\barefootnote{|\<footnote text>\verb|}|
+%
+% \vspace{2pt}
+%
+% If a separate copyright notice is required for a chapter,
+% enter it as follows:\\[2pt]
+% \verb|\copyrightinfo{|\<year>\verb|}{|\<copyright holder>\verb|}|\\[2pt]
+% If this command is not input for a chapter, no notice will appear.
+%
+% \subsection{Bibliography within a chapter}
+%
+% The bibliography of a monograph usually appears as a separate chapter.
+% However, for collections addressed by the present package, each
+% individual chapter may have its own reference list, which should
+% be treated as a section.
+%
+% If the chapter bibliography has been prepared for \pkg{amsrefs},
+% specify \env{bibsection} to obtain the proper format. (See the
+% \pkg{amsrefs} documentation for details.)
+%
+% If the chapter bibliography has been prepared using \BibTeX,
+% substitute\\[2pt]
+% \verb|\begin{inchapterbibliography}|\\
+% \verb|...|\\
+% \verb|\end{inchapterbibliography}|\\[2pt]
+% for the usual \env{thebibliography} environment. The actual contents
+% of the bibliography should be included within the chapter file,
+% not read in from a separate \fn{.bbl} file. If the heading of
+% this section needs to be changed,\\[2pt]
+% \verb|\renewcommand{\bibname}{...}|
+%
+%
+% \section{Implementation}
+%
+% This package is meant for use with all AMS monograph series.
+% Two series, GSM and STML, have special requirements, so provide
+% matching strings that can be used to identify them. Other series
+% may be added to this list, so also provide a switch that can be
+% used to identify them collectively.
+% \begin{macrocode}
+\def\@gsm{gsm-l}
+\def\@stml{stml-l}
+\newif\if@ruledchapterhead
+\@ruledchapterheadfalse
+\ifx\@classname\@gsm \@ruledchapterheadtrue
+ \else\ifx\@classname\@stml \@ruledchapterheadtrue
+ \fi
+\fi
+% \end{macrocode}
+%
+% Some ramifications with running heads are best addressed with
+% defaults that can be overridden by options.
+%
+% First option: force ``standard'' (chapter/section) running heads.
+% \begin{macrocode}
+\newif\if@rhchapnum
+\@rhchapnumfalse
+\DeclareOption{rhchapnum}{\@rhchapnumtrue}
+% \end{macrocode}
+%
+% Next option: force ``standard'' (chapter/section) running heads.
+% This also turns on chapter numbers in the running heads.
+% \begin{macrocode}
+\newif\if@rhchapsec
+\@rhchapsecfalse
+\DeclareOption{rhchapsec}{\@rhchapsectrue \@rhchapnumtrue}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \subsection{Chapter headings}
+%
+% \begin{macro}{@schaptera}
+% \begin{macro}{@schapterb}
+% In order to associate an author name with an unnumbered chapter,
+% we need to redefine \cs{@schapter} to accept a bracketed optional
+% version for the running head. The original version, without
+% optional text, is still required for the bibliography and index
+% as well as for other unauthored chapters. Use the original
+% \cs{@schapter} for this by giving it another name, and check
+% again for the presence of a bracketed option.
+% \begin{macrocode}
+\let\@schapterb\@schapter
+\def\@schapter{\secdef\@schaptera\@schapterb}
+\def\@schaptera[#1]#2{\typeout{#1}%
+ \let\@secnumber\@empty
+ \def\@toclevel{0}%
+ \ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#2}%
+ \else \@tocwriteb\tocchapter{chapter}{#2}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \@makeschapterhead{#2}\@afterheading
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{@makechapterhead}
+% \begin{macro}{@makeschapterhead}
+% Redefine the commands \cs{@makechapterhead} and \cs{@makeschapterhead}
+% from the regular monograph document classes, handling special cases
+% as necessary.
+% \begin{macrocode}
+\def\@makechapterhead#1{%
+ \ifx\@classname\@gsm \@makegsmchapterhead{#1}%
+ \else \ifx\@classname\@stml \@makestmlchapterhead{#1}%
+ \else \@makeplainchapterhead{#1}%
+ \fi \fi
+}
+\newif\if@schapter \@schapterfalse
+\def\@makeschapterhead#1{%
+ \@schaptertrue
+ \ifx\@classname\@gsm \@makegsmchapterhead{#1}%
+ \else \ifx\@classname\@stml \@makestmlchapterhead{#1}%
+ \else \@makeplainschapterhead{#1}%
+ \fi \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{@makeplainchapterhead}
+% \begin{macro}{@makeschapterhead}
+% The ``plain'' chapter head style is used for nearly all AMS
+% monograph series. The title is set in the usual style, with
+% the author name centered below in small caps.\\
+% The author name is set up to be the left-hand running head,
+% as it would be for a journal or proceedings article. This
+% will be effected only for chapters with an \cn{author}.
+% It can also be suppressed with the \opt{[rhchapsec]} option.\\
+% If a copyright notice is included, suppress it for the next
+% chapter.
+% \begin{macrocode}
+\def\@makeplainchapterhead#1{%
+ \global\topskip 7.5pc\relax
+ \@setcopyright
+ \let\copyrightyear\@empty
+ \begingroup
+ \def\title{}%
+ \def\author##1{%
+ \if@rhchapsec
+ \else \markleft{\MakeUppercase{##1}}%
+ \fi
+ \vskip1pc\fontsize{\@xiipt}{14}\mdseries\textsc{##1}}%
+ \fontsize{\@xivpt}{18}\bfseries\centering
+ \ifnum\c@secnumdepth>\m@ne
+ \leavevmode \hskip-\leftskip
+ \rlap{\vbox to\z@{\vss
+ \centerline{\normalsize\mdseries
+ \MakeUppercase{\chaptername}\enspace\thechapter}
+ \vskip 3pc}}\hskip\leftskip
+ \fi
+ #1\par \endgroup
+ \skip@34\p@ \advance\skip@-\normalbaselineskip
+ \vskip\skip@
+}
+\def\@makeschapterhead#1{%
+ \global\topskip 7.5pc\relax
+ \@setcopyright
+ \let\copyrightyear\@empty
+ \begingroup
+ \def\title{}%
+ \def\author##1{%
+ \if@rhchapsec
+ \else \markleft{\MakeUppercase{##1}}%
+ \fi
+ \vskip1pc\fontsize{\@xiipt}{14}\mdseries\textsc{##1}}%
+ \fontsize{\@xivpt}{18}\bfseries\centering
+ #1\par \endgroup
+ \skip@34\p@ \advance\skip@-\normalbaselineskip
+ \vskip\skip@
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{@makeruledchapterhead}
+% \begin{macro}{@makeruledschapterhead}
+% GSM and STML require a rule at the top of the page and a smaller
+% rule above the page number at the bottom. Other specs are
+% publication-specific.
+% \begin{macrocode}
+\def\@makeruledchapterhead#1{%
+ \global\topskip\normaltopskip
+ \begingroup
+ \def\author##1{%
+ \if@rhchapsec
+ \else \markleft{##1}%
+ \fi
+ \\ \hfil \\ \@chapauthorstyle ##1}%
+ \vbox to\topskip{%
+ \chapter@number
+ \vss
+ }\penalty\@M
+ \@chapheadstyle \raggedright
+ \noindent #1\par \endgroup
+ \if@index
+ \@indexstyle
+ \else
+ \@dropfolio
+ \@noindexstyle
+ \fi
+ \@afterheading
+}
+\def\@makeruledschapterhead#1{%
+ \global\topskip\normaltopskip
+ \begingroup
+ \def\author##1{%
+ \if@rhchapsec
+ \else \markleft{##1}%
+ \fi
+ \\ \hfil \\ \@chapauthorstyle ##1}%
+ \@chapheadstyle \raggedright
+ \noindent #1\par \endgroup
+ \if@index
+ \@indexstyle
+ \else
+ \@dropfolio
+ \@noindexstyle
+ \fi
+ \@afterheading
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{@makegsmchapterhead}
+% The style for GSM requires a rule at the top of the page, with
+% the chapter title flush left, bold, and the author information
+% below the title also flush left and bold but in a smaller size.
+% \begin{macrocode}
+\def\@makegsmchapterhead#1{%
+ \def\@chapheadstyle{\Huge\bfseries \hsize24pc
+ \top@space{11pc}}%
+ \def\@chapauthorstyle{\LARGE\bfseries}%
+ \def\@indexstyle{%
+ \ifx\@empty\indexintro
+ \bb@space{7.5pc}%
+ \else
+ \vspace{3pc}%
+ \begingroup \small
+ \parbox[t]{27pc}{\leftskip3pc\normalfont\indexintro\par}%
+ \endgroup
+ \bb@space{3pc}%
+ \fi
+ }%
+ \def\@noindexstyle{\bb@space{7.5pc}}%
+ \if@schapter
+ \@makeruledschapterhead{#1}%
+ \else
+ \@makeruledchapterhead{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@makestmlchapterhead}
+% The style for STML is similar to that for GSM, except for the
+% smaller page size and the author information set in lightface
+% in the LARGE size.
+% \begin{macrocode}
+\def\@makestmlchapterhead#1{%
+ \def\@chapheadstyle{\fontsize\@xxpt{22}\selectfont\bfseries\hsize 21pc
+ \top@par@space{9pc}}%
+ \def\@chapauthorstyle{\LARGE\mdseries}%
+ \def\@indexstyle{%
+ \ifx\@empty\indexintro
+ \bb@par@space{6.5pc}%
+ \else
+ \vspace{2.5pc}%
+ \begingroup \small
+ \parbox[t]{22.5pc}{\leftskip2.5pc\normalfont\indexintro\par}%
+ \endgroup
+ \bb@par@space{2.5pc}%
+ \fi
+ }%
+ \def\@noindexstyle{\bb@par@space{6.5pc}}%
+ \if@schapter
+ \@makeruledschapterhead{#1}%
+ \else
+ \@makeruledchapterhead{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Running heads}
+%
+% \begin{macro}{chapterrunhead}
+% Unless overridden by the \opt{[]} option, omit chapter numbers
+% from the right-hand running head with chapter title. (Explicit
+% line breaks with \verb|\\| are converted to spaces.)
+% \begin{macrocode}
+\if@rhchapnum
+\else
+ \def\chapterrunhead#1#2#3{%
+ \def\@tempa{#3}%
+ \begingroup \def\\{ \ignorespaces}%
+ \uppercasenonmath\@tempa\@tempa
+ \endgroup
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Part headings}
+%
+% \begin{macro}{@plainpart}
+% The ``plain'' part head style is used for nearly all AMS
+% monograph series. The title is set in the usual style, with
+% the author name centered below in italic.
+% \begin{macrocode}
+\def\partauthor{%
+ \def\author##1{\newline\phantom{Part 1.\enspace}{\mdseries\scshape##1}}}
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\partname\ \thepart.%
+ \protect\partauthor\protect\enspace\protect\noindent#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}\fi
+ \begingroup
+ \def\author##1{\\ \hfil \\ \fontsize{\@xivpt}{20}\mdseries\itshape ##1}%
+ \centering
+ \ifnum \c@secnumdepth >-2\relax
+ {\fontsize{\@xviipt}{22}\bfseries
+ \partname\ \thepart} \vskip 20\p@ \fi
+ \fontsize{\@xxpt}{25}\bfseries
+ #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}
+\def\@spart#1{\addcontentsline{toc}{part}%
+ {\protect\partauthor\protect\noindent#1}%
+ \begingroup
+ \def\author##1{\\ \hfil \\ \fontsize{\@xivpt}{20}\mdseries\itshape ##1}%
+ \centering
+ \fontsize{\@xxpt}{25}\bfseries
+ #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Table of Contents}
+%
+% Allow more space for the page number than provided in \cls{amsbook};
+% that is only 1.6em, and results in unpleasantly long text.
+% \begin{macrocode}
+\setbox\z@\hbox{\kern1.5pc 999}
+\renewcommand{\@pnumwidth}{\wd\z@}
+% \end{macrocode}
+%
+% \begin{macro}{@tocline}
+% Replace the \cs{@tocline} command to include the \cn{author}
+% information. This will be set in small caps on the line following
+% the chapter title, with the same indentation as the title.
+% \begin{macrocode}
+\def\@tocline#1#2#3#4#5#6#7{\relax
+ \ifnum #1>\c@tocdepth % then omit
+ \else
+ \def\author##1{\newline\textsc{##1}}%
+ \par \addpenalty\@secpenalty\addvspace{#2}%
+ \begingroup \hyphenpenalty\@M
+ \@ifempty{#4}{%
+ \@tempdima\csname r@tocindent\number#1\endcsname\relax
+ }{%
+ \@tempdima#4\relax
+ }%
+ \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
+ \rightskip\@pnumwidth plus.2\hsize \parfillskip-\@pnumwidth
+ #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
+ \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
+ \nobreak
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Other features}
+%
+% \subsubsection{Copyright notice}
+% A copyright notice is sometimes wanted on separately authored
+% chapters of a ``composite'' monograph or volume of collected works.
+% Provide the ability to add this feature if required, using the
+% same command, \cn{copyrightinfo}, used for journal and proceedings
+% articles. \cn{copyrightinfo} is present in \cls{amsbook}, so it
+% suffices to set an appropriate default to suppress it unless it
+% is requested explicitly.
+% \begin{macrocode}
+\let\copyrightyear\@empty
+% \end{macrocode}
+%
+% For now, don't allow a copyright notice for GSM or STML or other
+% books with a similar design. The need is unlikely, but the more
+% important reason is that the style needs rethinking if such a
+% notice is to be included.
+% \begin{macrocode}
+\if@ruledchapterhead \def\copyrightinfo#1#2{}\fi
+% \end{macrocode}
+%
+% \begin{macro}{barefootnote}
+% \subsubsection{``Bare'' footnotes}
+% Unnumbered footnotes (such as those that appear on the first page
+% of a journal or proceedings article) are needed to provide information
+% regarding earlier publication and the like.
+% \begin{macrocode}
+\newcommand{\barefootnote}[1]{{%
+ \let\@makefnmark\relax \let\@thefnmark\relax
+ \@footnotetext{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{inchapterbibliography}
+% \subsubsection{Chapter-specific bibliography}
+% Separately authored chapters often have individual bibliographies,
+% which should be presented as sections, not chapters. For now,
+% disable the mark for the section header (copying the code from
+% the initial value in \cls{amsbook}); it should not appear as
+% the right-hand running head if the author/chapter title headers
+% are in effect. Still to be determined is whether the section title
+% ``Bibliography'' should appear in the running head if no author is
+% specified and the ``standard'' running heads are used.
+% \begin{macrocode}
+\newenvironment{inchapterbibliography}[1]{%
+ \let\sectionmark\@gobble
+ \@xp\section\@xp*\@xp{\bibname}%
+ \normalfont\footnotesize\labelsep .5em\relax
+ \renewcommand\theenumiv{\arabic{enumiv}}\let\p@enumiv\@empty
+ \list{\@biblabel{\theenumiv}}{\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth \advance\leftmargin\labelsep
+ \usecounter{enumiv}}%
+ \sloppy \clubpenalty\@M \widowpenalty\clubpenalty
+ \sfcode`\.=\@m
+}{%
+ \def\@noitemerr{\@latex@warning{Empty `inchapterbibliography' environment}}%
+ \endlist
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Boilerplate}
+%
+% The usual \cs{endinput} to ensure that random garbage at the end of
+% the file doesn't get copied by \fn{docstrip}.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \CheckSum{566}
+% \Finale