diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:51:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:51:40 +0000 |
commit | 2f3f672bbb24f022f492d7c7d1b1cb8a1b6f819f (patch) | |
tree | 4b942b4ced1d5a0daaad4deb59b63fb53994c04b /Master/texmf-dist/source/latex/cd-cover | |
parent | 0e993e8ce102e7ef33792c17263fc192569bbe08 (diff) |
trunk/Master/texmf-dist/source/latex/cd-cover
git-svn-id: svn://tug.org/texlive/trunk@185 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/cd-cover')
-rw-r--r-- | Master/texmf-dist/source/latex/cd-cover/cd-cover.dtx | 1113 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/cd-cover/cd-cover.ins | 78 |
2 files changed, 1191 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/cd-cover/cd-cover.dtx b/Master/texmf-dist/source/latex/cd-cover/cd-cover.dtx new file mode 100644 index 00000000000..06470d14bcb --- /dev/null +++ b/Master/texmf-dist/source/latex/cd-cover/cd-cover.dtx @@ -0,0 +1,1113 @@ +%\iffalse % -*- mode: latex -*- +% +% +% $Id: cd-cover.dtx,v 1.6 2002/01/28 14:30:44 cholm Exp $ +% +%<*driver> +{\makeatother + \gdef\CVSKeyword$#1 ${\expandafter\cCVSKeyword#1\endcCVSKeyword\relax} +\gdef\cCVSKeyword#1: #2\endcCVSKeyword{% +\expandafter\gdef\csname CVS#1\endcsname{#2}} +} +\CVSKeyword$Date: 2002/01/28 14:30:44 $ +\CVSKeyword$Revision: 1.6 $ +\CVSKeyword$Id: cd-cover.dtx,v 1.6 2002/01/28 14:30:44 cholm Exp $ +\CVSKeyword$Author: cholm $ +\def\docdate{\CVSDate} % Format is YYYY/MM/DD +\def\fileversion{v1.4 Beta} % Remember to update in class too +\def\filedate{\CVSDate} % around ProvideClass +\documentclass{ltxdoc} +\usepackage{rotating} +\title{The \textsf{cd-cover} class\thanks{Previously a package}\\ + Version \fileversion\\[-1ex] + {\small CVS Revision: \CVSRevision}} +\author{Christian Holm\thanks{E--mail: \texttt{cholm@nbi.dk}}} +\date{\docdate\\ + {\small CVS Date: \CVSDate}} +\AlsoImplementation +\CodelineIndex +\EnableCrossrefs +\RecordChanges +\parindent=0pt +\parskip=1ex +\begin{document} +\maketitle +\tableofcontents +\DocInput{cd-cover.dtx} +\PrintIndex +\end{document} +%</driver> +%\fi +% \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 \~} +% +% \section{Introduction} +% +% This is an $\beta$ release of the \textsf{cd-cover} class. This was +% previously a package, but since a class is actually more appropiate +% for the commands and macros herein, this new version switches to a +% class implementation. +% +% A number of improvements has been made in this release. The whole +% scheme of things has taken a drastic turn, providing many new +% advantages (see also section~\ref{sec:psscheme}). +% +% Bug reports, suggestions, praises, but not flames should be sent to +% \texttt{cholm@nbi.dk}. Please submit changes in form of patches to +% the most recent \texttt{cd-cover.dtx} file\footnote{Avaliable from +% CTAN in \texttt{macros/latex/contrib/other/cd-cover}.}. Patches are +% easily generated with +% \begin{quote} +% {\ttfamily +% diff -c \meta{original-file} \meta{new-file} > +% \meta{patch-file}} +% \end{quote} +% on any reasonable system. This makes merging changes into the class +% much eaiser, and the changes will more like be included in the +% normal distribution. +% +% \section{Usage} +% +% In this release four environments are provided: +% \begin{itemize} +% \item \textsf{bookletsheets} is for typesetting booklet pages for +% normal CD covers (plastic cover). +% \item \textsf{backssheet} is for typesetting the back side for +% normal CD covers. +% \item \textsf{backssheet*} Special version of the above, that +% rotates the back title the other way. Useful for typesetting +% double jewelcase covers, and for some nationalities (e.g., German) +% that like the title to run opposite to that of English. +% \item \textsf{sleevesheet} is for typesetting paper sleeves for CDs, +% for example if you lost the plastic one, or don't like the space +% they take up, or whatever. +% \item \textsf{singlesheet} is for typeseting covers for plastic +% single CD covers. +% \end{itemize} +% +% \subsection{Syntax} +% +% The syntax of these environments is: +% \begin{quote} +% |\begin{bookletsheets}|\meta{your text}|\end{bookletsheets}|\\ +% |\begin{backsheet}|\marg{title}\meta{your text}|\end{backsheet}|\\ +% |\begin{backsheet*}|\marg{title}\meta{your text}|\end{backsheet*}|\\ +% |\begin{sleevesheet}|\meta{your text}|\end{sleevesheet}|\\ +% |\begin{singlesheet}|\marg{title}\marg{slip text}\meta{your text} +% |\end{singlesheet}| +% \end{quote} +% +% Here \marg{title} is the title on the back of the covers, \marg{slip +% text} is the text that should go on the back slip of the single type +% cover. +% +% In figure~\ref{fig:exa:booklet} to~\ref{fig:exa:single} there +% are some examples of these environments. +% +% \begin{figure}[htbp] +% \setlength{\unitlength}{.5mm}% +% \begin{picture}(240,120)(0,-120)% +% \put(0,0){\line(1,0){240}}% +% \put(0,0){\line(0,-1){120}}% +% \put(0,-120){\line(1,0){240}}% +% \put(240,0){\line(0,-1){120}}% +% \put(120,0){\line(0,1){5}}% +% \put(120,-120){\line(0,-1){5}}% +% \multiput(120,-1)(0,-5){24}{\line(0, -1){3}} % +% \put(110,2){\vector(1,0){10}}% +% \put(75,1){Fold here}% +% \put(125,-10){Hello World} +% \put(5,-10){Hello World Again} +% \end{picture} +% \caption{Example of \textsf{bookletsheets} output} +% \label{fig:exa:booklet} +% \end{figure} +% +% \begin{figure}[htbp] +% \setlength{\unitlength}{.5mm}% +% \begin{picture}(151,118)(0,-118)% +% \put(0,0){\line(1,0){151}}% +% \put(0,-118){\line(1,0){151}}% +% \put(0,0){\line(0,-1){118}}% +% \put(151,0){\line(0,-1){118}}% +% \put(7,0){\line(0,1){5}}% +% \put(7,-118){\line(0,-1){5}}% +% \multiput(7,-1)(0,-5){24}{\line(0, -1){3}} +% \put(144,0){\line(0,1){5}} +% \put(144,-118){\line(0,-1){5}} +% \multiput(144,-1)(0,-5){24}{\line(0, -1){3}} +% \put(17,2){\vector(-1,0){10}}% +% \put(17,1){Fold here}% +% \put(134,2){\vector(1,0){10}}% +% \put(99,1){Fold here}% +% \put(6,-118){\begin{rotate}{90}Hello World\end{rotate}}% +% \put(145,0){\begin{rotate}{-90}Hello World\end{rotate}}% +% \put(13,-10){Hello World Again}% +% \end{picture} +% \caption{Example of \textsf{backsheet} output} +% \label{fig:exa:back} +% \end{figure} +% +% \begin{figure}[htbp] +% \setlength{\unitlength}{.5mm}% +% \begin{picture}(266,123)(0,-123)% +% \put(0,0){\line(3,4){6}}% +% \put(6,8){\line(1,0){121}}% +% \put(133,0){\line(-3,4){6}}% +% \multiput(130,-1)(0,-5){24}{\line(0, -1){3}} % +% \put(50,1){Fold and clue}% +% \put(0,-123){\line(3,-4){6}}% +% \put(6,-131){\line(1,0){121}}% +% \put(133,-123){\line(-3,-4){6}}% +% \put(50,-127){Fold and clue}% +% \put(0,0){\line(1,0){266}}% +% \put(0,0){\line(0,-1){123}}% +% \put(0,-123){\line(1,0){266}}% +% \put(266,0){\line(0,-1){123}}% +% \end{picture} +% \caption{Example of \textsf{sleevesheet} output} +% \label{fig:exa:sleeve} +% \end{figure} +% +% \begin{figure}[htbp] +% \setlength{\unitlength}{.5mm}% +% \begin{picture}(137,120)(0,-120)% +% \put(0,0){\line(0,-1){116}}% +% \put(0,0){\line(1,0){36}}% +% \put(36,0){\line(0,1){2}}% +% \put(15,0){\line(0,1){5}}% +% \multiput(15,-1)(0,-5){24}{\line(0, -1){3}} % +% \put(18,0){\line(0,1){5}}% +% \multiput(18,-1)(0,-5){24}{\line(0, -1){3}} % +% \put(36,2){\line(1,0){119}}% +% \put(155,2){\line(0,-1){120}}% +% \put(0,-116){\line(1,0){36}}% +% \put(36,-116){\line(0,-1){2}}% +% \put(15,-116){\line(0,-1){5}}% +% \put(18,-116){\line(0,-1){5}}% +% \put(36,-118){\line(1,0){119}}% +% \put(5,4){\vector(1,0){10}}% +% \put(28,4){\vector(-1,0){10}}% +% \put(28,3){Fold here}% +% \put(0,0){\begin{rotate}{-90}Hello World\end{rotate}}% +% \put(15,0){\begin{rotate}{-90}Hello World Again\end{rotate}}% +% \end{picture} +% \caption{Example of \textsf{singlesheet} output} +% \label{fig:exa:single} +% \end{figure} +% \subsection{User setup} +% +% For each of the four environments, two user configurable lengths are +% defined. One is |\CD|\meta{type}|TopMargin|, which determins the +% vertical space from the cover border to \meta{your text}. The other +% is |\CD|\meta{type}|Margin| which determins the horizontal space +% between the border and \\meta{your text}. The default values for +% these lengths are 5mm. +% +% Here is the complete list of the lengths +% +% \DeleteShortVerb{\|} +% \begin{tabular}{|ll|} +% \hline +% \MakeShortVerb{\|}% +% |\CDbookletTopMargin|& |\CDbackTopMargin| \\ +% |\CDbookletMargin| & |\CDbackMargin| \\ +% |\CDsleeveTopMargin| & |\CDsingleTopMargin|\\ +% |\CDsleeveMargin| & |\CDsingleMargin| \\ +% \hline +% \end{tabular} +% +% For example, if you want to put a picture that fills out a +% complete page of the booklets, you can set |\CDbookletTopMargin| and +% |\CDbookletMargin| to |0pt|. For example +% \begin{verbatim} +% \documentclass{cd-cover} +% \usepackage{epsfig} +% \begin{document} +% \parindent=0pt +% \parskip=0pt +% \CDbookletTopMargin=0pt +% \CDbookletMargin=0pt +% \begin{bookletsheets} +% \vspace{5mm} % These are specific for the file rh61img.ps +% \hspace{5mm} +% \begin{center} +% {\LARGE Debian GNU/Linux 2.2r5 --- potato} +% \end{center} +% \epsfig{file=rh61img.ps,width=11.99cm} +% \end{bookletsheets} +% \end{document} +% \end{verbatim} +% +% Note that the graphics should not be 12cm exactly, but rahter +% slightly less, say 11.99cm like above. This is to make sure that it +% only takes up one page, so that \LaTeX{} will not start a new page. +% +% \section{Credits} +% +% Many people have come up with suggestions, bugs, improvements to the +% first package version of \textsf{cd-cover}, and I'd like to thank +% them, especially for thier patience in me, for not getting this out +% sooner. So thanks to +% James A.\ Bednar, +% Steven Buehler, +% Patrik Carlsson, +% Jim Clark, +% Lionel Cons, +% Joerg Desch, +% Stefan A.\ Deutscher, +% Holger Dewes, +% Stephen Gildea, +% Anders Bruun Olsen, +% Rolf Niepraschk, +% Mark Peade, +% Dominik Roettsches, +% Carsten Sch\"afer, +% C.\ J.\ Walker, +% and +% Rainer Wiener. +% I may have forgotten some, for which I apologize. +% +% And of course thanks to Donald E.\ Knuth for \TeX, Leslie Lamport +% for \LaTeX, Robin Fairbairns for CTAN and being very patient with +% me. +% +% \section{Copyright} +% +% \LaTeXe{} class \textsf{cd-cover} for typesetting a variaty of cd +% covers Copyright \copyright 1999 Christian Holm |<cholm@nbi.dk>| +% +% This class is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the +% \begin{quote} +% Free Software Foundation, Inc.\\ +% 675 Mass Ave\\ +% Cambridge\\ +% MA 02139\\ +% USA +% \end{quote} +% +% \section{Implementation} +% +%\iffalse +%<*class> +%\fi +% +% \subsection{Initializing} +% +% \subsubsection*{Identification} +% +% First we must, as any good package or class should, identify +% ourselves, and tell what format we need. In this case it is ofcourse +% \LaTeXe{}. +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\def\fileversion{v1.4} +\def\filedate{2002/01/28} % Format is YYYY/MM/DD +\ProvidesClass{cd-cover}[\filedate\space\fileversion +\space cd-cover class.] +% \end{macrocode} +% +% \subsubsection*{Lengths or dimensions} +% +% The next thing is to setup some lengths (dimensions) we need for +% various purposes. There is two temporary lengths |\temp@length| and +% |\temp@@length|, for use in variuos calculations; along width margin +% lengths, two for each type of environment, one for the odd pages +% |\booklet@odd@margins|, |\back@odd@margins|, |\sleeve@odd@margins|, +% and |\single@odd@margins|, and ofcourse the corrosponding for the +% even pages |\booklet@even@margins|, |\back@even@margins|, +% |\sleeve@even@margins|, and |\single@even@margins|. These margin +% lengths is used so that we may do two--sided printing where the +% various covers align. +% \begin{macrocode} +\newlength{\temp@length} +\newlength{\temp@@length} +\newlength{\booklet@even@margins} +\newlength{\booklet@odd@margins} +\newlength{\back@even@margins} +\newlength{\back@odd@margins} +\newlength{\sleeve@even@margins} +\newlength{\sleeve@odd@margins} +\newlength{\single@even@margins} +\newlength{\single@odd@margins} +% \end{macrocode} +% +% \subsubsection*{Options} +% +% \begin{macro}{\cd@cover@setup@margins} +% This command sets up a number of dimensions, so that when doing +% two--side printing, the covers will be align on each side of the +% paper, and can neatly be cut out to provide a double--sided booklet, +% sleeve or cover. This is not implemeted fully yet. What is here is +% good for the booklet, but doesn't work for single other types of +% covers. It's mainly the horizontal alignment that's the problem. +% \begin{macrocode} +\def\cd@cover@setup@margins{ + % This is some old stuff, that I'm not sure is needed, but I leave it + % \global\paperheight=\temp@length + % \global\paperwidth=\temp@@length + \advance\temp@length-\booklet@height + \divide\temp@length2 + \advance\temp@length-1in + \advance\temp@length-\headheight + \global\topmargin=\temp@length + \advance\temp@@length-\booklet@width + \divide\temp@@length2 + \advance\temp@@length-1in + \oddsidemargin=\temp@@length} +\AtBeginDocument{\cd@cover@setup@margins} +% \end{macrocode} +% \end{macro} +% We also provide a number of options, to specify the papersize. +% Notice, that since the \textsf{article} class will set the paper +% size, we use temporary local variables to hold the information, and +% then in |\cd@cover@setup@margins| we set the right dimensions. +% \begin{macrocode} +\DeclareOption{a4paper}{ + \global\temp@length=210mm + \global\temp@@length=297mm} +\DeclareOption{letterpaper}{ + \global\temp@length=8.5in + \global\temp@@length=11in} +\DeclareOption{legalpapar}{ + \setlength\temp@length{8.5in} + \setlength\temp@@length{14in}} +\DeclareOption{executivepaper}{ + \setlength\temp@length{7.25in} + \setlength\temp@@length{10.5in}} +% \end{macrocode} +% Notice, that some standard papersizes produces an error message, as +% they will be too small to hold the covers. +% \begin{macrocode} +\DeclareOption{a5paper}{\cd@cover@paper@error{a5paper}} +\DeclareOption{b5paper}{\cd@cover@paper@error{b5paper}} +% \end{macrocode} +% Also, all papersizes are already in `landscape' +% version\footnote{compared to the normal defintions in +% \texttt{article.cls}.} so the \textsf{landscape} option is redundent +% with this class. +% \begin{macrocode} +\DeclareOption{landscape}{ + \ClassWarning{cd-cover}{Option `landscape' redundant to this % + class.}} +% \end{macrocode} +% Add an option to avoid foldlines +% \begin{macrocode} +\newif\ifcd@cover@foldlines\cd@cover@foldlinestrue +\DeclareOption{nofoldlines}{\cd@cover@foldlinesfalse} +\DeclareOption{foldlines}{\cd@cover@foldlinestrue} +% \end{macrocode} +% All other options are passed on to the standard \textsf{article} +% class, as expected. `letterpaper' is then the default paper size, +% and we finally execute the options. +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ExecuteOptions{letterpaper} +\ProcessOptions\relax +% \end{macrocode} +% \begin{macro}{\cd@cover@paper@error} +% This is just an error message, so that the user doesn't try to use a +% paper size that is too small to hold some of the covers. +% \begin{macrocode} +\def\cd@cover@paper@error#1{ + \ClassError{cd-cover}{^^J% + Paper format `#1' is too small for the covers}{^^J% + You have given the option `#1' to this class.^^J% + However, that paper size is too small to hold^^J% + the covers.^^J% + Please change the paper size option to another^^J% + format that CAN hold the covers (e.g., `a4paper',^^J% + `letterpaper', etc.)}} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{Class and package loading} +% +% First we load the standard \LaTeXe{} class \textsf{article} with +% what ever options was passed from above. This provides the user with +% the standard envrionments and sectioning commands, and is therefore +% desired. The \textsf{article} class is chosen, since the sectioning +% commands of this class is appropiate for cd--covers. The package +% \textsf{rotating} is then loaded. This package facilitates rotation +% of text, using |\special| commands. This means, that this class may +% be sensible to the users \textsf{PostScript} driver. Also, as I +% myself suspected, and as others have confirmed, this package is +% flawed, meaning, that this class isn't as stable as it should +% be. However, the \textsf{rotating} package is the best avaliable for +% the job, and hence used here\footnote{I'm sorry I don't have the +% time, or expertice, to write a new package, but that's life for +% you.}. +% +% After loading the class, we set the paper height and width. +% \begin{macrocode} +\LoadClass{article} +\paperheight=\temp@length +\paperwidth=\temp@@length +\RequirePackage{rotating} +% \end{macrocode} +% +% \subsubsection*{Setting up fixed lengths} +% +% Next on the agenda is to define and setup some fixed lengths. These +% are the dimensions of the various cover styles. The really isn't +% much to say about these. I obtained these numbers by simple +% meassuring some of my own (pre--printed) covers, with, as you can +% see, a metric meter stick. +% \begin{macrocode} +\newlength{\booklet@width} \setlength{\booklet@width}{240mm} +\newlength{\booklet@height} \setlength{\booklet@height}{120mm} +\newlength{\back@width} \setlength{\back@width}{137mm} +\newlength{\back@height} \setlength{\back@height}{118mm} +\newlength{\back@slip@width} \setlength{\back@slip@width}{7mm} +\newlength{\sleeve@height} \setlength{\sleeve@height}{128mm} +\newlength{\sleeve@width} \setlength{\sleeve@width}{266mm} +\newlength{\single@height} \setlength{\single@height}{120mm} +\newlength{\single@width} \setlength{\single@width}{137mm} +\newlength{\single@slip@width} \setlength{\single@slip@width}{15mm} +\newlength{\single@back@width} \setlength{\single@back@width}{3mm} +% \end{macrocode} +% +% \subsubsection*{Setting up user lengths} +% +% The user also has some control of the page dimensions of the various +% cover types. These are provided via the below lengths. What the do +% should be obvious from the names\footnote{Otherwise, refer to the +% documentation part of this document.}. We also set the default +% values of these lengths here. +% \begin{macrocode} +\newlength{\CDbookletTopMargin} \setlength{\CDbookletTopMargin}{5mm} +\newlength{\CDbookletMargin} \setlength{\CDbookletMargin}{5mm} +\newlength{\CDbackTopMargin} \setlength{\CDbackTopMargin}{5mm} +\newlength{\CDbackMargin} \setlength{\CDbackMargin}{5mm} +\newlength{\CDsleeveTopMargin} \setlength{\CDsleeveTopMargin}{5mm} +\newlength{\CDsleeveMargin} \setlength{\CDsleeveMargin}{5mm} +\newlength{\CDsingleTopMargin} \setlength{\CDsingleTopMargin}{5mm} +\newlength{\CDsingleMargin} \setlength{\CDsingleMargin}{5mm} +% \end{macrocode} +% +% Finally we set the default page style to \textsf{empty}. +% \begin{macrocode} +\pagestyle{empty} +% \end{macrocode} +% +% \subsection{The various cover types}\label{sec:psscheme} +% +% The changing form one type of cover to the other is implemented +% using `page styles'. So each type of cover has it's own page +% style. This has several advantages. +% +% To those of you familiar with the first two (or was it three --- I +% can't remember) versions, this is where you really will note the +% difference. In version v1.0 from 1998/10/04, the interface was +% driven via commands. This limited a number of things, most noticably +% the text length. You had to manually break each page up, which +% ofcourse is very non--\TeX{}--like. Secondly it limited the use of +% `floats' such as \textsf{tables} and \textsf{figures}. +% +% Well, in the \emph{new} scheme, this is all changed. Since the +% pagestyle doesn't effect the way pages are broken by \TeX, one no +% longer has to break up the pages manually! You can put as much text +% as you like into the pages, \LaTeX{} will just produce more pages as +% the text growes in length. Though page styles has \emph{some} effect +% on the \LaTeXe{} output routine and hence on floats, it is very +% minimal, and floats can be use extensively under this scheme. +% +% Another advantage of the new scheme, is the use of user +% \emph{configurable dimensions}. If all the boundary dimensions are +% set to zero, you can effectually fill out the whole cover with +% text. Though this doesn't seem usefull, consider the the case where +% you want to fill out your cover with some marvelous picture you have +% created in \textsf{Gimp}, \textsf{PhotoShop}, or just downloaded +% form the internet! +% +% \subsubsection{The booklet type} +% +% Let me just say a few words on page styles. Every page style defines +% the commands |\@oddhead|, |\@evenhead|, |\@oddfoot|, and +% |\@evenfoot| to be some command containg some text\footnote{In +% \TeX{} terms this means \emph{horizontal mode stuff}.}. There +% \emph{must} be some text present, or othetwise \TeX{} will respond +% with a \texttt{Underfull \string\hbox ... while output is active}, +% wich is quite enyoing. For this reason all the \emph{border} macros +% contains a |\hfill| as the very last thing. Also, \LaTeX{} assumes, +% that the four macros above are no wider then |\textwidth| and no +% taller then |\headheight| or |\footskip|, whatever appropiate. +% +% For the page styles at hand, I decided to |\let| the above two +% |\@...head| commands to the \emph{border} commands below, and the +% two |\@...foot| to |\@empty|. Now these \emph{border} commands are +% apparently \emph{much} taller then |\headheight|, but if one takes a +% closer look, they actually aren't. +% +% The first part of every one of them is one ore more +% |\kern|s. |\kern|s in \TeX{} mind\footnote{Or mouth or stomach, I +% don't remember wich one it is, as Donald E.\ Knuth calls it in the +% \TeX{}book.} doesn't take up space in anyway, so these commands are +% \emph{invisble} in that sense. The next thing is a \textsf{picture} +% environment, and this is defined in \LaTeXe{} so that it does't take +% up any space in the previous sense. Finishing of the macros is a +% |\hfill|, wich is there for reasons explained above. So the only +% command that is `space visible' in the \emph{border} commands, is +% the |\hfill|! Now if that isn't neat, I don't know what is. That +% said, I won't comment anymore on the page style definitons and move +% straight on to the rest of the macros and commands. +% \begin{macro}{\ps@bookletsheet} +% \begin{macrocode} +\def\ps@bookletsheets{ + \let\@oddhead\booklet@border\let\@evenhead\@oddhead + \let\@oddfoot\@empty\let\@evenfoot\@oddfoot} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\init@booklet} +% We need to do some manipulation of the dimensions |\textheight|, +% |\textwidth|, |\headsep| and since the booklet pages are set in +% double column mode, also on |\columnsep| and |\@colht|. +% \begin{macrocode} +\def\init@booklet{ +% \end{macrocode} +% What we do is to set the text height limit to the proper value for +% the booklet --- as defined in |\booklet@height| --- then correct for +% the space wanted above and below the text --- as defined in +% |\CDbookletTopMargin|. This ofcourse only sets the \emph{lower} +% margin, and has absolutly nothing to do with the upper margin. To do +% that we fix the value of |\headsep| to |\CDbookletTopMargin|. +% \begin{macrocode} + \temp@length=\booklet@height + \advance\temp@length-2\CDbookletTopMargin + \global\textheight=\temp@length + \global\headsep=\CDbookletTopMargin +% \end{macrocode} +% The next thing is to set the text width. This limit is again set to +% it's appropiate value for this type of cover --- defined in +% |\booklet@width| --- and then corrected for for the wanted margin +% width --- taken from |\CDbookletMargin|. +% \begin{macrocode} + \temp@length=\booklet@width + \advance\temp@length-2\CDbookletMargin + \global\textwidth=\temp@length +% \end{macrocode} +% A little extra care is needed since we type set in two column +% mode. We In the case, that the first page contains this sort of +% cover, we \emph{have to} set |\@colht| equal to |\textheight| +% manually. +% +% The reason is a bit complicated, and I will not go into +% much detail about it. The point is, that \LaTeX{} uses |\@colht| as +% the limit for the height of the columns. Now, when constructing the +% first column, |\@colht| still has the old value of |\textheight|, as +% set in the begining of the document, and this is properly not what +% we want. \emph{After} making the first column, it sets |\@colht| to +% the present value of |\textheight|, which is what we want, but then +% it is too late. The \emph{only} way to get around this +% problem\footnote{Or is ts a bug in \LaTeXe.}, is to manually set +% |\@colht|. One should not be conserned on that this dimension is +% hand--set on subsequent pages. +% +% The second thing to do, is to set |\columnsep| to whatever value the +% margins should have --- as defined in |\CDbookletMargin|. +% \begin{macrocode} + \global\@colht=\textheight + \global\columnsep=2\CDbookletMargin} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{bookletsheets} +% Now for the environment it self. We start off with initializing the +% dimensions as outlined above, and then we start the two column +% mode and set the page style to \textsf{bookletsheets}. To finish of +% the the environment, we make sure that the last page has a border by +% calling |\clearpage|, and revert to the default page style. +% \begin{macrocode} +\newenvironment{bookletsheets}{ + \init@booklet\twocolumn\pagestyle{bookletsheets}}{ + \clearpage\pagestyle{empty}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\booklet@border} +% First we want to back up the margin width (|\CDbookletMargin|), so +% that the border will be properly spaced from the text. Secondly we +% want to draw the border. +% +% This border isn't very complex. It's just a retangular with to small +% lines indicating a folding line. For the users convinience, we put +% an arrow an some text next to the folding line. +% +% As explained above this command is `space invisible', execpt for the +% final |\hfill|, which is exactly what we want. +% \begin{macrocode} +\def\booklet@border{% + \kern-\CDbookletMargin% + \setlength{\unitlength}{1mm}% + \begin{picture}(100,1)% + \put(0,0){\line(1,0){240}}% Top most horizontal line + \put(0,0){\line(0,-1){120}}% Left most vertical line + \put(0,-120){\line(1,0){240}}% Bottom most horizontal line + \put(240,0){\line(0,-1){120}}% Right most vertical line + \put(120,0){\line(0,1){5}}% Top folding mark + \put(120,-120){\line(0,-1){5}}% Bottom folding mark + \ifcd@cover@foldlines + \multiput(120,-1)(0,-5){24}{\line(0, -1){3}} % Fold line + \fi + \put(110,2){\vector(1,0){10}}% Arrow + \put(95,1){Fold here}% Helping text + \end{picture}\hfill} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{The back type} +% +% One could argue, that the page style scheme outlined on page +% \pageref{sec:psscheme} really isn't that advantages in this case, +% and that a \textsf{minipage}--like solution would be better, since +% the text in this environment shouldn't be more then \emph{one} page, +% since there is only room for one back sheet on a normal +% cd-cover. While this is true, I decided, that it should be up to the +% user to restain him/her--self from putting tom much text into these +% kinds of pages. +% +% \begin{macro}{\ps@backsheet} +% Page style for the backpage. +% \begin{macrocode} +\def\ps@backsheet{ + \let\@oddhead\back@border\let\@evenhead\@oddhead + \let\@oddfoot\@empty\let\@evenfoot\@empty} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\init@back} +% This macro is similar to |\init@booklet| comment above, so I will +% suffice to say the instead of |\CDbooklet...| above read +% |\CDback...|, and the two--column notes are irrelevant. +% \begin{macrocode} +\def\init@back{ + \temp@length=\back@height + \advance\temp@length-2\CDbackTopMargin + \global\textheight=\temp@length + \temp@length=\back@width + \advance\temp@length-2\CDbackMargin + \global\textwidth=\temp@length + \global\headsep=\CDbackTopMargin} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\back@title} +% This is a save box for the title on the back of the cover. See more +% below. +% \begin{macrocode} +\newsavebox{\back@title} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{backsheet} +% \begin{environment}{backsheet*} +% This environment should take one argument, the title on the back of +% the cover. This will be type set two times; one on each end of the +% cover, rotated as to give the proper reading when your CD is put on +% the shelf. The argument is put into a |\parbox|, so that we may +% control the size of the text, and then put into a save box for later +% use (in |\back@border|). +% +% The star'ed version \textsf{backsheet*} turns the back title +% opposite to the non--star'ed version. This is useful if one want's +% to typeset covers for double jewel cases. Also, in some countries, +% like Germany, they like having the text run the opposite direction, +% so for those users, that environment may be more appropiate. +% +% \begin{macro}{\ifback@anglereverse} +% To help distingish between the two ways of rotation the back title, +% we have the macro |\ifback@anglereverse|, which is set to |\relax| if +% we're using the regular non--star'ed version. +% \begin{macrocode} +\newif\ifback@anglereverse\back@anglereversefalse +% \end{macrocode} +% \end{macro} +% +% As in \textsf{bookletsheets} environment, we call the initializing +% macro, make sure we are in one--cloumn mode, and set the page +% style. When finishing of the environment, we clear the page, to +% insure the last page style, and revert to the default page style. +% \begin{macrocode} +\newenvironment{backsheet}[1]{ + \back@anglereversefalse% + \init@back% + \savebox{\back@title}[\textheight]{% + \parbox[t][6mm]{\textheight}{#1}} + \onecolumn\pagestyle{backsheet} + \clearpage}{\clearpage\pagestyle{empty}} +\newenvironment{backsheet*}[1]{ + \back@anglereversetrue% + \init@back% + \savebox{\back@title}[\textheight]{% + \parbox[t][6mm]{\textheight}{#1}} + \onecolumn\pagestyle{backsheet} + \clearpage}{\clearpage\pagestyle{empty}} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \begin{macro}{\back@border} +% First we back up, just as in |\booklet@border|, but we also have to +% back up the length (height) of the slips, unlike above. Then the +% border is drawn with folding marks, and some help text and arrows. +% \begin{macrocode} +\def\back@border{% + \kern-\CDbackMargin% + \kern-\back@slip@width% + \setlength{\unitlength}{1mm}% + \begin{picture}(0,0)% + \put(0,0){\line(1,0){151}}% Top most horizontal line + \put(0,-118){\line(1,0){151}}% Bottom most horizontal line + \put(0,0){\line(0,-1){118}}% Left most vertical line + \put(151,0){\line(0,-1){118}}% Right most vertical line + \put(7,0){\line(0,1){5}}% Left top folding mark + \put(7,-118){\line(0,-1){5}}% Left bottom folding mark + \ifcd@cover@foldlines + \multiput(7,-1)(0,-5){24}{\line(0, -1){3}} % Fold line + \fi + \put(144,0){\line(0,1){5}}% Right top folding mark + \put(144,-118){\line(0,-1){5}}% Right bottom folding mark + \ifcd@cover@foldlines + \multiput(144,-1)(0,-5){24}{\line(0, -1){3}} % Fold line + \fi + \put(17,2){\vector(-1,0){10}}% Left help arrow + \put(17,1){Fold here}% Left help text + \put(134,2){\vector(1,0){10}}% Right help arrow + \put(119,1){Fold here}% Right help text +% \end{macrocode} +% We finshes off with drawing the rotated titles. Please notice, that +% the left one, is the one closest to the opening of the CD +% cover. This should explain the somewhat strange rotating values. +% +% Also, notice that we can rotate one or the other way, as explained +% above, conditionally on |\ifback@anglereverse{1}|. +% \begin{macrocode} + \ifback@anglereverse% + \put(1,0){\begin{rotate}{-90}\usebox{\back@title}\end{rotate}}% + \put(150,-118){\begin{rotate}{90}\usebox{\back@title}\end{rotate}}% + \else% + \put(6,-118){\begin{rotate}{90}\usebox{\back@title}\end{rotate}}% + \put(145,0){\begin{rotate}{-90}\usebox{\back@title}\end{rotate}}% + \fi% + %\put(3,-118){\begin{rotate}{90}\usebox{\back@title}\end{rotate}}% + %\put(148,0){\begin{rotate}{-90}\usebox{\back@title}\end{rotate}}% + \end{picture}\hfill} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{The sleeve type} +% +% This type showes how you can juggle around with \LaTeX{} and get it +% to do almost everything you want\footnote{I don't want to sound +% pretentious, but I was surprised how easily it all turned out to +% be.}. By altering a bit in the way |\LaTeXe| output two--column +% pages, I could get it to swap the columns, so that the last entered +% would come out first, and vice versa. This is exactly what we want +% for this page style, which is obvious when you see the finished +% output. +% +% \begin{macro}{\ps@sleevesheet} +% \begin{macrocode} +\def\ps@sleevesheet{% + \let\@oddhead\sleeve@border\let\@evenhead\@oddhead + \let\@oddfoot\@empty\let\@evenfoot\@oddfoot} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\init@sleeve} +% What I said about |\init@booklet| goes here with the exchange of +% |\CDsleeve...| for |\CDbooklet...|. +% \begin{macrocode} +\def\init@sleeve{ + \temp@length=\sleeve@height + \advance\temp@length-2\CDsleeveTopMargin + \global\textheight=\temp@length + \global\@colht=\textheight + \temp@length=\sleeve@width + \advance\temp@length-2\CDsleeveMargin + \global\textwidth=\temp@length + \global\headsep=\CDsleeveTopMargin + \global\columnsep=2\CDsleeveMargin} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{sleevesheet} +% Again we initialize, make sure we are in two column mode, and set +% the page style. The only thing to notice here, is we |\let| +% |\@outputdblcol| to |\sleeve@outputdblcol|, and when the environment +% ends, change back to the usual definition saved in +% |\ltx@outputdblcol|. It is important that the last change comes +% \emph{after} the |\clearpage|, since otherwise, the last page will +% be output with the wrong output routine. Notice, that it doesn't +% make sense to make two--side prinint for this kind of cover, so the +% scheme works on \emph{any} page. Ofcourse, you should make the +% following page blank, by putting |\vfill\clearpage| after the +% environment. +% \begin{macrocode} +\newenvironment{sleevesheet}{% + \init@sleeve + \twocolumn\pagestyle{sleevesheet} + \global\let\@outputdblcol\sleeve@outputdblcol}{ + \clearpage\pagestyle{empty} + \global\let\@outputdblcol\ltx@outputdblcol} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\sleeve@border} +% Two flaps is outlined for clueing. +% \begin{macrocode} +\def\sleeve@border{% + \kern-\CDsleeveMargin% + \setlength{\unitlength}{1mm}% + \begin{picture}(100,1)% + \put(0,0){\line(3,4){6}}% Top flap + \put(6,8){\line(1,0){121}}% + \put(133,0){\line(-3,4){6}}% + \ifcd@cover@foldlines + \multiput(133,-1)(0,-5){25}{\line(0, -1){3}} % Fold line + \fi + \put(50,1){Fold and clue}% Help text in top flap + \put(0,-123){\line(3,-4){6}}% Bottom flap + \put(6,-131){\line(1,0){121}}% + \put(133,-123){\line(-3,-4){6}}% + \put(50,-131){Fold and clue}% Help text in bottom flap + \put(0,0){\line(1,0){266}}% Top most horizontal line + \put(0,0){\line(0,-1){123}}% Left most vertical line + \put(0,-123){\line(1,0){266}}% Bottom most horizontal line + \put(266,0){\line(0,-1){123}}% Right most vertical line + \end{picture}\hfill} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{The single type} +% +% \begin{macro}{\ps@singlesheet} +% To facilitate two side printing, we have to have two kinds of +% borders, since the border outline is asymmetric along a vertical +% line, hence |\@oddhead| and |\@evenhead| has different values. +% \begin{macrocode} +\def\ps@singlesheet{ + \let\@oddhead\odd@single@border + \let\@evenhead\even@single@border + \let\@oddfoot\@empty\let\@evenfoot\@oddfoot} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\single@title} +% \begin{macro}{\single@slip} +% These two save boxes are used below. +% \begin{macrocode} +\newsavebox{\single@title} +\newsavebox{\single@slip} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\init@single} +% Again exchnage |\CDsingle...| with |\CDback...| in the description +% of |\init@back|, and there you have it. +% \begin{macrocode} +\def\init@single{ + \temp@length=\single@height + \advance\temp@length-2\CDsingleTopMargin + \advance\temp@length-4mm + \global\textheight=\temp@length + \temp@length=\single@width + \advance\temp@length-2\CDsingleMargin + \global\textwidth=\temp@length + \global\headsep=\CDsingleTopMargin} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{singlesheet} +% As in the \textsf{backsheet} environment, we save the arguments in +% |\parbox|'es to control the size, and put all that into save boxes, +% wich are used in |\odd@single@border|. Everything else is as above. +% \begin{macrocode} +\newenvironment{singlesheet}[2]{ + \init@single + \savebox{\single@title}[\textwidth]{% + \parbox[t][3mm]{\textwidth}{#1}} + \savebox{\single@slip}[\textwidth]{% + \parbox[t][\single@slip@width]{\textwidth}{#2}} + \onecolumn\pagestyle{singlesheet} + \clearpage}{\clearpage\pagestyle{empty}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\odd@single@border} +% We define two border for the reasons stated above. The differ in +% that they are mirror reflections of each other, and the back title +% and slip text isn't put on even sides. +% \begin{macrocode} +\def\odd@single@border{ + \kern-\CDsingleMargin% + \kern-\single@slip@width% + \kern-\single@back@width% + \setlength{\unitlength}{1mm}% + \begin{picture}(0,0)% + \put(0,0){\line(0,-1){116}}% Left most vertical line + \put(0,0){\line(1,0){36}}% First top horizontal line + \put(36,0){\line(0,1){2}}% Jump + \put(15,0){\line(0,1){5}}% Fold mark + \ifcd@cover@foldlines + \multiput(15,-1)(0,-5){24}{\line(0, -1){3}} % Fold line + \fi + \put(18,0){\line(0,1){5}}% Fold mark + \ifcd@cover@foldlines + \multiput(18,-1)(0,-5){24}{\line(0, -1){3}} % Fold line + \fi + \put(36,2){\line(1,0){119}}% Second top line + \put(155,2){\line(0,-1){120}}% Right most vertical line + \put(0,-116){\line(1,0){36}}% First bottom line + \put(36,-116){\line(0,-1){2}}% Jump + \put(15,-116){\line(0,-1){5}}% Fold Mark + \put(18,-116){\line(0,-1){5}}% Fold Mark + \put(36,-118){\line(1,0){119}}% Second bottom line + \put(5,4){\vector(1,0){10}}% Arrows + \put(28,4){\vector(-1,0){10}}% Arrows + \put(28,3){Fold here}% Help text + \put(0,0){\begin{rotate}{-90}\usebox{\single@title}\end{rotate}}% + \put(15,0){\begin{rotate}{-90}\usebox{\single@slip}\end{rotate}}% + \end{picture}\hfill} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\even@single@border} +% \begin{macrocode} +\def\even@single@border{ + \kern-\CDsingleMargin% + \setlength{\unitlength}{1mm}% + \begin{picture}(0,0)% + \put(0,2){\line(0,-1){120}}% 1st left vert line + \put(119,0){\line(1,0){36}}% 2nd top horiz line + \put(119,0){\line(0,1){2}}% 2nd top right vert line + \put(137,0){\line(0,1){5}}% 1st top fold mark + \put(140,0){\line(0,1){5}}% 2nd top fold mark + \put(0,2){\line(1,0){119}}% 1st top horiz line + \put(155,0){\line(0,-1){116}}% 1st right vert line + \put(119,-116){\line(1,0){36}}% 2nd bototm horiz line + \put(119,-116){\line(0,-1){2}}% 2nd bottom right vert line + \put(137,-116){\line(0,-1){5}}% 1st bottom fold mark + \put(140,-116){\line(0,-1){5}}% 2nd bottom fold mark + \put(0,-118){\line(1,0){119}}% 1st bottom horiz line + \put(127,4){\vector(1,0){10}}% 1st help arrow + \put(150,4){\vector(-1,0){10}}% 2nd help arrow + \put(112,3){Fold here}% Help text + \end{picture}\hfill} +% \end{macrocode} +% \end{macro} +% +% \subsection{Modified output routines}\label{sec:modout} +% +% Here are some modifications to the \LaTeXe{} output routine to +% \emph{invert} the page orders in some of the environments, such as +% \textsf{sleeve}. First we save the old definition in +% |\ltx@outputdblcol|. +% \begin{macrocode} +\let\ltx@outputdblcol\@outputdblcol +% \end{macrocode} +% +% \begin{macro}{\sleeve@outputdblcol} +% Then we go on to define |\sleeve@outputdblcol|, changing the order +% of column output. +% +% The first part os the same as in \texttt{ltoutput.dtx}, so no need +% to comment on that here. +% \begin{macrocode} +\def\sleeve@outputdblcol{% + \if@firstcolumn + \global\@firstcolumnfalse + \global\setbox\@leftcolumn\box\@outputbox + \else + \global\@firstcolumntrue +% \end{macrocode} +% Now for the building of the actual output box, we \emph{interchange} +% the order of |\@leftcolumn| and |\@outputbox| in the body definition +% of |\@outputbox|, tricky isn't it! +% \begin{macrocode} + \setbox\@outputbox\vbox{% + \hb@xt@\textwidth{% + \hb@xt@\columnwidth{% + \box\@outputbox\hss}% \@leftcolumn changed to \@outputbox + \hfil\vrule\@width\columnseprule\hfil + \hb@xt@\columnwidth{% + \box\@leftcolumn\hss}}}% \@outputbox changed to \@leftcolumn + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade\fi + {\@outputpage + \@startdblcolumn}% + \endgroup + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{The final stuff} +% +% If we can figure out the graphics driver automatically, then we emit +% a |\special| or equivilant command to the output file. If we can +% not find the driver, we warn the user that the printing should be +% done in landscape mode. +% \begin{macrocode} +\def\cdcover@endmessage{cd-cover class: Remember that this document is + type set in landscape^^J mode, and therefore dvips should be + passed the `-t landscape' option.} +\@ifundefined{Gin@driver}{% + \AtEndDocument{\typeout{\cdcover@endmessage}}}{% + \filename@parse{\Gin@driver}% + \def\reserved@a{dvips}% + \ifx\filename@base\reserved@a\relax% + \message{DVIPS driver found} + \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% + \AtBeginDvi{\special{papersize=\the\paperheight,\the\paperwidth}}% + \else + \def\reserved@a{pdftex}\relax% + \ifx\filename@base\reserved@a + \message{PDF driver found} + \pdfpagewidth=\the\paperwidth\pdfpageheight=\the\paperheight% + \else + \def\reserved@a{vtex}\relax% + \ifx\filename@base\reserved@a + \message{VTeX driver found} + \mediawidth=\the\paperwidth\mediaheight=\the\paperheight% + \else + \AtEndDocument{\typeout{\cdcover@endmessage}} + \fi + \fi + \fi} +% \end{macrocode} +% +%\iffalse +%</class> +%\fi diff --git a/Master/texmf-dist/source/latex/cd-cover/cd-cover.ins b/Master/texmf-dist/source/latex/cd-cover/cd-cover.ins new file mode 100644 index 00000000000..04270917ca8 --- /dev/null +++ b/Master/texmf-dist/source/latex/cd-cover/cd-cover.ins @@ -0,0 +1,78 @@ +%% -*- mode: latex -*- +%% +%% $Id: cd-cover.ins,v 1.1.1.1 2001/05/27 14:30:56 cholm Exp $ +%% +%% +%% This is file `cd-cover.ins', the installation file for the +%% `cd-cover' class. +%% +%% LaTeX2e class `cd-cover' for typesetting a variaty of cd covers +%% Copyright (C) 1999 Christian Holm <cholm@nbi.dk> +%% +%% This class is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published by +%% the Free Software Foundation; either version 2 of the License, or +%% (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the +%% Free Software Foundation, Inc. +%% 675 Mass Ave +%% Cambridge +%% MA 02139 +%% USA +%% + +\input docstrip.tex +\keepsilent +\preamble +LaTeX2e class `cd-cover' for typesetting a variaty of cd covers +Copyright (C) 1999 Christian Holm <cholm@nbi.dk> + +This class is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the + Free Software Foundation, Inc. + 675 Mass Ave + Cambridge + MA 02139 + USA + +For more information see `cd-cover.dtx' + +\endpreamble + +\usedir{tex/latex/cd-cover} +\generate{\file{cd-cover.cls}{\from{cd-cover.dtx}{class}}} + +\Msg{***********************************************************} +\Msg{* To finish the installation you have to move the file} +\Msg{* `cd-cover.cls' into a directory searched by TeX.} +\Msg{*} +\Msg{* To produce the documentation do:} +\Msg{*\space\space latex cd-cover.dtx} +\Msg{*\space\space latex cd-cover.dtx} +\Msg{*\space\space makeindex -s gind -o cd-cover.ind cd-cover.idx} +\Msg{*\space\space makeindex -s gglo -o cd-cover.gls cd-cover.glo} +\Msg{*\space\space latex cd-cover.dtx} +\Msg{*\space\space latex cd-cover.dtx} +\Msg{* or whatever appropiate for your system.} +\Msg{***********************************************************} +\endbatchfile + +%% +%% End of file `cd-cover.ins' |