% \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 - 2020 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{}, 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} % %\ProvidesPackage{quotchap} %\ProvidesFile{quotchap.drv} % \fi % \ProvidesFile{quotchap.dtx} [2020/11/13 v1.3 Decorative Chapter Headings with Quotes] % % \iffalse %<*driver> \documentclass{ltxdoc} \usepackage{multicol} \GetFileInfo{quotchap.dtx} \newcommand*{\docdate}{2020/11/13} \RecordChanges \begin{document} \DocInput{\filename} \end{document} % % \fi % % \CheckSum{210} % % \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{}|. 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{\f@encoding}{\@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