From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/epigraph/README | 78 +++ macros/latex/contrib/epigraph/epigraph.dtx | 821 +++++++++++++++++++++++++++++ macros/latex/contrib/epigraph/epigraph.ins | 73 +++ macros/latex/contrib/epigraph/epigraph.pdf | Bin 0 -> 183661 bytes 4 files changed, 972 insertions(+) create mode 100644 macros/latex/contrib/epigraph/README create mode 100644 macros/latex/contrib/epigraph/epigraph.dtx create mode 100644 macros/latex/contrib/epigraph/epigraph.ins create mode 100644 macros/latex/contrib/epigraph/epigraph.pdf (limited to 'macros/latex/contrib/epigraph') diff --git a/macros/latex/contrib/epigraph/README b/macros/latex/contrib/epigraph/README new file mode 100644 index 0000000000..fa639ba1c2 --- /dev/null +++ b/macros/latex/contrib/epigraph/README @@ -0,0 +1,78 @@ +____________________ +The EPIGRAPH package + + The epigraph package is designed for typesetting epigraphs --- the +pithy quotations often found at the start (or end) of a chapter. Both +single epigraphs and lists of epigraphs are catered for. Various aspects +are easily configurable. + +______________ +Change History + +Version 1.5c (2009/09/02) +- New maintainer (Will Robertson) + +Changes in Version 1.5a (2002/10/22) +- Replaced flushleftright environment by flushepinormal environment + to avoid clash with the ccaption package's \flushleftright + +Changes in Version 1.5 (2000/02/20) +- Generalised \cleartoevenpage command + +Changes in Version 1.4 (2000/01/16) +- Added flushleftright environment + +Changes in Version 1.3 (1999/12/01) +- Added \dropchapter and \undodrop commands + +Changes in Version 1.2 (1999/09/12) +- Added \cleartoevenpage command +- Improved documentation + +Changes in Version 1.1: (1998/11/29) +- Added support for epigraphs above chapter titles. + +----------------------------------------------------------------- + Author: Peter Wilson, Herries Press + Maintainer: Will Robertson (will dot robertson at latex-project dot org) + Copyright 1998--2004 Peter R. Wilson + + 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: + + This work has the LPPL maintenance status "maintained". + The Current Maintainer of this work is Will Robertson. + + This work consists of the files: +README (this file) +epigraph.dtx +epigraph.ins +epigraph.pdf (user manual) + and the derived files: +epigraph.sty + +The distribution consists of the files: +README (this file) +epigraph.dtx +epigraph.ins +epigraph.pdf (user manual) + +----------------------------------------------------------------- + +To install the package: +- run: latex epigraph.ins (which will generate epigraph.sty) +- Move epigraph.sty to a location where LaTeX will find it + (typically in a local texmf tree at tex/latex/***) and refresh the + file database. See the FAQ on CTAN at help/uk-tex-faq or + http://www.tug.ac.uk/faq for more information on this. + +To process the user manual: +- run: latex epigraph.dtx +- run: makeindex -s gind.ist epigraph +- run: latex epigraph.dtx +- Print epigraph.dvi for a hardcopy of the package manual + +2004/04/22 +Peter Wilson diff --git a/macros/latex/contrib/epigraph/epigraph.dtx b/macros/latex/contrib/epigraph/epigraph.dtx new file mode 100644 index 0000000000..baec16b14d --- /dev/null +++ b/macros/latex/contrib/epigraph/epigraph.dtx @@ -0,0 +1,821 @@ +% \iffalse meta-comment +% epigraph.dtx +% Author: Peter Wilson, Herries Press +% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +% Copyright 1998--2004 Peter R. Wilson +% +% 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: +% +% This work has the LPPL maintenance status "maintained". +% The Current Maintainer of this work is Will Robertson. +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\begin{document} + \DocInput{epigraph.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{242} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1998/11/15}{First public release} +% \changes{v1.1}{1998/11/29}{Added epigraphs before chapter headings} +% \changes{v1.2}{1999/09/12}{Added cleartoevenpage and extended documentation} +% \changes{v1.2a}{1999/12/01}{Extended documentation for epigraphs on Part pages} +% \changes{v1.3}{1999/12/01}{Added \cs{dropchapter} and \cs{undodrop} commands} +% \changes{v1.4}{2000/01/16}{Added flushleftright environment} +% \changes{v1.5}{2000/02/20}{Generalised \cs{cleartoevenpage} command} +% \changes{v1.5a}{2002/10/22}{Fixed class with ccaption package} +% \changes{v1.5b}{2004/04/22}{Updated license and contact details} +% \changes{v1.5c}{2009/09/02}{New maintainer (Will Robertson)} +% +% \def\dtxfile{epigraph.dtx} +% \def\fileversion{v1.5} \def\filedate{2000/02/20} +% \def\fileversion{v1.5a} \def\filedate{2002/10/22} +% \def\fileversion{v1.5b} \def\filedate{2004/04/22} +% \def\fileversion{v1.5c} \def\filedate{2009/09/02} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% ^^A fake a rhsepigraph for demo purposes +% \newcommand{\tepi}[2]{\vspace{.5\baselineskip}\begin{flushright}\small +% \begin{minipage}{2.5in} +% \begin{minipage}{2.5in}\begin{flushleft} #1\\ +% \rule[.5ex]{2.5in}{.4pt} +% \end{flushleft}\end{minipage} \\ +% \begin{minipage}{2.5in}\begin{flushright} #2 +% \end{flushright}\end{minipage} +% \end{minipage}\end{flushright}\vspace{.5\baselineskip}} +% +% \title{The \Lpack{epigraph} package\thanks{This +% file (\texttt{\dtxfile}) has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Author: Peter Wilson, Herries Press\\ +% Maintainer: Will Robertson\\ +% \texttt{will dot robertson at latex-project dot org} +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{epigraph} package can be used to typeset a relevant +% quotation or saying as an \emph{epigraph}, usually just after a +% sectional heading. Various handles are provided to tweak the appearance. +% \end{abstract} +% \tableofcontents +% +% \StopEventually{} +% +% +% +% \section{Introduction} +% +% \tepi{My soul, seek not the life of immortals; but enjoy to the full +% the resources that are within your reach} +% {\textit{Pythian Odes \\ Pindar}} +% +% Some authors like to add an interesting quotation at either the start +% or end of a section. The \Lpack{epigraph} package provides commands +% to assist in the typesetting of a single epigraph. Other authors like to +% add many such quotations and the package provides environments to +% cater for these as well. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented source code for the package is in Section~\ref{sec:code}. +% +% \section{The \Lpack{epigraph} package} \label{sec:usc} +% +% \tepi{The whole is more than the sum of the parts.} +% {\textit{Metaphysica \\ Aristotle}} +% +% The \Lpack{epigraph} package provides commands for typesetting +% a single epigraph and environments for typesetting a list of epigraphs. +% Epigraphs can be typeset at either the left, the center or the right of +% the typeblock. A few example eipgraphs are exhibited here, and +% others can be found in an article by +% Christina Thiele~\cite{TTC199}. +% +% \subsection{The \texttt{epigraph} command} +% +% The original inspiration for |\epigraph| was Doug Schenck's +% for the epigraphs in our book~\cite{EBOOK}. That was hard wired for +% the purpose at hand. The version here provides much more flexibility. +% +% +% +% \DescribeMacro{\epigraph} +% The command |\epigraph{|\meta{text}|}{|\meta{source}|}| +% typesets +% an epigraph using \meta{text} as the main text of the epigraph and +% \meta{source} being the original author (or book, article, etc.) +% of the quoted text. By default the epigraph is placed at the right hand +% side of the textblock, and the \meta{source} is typeset at the bottom +% right of the \meta{text}. +% +% +% \subsection{The \texttt{epigraphs} environment} +% +% \DescribeEnv{epigraphs} +% The |epigraphs| environment typesets a list of epigraphs, and by default +% places them at the right hand side of the textblock. +% +% \DescribeMacro{\qitem} +% Each epigraph in the list is specified by a +% |\qitem{|\meta{text}|}{|\meta{source}|}| command (analagous to the |\item| +% command in ordinary list environments). +% By default, the \meta{source} is typeset at the bottom right of the +% \meta{text}. +% +% +% +% \subsection{General} +% +% \tepi{Example is the school of mankind, and they will learn at no other.} +% {\textit{Letters on a Regicide Peace}\\ \textsc{Edmund Burke}} +% +% The commands described in this section apply to both the |\epigraph| +% command and the |epigraphs| environment. But first of all, note that an +% epigraph immediately after a heading will cause the first paragraph +% of the following text to be indented. If you want the initial paragraph +% to have no indentation, then start it with the |\noindent| command. +% +% \DescribeMacro{\epigraphwidth} +% \DescribeMacro{\textflush} +% The epigraphs are typeset in a minipage of width |\epigraphwidth|. The default +% value for this can be changed using the |\setlength| command. Typically, +% epigraphs are typset in a measure much less than the width of the textblock. +% In order to avoid bad line breaks, the \meta{text} is normally typeset +% raggedright. +% The |\textflush| command controls the \meta{text} typesetting style, +% and it can be redefined from its default value of +% \texttt{flushleft} (which produces raggedright). The sensible values +% are \texttt{center} for centered text, \texttt{flushright} for raggedleft +% text, and \texttt{flushepinormal} for normal justified text. +% +% If by any chance you want the \meta{text} to be typeset in some +% other layout style, the easiest +% way to do this is by defining a new environment which sets the paragraphing +% parameters to your desired values. For example, as the \meta{text} is +% typeset in a minipage, there is no paragraph indentation. If you +% want the paragraphs to be indented and justified then define +% a new environment like:\\ +% |\newenvironment{myparastyle}{\setlength{\parindent}{1em}}{}| \\ +% and use it as: \\ +% |\renewcommand{\textflush}{myparastyle}|. +% +% \DescribeMacro{\epigraphflush} +% As noted, the default position of epigraphs is at the right hand side +% of the textblock. The positioning is controlled by |\epigraphflush| +% whose default value is \texttt{flushright}. This can be changed +% to \texttt{flushleft} for positioning at the left hand side or to +% \texttt{center} for positioning at the center of the textblock. +% +% \DescribeMacro{\sourceflush} +% The |\sourceflush| command controls the position of the \meta{source}. +% The default value is \texttt{flushright}. It can be changed to +% \texttt{flushleft}, \texttt{center} or \texttt{flushepinormal}. +% +% For example, to have epigraphs centered with the \meta{source} at the left, +% add the following to your +% document (after loading the \Lpack{epigraph} package): +% \begin{verbatim} +% \renewcommand{\epigraphflush}{center} +% \renewcommand{\sourceflush}{flushleft} +% \end{verbatim} +% +% \DescribeMacro{\epigraphsize} +% Epigraphs are often typeset in a smaller font than the main text. The +% |\epigraphsize| command sets the font size to be used. +% If you don't like the default value, change it by redefining the command, +% for example: \\ +% | \renewcommand{\epigraphsize}{\footnotesize}| +% +% \DescribeMacro{\epigraphrule} +% By default, a rule is drawn between the \meta{text} and \meta{source}, +% with the rule thickness being given by the value of |\epigraphrule|. +% The value can be changed by using the \LaTeX{} |\setlength| command. +% A value of \texttt{0pt} will eliminate the rule. Personally, I dislike +% the rule in the list environments. +% +% \DescribeMacro{\beforeepigraphskip} +% \DescribeMacro{\afterepigraphskip} +% The two |...skip| commands specify the amount of vertical space inserted +% before and after typeset epigraphs. Again, these can be changed by +% |\setlength|. It is desireable that the sum of their values should be an +% integer multiple of the |\baselineskip|. +% +% Note that you can use normal \LaTeX{} commands in the \meta{text} and +% \meta{source} arguments. You may wish to use different fonts for the +% \meta{text} (say roman) and the \meta{source} (say italic). +% +% The epigraph at the start of this section can be specified as: +% \begin{verbatim} +% \epigraph{Example is the school of mankind, +% and they will learn at no other.}% +% {\textit{Letters on a Regicide Peace}\\ \textsc{Edmund Burke}} +% \end{verbatim} +% +% \subsection{Epigraphs before chapter headings} +% +% The |\epigraph| command and the |epigraphs| environment typeset +% an epigraph at the point in the text where they are placed. The +% first thing that a |\chapter| command does is to start off a new page, +% so another mechanism is provided for placing an epigraph just before +% a chapter heading. +% +% \DescribeMacro{\epigraphhead} +% The |\epigraphhead[|\meta{distance}|]{|\meta{text}|}| stores \meta{text} +% for printing at \meta{distance} below the header on a page. +% \meta{text} can be ordinary text or, more likely, can be either an +% |\epigraph| command or an |epigraphs| environment. By default, the +% epigraph will be typeset at the righthand margin. +% If the command is immediately preceeded by a |\chapter| or |\chapter*| +% command, the epigraph is typeset on the chapter title page. +% +% The default value for the optional \meta{distance} argument is set so +% that an |\epigraph| consisting of a single line of quotation and a single +% line denoting the source is aligned with the bottom of the `Chapter X' +% line produced by the |\chapter| command. In other cases you will +% have to experiment with the \meta{distance} value. The value for +% \meta{distance} can be either a integer or a real number. The units +% are in terms of the current value for |\unitlength|. A typical value +% for \meta{distance} for a single line quotation and source for +% a |\chapter*| might be about 70 (points). A positive value +% of \meta{distance} places the epigraph below the page heading and a negative +% value will raise it above the page heading. +% +% Here's some example code: +% \begin{verbatim} +% \chapter*{Celestial navigation} +% \epigraphhead[70]{\epigraph{Star crossed lovers.}{\textit{The Bard}}} +% \end{verbatim} +% +% The |\epigraphhead| command changes the page style for the page on +% which it is specified, so there should be no text between the +% |\chapter| and the |\epigraphhead| commands. +% +% The \meta{text} argument is put into a minipage of width |\epigraphwidth|. +% If you use something other than |\epigraph| or |epigraphs| for the +% \meta{text} argument, you may have to so some positioning of the text +% yourself so that it is properly located in the minipage. For example +% \begin{verbatim} +% \chapter{Short} +% \renewcommand{\epigraphflush}{center} +% \epigraphhead{\centerline{Short quote}} +% \end{verbatim} +% +% \changes{v1.3}{1999/12/01}{Added description of dropchapter and undodrop} +% \DescribeMacro{\dropchapter} +% \DescribeMacro{\undodrop} +% If a long epigraph is placed before a chapter title it is possible that the +% bottom of the epigraph may interfere with the chapter title. The command +% |\dropchapter{|\meta{length}|}| will lower any subsequent chapter titles by +% \meta{length}; a negative \meta{length} will raise the titles. +% The command |\undodrop| restores subsequent chapter titles to their default +% positions. For example: +% \begin{verbatim} +% \dropchapter{2in} +% \chapter{Title} +% \epigraphhead{long epigraph} +% \undodrop +% \end{verbatim} +% +% \changes{v1.2}{1999/09/12}{Added description of cleartoevenpage uses} +% \DescribeMacro{\cleartoevenpage} +% On occasions it may be desirable to put something (e.g., an epigraph, a map, +% a picture) on the page facing the start +% of a chapter, where the something belongs to the chapter that is about to +% start rather than the chapter that has just ended. In order to do this +% in a document that is going to be printed +% doublesided, the chapter must start on an odd numbered page and the +% pre-chapter material put on the immediately preceeding even numbered page. +% The |\cleartoevenpage| command is like the |\cleardoublepage| except +% that the page following the command will be an even numbered page, and the +% command takes an optional argument, i.e., |\cleartoevenpage{|[arg|]|, +% which is applied to the skipped page (if any). +% +% Here is an example: +% \begin{verbatim} +% ... end previous chapter. +% \cleartoevenpage +% \begin{center} +% \begin{picture}... \end{picture} +% \end{center} +% \chapter{Next chapter} +% \end{verbatim} +% If the style is such that chapter headings are put at the top of the pages, +% then it would be advisable to include |\thispagestyle{empty}| (or |plain|) +% immediately after |\cleartoevenpage| to avoid a heading related to the +% previous chapter from appearing on the page. +% +% If the something is like a figure with a numbered caption and the numbering +% depends on the chapter numbering, then the numbers have to be hand set (unless +% you define a special chapter command for the purpose). For example: +% \begin{verbatim} +% ... end previous chapter. +% \cleartoevenpage[\thispagestyle{empty}] % skipped page, if any, to be empty +% \thispagestyle{plain} +% \addtocounter{chapter}{1} % increment the chapter number +% \setcounter{figure}{0} % initialise figure counter +% \begin{figure} +% ... +% \caption{Pre chapter figure} +% \end{figure} +% +% \addtocounter{chapter}{-1} % decrement the chapter number +% \chapter{Next chapter} % increments chapter number, initialises figure number +% \addtocounter{figure}{1} % to account for pre-chapter figure +% \end{verbatim} +% +% +% \subsection{Epigraphs on Part pages} +% +% The \Lpack{epigraph} package as it stands cannot put an epigraph on the +% same page as a |\part| or |\part*| title page in +% a \Lpack{book} or \Lpack{report} class. This is because the |\part| command +% internally does some page flipping before and after the title page. +% However, it is easy enough to put epigraphs on part pages. +% +% \begin{itemize} +% \item Create a file called, say, \file{epipart.sty} which looks like this: +% \begin{verbatim} +% % epipart.sty +% \let\@epipart\@endpart +% \renewcommand{\@endpart}{\thispagestyle{epigraph}\@epipart} +% \endinput +% \end{verbatim} +% +% \item Start your document like: +% \begin{verbatim} +% \documentclass[...]{...} +% \usepackage{epigraph} +% \usepackage{epipart} +% \end{verbatim} +% +% \item Immediately \emph{before} each |\part| command put an +% |\epigraphhead| command. For example: +% \begin{verbatim} +% \epigraphhead[300]{Epigraph text} +% \part{Part title} +% \end{verbatim} +% The value of the optional argument may need changing to vertically adjust +% the position of the epigraph. If there is any |\part| that does not have an +% epigraph then an empty |\epigraphhead| command (i.e., |\epigraphhead{}|) +% must be placed immediately befor the |\part| command. +% +% \end{itemize} +% +% A similar scheme may be used for epigraphs on other kinds of pages. +% The essential +% trick is to make sure that the \pstyle{epigraph} pagestyle is used for +% the page. +% +% +% \subsection{Epigraphed bibliographies} +% \changes{v1.2}{1999/09/12}{Added application of an epigraph to a bibliography} +% One author asked how to associate an epigraph with his bibliography. The +% following is one way to do it (the example is based on the book class). +% \begin{enumerate} +% \item Copy the definition of the |thebibliography| environment from +% \file{book.cls} to your own file called, say \file{epibib.sty}. +% +% \item Edit \file{epibib.sty} to include the definition of a vacuous +% command called, say, |\bibadd|. Edit the definition of the |thebibliography| +% to include |\bibadd| immediately before the |\list| command. The relevant +% portions of \file{epibib.sty} will look like this: +% \begin{verbatim} +% % epibib.sty +% ... +% \newcommand{\bibadd}{} +% \renewenvironment{thebibliography}[1] +% {\chapter*{\bibname +% \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}% +% \bibadd +% \list{\@biblabel ..... +% \end{verbatim} +% +% \item In your document, start it off like this: +% \begin{verbatim} +% \documentclass... +% \usepackage{epigraph} +% \usepackage{epibib} +% \end{verbatim} +% At the point where the bibliography is to go, do something like the following: +% \begin{verbatim} +% ... +% \newcommand{\bepi}{} +% \renewcommand{\bibadd}{\bepi} +% \bepi % seems to be required if using \epigraphhead in \bepi +% \begin{thebibliography}{...} % or \bibliography{...} +% ... +% \end{verbatim} +% \end{enumerate} +% The same idea can be applied to document elements like an abstract or an +% index. Of course |\bibadd| can be defined to be anything you want to typeset +% between the bibliography heading and the start of the reference list. +% +% +% \section{The package code} \label{sec:code} +% +% \tepi{And now for something completely different.}{\textit{Monty Python}} +% +% Announce the name and version of the package, which requires +% \LaTeXe. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{epigraph}[2009/09/02 v1.5c typesetting epigraphs] +% \end{macrocode} +% +% \begin{macro}{\beforeepigraphskip} +% \begin{macro}{\afterepigraphskip} +% \begin{macro}{\epigraphwidth} +% \begin{macro}{\epigraphrule} +% The several length commands, which can be changed by the user with +% |\setlength|. +% \begin{macrocode} +\newlength{\beforeepigraphskip} + \setlength{\beforeepigraphskip}{.5\baselineskip} +\newlength{\afterepigraphskip} + \setlength{\afterepigraphskip}{.5\baselineskip} +\newlength{\epigraphwidth} + \setlength{\epigraphwidth}{.4\textwidth} +\newlength{\epigraphrule} + \setlength{\epigraphrule}{.4\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\epigraphsize} +% The size of the font to be used. +% \begin{macrocode} +\newcommand{\epigraphsize}{\small} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\epigraphflush} +% \begin{macro}{\textflush} +% \begin{macro}{\sourceflush} +% The three commands to position epigraphs in the textblock and to position +% the components of the epigraph. +% \begin{macrocode} +\newcommand{\epigraphflush}{flushright} +\newcommand{\textflush}{flushleft} +\newcommand{\sourceflush}{flushright} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{flushleftright} +% An environment for |\textflush| to use normal minipage typesetting. It +% is vacuous. Defining this was a mistake as the \Lpack{ccaption} +% package also defines |\flushleftright|. +% \changes{v1.5a}{2002/10/22}{Made flushleftright environment an error} +% \begin{macrocode} +\AtBeginDocument{% + \@ifundefined{flushleftright}{% + \newenvironment{flushleftright}{% + \PackageError{epigraph}% + {The flushleftright environment has been removed.\MessageBreak + Use the flushepinormal environment instead}{\@ehc}}{}}% + {\PackageWarningNoLine{epigraph}% + {flushleftright has been previously defined.\MessageBreak + Use flushepinormal for epigraphs instead}}} + +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{flushepinormal} +% An environment for |\textflush| to use normal minipage typesetting. It +% is vacuous. +% \changes{v1.5a}{2002/10/22}{Added flushepinormal environment} +% \begin{macrocode} +\newenvironment{flushepinormal}{}{} + +% \end{macrocode} +% \end{environment} +% +% +% \begin{macro}{\@epirule} +% The internal command to draw a rule between text and source. +% \begin{macrocode} +\newcommand{\@epirule}{\rule[.5ex]{\epigraphwidth}{\epigraphrule}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@epitext} +% The internal command to typeset the \meta{text}. Put it into a minipage of the +% right size and typeset per |\textflush|. +% \begin{macrocode} +\newcommand{\@epitext}[1]{% + \begin{minipage}{\epigraphwidth}\begin{\textflush} #1\\ +% \end{macrocode} +% Draw a rule if it will be visible, otherwise add some extra vertical space. +% \begin{macrocode} + \ifdim\epigraphrule>\z@ \@epirule \else \vspace*{1ex} \fi + \end{\textflush}\end{minipage}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@episource} +% The internal command for typesetting the \meta{source}, which is put +% into a minipage and typeset according to |\sourceflush|. +% \begin{macrocode} +\newcommand{\@episource}[1]{% + \begin{minipage}{\epigraphwidth}\begin{\sourceflush} #1\end{\sourceflush} + \end{minipage}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\epigraph} +% Having got the preliminaries out of the way, here's the user command +% for a single epigraph. This is set in a minipage to prevent breaking +% across a page. Position it according to |\epigraphflush|. +% \begin{macrocode} +\newcommand{\epigraph}[2]{\vspace{\beforeepigraphskip} + {\epigraphsize\begin{\epigraphflush}\begin{minipage}{\epigraphwidth} + \@epitext{#1}\\ \@episource{#2} + \end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\qitem} +% \begin{macro}{\qitemlabel} +% |\qitem| is the epigraph list version of |\item|. +% Set everything inside a minipage. +% \begin{macrocode} +\newcommand{\qitem}[2]{{\raggedright\item \begin{minipage}{\epigraphwidth} + \@epitext{#1}\\ \@episource{#2} + \end{minipage}}} +% \end{macrocode} +% |\qitemlabel| is needed for a list as well. It is not going to +% typeset anything. +% \begin{macrocode} +\newcommand{\qitemlabel}[1]{\hfill} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{environment}{epigraphs} +% Now for the epigraph list. This is defined in terms of a |list| +% environment. +% \begin{macrocode} +\newenvironment{epigraphs}{% +% \end{macrocode} +% Do the vertical space, set the font size, position according to +% |\epigraphflush|, and put everyting into a minipage. +% \begin{macrocode} + \vspace{\beforeepigraphskip}\begin{\epigraphflush} + \epigraphsize + \begin{minipage}{\epigraphwidth} + \list{}% +% \end{macrocode} +% Make the list just fit the minipage (i.e., no indents). +% \begin{macrocode} + {\itemindent\z@ \labelwidth\z@ \labelsep\z@ + \leftmargin\z@ \rightmargin\z@ + \let\makelabel\qitemlabel}}% + {\endlist\end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}} +% \end{macrocode} +% \end{environment} +% +% \subsection{Epigraphs before a chapter title} +% +% \begin{macro}{\cleartoevenpage} +% Like |\cleardoublepage| except that it skips pages until an even one, and +% its optional argument is applied to the skipped page, if any. +% The code is based on the kernel |\cleardoublepage| in \file{ltoutput.dtx}. +% \changes{v1.2}{1999/09/12}{Added \cs{cleartoevenpage} command} +% \changes{v1.5}{2000/02/20}{Added optional arg to \cs{cleartoevenpage}} +% \begin{macrocode} +\providecommand{\cleartoevenpage}[1][\@empty]{% + \clearpage% + \ifodd\c@page\hbox{}#1\clearpage\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@epichapapp} +% \begin{macro}{\dropchapter} +% \begin{macro}{\undodrop} +% \changes{v1.3}{1999/12/01}{Defined chapter dropping and support commands} +% Commands to drop and restore positions of chapter titles. Dropping is +% accomplished by inserting vertical space before the |\@chapapp| command. +% \begin{macrocode} +\newcommand{\dropchapter}[1]{% + \let\@epichapapp\@chapapp + \renewcommand{\@chapapp}{\vspace*{#1}\@epichapapp}} +\newcommand{\undodrop}{\let\@chapapp\@epichapapp} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Placing an epigraph before a chapter title uses the scheme outlined +% by Piet van Oostrum~\cite{OOSTRUM96}. This is to put a zero sized +% picture into the page header. +% +% \begin{macro}{\if@epirhs} +% \begin{macro}{\if@epicenter} +% Two booleans for testing whether an epigraph is to be at the RH margin, +% centered, or at the LH margin. The default is RH margin. +% \begin{macrocode} +\newif\if@epirhs \@epirhstrue +\newif\if@epicenter \@epicentertrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@epipos} +% This routine sets the |\if@epi...| booleans according to the value of +% |\epigraphflush|. If |\epigraphflush| is neither |center| nor |flushleft| +% then it defaults to |flushright|. We have to use this to be upward +% compatible with |\epigraphflush| being set by the user with |\renewcommand|. +% \begin{macrocode} +\newcommand{\@epipos}{ + \long\def\@ept{flushleft} + \ifx\epigraphflush\@ept + \@epirhsfalse \@epicenterfalse + \else + \long\def\@ept{center} + \ifx\epigraphflush\@ept + \@epirhsfalse \@epicentertrue + \else + \@epirhstrue \@epicenterfalse + \fi + \fi} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\epigraphhead} +% |\epigraphhead[|\meta{distance}|]{|\meta{text}|}| puts \meta{text} at +% \meta{distance} (a number, not a length) below the header at the +% page position specified by |\epigraphflush|. +% \begin{macrocode} +\newcommand{\epigraphhead}[2][95]{% +% \end{macrocode} +% We have to use |\def| instead of the normal \LaTeX{} definition commands +% as we will keep on +% (re)defining things. For reasons that are not fully clear to me \LaTeX{} +% doesn't seem to like me using a |\savebox| for storing the epigraph text, +% so I'll use a command instead. +% \begin{macrocode} + \def\@epitemp{\begin{minipage}{\epigraphwidth}#2\end{minipage}} +% \end{macrocode} +% Define an |epigraph| page style. +% \begin{macrocode} + \def\ps@epigraph{\let\@mkboth\@gobbletwo +% \end{macrocode} +% There are three possible definitions for |\@oddhead| depending on the +% value of |\epigraphflush|. We call |\@epipos| to decide which one to do. +% \begin{macrocode} + \@epipos + \if@epirhs + \def\@oddhead{\hfil\begin{picture}(0,0) + \put(0,-#1){\makebox(0,0)[r]{\@epitemp}} + \end{picture}} + \else + \if@epicenter + \def\@oddhead{\hfil\begin{picture}(0,0) + \put(0,-#1){\makebox(0,0)[b]{\@epitemp}} + \end{picture}\hfil} + \else + \def\@oddhead{\begin{picture}(0,0) + \put(0,-#1){\makebox(0,0)[l]{\@epitemp}} + \end{picture}\hfil} + \fi + \fi + \let\@evenhead\@oddhead + \def\@oddfoot{\reset@font\hfil\thepage\hfil} + \let\@evenfoot\@oddfoot} +% \end{macrocode} +% Make |epigraph| be the page style for this page. +% \begin{macrocode} + \thispagestyle{epigraph}} +% \end{macrocode} +% \end{macro} +% +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \bibliographystyle{alpha} +% +% \begin{thebibliography}{GMS94} +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock {\em The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[vO96]{OOSTRUM96} +% Piet van Oostrum +% \newblock {\em Page layout in \LaTeX}, June 1996. +% \newblock (Available from CTAN as file \texttt{fancyhdr.tex}). +% +% \bibitem[SW94]{EBOOK} +% Douglas Schenck and Peter Wilson. +% \newblock {\em Information Modeling the EXPRESS Way}. +% \newblock Oxford University Press, 1994 (ISBN 0-19-508714-3). +% +% \bibitem[Thi99]{TTC199} +% Christina Thiele. +% \newblock \emph{The Treasure Chest: Package tours from CTAN}, +% \newblock TUGboat, vol.~20, no.~1, pp~53--58, March 1999. +% +% \end{thebibliography} +% +% +% \Finale +% \PrintIndex +% +\endinput + +%% \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 \~} + + diff --git a/macros/latex/contrib/epigraph/epigraph.ins b/macros/latex/contrib/epigraph/epigraph.ins new file mode 100644 index 0000000000..9747d72a47 --- /dev/null +++ b/macros/latex/contrib/epigraph/epigraph.ins @@ -0,0 +1,73 @@ +%% epigraph.ins +%% Author: Peter Wilson, Herries Press +%% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +%% Copyright 1998--2004 Peter R. Wilson +%% +%% 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: +%% +%% This work has the LPPL maintenance status "maintained". +%% The Current Maintainer of this work is Will Robertson. +%% +%% This work consists of the files listed in the README file. +%% +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this work when run through +%% LaTeX. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{epigraph.ins} +\input docstrip.tex +\preamble + +----------------------------------------------------------------- + Author: Peter Wilson, Herries Press + Maintainer: Will Robertson (will dot robertson at latex-project dot org) + Copyright 2001, 2002, 2003, 2004 Peter R. Wilson + + 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: + + This work has the LPPL maintenance status "maintained". + The Current Maintainer of this work is Will Robertson. + + This work consists of the files listed in the README file. +----------------------------------------------------------------- + +\endpreamble + +\askforoverwritefalse +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generate{\file{epigraph.drv}{\from{epigraph.dtx}{driver}}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generate{\file{epigraph.sty}{\from{epigraph.dtx}{usc}}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file(s) into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space epigraph.sty} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/macros/latex/contrib/epigraph/epigraph.pdf b/macros/latex/contrib/epigraph/epigraph.pdf new file mode 100644 index 0000000000..6b8773e03b Binary files /dev/null and b/macros/latex/contrib/epigraph/epigraph.pdf differ -- cgit v1.2.3