diff options
author | Karl Berry <karl@freefriends.org> | 2006-07-23 23:45:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-07-23 23:45:04 +0000 |
commit | 6945ff103627bf3b736e3b2031cf071c77743dfb (patch) | |
tree | 145b8f451f4d3d04b604a385720206a293b2ecfb /Master/texmf-dist/source | |
parent | 89114e81d794b77c9f395402ab1c2901b4d15089 (diff) |
new (latex) package coverpage (26feb06)
git-svn-id: svn://tug.org/texlive/trunk@1906 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/coverpage/CoverPage.dtx | 766 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/coverpage/CoverPage.ins | 65 |
2 files changed, 831 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/coverpage/CoverPage.dtx b/Master/texmf-dist/source/latex/coverpage/CoverPage.dtx new file mode 100644 index 00000000000..6b11a1183f4 --- /dev/null +++ b/Master/texmf-dist/source/latex/coverpage/CoverPage.dtx @@ -0,0 +1,766 @@ +% \iffalse +% +% CoverPage.dtx +% Docstrip archive, run through LaTeX. +% +% Copyright (C) 2006 by Matthias Mühlich +% (matthias.muehlich@lfb.rwth-aachen.de) +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +%<*driver> +\ProvidesFile{CoverPage.dtx}% + [2006/02/23 v1.01 automatic cover page generation (MM)] +\documentclass[a4paper]{ltxdoc} +\usepackage{textcomp} +\RecordChanges +%%\OnlyDescription +\begin{document} + \DocInput{CoverPage.dtx} +\end{document} +%</driver> +% +% \fi +% +% +% \CheckSum{0} +% +% \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 \~} +% +% +% \changes{v1.00}{2006/02/20}{Initial version} +% \changes{v1.01}{2006/02/23}{Names of package and macros changed as +% requested by CTAN team. Support for publisher SPIE added.} +% \GetFileInfo{CoverPage.dtx} +% +% +% \title{The \texttt{CoverPage} Package\thanks{This document +% was generated from \texttt{CoverPage.dtx}~\fileversion, dated \filedate.}} +% \author{Matthias M\"uhlich \\ \texttt{matthias.muehlich@lfb.rwth-aachen.de}} +% \date{version 1.01 \quad 23-FEB-2006} +% \maketitle +% +% \frenchspacing +% \sloppy +% +% \begin{abstract} +% The package \texttt{CoverPage} was created to supplement +% scientific papers with a cover page containing bibliographical +% information, a copyright notice, and/or some logos of the author's +% institution. The cover page is created (almost) automatically; this +% is done by parsing \BibTeX{} information corresponding to the +% main document and reading a configuration file in which the author +% can set information like the affiliation he or she is associated with. +% +% The cover page consists of header, body and footer; all three are +% macros which can be redefined using |\renewcommand|, thus allowing +% easy customization of the package. Additionally, it should be stressed +% that the cover page layout is totally \emph{independent} of the +% main document and its page layout +% (which is not the easiest thing to achieve in \LaTeX). +% +% This package requires four other packages (\texttt{keyval}, \texttt{url}, +% \texttt{textcomp}, and \texttt{verbatim}), but all of them are standard +% packages and should be part of every \LaTeX{} installation. +% \end{abstract} +% +% +% \tableofcontents +% +% +% \section*{Foreword} +% +% The best explanation for this package is an example. So first of all, +% please look at the file \texttt{ECCV2006Sample.pdf} which is part of +% this distribution. The cover page was created using +% the \texttt{CoverPage} package, and adding the cover page in front of the +% document required only adding a single line of \LaTeX{} code to the original +% source file. +% +% +% +% +% +% \section{About this Package} +% +% Researchers (like the author of this package) want to distribute their own work in the +% scientific community, either as printout or in electronic form (email or +% download). The scientific paper itself is sufficient for this purpose, but +% it is not optimal for several reasons: +% \begin{itemize} +% \item +% Other scientists need \emph{bibliographical information} on the paper +% in order to cite it properly. So let us be nice to our colleagues and +% attach this necessary information to the paper in some way. +% \item +% One should not ignore the legal subtleties. If papers are published in +% some journal or conference proceedings, one does not own the copyright +% anymore; this is especially problematic if the paper shall be +% available for download. Fortunately, most publishers have now realized +% that researchers \emph{need} to put their work on their homepages +% (otherwise, the work is widely ignored). Therefore, most publishers +% allow redistribution for scientific use provided that some special +% \emph{copyright notice} is attached to the paper. +% \item +% Last, but not least, we want our colleagues to recognize the logos of our +% excellent work group and our great university. Scientific papers are +% characterized by highly different page layouts, while a unified look of +% cover pages together with logos can help to establish a +% recognizable \emph{corporate design}. +% \end{itemize} +% All three aims can be reached by supplementing the paper with an additional cover +% page which contains all the required information. This is exactly the purpose +% of the \texttt{CoverPage} package -- and it does this job in a widely automated way. +% +% +% +% +% +% \section{Installation} +% +% The package \texttt{CoverPage} is distributed as \texttt{dtx} archive together +% with a corresponding \texttt{ins} installation script. Advanced \LaTeX{} users +% who know these file types may now install the package in the usual \LaTeX{} way +% and skip the remainder of this section. +% +% For all others: \texttt{dtx} files are text files which combine \LaTeX{} code with +% its own code documentation. The whole \LaTeX{} base system and almost all standard +% packages are distributed in this form. In order to install such files, you must +% \begin{enumerate} +% \item +% Enter \texttt{latex CoverPage.ins} at the command line. This extracts all +% necessary files from the archive (here: the \texttt{CoverPage.sty} style file +% and a \texttt{CoverPage.cfg} configuration file. +% \item{} +% [optionally:] Enter \texttt{latex CoverPage.dtx} at the command line. +% This produces a documentation of the package (user interface and code documentation). +% ^^A Package documentations often include their own \texttt{sty} file for demonstration +% ^^A purposes, so the order usually \emph{is} important. However, this is not the case for +% ^^A \texttt{CoverPage}. +% \end{enumerate} +% Note that the documentation \texttt{CoverPage.pdf} which is distributed with the +% package only contains the user interface. If you also want to take a look at the +% commented source code, you have to execute the step described above. +% +% +% \section{Setup and Usage} +% +% This package can do its job more or less automatically, but you also have access +% to every setting if you want to modify some behaviour by hand. +% +% +% \subsection{Automatic cover page creation} +% +% Ideally, you have to include just one line in your \LaTeX{} document: +% \begin{verbatim} +% \usepackage{CoverPage} +% \end{verbatim} +% That's all. But in order to make automatic cover page creation +% work properly, you have to do two things in advance: +% \begin{itemize} +% \item +% You have to create a text file containg the \BibTeX{} entry of your document. +% The file name must be \meta{mainTeXFileName}\texttt{.BibTeX.txt}. For instance, if +% you entered \texttt{pdflatex myPaper.tex} on the command line (or let some +% specialized editor issue this command), then +% the corresponding bibliographical information (and nothing more!) should be put in +% the file \texttt{myPaper.BibTeX.txt}. +% \item +% Even after parsing the \BibTeX{} data, the \texttt{CoverPage} package cannot know +% your institute, postal adress, or university logo. Fortunately, this missing data +% is not specific to the document, but can be specified once and for all, +% namely in the \texttt{CoverPage.cfg} configuration file. +% \end{itemize} +% As the cover page is directly printed at the |\begin{document}| command, +% it is clear that all cover page data settings must appear \emph{before} this command, i.e. +% in the preamble. There are three different ways how texts get on the cover page: +% parsing of the \BibTeX{} entry, settings in the config file \texttt{CoverPage.cfg}, and user input in +% the document preamble (in this order). Note that later settings can +% overwrite previous ones. +% +% +% \subsection{Options} +% +% By using |\usepackage[|\meta{optionList}|]{CoverPage}|, the user can specify +% package options. Four such options are currently supported. +% +% The language options \texttt{german} and \texttt{english} set some language-specific string in +% auto-generated document source strings. If no language is specified, it defaults to English. +% +% The option \texttt{twoside} is intended for two-sided printouts. In this case, we want the +% original document to start on an odd (right) page, so the package will print the cover page +% followed by a further empty page (the back side of the cover page). +% +% The last possible option is \texttt{nobib}. If no \BibTeX{} file exists, this package will +% stop with an error. The |nobib| option disables this behaviour and allows to proceed +% normally. Then, the cover will not contain a \BibTeX{} reference and the user will have to +% set all texts manually because no \BibTeX{} file can be parsed for the relevant data. +% +% +% \subsection{Setting cover page data by hand} +% +% Setting of cover page data either in the config file or in the document preamble +% is done with the same commands. In fact, it is just one single command (and a +% few macros, like fonts, which can be redefined using |\renewcommand|). +% +% \DescribeMacro{\CoverPageSetup} +% The command |\CoverPageSetup{|\meta{CommaSeparatedList}|}| uses the +% \texttt{keyval} package to provide a user-friendly interface for setup of +% the cover page. The \meta{CommaSeparatedList} consist of pairs +% \meta{key}|=|\meta{value}. If \meta{value} contains one or more +% commas, it must be enclosed in braces. A good example is the setting of the +% institute which can be centralized in the config file: +% \begin{verbatim} +% \CoverPageSetup{institute = +% {Institute of Imaging and Computer Vision\\ +% RWTH Aachen University, 52056 Aachen, Germany\\ +% tel: +49 241 80 27860, fax: +49 241 80 22200\\ +% web: www.lfb.rwth-aachen.de}} +% \end{verbatim} +% Allowed keys are: +% \begin{itemize} +% \item +% The keys |title|, |author|, |institute|, |insource|, and +% |copyright| set the corresponding texts in the cover page. +% \item +% An automatic copyright notice can be created with |year = |\meta{year} +% and a known |publisher| key. In the current version, the package +% recognizes |Springer| (copyright text is correct for lecture notes +% on computer science (LNCS) series), |Kluwer|, |SPIE| and |IEEE|. For these +% publishers, the copyright notice requested by the corresponding publisher is +% created automatically. +% \item +% An automatic source information is created if the keys |booktitle| or +% |journal| are defined. In this case, the source text reads: ``in: +% \meta{booktitle$\vert$journal}. \meta{referenceToBibTeXEntry}'' where +% \meta{referenceToBibTeXEntry} is a language dependent text. The +% current version supports the package options \texttt{german} and +% \texttt{english} (default). +% \end{itemize} +% Note that parsing the \BibTeX{} entry routes the information through the same +% \texttt{keyval} interface which is also used for the manual setup. +% The above information on the automatic generation +% of copyright or source information also holds if the \BibTeX{} entry contains +% the necessary keywords. Currently supported \BibTeX{} type identifiers are +% |@article|, |@inproceedings|, |@incollection|, and |@misc|. +% +% +% \subsection{Customization} +% +% \DescribeMacro{\CPTitleFont} +% \DescribeMacro{\CPAuthorFont} +% \DescribeMacro{\CPInstituteFont} +% \DescribeMacro{\CPInSourceFont} +% \DescribeMacro{\CPCopyrightFont} +% The five texts for title, author, institute, source, and copyright are all +% associated with an individual font. The standard definitions are +% \begin{verbatim} +% \newcommand{\CPTitleFont}{\Huge\sffamily\bfseries\upshape} +% \newcommand{\CPAuthorFont}{\LARGE\sffamily\mdseries\upshape} +% \newcommand{\CPInstituteFont}{\Large\sffamily\mdseries\upshape} +% \newcommand{\CPInSourceFont}{\large\sffamily\mdseries\upshape} +% \newcommand{\CPCopyrightFont}{\large\sffamily\mdseries\upshape} +% \end{verbatim} +% but you can change these setting with |\renewcommand|. +% +% \DescribeMacro{\CoverPageHeader} +% \DescribeMacro{\CoverPageBody} +% \DescribeMacro{\CoverPageFooter} +% \DescribeMacro{\CoverPageFooterLogo} +% The cover page consists of three parts: header, body, footer. These parts are +% encapsulated as macros which allow redefinition. For instance, the header is +% empty by default, but +% \begin{verbatim} +% \renewcommand{\CoverPageHeader}{% +% \includegraphics[width=\textwidth]{lfbheader}} +% \end{verbatim} +% tells \texttt{CoverPage} to use a graphics, scaled to full width. The same holds for +% |\CoverPageBody| and |\CoverPageFooter| (cf. code documentation at the +% end for the default definitions). The footer, however, contains more or less +% fixed parts (\BibTeX{} info and copyright notice), so it offers another point of +% entry for easy user customization: The macro |\CoverPageFooterLogo| defines the +% contents of the lower right corner; for instance, this could be used to display +% a university logo. +% +% Costumization commands which are needed on a regular basis should be put in +% the config file \texttt{CoverPage.cfg}. Please do not modify the style file +% \texttt{CoverPage.sty} directly. +% +% +% +% +% \StopEventually{} +% +% +% +% +% \section{Implementation Part I -- Initialization} +% +% From now on, we describe the code of the file \texttt{CoverPage.dtx}. +% It is mainly intended for the advanced \LaTeX{} user who wants to understand +% how this package works. +% +% +% \subsection{Identification} +% +% The first line indicates the begin of the \texttt{CoverPage.sty} code. +% Then we check that the \LaTeX{} version is not too old and the package +% identifies itself. +% +% \begin{macrocode} +%<*CoverPage> +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{CoverPage}% + [2006/02/23 v1.01 automatic cover page generation (MM)] +% \end{macrocode} +% +% +% \subsection{Required Packages} +% +% We need the following packages: +% \begin{itemize} +% \item +% \texttt{keyval}: our package can be customized using the \texttt{keyval} +% interface, which is e.g. known from the \texttt{graphicx} package. +% \item +% \texttt{textcomp}: mainly for |\textcopyright| (the \textcopyright{} symbol) +% \item +% \texttt{url}: for typesetting URLs. +% \item +% \texttt{verbatim}: listing of the \BibTeX{} entry. +% \end{itemize} +% These are the next four lines of our code: +% \begin{macrocode} +\RequirePackage{keyval} +\RequirePackage{textcomp} +\RequirePackage{url} +\RequirePackage{verbatim} +% \end{macrocode} +% +% +% \subsection{Switches and options} +% +% Now we can implement the options. +% The macros |\CP@BibRef| (default: ``See also \BibTeX{} entry below.'') +% and |\CP@In| (default: ``in:'') are initialized in English and can be +% overwritten by language options (no further action is necessary for |\CP@In| +% as German and English, the only supported languages in this version, are +% identical here). +% +% For the option |twoside| (two-sided printout; cover page must get a blank +% back side), we define a command which is to be appended at the end of +% the cover page creation macro. By default, it does nothing, but with the +% |twoside| option, we pass an empty box to |\shipout| instead, thus printing +% an empty page. Note that global options are automatically passed on to +% packages, so specifying |twoside| as option in |\documentclass| should be +% sufficient. +% \begin{macrocode} +\newif\ifCP@nobib\CP@nobibfalse +\gdef\CP@BibRef{See also \BibTeX{} entry below.} +\gdef\CP@In{in:} +\let\CP@AdvancePageTwoSided\relax +\DeclareOption{german}{\gdef\CP@BibRef{Siehe auch \BibTeX{} Eintrag unten.}} +\DeclareOption{english}{\gdef\CP@BibRef{See also \BibTeX{} entry below.}} +\DeclareOption{twoside}{\gdef\CP@AdvancePageTwoSided{\setbox255\vbox{}\shipout\box255}} +\DeclareOption{nobib}{\CP@nobibtrue} +\ProcessOptions\relax +% \end{macrocode} +% +% +% \subsection{New register definitions} +% +% Our cover page shall have 0.75 inch margin on each side. Width and height are defined +% in the two dimension registers |\CP@CoverPageWidth| and |\CP@CoverPageHeight| +% which we first define and then compute from the total paper size. +% +% \begin{macrocode} +\newdimen\CP@CoverPageWidth +\newdimen\CP@CoverPageHeight +\CP@CoverPageWidth=\paperwidth +\CP@CoverPageHeight=\paperheight +\advance\CP@CoverPageWidth by -1.5in +\advance\CP@CoverPageHeight by -1.5in +% \end{macrocode} +% +% +% \subsection{Text macros} +% +% The text on the cover page consists of five macros: title, author, institute, the +% source where the paper can be found and a copyright notice. +% +% \begin{macrocode} +\def\CP@Title{title undefined} +\def\CP@Author{author undefined} +\def\CP@Institute{institute undefined} +\def\CP@InSource{source undefined} +\def\CP@Copyright{\textcopyright{} copyright by the author(s)} +% \end{macrocode} +% +% Additional, we define macros for constructing source and copyright notice +% automatically. +% +% \begin{macrocode} +\def\CP@Year{(unknown year)} +\def\CP@Source{(unknown source)} +% \end{macrocode} +% +% At the end, we `steal' a definition from the \texttt{doc} package. +% +% \begin{macrocode} +\@ifundefined{BibTeX} + {\def\BibTeX{{\rmfamily B\kern-.05em% + \textsc{i\kern-.025em b}\kern-.08em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} +% \end{macrocode} +% +% +% +% +% +% \section{Implementation Part II -- Internal Commands} +% +% This section contains some internal commands defined in \texttt{CoverPage}. +% These macros all start with |CP@|; please do not use them because they +% are not part of the user interface and might be redefined in future versions. +% +% +% \subsection{Define and read bibliography file} +% +% If \texttt{nobib} option is not set, do the following: +% Check if file exists. If so, store argument of |@inproceedings| or +% |@article| for later parsing. In order to achieve this, we temporarily (i.e. +% locally) define macros |\inproceedings| and |\article| and tell \LaTeX{} +% that the |@| has category code 0 (i.e. it starts macros) when reading the file. +% +% After execution of |\article| or any of the other similar commands, +% |\CP@ParseArg| contains the argument of the \BibTeX{} entry. +% Later on, when parsing the argument, we must throw away the \BibTeX{} keyword +% and the comma which it seperates from the interesting \meta{key}|=|\meta{value} +% list. This is the reason why |\CP@ParseArg| is initialized with |dummy,|. +% If the \BibTeX{} file does not exist, we report an error. +% \begin{macrocode} +\gdef\CP@ParseArg{dummy,} +\ifCP@nobib +\else + \IfFileExists{\jobname.BibTeX.txt}{% + \bgroup + \catcode`\@0 + \bgroup + \def\inproceedings##1{\xdef\CP@ParseArg{##1}}% + \def\article##1{\xdef\CP@ParseArg{##1}}% + \def\incollection##1{\xdef\CP@ParseArg{##1}}% + \def\misc##1{\xdef\CP@ParseArg{##1}}% + \input{\jobname.BibTeX.txt}% + \egroup + \egroup + }{% + \PackageError{CoverPage}{No BibTeX file (\jobname.BibTeX.txt) found!}% + {you must provide a \jobname.BibTeX.txt file}% + } +\fi +% \end{macrocode} +% +% +% \subsection{Interface setup (with \texttt{keyval})} +% +% We then define a series of \texttt{keyval} keys which will be used by both +% \BibTeX{} parser and user interface. The first commands are for automatic +% creation of source data. +% +% The source field is defined as "in: \meta{source}", followed by a language-specific +% reference to the \BibTeX{} entry if the \BibTeX{} class defines defines a +% main source of reference. Predefined are: |booktitle| (e.g. for |@inproceedings|) and +% |journal| (for |@article|). +% +% \begin{macrocode} +\def\CP@SourceGiven{\gdef\CP@InSource{\CP@In\ \CP@Source. \CP@BibRef}} +\define@key{CoverPage}{booktitle}{\gdef\CP@Source{#1}\CP@SourceGiven} +\define@key{CoverPage}{journal}{\gdef\CP@Source{#1}\CP@SourceGiven} +% \end{macrocode} +% +% The next five keys define the five default text strings. +% +% \begin{macrocode} +\define@key{CoverPage}{title}{\gdef\CP@Title{#1}} +\define@key{CoverPage}{author}{\gdef\CP@Author{#1}} +\define@key{CoverPage}{institute}{\gdef\CP@Institute{#1}} +\define@key{CoverPage}{insource}{\gdef\CP@InSource{#1}} +\define@key{CoverPage}{copyright}{\gdef\CP@Copyright{#1}} +% \end{macrocode} +% +% Then we check whether we have enough information to create the copyright +% notice automatically. Also note that we introduce a macro |CPPublisherCheck|; +% experienced \LaTeX{} users may use this to set up further publisher--copyright +% tests like the ones which are predefined. +% +% \begin{macrocode} +\define@key{CoverPage}{year}{\gdef\CP@Year{#1}} +\define@key{CoverPage}{publisher}{% + \edef\CP@Publisher{#1}% + \def\CP@Compare{Springer}% + \ifx\CP@Publisher\CP@Compare + \gdef\CP@Copyright{\textcopyright\ \CP@Year\ Springer-Verlag.\\ + See also LNCS-Homepage: \url{http://www.springeronline.com/lncs}}% + \else + \def\CP@Compare{IEEE}% + \ifx\CP@Publisher\CP@Compare + \gdef\CP@Copyright{\textcopyright\ \CP@Year\ IEEE. Personal use of this + material is permitted. However, permission to reprint/republish this + material for advertising or promotional purposes or for creating new + collective works for resale or redistribution to servers or lists, or + to reuse any copyrighted component of this work in other works must + be obtained from the IEEE.}% + \else + \def\CP@Compare{SPIE}% + \ifx\CP@Publisher\CP@Compare + \gdef\CP@Copyright{\textcopyright\ \CP@Year\ Society of Photo-Optical + Instrumentation Engineers. This paper was published in \CP@Source\ + and is made available as an electronic reprint with permission of + SPIE. One print or electronic copy may be made for personal use only. + Systematic or multiple reproduction, distribution to multiple + locations via electronic or other means, duplication of any material + in this paper for a fee or for commercial purposes, or modification + of the content of the paper are prohibited.}% + \else + \def\CP@Compare{Kluwer}% + \ifx\CP@Publisher\CP@Compare + \gdef\CP@Copyright{\textcopyright\ \CP@Year\ Kluwer Academic Publishers}% + \else + \CPPublisherCheck + \fi + \fi + \fi + \fi +} +\def\CPPublisherCheck{\relax} +% \end{macrocode} +% +% +% \subsection{Parsing and interpretation of the bibliography file} +% +% We parse the \BibTeX{} file using a two step macro expanding mechanism to eliminate +% the \BibTeX{} keyword. +% One should also mention that we (locally) disabled errors for unknown keys in +% \texttt{keyval}. The macro |\KV@errx| which is used here is no part of the official +% \texttt{keyval} user interface, but it is the only way to do it; we do not want to +% disable \texttt{keyval} error checking in general. +% \begin{macrocode} +\gdef\CPProcessBibEntry{% + \edef\temp{\noexpand\CP@killBibTeXKeyword\CP@ParseArg\par}% + \def\CP@killBibTeXKeyword##1,##2\par{##2}% + \edef\tempii{\noexpand\setkeys{CoverPage}{\temp}}% + \bgroup + \def\KV@errx##1{\relax}% keyval: ignore unknown keys + \tempii + \egroup +} +% \end{macrocode} +% +% +% \subsection{Printing of cover page} +% +% The printing of a page whose page layout is different from the remaining document +% is a difficult job. We solve this by going deep down to \TeX{} internals, namely +% the |\shipout| procedure which is called every time a page is assembled +% completely (which is always done in the internal box register 255). We just compile +% our own box 255 and give it to |\shipout|. Note the shift of the upper left +% corner; this is due to the fact that the reference point is 1 inch from left and top +% paper border. +% \begin{macrocode} +\newcommand{\CP@PrintCoverPage}{\bgroup\global\setbox255\vbox{% + \vspace*{-.25in}% + \noindent\hspace*{-.25in}% + \rlap{\begin{minipage}[t][\CP@CoverPageHeight][c]{\CP@CoverPageWidth}% + {\CoverPageHeader}% + \vfill% + {\CoverPageBody}% + \vfill% + {\CoverPageFooter}% + \end{minipage}}% +}\egroup\shipout\box255} +% \end{macrocode} +% +% This function is automatically called at |\begin{document}|. Additionally, we +% advance a page in two-sided mode. +% +% \begin{macrocode} +\AtBeginDocument{\CP@PrintCoverPage\CP@AdvancePageTwoSided} +% \end{macrocode} +% +% +% +% +% +% \section{Implementation Part III -- User Interface} +% +% All macros explained in the `Usage' section can be found here. +% The user can change fonts, has access to the \texttt{keyval} interface and can +% redefine cover page composition. Change with |\renewcommand| if you want to. +% +% +% \subsection{Set fonts} +% +% We first define fonts for the five main text areas. +% +% \begin{macrocode} +\newcommand{\CPTitleFont}{\Huge\sffamily\bfseries\upshape} +\newcommand{\CPAuthorFont}{\LARGE\sffamily\mdseries\upshape} +\newcommand{\CPInstituteFont}{\Large\sffamily\mdseries\upshape} +\newcommand{\CPInSourceFont}{\large\sffamily\mdseries\upshape} +\newcommand{\CPCopyrightFont}{\large\sffamily\mdseries\upshape} +% \end{macrocode} +% +% +% \subsection{Access to \texttt{keyval} interface} +% +% Pass arguments on to \verb!\setkeys! from \texttt{keyval} package. +% \begin{macrocode} +\newcommand{\CoverPageSetup}[1]{\setkeys{CoverPage}{#1}} +% \end{macrocode} +% +% +% \subsection{Definition of cover page} +% +% The header is empty by default: +% \begin{macrocode} +\newcommand{\CoverPageHeader}{} +% \end{macrocode} +% +% The body consists of: [rule] - title --- author - institute --- source - [rule] +% +% \begin{macrocode} +\newcommand{\CoverPageBody}{% + \parbox{\linewidth}{% + \centering% + \rule{\linewidth}{1.5pt}\par + \vspace*{2mm} + {\CPTitleFont\CP@Title\par} + \vspace{5mm} + {\CPAuthorFont\CP@Author\par} + \vspace{1mm} + {\CPInstituteFont\CP@Institute\par} + \vspace{5mm} + {\CPInSourceFont\CP@InSource\par} + \vspace*{2mm} + \rule{\linewidth}{1.5pt}\par + }% +} +% \end{macrocode} +% +% The footer contains the \BibTeX{} entry, the copyright notice and info/logo +% at the bottom. Footer info is some document info; the logo is empty by default. +% +% \begin{macrocode} +\newcommand{\CoverPageFooter}{% + \normalfont + \ifCP@nobib + \else + \noindent\textsf{\large \BibTeX:} + {\small\verbatiminput{\jobname.BibTeX.txt}\par}% + \vspace{5mm}% + \fi + {\CPCopyrightFont\CP@Copyright\par} + \vspace{10mm} + {\CoverPageFooterInfo\hfill\CoverPageFooterLogo} +} +\newcommand{\CoverPageFooterInfo}{% + \parbox[b]{.5\textwidth}{% + \tiny document created on: \today\\ + created from file: \texttt{\jobname.tex}\\ + cover page automatically created with \texttt{CoverPage.sty}\\ + (available at your favourite CTAN mirror)% + }% +} +\newcommand{\CoverPageFooterLogo}{} +% \end{macrocode} +% +% +% +% +% +% \subsection{Start actions} +% +% At the end of this package, we process \BibTeX{} entry and read the config file. +% The order is important: if both contain e.g. an entry for \texttt{institute}, the +% last setting overrides the first one. The config file is given the higher priority +% here. +% +% \begin{macrocode} +\CPProcessBibEntry +\IfFileExists{CoverPage.cfg}% + {\input{CoverPage.cfg}}% + {\PackageWarning{CoverPage}{No config file (CoverPage.cfg) found!}} +%</CoverPage> +% \end{macrocode} +% +% The |%</CoverPage>| guard signals the end of the \texttt{CoverPage.sty} code. +% +% +% +% +% +% \section{Config File} +% +% The code for the sample config file is also stored in \texttt{CoverPage.dtx}. +% It is written to \texttt{CoverPage.cfg} including all comments and without +% preamble or postamble from \texttt{docstrip} such that it is easy to understand +% for the human user. +% +% \begin{macrocode} +%<*CoverPageCFG> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Config file for ExtraTitlePage +%% +%% This file "CoverPage.cfg" is read by "CoverPage.sty" +%% (if it exists). Use it to define default settings, e.g. for your +%% institute or your group logo. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% set institute +%% (the only information which cannot be extracted from BibTeX entry) +\CoverPageSetup{institute = {Institute of Applied Nonsense}} + +%% redefine header, body, or footer with \renewcommand +\renewcommand{\CoverPageHeader}{% + \LARGE\bfseries% + \dotfill{} This is my header \dotfill} +\renewcommand{\CoverPageFooterLogo}{% + \Huge\sffamily% + L-O-G-O} + + +%% These are "our" settings: +%%\CoverPageSetup{institute = {Institute of Imaging and Computer Vision\\ +%% RWTH Aachen University, 52056 Aachen, Germany\\ +%% tel: +49 241 80 27860, fax: +49 241 80 22200\\ +%% web: www.lfb.rwth-aachen.de}} +%%\renewcommand{\CoverPageHeader}{\includegraphics[width=\textwidth]{lfbheader}} +%%\renewcommand{\CoverPageFooterLogo}{\includegraphics[width=.35\textwidth]{rwthlogo}} +%</CoverPageCFG> +% \end{macrocode} +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/coverpage/CoverPage.ins b/Master/texmf-dist/source/latex/coverpage/CoverPage.ins new file mode 100644 index 00000000000..7c9e2a038db --- /dev/null +++ b/Master/texmf-dist/source/latex/coverpage/CoverPage.ins @@ -0,0 +1,65 @@ +%% +%% CoverPage.ins +%% Batch file, run through LaTeX. +%% Installs CoverPage.sty from CoverPage.dtx +%% +%% Copyright (C) 2006 by Matthias Mühlich +%% (matthias.muehlich@lfb.rwth-aachen.de) +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +\input docstrip.tex +\keepsilent +\usedir{tex/latex/LfBTools} +\preamble + +LaTeX package for generating a cover page for scientific papers. This +cover page contains bibliographical information and a copyright notice. + +Copyright (C) 2006 Matthias Mühlich + +This file may be distributed and/or modified under the conditions of +the LaTeX Project Public License, either version 1.2 of this license +or (at your option) any later version. The latest version of this +license is in: + + http://www.latex-project.org/lppl.txt + +and version 1.2 or later is part of all distributions of LaTeX version +1999/12/01 or later. + +\endpreamble +%%\askforoverwritefalse +\generate{% + \file{CoverPage.sty}{\from{CoverPage.dtx}{CoverPage}} + \nopreamble\nopostamble + \file{CoverPage.cfg}{\from{CoverPage.dtx}{CoverPageCFG}} +} +\Msg{**************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by LaTeX:} +\Msg{*} +\Msg{* \space\space CoverPage.sty} +\Msg{* \space\space CoverPage.cfg} +\Msg{*} +\Msg{* You should adapt the configuration file "CoverPage.cfg"} +\Msg{* to your needs.} +\Msg{*} +\Msg{* To produce the documentation run the following file} +\Msg{* through LaTeX:} +\Msg{*} +\Msg{* \space\space CoverPage.dtx} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{**************************************************************} +\endbatchfile |