summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/quotchap/quotchap.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/quotchap/quotchap.dtx')
-rw-r--r--macros/latex/contrib/quotchap/quotchap.dtx455
1 files changed, 455 insertions, 0 deletions
diff --git a/macros/latex/contrib/quotchap/quotchap.dtx b/macros/latex/contrib/quotchap/quotchap.dtx
new file mode 100644
index 0000000000..38cb2017dd
--- /dev/null
+++ b/macros/latex/contrib/quotchap/quotchap.dtx
@@ -0,0 +1,455 @@
+% \iffalse meta-comment
+%
+% This file is part of the QUOTCHAP package, a package for creating
+% decorative chapter headings with quotations, a postscript output
+% device is needed.
+% Copyright (C) 1998 - 2010 Karsten Tinnefeld.
+% Copyright (C) 2011 - 2019 Jan Klever.
+%
+% This file is NOT part of the LaTeX2e system, but intended for use with it.
+%
+% This document is free software; you can redistribute it and/or modify it
+% under the terms of the GNU Library General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% This document is distributed in the hope that it will be useful, but WITHOUT
+% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+% more details.
+%
+% You should have received a copy of the GNU General Public License somehow;
+% if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+% Cambridge, MA 02139, USA.
+%
+% INSTALLATION:
+%%%%%%%%%%%%%%%
+%
+% Install this style by running the file `quotchap.ins' through' TeX. This will
+% create the file `quotchap.sty' and, if your docstrip.cfg is set up the right
+% way (has a \BaseDirectory{<path to my texmf directory>}, see the
+% docstrip-documentation), automatically moved to \$TEXMF/tex/latex/misc.
+%
+% The documentation is created by running `latex quotchap.dtx`. This
+% does not need the file quotchap.sty nor postscript fonts, but Frank
+% Mittelbach's multicol package should exist.
+%
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]
+%<*dtx>
+\ProvidesFile{quotchap.dtx}
+%</dtx>
+%<!driver>\ProvidesPackage{quotchap}
+%<driver>\ProvidesFile{quotchap.drv}
+% \fi
+% \ProvidesFile{quotchap.dtx}
+ [2019/07/09 v1.2 Decorative Chapter Headings with Quotes]
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{multicol}
+\GetFileInfo{quotchap.dtx}
+\newcommand*{\docdate}{2019/07/09}
+\RecordChanges
+\begin{document}
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{209}
+%
+% \DoNotIndex{\@M,\@afterindentfalse,%
+% \@topnum,\advance,\AtEndOfPackage,\baselineskip,\begin,\bigskip,%
+% \c@secnumdepth,%
+% \cleardoublepage,\clearpage,\color,\copy,\CurrentOption,\DeclareOption,%
+% \def,%
+% \definecolor,\edef,\else,\end,\fi,\fontsize,\footnotesize,%
+% \global,\hbox,\huge,\@ifundefined,\if@mainmatter,\if@openright,%
+% \IfFileExists,\ifnum,\ignorespacesafterend,%
+% \ignorespaces,\interlinepenalty,\leftmargin,\let,\m@ne,%
+% \MessageBreak,\newcommand,\newenvironment,\newif,\newsavebox,%
+% \nobreak,\PackageError,\PackageWarning,\par,\ProcessOptions,%
+% \providecommand,\qquad,%
+% \raggedleft,\relax,\renewcommand,\RequirePackage,\secdef,\selectfont,%
+% \setbox,\slshape,\smallskip,\thechapter,\thispagestyle,\unskip,%
+% \upshape,\usefont,\vbox,\vspace,\vss,\verb,\z@}
+%
+% \date{printed \today}
+% \title{The \texttt{quotchap} package\thanks{%
+% This file has version number \fileversion,
+% last revised on \filedate, documentation dated \docdate.}}
+% \author{Karsten Tinnefeld\thanks{%
+% Thanks to Stefan Mintert for the chapter number layout
+% idea basing on his \protect\textsf{iNA}\protect\texttt{book}
+% class.}\and Jan Klever\\\texttt{jasa.klever@gmx.de}}
+% \maketitle
+%
+% \begin{abstract}
+% This document describes the \texttt{quotchap} package. This package
+% redefines the |\chapter| and |\chapter*| commands to
+% create fancy chapter head pages with huge chapter numbers
+% (possibly greyed) and provides commands for adding quotations in the
+% upper left corner of these pages. It was written by Karsten Tinnefeld,
+% who abandoned to work on it. This package is now maintained by Jan Klever.
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% \texttt{quotchap} is designed to do visual formatting and build some fancy
+% and attractive chapter headings for documents. It buries the original
+% |\chapter|[|*|]-commands to provide a new style: Chapter number and title
+% are set flush right, on separate lines, and much huger as normal: The title
+% is to be |\Huge|, the number is set in $100$pt size, and possibly in $60\%$
+% grey (not to blacken the page more than necessary). This means, of course,
+% that some scalable font had to be chosen. We offer package options for all the
+% postscript fonts in the \textsc{psnfss} package and some other common fonts,
+% defaulting to Adobe's Bookman for matters of personal taste. You can choose
+% any font for the chapter number by using the command |\qsetcnfont|.
+%
+% \section{Quotations}
+%
+% This package provides the feature to include some quotations right before
+% the beginning of the chapter. An environment is given to save quotes to be
+% used at the beginning of the next chapter, and an additional command gives
+% an easy way to provide author information to the quotes.
+%
+% \DescribeEnv{savequote}
+% The |savequote| environment should appear at the top level, not in
+% the document's preamble (i.e., after |\begin{document}|) and before
+% the start of the chapter you want to decorate. It has one optional
+% argument that provides the width
+% of the quotation paragraph. The default is $10$cm (approx.
+% $3.94$in). Possibly you may want to set your quote in ``quotation
+% marks'', as these marks differ from country to country, it is left
+% to you.
+%
+% \DescribeMacro{qauthor}
+% Each quotation can consist of several paragraphs, but must end with
+% a |\qauthor{A. U. Thor}| command. This is not only provided to
+% uphold the principles of ``honour whom honour is due'' but to provide
+% the right author name formatting and inter quotation spacing. The
+% quotes can follow each other immediately.
+%
+% The whole bunch of quotation is deleted after it has been printed
+% once, so you have to rewrite them when you find no way past
+% repeating them. When you give no quotations for some chapter, the
+% upper left area of the corresponding page will be simply void.
+%
+% \DescribeMacro{qsetcnfont}
+% If you want to use a font for the chapter number, that is not
+% available as package optionen, you can set it with
+% |\qsetcnfont{<family>}|. For example: |\qsetcnfont{pzc}|
+% to use Zapf Chancery.
+%
+% \DescribeMacro{quotefont}
+% The font for quotations can be set globally with |\quotefont|. For
+% example: |\renewcommand\quotefont{\sffamily\slshape}|. The default
+% is |\slshape|.
+%
+% \DescribeMacro{qauthorfont}
+% The font for the author of the quote can be set globally with
+% |\qauthorfont|. For example: |\renewcommand\qauthorfont{\scshape}|.
+% The default ist |\upshape|.
+% \section{Examples}
+%
+% Let's take a look at an example:\medskip
+%
+% \begin{multicols}{2}
+% \begin{verbatim}
+%\begin{savequote}[45mm]
+% ---When shall we three meet again
+% in thunder, lightning, or in rain?
+%
+% ---When the hurlyburly's done,
+% when the battle's lost and won.
+% \qauthor{Shakespeare, Macbeth}
+% Cookies! Give me some cookies!
+% \qauthor{Cookie Monster}
+%\end{savequote}
+%
+%\chapter{Classic Sesame Street}
+% \end{verbatim}
+%
+% \vfill
+% \begin{minipage}[t]{45mm}\footnotesize\slshape
+% ---When shall we three meet again
+% in thunder, lightning, or in rain?
+%
+% ---When the hurlyburly's done,
+% when the battle's lost and won.\par\smallskip
+% {\raggedleft\upshape
+% Shakespeare, Macbeth\qquad\hbox{}\par}\bigskip
+% Cookies! Give me some cookies!\par\smallskip
+% {\raggedleft\upshape
+% Cookie Monster\qquad\hbox{}\par}
+% \end{minipage}\bigskip
+%
+% \noindent (chapter start page not demonstrated---try for yourself.)
+% \vfill
+% \end{multicols}
+%
+% \section{Document Options}
+% Printing the chapter number in bold and that big a font uses quite
+% some ink on the paper. Thus it is strongly recommended to
+% use the \textbf{grey} option (which is enabled by default and
+% disabled by specifying \textbf{nogrey}) that improves the quality by
+% printing the number in $60\%$ grey. The \texttt{color} package is used to
+% set the colour |chaptergrey|, redefining this colour may produce even more
+% colourful effects.
+%
+% The \texttt{color} package is |\Require|d without any option, if
+% you want to specify some, include the color package before the
+% quotchap package.
+%
+% The other options are used to select a title font, they are all
+% self-explaining and thus simply listed here:
+% \begin{description}
+% \item[avantgarde] Adobe's Avantgarde
+% \item[beramono] Bera Mono
+% \item[berasans] Bera Sans
+% \item[beraserif] Bera Serif
+% \item[biolinum] Biolinum
+% \item[bookman] Adobe's Bookman (default)
+% \item[charter] Bitstream's Charter BT
+% \item[courier] Adobe's Courier
+% \item[helvetica] Adobe's Helvetica
+% \item[kpfonts] Kp-Fonts
+% \item[libertine] Libertine
+% \item[lmodern] Latin Modern
+% \item[newcentury] Adobe's New Century Schoolbook
+% \item[palatino] Adobe's Palatino
+% \item[times] Adobe's Times
+% \item[utopia] Adobe's Utopia
+% \end{description}
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+% Ok, here comes the code.
+%
+% \subsection{Option parsing}
+% The first part is about parsing the options. We may not
+% |\RequirePackage|s in here and thus define a flag: |@usecolor| is
+% true whenever the \textbf{grey} option is specified.
+%
+% \begin{macrocode}
+\newif\if@usecolor\@usecolortrue
+\DeclareOption{grey}{\@usecolortrue}
+\DeclareOption{nogrey}{\@usecolorfalse}
+% \end{macrocode}
+%
+% For the fonts, there follows a bunch of options that are all meant
+% to be specified exclusively. It would have been possible to use
+% |\newcommand| to ensure this, but it gives cryptic errors. Rather
+% check this first.
+%
+% \begin{macrocode}
+\newcommand*{\@newfontcmd}{\@ifundefined{@defaultcnfont}{\newcommand*}{%
+ \PackageWarning{quotchap}{%
+ You have tried to specify more than one font to be\MessageBreak
+ used for the chapter numbers. I ignore the font\MessageBreak
+ `\CurrentOption'}
+ \providecommand*}}
+% \end{macrocode}
+%
+% Next is defining the font options. We set |\@defaultcnfont|
+% according to Karl Berry's font name scheme. Providing more than one
+% font gives an error (due to defining an already defined command);
+% the options exclude each other.
+%
+% \begin{macrocode}
+\DeclareOption{avantgarde}{\@newfontcmd{\@defaultcnfont}{pag}}
+\DeclareOption{beramono}{\@newfontcmd{\@defaultcnfont}{fvm}}
+\DeclareOption{berasans}{\@newfontcmd{\@defaultcnfont}{fvs}}
+\DeclareOption{beraserif}{\@newfontcmd{\@defaultcnfont}{fve}}
+\DeclareOption{biolinum}{\@newfontcmd{\@defaultcnfont}{LinuxBiolinumO-LF}}
+\DeclareOption{bookman}{\@newfontcmd{\@defaultcnfont}{pbk}}
+\DeclareOption{charter}{\@newfontcmd{\@defaultcnfont}{bch}}
+\DeclareOption{courier}{\@newfontcmd{\@defaultcnfont}{pcr}}
+\DeclareOption{helvetica}{\@newfontcmd{\@defaultcnfont}{phv}}
+\DeclareOption{kpfonts}{\@newfontcmd{\@defaultcnfont}{jkp}}
+\DeclareOption{libertine}{\@newfontcmd{\@defaultcnfont}{LinuxLibertineO-LF}}
+\DeclareOption{lmodern}{\@newfontcmd{\@defaultcnfont}{lmr}}
+\DeclareOption{newcentury}{\@newfontcmd{\@defaultcnfont}{pnc}}
+\DeclareOption{palatino}{\@newfontcmd{\@defaultcnfont}{ppl}}
+\DeclareOption{times}{\@newfontcmd{\@defaultcnfont}{ptm}}
+\DeclareOption{utopia}{\@newfontcmd{\@defaultcnfont}{put}}
+% \end{macrocode}
+%
+% We can now let the options be processed. If no postscript font has
+% been specified, the default is Adobe's Bookman.
+%
+% \begin{macrocode}
+\ProcessOptions\relax
+\providecommand*{\@defaultcnfont}{pbk}
+% \end{macrocode}
+%
+% If nobody said \textbf{nogrey}, we fetch the |color| package and
+% define our colour. If the color package is not included until now,
+% we define |\color| to do nothing but gobble up its argument.
+% An error is issued when \textbf{grey} is turned on and the color
+% package is nonexistent. When you read the documentation because of
+% this: \texttt{color.sty} is included in the graphics bundle to be
+% found at \textsc{ctan}.
+%
+% \begin{macrocode}
+\if@usecolor
+ \IfFileExists{color.sty}{%
+ \RequirePackage{color}
+ \definecolor{chaptergrey}{rgb}{0.6,0.6,0.6}}{%
+ \PackageError{quotchap}{%
+ The color package is apparently unavailable.\MessageBreak
+ Turn off the `grey' option and come back again}{%
+ Since you did not say `nogrey', quotchap defined chapter
+ numbers to appear\MessageBreak grey. You do not need a color
+ printer, since most printing devices can cope\MessageBreak with
+ grey scales, but you need the color package coming with the
+ graphics\MessageBreak bundle available from CTAN.}}
+\else
+ \providecommand*{\color}[1]{}
+\fi
+% \end{macrocode}
+%
+% Now we are ready to give the final font declarations. The
+% commands |\sectfont| and
+% |\chapterhead|\{|start|\textbar|end|\}|vskip| are defined in the
+% \textsf{KOMA-Script} classes the chapter is based on,
+% they are provided in case |quotchap| is used with other, e.g.
+% the default classes. If we are building a report, there is no
+% |\frontmatter|, |\mainmatter| and |\backmatter| resp. everything is
+% |\mainmatter|, thus we have to provide the corresponding switch
+% used in the |\chapter| command.
+%
+% \begin{macrocode}
+\AtEndOfPackage{%
+ \newcommand*{\chapnumfont}{%
+ \usefont{T1}{\@defaultcnfont}{b}{n}\fontsize{100}{130}\selectfont%
+ \color{chaptergrey}}
+ \let\size@chapter\huge
+ \providecommand*{\chapterheadstartvskip}{\vspace*{2.3\baselineskip}}
+ \providecommand*{\chapterheadendvskip}{\vspace{1.7\baselineskip}}
+ \providecommand*{\sectfont}{\relax}
+ \providecommand*{\quotefont}{\slshape}
+ \providecommand*{\qauthorfont}{\upshape}
+ \@ifundefined{@mainmattertrue}{\newif\if@mainmatter\@mainmattertrue}{}}
+% \end{macrocode}
+%
+% \subsection{User Level Commands}
+%
+% \begin{macro}{savequote}
+% Here go the top level command declarations (and definitions, too).
+% We use the |lrbox| environment to save the contents of the whole
+% environment in a horizontal box. The quotes are effectively a
+% paragraph box typeset in footnote size and oblique style, to the
+% width given as a parameter, while any spacing at the beginning
+% and the end of the environment is ignored. Since
+% |\newenvironment| implies a group, we have to make the box
+% |\@quotebox| global explicitly.
+%
+% Finally, we enable the box insertion command that is disabled
+% initially and after each chapter heading. (Possibly it is faster
+% to delete the save box contents and insert a nearly-empty vertical
+% box at each chapter---profilers to the front.)
+%
+% \begin{macrocode}
+\newenvironment{savequote}[1][10cm]{%
+ \begin{lrbox}{\@quotebox}
+ \begin{minipage}[t]{#1}\footnotesize\quotefont
+ \ignorespaces}{%
+ \unskip\end{minipage}\end{lrbox}
+ \global\setbox\@quotebox\copy\@quotebox
+ \global\let\@printcites\@iprintcites
+ \ignorespacesafterend}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\qauthor}
+% The |\qauthor| command simply selects some font and
+% skip---lets the name be set in roman letters and flush right at
+% two ems distance from the margin.
+%
+% \begin{macrocode}
+\newcommand{\qauthor}[1]{%
+ \par\smallskip
+ {\raggedleft\qauthorfont #1\qquad\hbox{}\par}\bigskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\qsetcnfont}
+% The user can set any font for the chapter number by providing its family
+% name to this command.
+% \begin{macrocode}
+\newcommand{\qsetcnfont}[1]{%
+ \renewcommand*{\@defaultcnfont}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Making up the chapter heading}
+%
+% Here are the modification to the chapter command definitions of
+% the \textsf{KOMA-Script} document classes. This package was
+% originally designed to
+% co-operate only with them; therefore we have to provide some
+% measurement defined only there. We insert the citations (if available)
+% by calling the insert box or do nothing wrapper.
+%
+% The second modification is the formatting of the heading. If there
+% is a chapter number to be printed, our really huge font is selected
+% and the number is typeset to the right margin, followed by the
+% title, as usual.
+%
+% \begin{macrocode}
+\newsavebox{\@quotebox}
+\let\@printcites\relax
+\renewcommand\chapter{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@printcites
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+\renewcommand{\@makechapterhead}[1]{\chapterheadstartvskip%
+ {\size@chapter{\sectfont\raggedleft
+ {\chapnumfont
+ \ifnum \c@secnumdepth >\m@ne%
+ \if@mainmatter\thechapter%
+ \fi\fi
+ \par\nobreak}%
+ {\raggedleft\advance\leftmargin10em\interlinepenalty\@M #1\par}}
+ \nobreak\chapterheadendvskip}}
+\renewcommand{\@makeschapterhead}[1]{%
+ {\let\c@secnumdepth\m@ne\@makechapterhead{#1}}}
+\newcommand*{\@iprintcites}{%
+ \vbox to\z@{\copy\@quotebox\vss}
+ \global\let\@printcites\relax}
+% \end{macrocode}
+%
+% And this is it. Happy \TeX ing!
+%
+%\Finale
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+%\endinput
+%
+% LocalWords: QUOTCHAP quotchap sty docstrip cfg texmf EXMF tex misc dtx drv
+% LocalWords: multicol iNA tinnefeld irb cs uni dortmund de pt psnfss qauthor
+% LocalWords: savequote nogrey color chaptergrey xdvi BT palatino avantgarde
+% LocalWords: helvetica newcentury usecolor defaultcnfont bch ppl pag pbk pcr
+% LocalWords: phv pnc ptm ctan rgb vskip lrbox co em ing