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/abstract/README | 78 +++ macros/latex/contrib/abstract/abstract.dtx | 734 +++++++++++++++++++++++++++++ macros/latex/contrib/abstract/abstract.ins | 70 +++ macros/latex/contrib/abstract/abstract.pdf | Bin 0 -> 168527 bytes 4 files changed, 882 insertions(+) create mode 100644 macros/latex/contrib/abstract/README create mode 100644 macros/latex/contrib/abstract/abstract.dtx create mode 100644 macros/latex/contrib/abstract/abstract.ins create mode 100644 macros/latex/contrib/abstract/abstract.pdf (limited to 'macros/latex/contrib/abstract') diff --git a/macros/latex/contrib/abstract/README b/macros/latex/contrib/abstract/README new file mode 100644 index 0000000000..62eff4c3f0 --- /dev/null +++ b/macros/latex/contrib/abstract/README @@ -0,0 +1,78 @@ +____________________ +The ABSTRACT package + + The abstract package gives you control over the typesetting of the +abstract environment, and in particular provides for a one column abstract +in a two column paper. + + Will Robertson is now maintaining this package. Please contact him +in preference to the original author, Peter Wilson, for feature requests +and bug reports. + +_______________ +Change history: + +Version 1.2a (2009/06/08) +- New package maintainer (Will) + +Peter's change history: + +Changes in version 1.2 (2009/05/23) +- Added style option +- \abstitleskip now works as described + +Changes (2004/04/16) +- Changed license from LPPL v1.0 to v1.3 +- Updated contact details + +Changes in version 1.1 +- Added an option for a run-in heading + +----------------------------------------------------------------- + Author: Peter Wilson, Herries Press + Maintainer: Will Robertson (will dot robertson at latex-project dot org) + + Copyright 2000--2009 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) +abstract.dtx +abstract.ins + and the derived file: +abstract.sty + + The distribution consists of the files: +README (this file) +abstract.dtx +abstract.ins +abstract.pdf (the user manual) + +----------------------------------------------------------------- + + To install the package: +- run: latex abstract.ins (which will generate abstract.sty) +- Move abstract.sty to a location where LaTeX will find it (typically + in a local texmf tree at tex/latex/abstract) 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: pdflatex abstract.dtx +- For an index, run: makeindex -s gind.ist abstract +- run: pdflatex abstract.dtx +- Print abstract.pdf for a hardcopy of the user manual + + +2009/05/23 +Peter Wilson + +2009/06/08 +Will Robertson +will dot robertson at latex-project dot org diff --git a/macros/latex/contrib/abstract/abstract.dtx b/macros/latex/contrib/abstract/abstract.dtx new file mode 100644 index 0000000000..32c1f136a2 --- /dev/null +++ b/macros/latex/contrib/abstract/abstract.dtx @@ -0,0 +1,734 @@ +% \iffalse meta-comment +% abstract.dtx +% Author: Peter Wilson, Herries Press +% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +% Copyright 2000--2009 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 +%%\OnlyDescription +\setcounter{StandardModuleDepth}{1} +\begin{document} + \DocInput{abstract.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{281} +% +% \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}{2000/06/11}{First public release} +% \changes{v1.1}{2001/02/11}{Added runin option} +% \changes{v1.1a}{2004/04/16}{Changed license and contact details} +% \changes{v1.2}{2009/05/22}{Changed contact details, and minor improvements} +% \changes{v1.2}{2009/05/23}{Added style option} +% \changes{v1.2a}{2009/06/08}{New maintainer} +% +% \def\dtxfile{abstract.dtx} +% ^^A \def\fileversion{v0.3} +% ^^A \def\filedate{2000/05/20} +% ^^A \def\fileversion{v1.0} +% ^^A \def\filedate{2000/06/11} +% \def\fileversion{v1.1} \def\filedate{2001/02/11} +% \def\fileversion{v1.1a} \def\filedate{2004/04/16} +% \def\fileversion{v1.2} \def\filedate{2009/05/23} +% \def\fileversion{v1.2a} \def\filedate{2009/06/08} +% +% \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 +% +% \title{The \Lpack{abstract} 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{abstract} package provides control over the typesetting +% of the |abstract| environment, and especially provides for a one-column +% abstract in a two-column paper. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% Questions about how to have a one-column abstract in a two-column paper +% seem to pop up fairly regularly on the +% \texttt{comp.text.tex} newsgroup. While an answer based on responses +% on \texttt{ctt} is provided in the FAQ, +% the \Lpack{abstract} package provides a more author-friendly means +% of accomplishing this. Further, additional controls are provided +% for the typesetting of the |abstract| environment in general. +% +% +% 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 \Lpack{abstract} +% package and +% commented source code is in Section~\ref{sec:code}. +% +% \section{The \Lpack{abstract} package} \label{sec:usc} +% +% The typeset format of the |abstract| in a \Lpack{report} or +% \Lpack{article} class\footnote{The \texttt{abstract} environment is not +% available for the \Lpack{book} class.} document depends on the class +% options. The formats are: +% \begin{itemize} +% \item \Lopt{titlepage} class option: The abstract heading (i.e., value of +% |\abstractname|) is typeset centered in a bold font; the text is set in +% the normal font and to the normal width. +% \item \Lopt{twocolumn} class option: The abstract heading is typeset like +% an unnumbered section; the text is set in the normal font and to the +% normal width (of a single column). +% \item Default (neither of the above class options): The abstract heading +% is typeset centered in a small bold font; the text is set in a small +% font and indented like the |quotation| environment. +% \end{itemize} +% Note that the \Lopt{titlepage} option takes precedence over the +% \Lopt{twocolumn} option. +% +% The \Lpack{abstract} package provides handles to modify the typesetting +% of the |abstract|. +% +% \subsection{Options} +% +% The \Lpack{abstract} package takes the following options. +% \begin{itemize} +% \item \Lopt{original}. In a \Lopt{twocolumn} document the package default +% is to use the default abstract style (i.e., centered heading +% and small text). This option sets the +% typeset format of the abstract to match that of a standard +% two column document (i.e., section heading and normal sized text). +% \item \Lopt{addtotoc}. The abstract title (the value of |\abstractname|) +% is added to the Table of Contents. +% \item \Lopt{number}. The abstract title will be typeset as a +% numbered |\chapter| +% or as a |\section|, depending on whether the document class supports +% chapters or not. +% \item \Lopt{style}. You specify the style for the title.\footnote{This +% option was suggested by Will Robertson.} The \Lopt{addtotoc} option +% does not apply if you use the \Lopt{style} option. +% \item \Lopt{runin}. The abstract title is typeset as a run-in\footnote{This +% option was suggested by R.~Chandrasekhar (\texttt{chandra@ee.uwa.edu.au}).} heading. +% Note that the \Lopt{number} and \Lopt{style} options are ignored if the +% \Lopt{runin} option is used, and the \Lopt{number} and \Lopt{addtotoc} +% options are ignored if the \Lopt{style} option is given. +% \end{itemize} +% +% When the \Lopt{number} option is used with a class that provides chapters, +% the usual |\chapter| command is used for typesetting the title. If you +% do not want the word `Chapter' (or its equivalent) to appear, +% you can use the \Lpack{anonchap} +% package to suppress this. +% +% \subsection{Commands and environments} +% +% The usual advice about creating a one-column |abstract| in a two-column +% document is to write code like this: +% \par\begin{small}\begin{verbatim} +% \documentclass[twocolumn...]{...} +% ... +% \twocolumn[ +% \begin{@twocolumnfalse} +% \maketitle % need full-width title +% \begin{abstract} +% abstract text... +% \end{abstract} +% \end{@twocolumnfalse} +% ] +% ... hand make footnotes for any \thanks commands +% ... +% \end{verbatim} +% \end{small}\par +% +% \DescribeEnv{onecolabstract} +% \DescribeMacro{\saythanks} +% With the \Lpack{abstract} package, instead you do: +% \par\begin{small}\begin{verbatim} +% \documentclass[twocolumn...]{...} +% \usepackage{abstract} +% ... +% \twocolumn[ +% \maketitle % need full-width title +% \begin{onecolabstract} +% abstract text... +% \end{onecolabstract} +% ] +% \saythanks % typesets any \thanks commands +% ... +% \end{verbatim} +% \end{small}\par +% If you want, you can use the |onecolabstract| environment in place +% of the |abstract| environment --- it doesn't have to be within the optional +% argument of the |\twocolumn| command. In fact, |onecolabstract| internally +% uses |abstract| for the typesetting. +% +% \DescribeMacro{\abstractnamefont} +% \DescribeMacro{\abstracttextfont} +% These two commands can be redefined to change the fonts used for +% typesetting the heading (defined via |\abstractname|) of the |abstract| +% environment and the font for typesetting the text of the abstract, +% respectively. The default definitions for these are designed to mimic +% the traditional |abstract| typesetting. Different values are used +% depending on whether the document uses the \Lopt{titlepage} and/or +% \Lopt{twocolumn} options. For example, in a non-titlepage +% one-column paper, their definitions are: +% \par\begin{small}\begin{verbatim} +% \newcommand{\abstractnamefont}{\normalfont\small\bfseries} +% \newcommand{\abstracttextfont}{\normalfont\small} +% \end{verbatim} +% \end{small}\par +% +% \DescribeMacro{\abstitlestyle} +% When the \Lopt{style} option is used the title is set as \\ +% \verb?\abstitlestyle{\abstractname}? where the default definition +% is simply \\ +% \verb?\newcommand{\abstitlestyle}[1]{#1}? \\ +% It is up to you to redefine \cs{abstitlestyle} to give any effects +% you want (e.g., if you want the title added to the ToC you have to include +% the necessary code as part of your redefinition). +% +% +% \DescribeMacro{\absleftindent} +% \DescribeMacro{\absrightindent} +% \DescribeMacro{\absparindent} +% \DescribeMacro{\absparsep} +% The amended version of |abstract| uses a list environment for typesetting +% the text. These four lengths can be changed (via |\setlength|) to adjust +% the left and right margins, the paragraph indentation, and the vertical skip +% between paragraphs in this environment. +% The default values depend on the document class options in +% effect. +% +% \DescribeMacro{\abslabeldelim} +% If the \Lopt{runin} option is used, the heading is typeset as a run-in heading. +% That is, it is the first piece of text on the first line of the abstract text. +% The \meta{text} as dspecified by |\abslabeldelim{|\meta{text}|}| is typeset +% immediately after the heading. By default it is defined to do nothing, but +% if you wanted, for example, the |\abstractname| to be followed by a colon and +% some extra space you could specify |\abslabeldelim{:\quad}|. +% +% \DescribeMacro{\absnamepos} +% If the \Lopt{runin} option is not used then the heading is typeset +% in its own environment. |\absnamepos| specifies the name of the environment +% in which the abstract +% name is typeset. It can be redefined to be one of |flushleft|, |center|, +% or |flushright| to give a left, centered or right aligned heading; or to any +% other appropriate environment which is supported by the document class or +% used packages. +% +% \DescribeMacro{\abstitleskip} +% With the \Lopt{runin} option a space of length |\abstitleskip| is typeset +% before the heading. For example, if |\absparindent| is non-zero, then: \\ +% |\setlength{\abstitleskip}{-\absparindent}| \\ +% will typeset the heading flush left. +% +% Without the \Lopt{runin} option |\abstitleskip| is aditional vertical +% space (either positive +% or negative) that is inserted between the abstract name and the text of +% the abstract. +% +% \DescribeMacro{\appendiargdef} +% The (internal) command |\appendiargdef{|\meta{macro}|}{|\meta{stuff}|}| +% will append +% \meta{stuff} at the end of the current definition of \meta{macro}, where +% \meta{macro} is the name of a macro (including the backslash) which takes +% a single argument. For example the following are two equivalent definitions +% of |\mymacro|: +% \par\begin{small}\begin{verbatim} +% \newcommand{\mymacro}[1]{#1 is an artist} +% \appendiargdef{\mymacro}{ in spite of being colour blind} +% % or +% \newcommand{\mymacro}[1]{#1 is an artist in spite of being colour blind} +% \end{verbatim} +% \end{small}\par +% +% \StopEventually{ +% \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. +% ^^A \bibitem[Wil96]{PRW96i} +% ^^A Peter~R. Wilson. +% ^^A \newblock {\em {LaTeX for standards: The LaTeX package files user manual}}. +% ^^A \newblock NIST Report NISTIR, June 1996. +% \end{thebibliography} +% } +% +% +% +% \section{The package code} \label{sec:code} +% +% To try and avoid name clashes, all the internal commands include +% the string |@bs|. +% +% \subsection{Preliminaries} +% +% Announce the name and version of the package, which requires +% \LaTeXe. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{abstract}[2009/06/08 v1.2a configurable abstracts] +% \end{macrocode} +% +% +% The following |\if...| commands are for implementing various options. +% \changes{v1.1}{2001/02/11}{Added \cs{if@bsrunin}} +% \changes{v1.2}{2009/05/23}{Added \cs{if@bsstyle}} +% \begin{macro}{\if@bsonecol} +% \begin{macro}{\ifadd@bstotoc} +% \begin{macro}{\ifnumber@bs} +% \begin{macro}{\if@bsrunin} +% \begin{macro}{\if@bsstyle} +% \begin{macrocode} +\newif\if@bsonecol + \@bsonecoltrue +\newif\ifadd@bstotoc + \add@bstotocfalse +\newif\ifnumber@bs + \number@bsfalse +\newif\if@bsrunin + \@bsruninfalse +\newif\if@bsstyle + \@bsstylefalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Now declare and process the options. +% \changes{v1.2}{2009/05/23}{Added the style option and supporting code} +% \begin{macrocode} +\DeclareOption{original}{\@bsonecolfalse} +\DeclareOption{addtotoc}{\add@bstotoctrue} +\DeclareOption{number}{\number@bstrue} +\DeclareOption{runin}{\@bsrunintrue} +\DeclareOption{style}{\@bsstyletrue} +\ProcessOptions\relax +% \end{macrocode} +% Disable the \Lopt{number} and \Lopt{addtotoc} option if \Lopt{style} is +% specified. +% Make sure that the \Lopt{number} option is disabled +% if \Lopt{runin} is used (otherwise the \Lopt{addtotoc} option +% may not work as expected) and also disable the \Lopt{style} option. +% \begin{macrocode} +\if@bsstyle\number@bsfalse\add@bstotocfalse\fi +\if@bsrunin\number@bsfalse\@bsstylefalse\fi +% \end{macrocode} +% +% \subsection{Abstracts} +% +% The original definition of the |abstract| environment given in +% \file{ltclasses.dtx} is: +% \par\begin{small}\begin{verbatim} +% \if@titlepage +% \renewenvironment{abstract}{% +% \titlepage +% \null\vfil +% \@beginparpenalty\@lowpenalty +% \begin{center}% +% \bfseries \abstractname +% \@endparpenalty\@M +% \end{center}}% +% {\par\vfil\null\endtitlepage} +% \else +% \renewenvironment{abstract}{% +% \if@twocolumn +% \section*{\abstractname}% +% \else +% \small +% \begin{center}% +% {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% +% \end{center}% +% \quotation +% \fi} +% {\if@twocolumn\else\endquotation\fi} +% \fi +% \end{verbatim} +% \end{small}\par +% The next set of macros comprise the \Lpack{abstract} package +% reimplementation of the |abstract| environment. +% +% \begin{macro}{\abstractnamefont} +% \begin{macro}{\abstracttextfont} +% These two macros are for specifying the fonts for typesetting the +% abstract's title and text. They are initialised for the default case +% (i.e., no class options). +% \begin{macrocode} +\newcommand{\abstractnamefont}{\normalfont\small\bfseries} +\newcommand{\abstracttextfont}{\normalfont\small} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\absnamepos} +% \begin{macro}{\abstitleskip} +% |\absnamepos| specifies the environment in which the abstract's title +% name will be typeset, and the length |\abstitleskip| is an adjustement +% to the vertical space between the title and the abstract's text. These +% are initialised for the default case. +% \begin{macrocode} +\newcommand{\absnamepos}{center} +\newlength{\abstitleskip} \setlength{\abstitleskip}{-0.5em} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\absleftindent} +% \begin{macro}{\absrightindent} +% \begin{macro}{\absparindent} +% \begin{macro}{\absparsep} +% The abstract's text is typeset as a single item list, called +% |@bstr@ctlist|. These lengths set the left and right margin indents, the +% paragraph indentation, and the inter-paragraph vertical space. Their +% initial values are all class option-dependent. +% \begin{macrocode} +\newlength{\absleftindent} +\newlength{\absrightindent} +\newlength{\absparindent} +\newlength{\absparsep} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\abslabeldelim} +% \begin{macro}{\@bslabeldelim} +% The contents of |\abslabeldelim| are typeset after a run-in heading. +% \changes{v1.1}{2001/02/11}{Added \cs{abslabeldelim} and \cs{@bslabeldelim}} +% \begin{macrocode} +\newcommand{\abslabeldelim}[1]{\def\@bslabeldelim{#1}} +\abslabeldelim{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@bsrunintitle} +% This macro typeset the run-in heading. +% \changes{v1.1}{2001/02/11}{Added \cs{@bsrunintitle}} +% \begin{macrocode} +\newcommand{\@bsrunintitle}{% + \hspace*{\abstitleskip}{\abstractnamefont\abstractname\@bslabeldelim}} +% \end{macrocode} +% \end{macro} +% +% Now set all the class option-dependent values. +% \begin{macrocode} +\if@titlepage +% \end{macrocode} +% Values for the \Lopt{titlepage} class option. Note that this option takes +% precedence over any other option. +% \begin{macrocode} + \setlength{\absleftindent}{\z@} + \renewcommand{\abstractnamefont}{\normalfont\bfseries} + \renewcommand{\abstracttextfont}{\normalfont} + \setlength{\abstitleskip}{0em} +\else + \if@twocolumn +% \end{macrocode} +% Values for the \Lopt{twocolumn} class option. +% \begin{macrocode} + \if@bsonecol + \setlength{\absleftindent}{\leftmargin} + \else + \setlength{\absleftindent}{\z@} + \renewcommand{\abstractnamefont}{\normalfont\Large\bfseries} + \renewcommand{\abstracttextfont}{\normalfont} + \renewcommand{\absnamepos}{flushleft} + \setlength{\abstitleskip}{0em} + \fi + \else +% \end{macrocode} +% Values for the default, if not already initialised. +% \begin{macrocode} + \setlength{\absleftindent}{\leftmargin} + \fi +\fi +% \end{macrocode} +% Finally, values that apply for all cases. +% \begin{macrocode} +\setlength{\absrightindent}{\absleftindent} +\AtBeginDocument{\setlength{\absparindent}{\parindent} + \setlength{\absparsep}{\parskip}} +% \end{macrocode} +% +% \begin{environment}{@bstr@ctlist} +% The abstract's text is typeset within the |@bstr@ctlist| list environment. +% \begin{macrocode} +\newenvironment{@bstr@ctlist}{% + \list{}{% + %%\topsep \z@ + \partopsep \z@ + \listparindent \absparindent + \itemindent \listparindent + \leftmargin \absleftindent + \rightmargin \absrightindent + \parsep \absparsep}% + \item\relax} + {\endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\put@bsintoc} +% This macro adds the abstract's title to the ToC. It does nothing if +% the abstract is being numbered. +% \begin{macrocode} +\newcommand{\put@bsintoc}{% + \ifadd@bstotoc + \ifnumber@bs\else + \@ifundefined{chapter}{\addcontentsline{toc}{section}{\abstractname}}{% + \addcontentsline{toc}{chapter}{\abstractname}} + \fi + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\num@bs} +% This macro generates a numbered abstract heading. +% \begin{macrocode} +\newcommand{\num@bs}{% + \@ifundefined{chapter}{\section{\abstractname}}{% + \chapter{\abstractname}} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\abstitlestyle} +% When the \Lopt{style} option is called this macro is called to typeset +% the abstract +% heading; it should be redefined by the user to suit. +% \begin{macrocode} +\newcommand*{\abstitlestyle}[1]{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{abstract} +% At last we are in position to redefine the |abstract| environment. This +% follows very much along the lines of the original definition, but with +% macros inserted at strategic points. +% \begin{macrocode} +\if@titlepage +% \end{macrocode} +% For the \Lopt{titlepage} option. +% \begin{macrocode} + \renewenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \if@bsrunin + \else +% \end{macrocode} +% If the \Lopt{runin} option is not used: +% number the title, if called for, otherwise typeset the title in the +% specified (via |\absnamepos|) environment and adjust the following vertical +% spacing. +% \changes{v1.2}{2009/05/22}{Made \cs{abstitleskip} behave to match the manual} +% \begin{macrocode} + \if@bsstyle + \abstitlestyle{\abstractname} + \else + \ifnumber@bs + \num@bs + \else + \begin{\absnamepos}% + \abstractnamefont \abstractname + \@endparpenalty\@M + \end\absnamepos% +%% \vspace{\abstitleskip}% + \fi + \fi + \vspace{\abstitleskip}% + \fi +% \end{macrocode} +% Try adding the title to the ToC, then start the environment for typesetting +% the text. If the \Lopt{runin} option is used, typeset the heading at the start +% of the environment. +% \begin{macrocode} + \put@bsintoc% + \begin{@bstr@ctlist}\if@bsrunin\@bsrunintitle\fi\abstracttextfont}% +% \end{macrocode} +% Finish the |abstract| environment. +% \begin{macrocode} + {\par\end{@bstr@ctlist}\vfil\null\endtitlepage} +\else +% \end{macrocode} +% The \Lopt{twocolumn} option and the default case. These use the same code +% as any style differences are embedded in the new macros. +% \begin{macrocode} + \renewenvironment{abstract}{% + \if@bsrunin + \else + \if@bsstyle + \abstitlestyle{\abstractname} + \else + \ifnumber@bs + \num@bs + \else + \begin{\absnamepos}\abstractnamefont\abstractname\end\absnamepos% +%% \vspace{\abstitleskip}% + \fi + \fi + \vspace{\abstitleskip}% + \fi + \put@bsintoc% + \begin{@bstr@ctlist}\if@bsrunin\@bsrunintitle\fi\abstracttextfont}% + {\par\end{@bstr@ctlist}} +\fi +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{onecolabstract} +% An environment for typesetting a single column abstract, +% particularly as the optional +% argument to the |\twocolumn| command. +% \begin{macrocode} +\newenvironment{onecolabstract}{% + \begin{@twocolumnfalse}\begin{abstract}}{% + \end{abstract}\end{@twocolumnfalse}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\appendiargdef} +% |\appendiargdef{\macro}{Additional stuff}| will add |Additional stuff| at +% the end of the definition of |\macro|, where |\macro| is a macro that has +% one argument.\footnote{Code suggestions for this were made by Michael Downes +% (\texttt{epsmjd@ams.org}) and Heiko Oberdiek +% (\texttt{oberdiek@ruf.uni-freiburg.de}) on \texttt{ctt}.} +% \begin{macrocode} +\providecommand{\appendiargdef}[2]{\begingroup + \toks@\expandafter{#1{##1}#2}% + \edef\@bsx{\endgroup \def\noexpand#1####1{\the\toks@}}% + \@bsx} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanks} +% \begin{macro}{\@bs@thanks} +% We have to keep the contents of the |\thanks| commands as normally these +% are emptied by the |\maketitle| command. I do this by extending the definition +% of the |\thanks| (from \file{ltsect.dtx}) command, +% so that |\@bs@thanks| has a copy of the contents +% of |\@thanks|. +% \begin{macrocode} +\appendiargdef{\thanks}{% + \protected@xdef\@bs@thanks{\@bs@thanks + \protect\footnotetext[\the\c@footnote]{#1}}% +} +\let\@bs@thanks\@empty +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\saythanks} +% This macro typesets any |\thanks| commands \emph{after} using +% |onecolabstract|. +% \begin{macrocode} +\newcommand{\saythanks}{\begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}\@bs@thanks + \endgroup\global\let\@bs@thanks\@empty} +% \end{macrocode} +% \end{macro} +% +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% +% \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/abstract/abstract.ins b/macros/latex/contrib/abstract/abstract.ins new file mode 100644 index 0000000000..c7802900ac --- /dev/null +++ b/macros/latex/contrib/abstract/abstract.ins @@ -0,0 +1,70 @@ +%% abstract.ins +%% Author: Peter Wilson, Herries Press +%% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +%% Copyright 2000--2009 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{abstract.ins} +\input docstrip.tex +\preamble + +----------------------------------------------------------------- + Author: Peter Wilson, Herries Press + Maintainer: Will Robertson (will dot robertson at latex-project dot org) + Copyright 2000--2009 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 + +\keepsilent +\askforoverwritefalse +\generate{\file{abstract.sty}{\from{abstract.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 abstract.sty} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* For an index, process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* For a list of changes, 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/abstract/abstract.pdf b/macros/latex/contrib/abstract/abstract.pdf new file mode 100644 index 0000000000..3a5b045e0e Binary files /dev/null and b/macros/latex/contrib/abstract/abstract.pdf differ -- cgit v1.2.3