From cbcc07d7f45d448a51a7bd37225bdc276318f101 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 12 Aug 2006 16:12:55 +0000 Subject: new latex package papercdcase git-svn-id: svn://tug.org/texlive/trunk@1937 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/papercdcase/papercdcase.dtx | 968 +++++++++++++++++++++ .../source/latex/papercdcase/papercdcase.ins | 43 + 2 files changed, 1011 insertions(+) create mode 100644 Master/texmf-dist/source/latex/papercdcase/papercdcase.dtx create mode 100644 Master/texmf-dist/source/latex/papercdcase/papercdcase.ins (limited to 'Master/texmf-dist/source/latex/papercdcase') diff --git a/Master/texmf-dist/source/latex/papercdcase/papercdcase.dtx b/Master/texmf-dist/source/latex/papercdcase/papercdcase.dtx new file mode 100644 index 00000000000..1aa07e96b49 --- /dev/null +++ b/Master/texmf-dist/source/latex/papercdcase/papercdcase.dtx @@ -0,0 +1,968 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% $Id: papercdcase.dtx 11 2006-08-07 11:54:04Z tdussa $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\SVNMisc$#1: #2 #3${#2} +\def\SVNDate$#1: #2-#3-#4 #5${#2/#3/#4} +\def\filename{papercdcase.dtx} +\xdef\fileversion{\SVNMisc$Revision: 11 $} +\xdef\filedate{\SVNDate$Date: 2006-08-07 13:54:04 +0200 (Mon, 07 Aug 2006) $} +\let\docversion=\fileversion +\let\docdate=\filedate +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\iffalse +\typeout{% +%% Purpose: + Package: papercdcase \filedate\space\fileversion\space + for typesetting paper CD cases. +}% +%% +%% Documentation: +%% The documentation can be generated from the original file +%% papercdcase.dtx with the doc style/package. LaTeX the file +%% papercdcase.dtx to get the full documentation in dvi format. +%% +%% +%% Author: Tobias Dussa +%% Im Schlossfeld 4 +%% 77855 Achern +%% Mail: tdussa@sdhs.de +%% +%% Copyright (C) 2006 Tobias Dussa +%% +%% papercdcase.dtx is distributed in hopes that it will be useful, +%% but WITHOUT ANY WARRANTY. No author or distributor accepts +%% responsibility to anyone for the consequences of using it or for +%% whether it serves any particular purpose or works at all, unless +%% he says so in writing. +%% +%% Everyone is granted permission to copy, modify and redistribute +%% papercdcase.dtx, provided this copyright notice is preserved and +%% any modifications are indicated. +%% +%% +%% This style is still under development and may be replaced with a +%% new version which provides an enhanced functionality. +%% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\setcounter{IndexColumns}2 +\begin{document} + \DocInput{papercdcase.dtx} + \newpage + \PrintChanges +\end{document} +% +%\fi +% +% \title{A \LaTeX\ Package for Typesetting\\ Paper CD +% Cases\thanks{This file documents \filename\ version +% \fileversion\ as of \filedate.}} +% \author{Tobias Dussa\\ +% Im Schlo\ss{}feld 4\\ +% 77855 Achern (Germany)\\ +% e-mail: \verb~tdussa@sdhs.de~} +% +% \date{{\footnotesize Documentation date: \docdate}} +% +% \maketitle +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DoNotIndex{\ ,\",\',\.,\[,\\,\],\^,\`,\~,\@,\@dottedtocline} +% \DoNotIndex{\@empty,\@nameuse,\advance,\begin,\begingroup} +% \DoNotIndex{\catcode,\def,\else,\end,\endgroup,\fi,\filedate} +% \DoNotIndex{\footnotesize,\framebox,\gdef,\hfill,\if,\ifx,\let,\makebox} +% \DoNotIndex{\mbox,\newcommand,\newcount,\newdimen,\newenvironment} +% \DoNotIndex{\newif,\noindent,\normalsize,\null,\par,\put} +% \DoNotIndex{\relax,\rm,\rule,\scriptsize,\sf,\textsf,\textwidth} +% \DoNotIndex{\the,\unitlength,\uppercase,\xdef,\ProvidesPackage} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \changes{1.0}{2006/06/06}{First release.} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \CheckSum{649} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% \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 \~} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \MakeShortVerb{|} +% +% \begin{abstract} +% papercdcase.dtx provides a package to typeset paper CD cases. +% The paper CD cases are origami-style CD cases which, when +% properly folded, provided a simple, inexpensive, and readily +% reproducable CD protection. This package creates the proper +% folding lines on one hand, but on the other hand also provides +% a means of putting material like CD titles, CD track lists, and +% so on into the proper places so that it will come out just +% right when printed and folded. +% +% The package is based with friendly permission on the work of +% Thomas Hull (\verb!http://web.merrimack.edu/~thull!) as well +% as the project of the folks at \verb!http://www.papercdcase.com!. +% +% Any comments, corrections and so on are greatly appreciated. +% \end{abstract} +% +% \tableofcontents +% \newpage +% +% \section{About Paper CD Cases} +% +% Paper CD cases are a very convenient way to protect your CDs. +% While they are not as sturdy as plastic cases, they are +% inexpensive, simple, easily reproducable, yet astonishingly +% sturdy. +% +% The idea is based on origami, the Japanese art of paper folding, +% and has been developed by Thomas Hull +% (\verb!http://web.merrimack.edu/~thull!) and further elaborated +% on by the folks at \verb!http://www.papercdcase.com!. Many +% thanks to them all for their kind permission to use their work in +% this package. +% +% Obviously, the way a paper CD case needs to be folded is somewhat +% dependent on the actual physical size of the sheet of paper it is +% printed on. In general, there are two standard paper sizes that +% lend themselves for this purpose: A4 and letter. +% +% The problem is that for a paper CD case, the difference in paper +% height between a sheet of A4 paper ($296.9\,\hbox{mm}$) and a +% sheet of letter paper ($11''$) is actually significant. While it +% is possible to use the folding scheme designed for letter paper +% on an A4 sheet of paper, this does have some drawbacks: It is +% necessary to fold over a thin strip of paper just +% $17.5\,\hbox{mm}$ or about $\frac{11}{16}''$ wide, which turn out +% to be a bit difficult to fold. Furthermore, paper CD cases based +% on this folding scheme are a bit less sturdy than +% they could be.\\ +% On the other hand, a folding scheme that makes optimal use of an +% entire A4 sheet of paper cannot be used on letter paper, because +% letter paper is too short. +% +% For these reasons, two folding schemes are provided: A universal +% scheme that fits both on letter and on A4 paper, if somewhat +% imperfectly on the latter, and a specialized folding scheme that +% perfectly fits on A4 paper. +% +% The general paper CD cases that are produced are carefully sized +% so that they fit on a (hypothetical) piece of paper +% $210\,\hbox{mm}$ wide (A4 width) and $11''$ tall (letter height). +% In other words, the smaller edges of both paper sizes have been +% used to target the size of the paper case. This means that on +% either paper, there will be some excess space along one of the +% axes. +% +% \section{What the Package Provides} +% +% In creating paper CD cases, there are three things of interest: +% \begin{enumerate} +% \item the folding scheme (the paper case itself, if you will), +% \item textual information that may or may not be desired on the +% finished case, and +% \item the placement of both of the above elements on the physical +% piece of paper. +% \end{enumerate} +% +% This package provides means to generate the proper folding scheme +% as well as provisions for some useful text boxes that are placed +% correctly within the folding layout so that their contents appear +% in the proper places when the paper case is folded. +% +% This package does \emph{not} provide an automatism to place the +% folding scheme and the text boxes on the physical page. While +% the text boxes \emph{are} placed properly by the package, this +% placement is merely relative to the folding scheme. It is up to +% the user to decide on what paper she wants to actually print the +% paper case. This means in particular that the user is +% responsible for centering the paper case on the sheet if this is +% desired, and that things like page numbers and so on must be +% dealt with by the user. +% +% However, this offers some flexibility that is worth the minor +% overhead nuisance of centering a box on a page. +% +% \subsection{The Folding Scheme}\label{sec:scheme} +% +% \DescribeMacro{\papercdcase}% +% Typesetting the folding scheme itself is fairly straightforward: +% Simply issue the proper command: +% \begin{verbatim} +% \papercdcase +% \end{verbatim} +% This command will produce the folding scheme, consisting of +% \begin{itemize} +% \item solid lines, +% \item dashed lines, and +% \item numbers. +% \end{itemize} +% The numbers define the \emph{sequence} in which the folding steps +% should be carried out, while the types of lines specify +% \emph{how} the paper should be folded. More details on the +% folding procedure can be found in section~\ref{sec:folding}. +% +% \DescribeMacro{\papercdcase[]} +% The folding scheme is conveniently sized so that the finished +% paper case will hold a standard $120\,\hbox{mm}$ CD. However, +% there are also smaller $80\,\hbox{mm}$ so-called Maxi CDs. In +% order to create a folding scheme that is scaled so that the +% folded case will hold a small, $80\,\hbox{mm}$ CD, just add a +% parameter to the command above, specifying that you would like a +% folding scheme for an $80\,\hbox{mm}$ CD case by use of the +% optional size parameter: +% \begin{verbatim} +% \papercdcase[80] +% \end{verbatim} +% In fact, you can scale the folding scheme to any size you want, +% measured in whole millimeters, by replacing the \texttt{80} in +% the call above by the desired design size in millimeters. +% +% \DescribeMacro{\papercdcase*} +% As mentioned in the introduction, there are two kinds of folding +% schemes: One that is designed to fit both A4 and letter sheets of +% paper, and one that is designed to fit A4 paper perfectly. The +% commands above all produce the general version. If you are using +% A4 paper are would like to use the A4-optimized folding scheme, +% use the starred version of the command instead: +% \begin{verbatim} +% \papercdcase* +% \papercdcase*[80] +% \end{verbatim} +% +% \subsection{The Text Boxes}\label{sec:boxes} +% +% This package offers four boxes that are put into predefined +% places: +% \begin{itemize} +% \item A spine matter box, +% \item a latch matter box, +% \item a back matter box, and +% \item a pouch matter box. +% \end{itemize} +% +% The spine matter box is centered horizontally and vertically on +% the spine of the CD case. Typically, this box holds the CD title +% and the artist for an audio CD. +% +% The latch matter box is printed in the top left-hand corner of +% the CD case latch. Again, this box typically contains the CD +% title. +% +% The back matter box is printed in the top left-hand corner of the +% back of the CD case. A typical use for this box is the track +% list of an audio CD. +% +% Finally, the pouch matter box is printed in the top left-hand +% corner of the CD case pouch, just below the latch. This box is +% typically unused, but may be useful for some additional +% information. +% +% \DescribeMacro{\setcdlatchmatter} +% \DescribeMacro{\setcdpouchmatter} +% \DescribeMacro{\setcdbackmatter} +% \DescribeMacro{\setcdspinematter} +% In order to fill the boxes, use these commands: +% \begin{itemize} +% \item |\setcdlatchmatter| +% \item |\setcdpouchmatter| +% \item |\setcdbackmatter| +% \item |\setcdspinematter| +% \end{itemize} +% +% As an example, a typical use of the above commands might look +% like this: +% \begin{verbatim} +% \setcdlatchmatter{\textbf{\LARGE Jean Michel Jarre\\[0.25\baselineskip] +% In Concert: Houston--Lyon}} +% +% \setcdpouchmatter{Live recordings from the legendary concerts in +% Houston and Lyon 1986} +% +% \setcdbackmatter{\textbf{\LARGE Jean Michel Jarre\\[0.25\baselineskip] +% In Concert: Houston--Lyon} +% \begin{enumerate} +% \item Oxygene V +% \item Ethnicolor +% \item Magnetic Fields I +% \item Souvenir (Of China) +% \item Equinoxe V +% \item Rendez-Vous III (Laser Harp) +% \item Rendez-Vous II +% \item Ron's Piece +% \item Rendez-Vous IV +% \end{enumerate}} +% +% \setcdspinematter{\textbf{\Large Jean Michel Jarre/In Concert: +% Houston--Lyon}} +% \end{verbatim} +% +% Be aware that the text boxes must be filled with the above +% commands \emph{before} the folding scheme is typeset with the +% \verb~\papercdcase~ command. +% +% \subsection{The Placement on Physical Paper}\label{sec:placement} +% +% As mentioned before, there is no automatic procedure provided by +% the package that automatically places the folding scheme and the +% boxes on a physical sheet of paper. This is a conscious design +% decision with the aim to maintain a maximum of flexibility. +% +% Actually positioning the folding scheme on paper is very easy, +% though. If you are using either A4 or letter paper, which is +% probably the case is more than 99\,\% of all cases, there are +% three things to worry about: +% \begin{itemize} +% \item All margins should be set to zero size, +% \item headlines and footlines should be empty, and +% \item the folding scheme should be centered horizontally. +% Vertical alignment is not as important, because the universal +% folding scheme fills up an entire letter-sized page, while the +% A4 folding scheme fills up an entire A4 page. Thus, no +% vertical adjustments need to be done in these cases.\\ +% If the general folding scheme is used on A4 paper, then +% obviously, the page is not entirely filled. However, even in +% this case, I recommend \emph{not} to do any vertical +% adjustments, but rather to leave the top of the folding scheme +% aligned with the page edge. This saves one folding +% operation. (One might put a \verb~\vspace*{\fill}~ or so at +% the beginning of the page, of course, so the bottom of the +% folding scheme is flush with the paper edge instead of the top, +% but this does not really make a difference in practice.) +% \end{itemize} +% All of the above points are addressed in this little document, +% for instance. This example serves well if letter-sized paper is +% used. +% \begin{verbatim} +% \documentclass{article} +% \usepackage[margin=0pt]{geometry} +% \usepackage{papercdcase} +% \pagestyle{empty} +% \begin{document} +% \setcdlatchmatter{Latch} +% \setcdspinematter{Spine} +% \setcdpouchmatter{Pouch} +% \setcdbackmatter{Back} +% \centering\papercdcase +% \end{document} +% \end{verbatim} +% For A4 paper, the above code also works, but it is necessary to +% tell \LaTeX{} to use A4 paper, of course. This may be done by +% changing \verb~\usepackage[margin=0pt]{geometry}~ to +% \verb~\usepackage[a4paper, margin=0pt]{geometry}~, for example. +% Also, it might be desirable to use \verb~\papercdcase*~ instead +% of \verb~\papercdcase~. +% +% \section{Folding the Paper CD Case}\label{sec:folding} +% +% Folding the printed paper CD case is quite simple, but requires a +% bit of practice. In principle, all necessary information is +% provided on the printout. +% +% In general, the numbers next to the lines specify the sequence in +% which the folding should take place. If a number is next to a +% \emph{solid} line, fold \emph{along} the line so that the crease +% runs along and over the line. If a number is next to a +% \emph{dashed} line, however, turn the sheet so that the number is +% the right way up, then fold the sheet so that the paper edge +% closest to you ends up aligned with the dashed line. Think of +% the dashed line as a folding ``target''. +% +% Be aware that the first few folds might be unnecessary. This is +% the case whenever a folding line is aligned with a paper edge +% already. This will happen every time the folding scheme fills +% out the entire sheet, in other words, whenever the universal +% folding scheme is printed on letter paper or the A4 folding +% scheme is printed on A4 paper. However, even if the universal +% folding scheme is printed on A4 paper, one edge of the scheme may +% well already be aligned with the corresponding paper edge. This +% is no problem, but it means that neither the folding line(s) nor +% the corresponding sequence number(s) will be there, so you might +% have to start the folding sequence with step number~2 or~3 +% or even start with step number~1 and skip step number~2!\\ +% Generally, start with the lowest number found on the printout and +% work your way up the numbers that are present. +% +% The tricky folds are steps number~8 and~9 as well as numbers~10 +% and~11. You will need to fold little triangular ears towards you +% so the pouch is formed and stabilized. I am afraid that accurately +% describing exactly how the folding works in an appropriate amount +% of words is beyond me, so please refer to +% \verb!http://web.merrimack.edu/~thull! and/or +% \verb!http://www.papercdcase.com! for more detailed, excellent +% instruction on how to fold a paper CD case. In particular, a PDF +% with graphical instructions can be found at +% \verb!http://kahuna.merrimack.edu/~thull/CDcase/cd.pdf!. +% +% +% \section{Example Files} +% +% I have included some example files with this package that hopefully +% give an insight into how this package may be used. In particular, +% I included a minimal example showing just the very basics in this +% documentation, a little interactive example that lets you create CD +% cases on the fly, and a more elaborate example which is pretty much +% what I am using right now for my own purposes. Maybe some of the +% included files will provide clues on how to use this package. +% +% \StopEventually{} +% \newpage +% +% +% \section{The Implementation} +% +% The folding scheme is basically implemented with the \LaTeX{} +% picture environment. This gives us enough flexibility and +% provides an high enough abraction such that we do not have to +% fiddle around with to many low level details. +% +% Additional functionality is required for rotating the label +% boxes; thus, the \verb~graphicx~ package is included. +% +% \subsection{Basic Definitions and Parameters} +% +% First we identify this package and make sure we are talking +% \LaTeX2e{}. Furthermore, we load the \verb~graphicx~ and +% \verb~calc~ packages and make the \verb~@~ character available +% for internal command definitions. +% +% \begin{macrocode} +\ProvidesPackage{papercdcase}[\filedate v.\fileversion{} Paper CD Case Style (TD)] +\NeedsTeXFormat{LaTeX2e} + +\RequirePackage{graphicx} +\RequirePackage{calc} + +\makeatletter + +% \end{macrocode} +% +% \subsection{User Interface Functions} +% +% The actual text boxes that are typeset on the latch, on the +% spine, on the back and on the pouch of the CD case are kept in +% internal macros. +% \begin{macrocode} +\newcommand{\@PCDC@Latch@Matter}{} +\newcommand{\@PCDC@Pouch@Matter}{} +\newcommand{\@PCDC@Back@Matter}{} +\newcommand{\@PCDC@Spine@Matter}{} + +% \end{macrocode} +% +% Four functions which basically put their argument into the +% appropriate internal box definition. +% \begin{macro}{\setcdlatchmatter} +% Interface function for the latch matter: +% \begin{macrocode} +\newcommand{\setcdlatchmatter}[1]{\renewcommand{\@PCDC@Latch@Matter}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setcdpouchmatter} +% Interface function for the pouch matter: +% \begin{macrocode} +\newcommand{\setcdpouchmatter}[1]{\renewcommand{\@PCDC@Pouch@Matter}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setcdpouchmatter} +% Interface function for the back matter: +% \begin{macrocode} +\newcommand{\setcdbackmatter}[1]{\renewcommand{\@PCDC@Back@Matter}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setcdpouchmatter} +% Interface function for the spine matter: +% \begin{macrocode} +\newcommand{\setcdspinematter}[1]{\renewcommand{\@PCDC@Spine@Matter}{#1}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\papercdcase} +% The macro |\papercdcase| is the main command provided by the +% package. The macro typesets the actual folding scheme, complete +% with all specified text boxes. It is defined so that if its +% starred version |\papercdcase*| is invoked, the folding scheme is +% adjusted for A4 paper; otherwise, letter paper is designed for. +% (The adjustments of the folding scheme are done by resetting the +% relevant counters, |@PCDC@Design@Height| and |@PCDC@Pouch@Height|.) +% \begin{macrocode} +% Main user macro; actually typesets the paper CD case. +\DeclareRobustCommand{\papercdcase}{% +\@ifstar% +{\setcounter{@PCDC@Design@Height}{297}\setcounter{@PCDC@Pouch@Height}{75}\@PCDC@Typeset@Scheme}% +{\setcounter{@PCDC@Design@Height}{279}\setcounter{@PCDC@Pouch@Height}{64}\@PCDC@Typeset@Scheme}} + +% \end{macrocode} +% \end{macro} +% +% \subsection{Counters} +% +% Throughout the package, counters are used to compute the correct +% locations of the various folding marks, boxes and so on. Some of +% these counters control the exact layout of the folding scheme, +% while all the others depend on the values of the control +% counters. Consequently, all counters can be defined right away, +% but most of the counters cannot sensibly be set at this point. +% +% For readability and conciseness of the code, several +% abbreviations are used with the counter names: +% \begin{itemize} +% \item The letters \verb~A~ through \verb~M~ are used to designate +% the fold numbers 1 through 13. +% \item \verb~Btm~ is used for \verb~Bottom~. +% \item \verb~Lft~ and \verb~Rgt~ are used for \verb~Left~ and +% \verb~Right~, respectively. +% \item \verb~Upr~ and \verb~Lwr~ are used for \verb~Upper~ and +% \verb~Lower~, respectively. +% \end{itemize} +% These abbreviations make the code easier to read, IMHO, because +% they allow many sequences of commands to be aligned horizontally, +% making structures much easier to recognize. +% +% \subsubsection{Control Counters} +% +% There are eight counters that control the design of the folding +% scheme. These eight counters are defined first. +% \begin{macrocode} +%% Control counters. +%% Overall height of the folding scheme. +\newcounter{@PCDC@Design@Height} +%% Height of the CD pouch. +\newcounter{@PCDC@Pouch@Height} +%% Height (and width) of the folded paper CD case. +\newcounter{@PCDC@Back@Height} +%% Height of the CD case spine. +\newcounter{@PCDC@Spine@Height} +%% Margin between the text boxes and the edge of the CD case. +\newcounter{@PCDC@Text@Margin} +%% Length of regular fold marks. +\newcounter{@PCDC@Fold@Length} +%% Length of short fold marks. +\newcounter{@PCDC@Fold@Short@Length} +%% Space between fold marks and their labels. +\newcounter{@PCDC@Label@Sep} + +% \end{macrocode} +% +% We also set these counters to some sensible values right away. +% \begin{macrocode} +\setcounter{@PCDC@Design@Height}{279} +\setcounter{@PCDC@Pouch@Height}{64} +\setcounter{@PCDC@Back@Height}{125} +\setcounter{@PCDC@Spine@Height}{8} +\setcounter{@PCDC@Text@Margin}{5} +\setcounter{@PCDC@Fold@Length}{25} +\setcounter{@PCDC@Fold@Short@Length}{20} +\setcounter{@PCDC@Label@Sep}{1} + +% \end{macrocode} +% +% \subsubsection{General Coordinate Counters} +% +% Some of the other counters are used to hold coordinates that are +% shared by many fold marks so that is seems worth while to keep +% them in their own counters. +% \begin{macrocode} +%% Common counters. +\newcounter{@PCDC@Design@width} +\newcounter{@PCDC@Top@Lft@Fold} +\newcounter{@PCDC@Top@Rgt@Fold} +\newcounter{@PCDC@Bot@Lft@Fold} +\newcounter{@PCDC@Bot@Rgt@Fold} +\newcounter{@PCDC@Lwr@Top@Fold} +\newcounter{@PCDC@Upr@Top@Fold} +\newcounter{@PCDC@Bot@Fold} +\newcounter{@PCDC@Text@width} +\newcounter{@PCDC@Fold@Dash@Number} + +% \end{macrocode} +% +% \subsubsection{Folding Mark Coordinate Counters} +% +% In this section, we define the counters for the actual +% coordinates of the folding marks. +% \begin{macrocode} +%% Counters with the actual coordinates of the folding marks. +\newcounter{@PCDC@Fold@A@Lft@X} +\newcounter{@PCDC@Fold@A@Lft@Y} +\newcounter{@PCDC@Fold@A@Rgt@X} +\newcounter{@PCDC@Fold@A@Rgt@Y} +\newcounter{@PCDC@Fold@B@Lft@X} +\newcounter{@PCDC@Fold@B@Lft@Y} +\newcounter{@PCDC@Fold@B@Rgt@X} +\newcounter{@PCDC@Fold@B@Rgt@Y} +\newcounter{@PCDC@Fold@C@Top@X} +\newcounter{@PCDC@Fold@C@Top@Y} +\newcounter{@PCDC@Fold@C@Bot@X} +\newcounter{@PCDC@Fold@C@Bot@Y} +\newcounter{@PCDC@Fold@D@Top@X} +\newcounter{@PCDC@Fold@D@Top@Y} +\newcounter{@PCDC@Fold@D@Bot@X} +\newcounter{@PCDC@Fold@D@Bot@Y} +\newcounter{@PCDC@Fold@E@Lft@X} +\newcounter{@PCDC@Fold@E@Lft@Y} +\newcounter{@PCDC@Fold@E@Rgt@X} +\newcounter{@PCDC@Fold@E@Rgt@Y} +\newcounter{@PCDC@Fold@F@Lft@X} +\newcounter{@PCDC@Fold@F@Lft@Y} +\newcounter{@PCDC@Fold@F@Rgt@X} +\newcounter{@PCDC@Fold@F@Rgt@Y} +\newcounter{@PCDC@Fold@G@Lft@X} +\newcounter{@PCDC@Fold@G@Lft@Y} +\newcounter{@PCDC@Fold@G@Rgt@X} +\newcounter{@PCDC@Fold@G@Rgt@Y} +\newcounter{@PCDC@Fold@H@X} +\newcounter{@PCDC@Fold@H@Y} +\newcounter{@PCDC@Fold@I@X} +\newcounter{@PCDC@Fold@I@Y} +\newcounter{@PCDC@Fold@J@X} +\newcounter{@PCDC@Fold@J@Y} +\newcounter{@PCDC@Fold@K@X} +\newcounter{@PCDC@Fold@K@Y} +\newcounter{@PCDC@Fold@L@X} +\newcounter{@PCDC@Fold@L@Y} +\newcounter{@PCDC@Fold@M@X} +\newcounter{@PCDC@Fold@M@Y} + +% \end{macrocode} +% +% \subsubsection{Folding Mark Label Coordinate Counters} +% +% We now define the counters for the actual coordinates of the +% folding mark labels. +% \begin{macrocode} +%% Counters with the actual coordinates of the text boxes. +\newcounter{@PCDC@Fold@A@Lft@Label@X} +\newcounter{@PCDC@Fold@A@Lft@Label@Y} +\newcounter{@PCDC@Fold@A@Rgt@Label@X} +\newcounter{@PCDC@Fold@A@Rgt@Label@Y} +\newcounter{@PCDC@Fold@B@Lft@Label@X} +\newcounter{@PCDC@Fold@B@Lft@Label@Y} +\newcounter{@PCDC@Fold@B@Rgt@Label@X} +\newcounter{@PCDC@Fold@B@Rgt@Label@Y} +\newcounter{@PCDC@Fold@C@Top@Label@X} +\newcounter{@PCDC@Fold@C@Top@Label@Y} +\newcounter{@PCDC@Fold@C@Bot@Label@X} +\newcounter{@PCDC@Fold@C@Bot@Label@Y} +\newcounter{@PCDC@Fold@D@Top@Label@X} +\newcounter{@PCDC@Fold@D@Top@Label@Y} +\newcounter{@PCDC@Fold@D@Bot@Label@X} +\newcounter{@PCDC@Fold@D@Bot@Label@Y} +\newcounter{@PCDC@Fold@E@Lft@Label@X} +\newcounter{@PCDC@Fold@E@Lft@Label@Y} +\newcounter{@PCDC@Fold@E@Rgt@Label@X} +\newcounter{@PCDC@Fold@E@Rgt@Label@Y} +\newcounter{@PCDC@Fold@F@Lft@Label@X} +\newcounter{@PCDC@Fold@F@Lft@Label@Y} +\newcounter{@PCDC@Fold@F@Rgt@Label@X} +\newcounter{@PCDC@Fold@F@Rgt@Label@Y} +\newcounter{@PCDC@Fold@G@Lft@Label@X} +\newcounter{@PCDC@Fold@G@Lft@Label@Y} +\newcounter{@PCDC@Fold@G@Rgt@Label@X} +\newcounter{@PCDC@Fold@G@Rgt@Label@Y} +\newcounter{@PCDC@Fold@H@Label@X} +\newcounter{@PCDC@Fold@H@Label@Y} +\newcounter{@PCDC@Fold@I@Label@X} +\newcounter{@PCDC@Fold@I@Label@Y} +\newcounter{@PCDC@Fold@J@Label@X} +\newcounter{@PCDC@Fold@J@Label@Y} +\newcounter{@PCDC@Fold@K@Label@X} +\newcounter{@PCDC@Fold@K@Label@Y} +\newcounter{@PCDC@Fold@L@Label@X} +\newcounter{@PCDC@Fold@L@Label@Y} +\newcounter{@PCDC@Fold@M@Label@X} +\newcounter{@PCDC@Fold@M@Label@Y} + +% \end{macrocode} +% +% \subsubsection{Text Box Coordinate Counters} +% +% As the last counters to be defined, here come the coordinate +% counters for the text boxes provided to the user. +% \begin{macrocode} +%% Counters with the actual coordinates of the text boxes. +\newcounter{@PCDC@Pouch@Matter@X} +\newcounter{@PCDC@Pouch@Matter@Y} +\newcounter{@PCDC@Back@Matter@X} +\newcounter{@PCDC@Back@Matter@Y} +\newcounter{@PCDC@Spine@Matter@X} +\newcounter{@PCDC@Spine@Matter@Y} +\newcounter{@PCDC@Latch@Matter@X} +\newcounter{@PCDC@Latch@Matter@Y} + +% \end{macrocode} +% +% \subsection{Folding Scheme Implementation} +% +% We now turn to the implementation of the actual folding scheme +% typesetting macro. The macro takes an optional parameter that +% allows for scaling. The parameter is supposed to contain the +% diameter in millimeters of the CD that the CD case is to be +% printed for. Therefore, the default value is set to 120, which +% is the diameter in millimeters of a normal CD. Another common CD +% size is 80 millimeters, which is a maxi CD. +% +% The macro can broadly be broken into three parts: +% \begin{enumerate} +% \item The entire scheme is scaled according to the optional CD +% size parameter. +% \item The actual coordinates are computed and stored in the +% proper counters. +% \item The folding scheme is typeset and output is generated. +% \end{enumerate} +% \begin{macrocode} +%% The actual output function. +\newcommand{\@PCDC@Typeset@Scheme}[1][120]{% +%% Scale the output. +\setlength{\unitlength}{1mm} +\multiply\unitlength by #1 +\divide\unitlength by 120 +%% +%% Compute the actual coordinates. +%% Common coordinates. +\setcounter{@PCDC@Design@width}{\value{@PCDC@Back@Height}+2*\value{@PCDC@Fold@Length}} +\setcounter{@PCDC@Top@Lft@Fold}{\value{@PCDC@Fold@Length}+1} +\setcounter{@PCDC@Top@Rgt@Fold}{\value{@PCDC@Fold@Length}+\value{@PCDC@Back@Height}} +\setcounter{@PCDC@Bot@Lft@Fold}{\value{@PCDC@Fold@Length}+1} +\setcounter{@PCDC@Bot@Rgt@Fold}{\value{@PCDC@Fold@Length}+\value{@PCDC@Back@Height}} +\setcounter{@PCDC@Lwr@Top@Fold}{2*\value{@PCDC@Pouch@Height}+2*\value{@PCDC@Back@Height}-\value{@PCDC@Design@Height}} +\setcounter{@PCDC@Upr@Top@Fold}{\value{@PCDC@Lwr@Top@Fold}+2*\value{@PCDC@Spine@Height}} +\setcounter{@PCDC@Bot@Fold}{2*\value{@PCDC@Pouch@Height}} +\setcounter{@PCDC@Text@width}{\value{@PCDC@Back@Height}-2*\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Fold@Dash@Number}{\value{@PCDC@Fold@Length}/2} +%% +%% Fold mark coordinates. +\setcounter{@PCDC@Fold@A@Lft@X}{\value{@PCDC@Top@Lft@Fold}} +\setcounter{@PCDC@Fold@A@Lft@Y}{\value{@PCDC@Design@Height}} +\setcounter{@PCDC@Fold@A@Rgt@X}{\value{@PCDC@Top@Rgt@Fold}} +\setcounter{@PCDC@Fold@A@Rgt@Y}{\value{@PCDC@Design@Height}} +\setcounter{@PCDC@Fold@B@Lft@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@B@Lft@Y}{0} +\setcounter{@PCDC@Fold@B@Rgt@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@B@Rgt@Y}{0} +\setcounter{@PCDC@Fold@C@Top@X}{\value{@PCDC@Top@Rgt@Fold}} +\setcounter{@PCDC@Fold@C@Top@Y}{\value{@PCDC@Design@Height}} +\setcounter{@PCDC@Fold@C@Bot@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@C@Bot@Y}{0} +\setcounter{@PCDC@Fold@D@Top@X}{\value{@PCDC@Top@Lft@Fold}} +\setcounter{@PCDC@Fold@D@Top@Y}{\value{@PCDC@Design@Height}} +\setcounter{@PCDC@Fold@D@Bot@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@D@Bot@Y}{0} +\setcounter{@PCDC@Fold@E@Lft@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@E@Lft@Y}{\value{@PCDC@Bot@Fold}} +\setcounter{@PCDC@Fold@E@Rgt@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@E@Rgt@Y}{\value{@PCDC@Bot@Fold}} +\setcounter{@PCDC@Fold@F@Lft@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@F@Lft@Y}{\value{@PCDC@Lwr@Top@Fold}} +\setcounter{@PCDC@Fold@F@Rgt@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@F@Rgt@Y}{\value{@PCDC@Lwr@Top@Fold}} +\setcounter{@PCDC@Fold@G@Lft@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@G@Lft@Y}{\value{@PCDC@Upr@Top@Fold}} +\setcounter{@PCDC@Fold@G@Rgt@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@G@Rgt@Y}{\value{@PCDC@Upr@Top@Fold}} +\setcounter{@PCDC@Fold@H@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@H@Y}{\value{@PCDC@Pouch@Height}} +\setcounter{@PCDC@Fold@I@X}{\value{@PCDC@Bot@Rgt@Fold}} +\setcounter{@PCDC@Fold@I@Y}{\value{@PCDC@Pouch@Height}} +\setcounter{@PCDC@Fold@J@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@J@Y}{\value{@PCDC@Pouch@Height}} +\setcounter{@PCDC@Fold@K@X}{\value{@PCDC@Bot@Lft@Fold}} +\setcounter{@PCDC@Fold@K@Y}{\value{@PCDC@Pouch@Height}} +\setcounter{@PCDC@Fold@L@X}{\value{@PCDC@Top@Rgt@Fold}} +\setcounter{@PCDC@Fold@L@Y}{\value{@PCDC@Design@Height}-\value{@PCDC@Fold@Short@Length}} +\setcounter{@PCDC@Fold@M@X}{\value{@PCDC@Top@Lft@Fold}} +\setcounter{@PCDC@Fold@M@Y}{\value{@PCDC@Design@Height}-\value{@PCDC@Fold@Short@Length}} +%% +%% Fold mark label coordinates. +\setcounter{@PCDC@Fold@A@Lft@Label@X}{\value{@PCDC@Fold@A@Lft@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@A@Lft@Label@Y}{\value{@PCDC@Fold@A@Lft@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@A@Rgt@Label@X}{\value{@PCDC@Fold@A@Rgt@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@A@Rgt@Label@Y}{\value{@PCDC@Fold@A@Rgt@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@B@Lft@Label@X}{\value{@PCDC@Fold@B@Lft@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@B@Lft@Label@Y}{\value{@PCDC@Fold@B@Lft@Y}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@B@Rgt@Label@X}{\value{@PCDC@Fold@B@Rgt@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@B@Rgt@Label@Y}{\value{@PCDC@Fold@B@Rgt@Y}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@C@Top@Label@X}{\value{@PCDC@Fold@C@Top@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@C@Top@Label@Y}{\value{@PCDC@Fold@C@Top@Y}-\value{@PCDC@Fold@Length}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@C@Bot@Label@X}{\value{@PCDC@Fold@C@Bot@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@C@Bot@Label@Y}{\value{@PCDC@Fold@C@Bot@Y}+\value{@PCDC@Fold@Length}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@D@Top@Label@X}{\value{@PCDC@Fold@D@Top@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@D@Top@Label@Y}{\value{@PCDC@Fold@D@Top@Y}-\value{@PCDC@Fold@Length}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@D@Bot@Label@X}{\value{@PCDC@Fold@D@Bot@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@D@Bot@Label@Y}{\value{@PCDC@Fold@D@Bot@Y}+\value{@PCDC@Fold@Length}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@E@Lft@Label@X}{\value{@PCDC@Fold@E@Lft@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@E@Lft@Label@Y}{\value{@PCDC@Fold@E@Lft@Y}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@E@Rgt@Label@X}{\value{@PCDC@Fold@E@Rgt@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@E@Rgt@Label@Y}{\value{@PCDC@Fold@E@Rgt@Y}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@F@Lft@Label@X}{\value{@PCDC@Fold@F@Lft@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@F@Lft@Label@Y}{\value{@PCDC@Fold@F@Lft@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@F@Rgt@Label@X}{\value{@PCDC@Fold@F@Rgt@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@F@Rgt@Label@Y}{\value{@PCDC@Fold@F@Rgt@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@G@Lft@Label@X}{\value{@PCDC@Fold@G@Lft@X}-\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@G@Lft@Label@Y}{\value{@PCDC@Fold@G@Lft@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@G@Rgt@Label@X}{\value{@PCDC@Fold@G@Rgt@X}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@G@Rgt@Label@Y}{\value{@PCDC@Fold@G@Rgt@Y}+\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@H@Label@X}{\value{@PCDC@Fold@H@X}+5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@H@Label@Y}{\value{@PCDC@Fold@H@Y}+4*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@I@Label@X}{\value{@PCDC@Fold@I@X}+5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@I@Label@Y}{\value{@PCDC@Fold@I@Y}-6*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@J@Label@X}{\value{@PCDC@Fold@J@X}-5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@J@Label@Y}{\value{@PCDC@Fold@J@Y}+4*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@K@Label@X}{\value{@PCDC@Fold@K@X}-5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@K@Label@Y}{\value{@PCDC@Fold@K@Y}-6*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@L@Label@X}{\value{@PCDC@Fold@L@X}+5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@L@Label@Y}{\value{@PCDC@Fold@L@Y}+4*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@M@Label@X}{\value{@PCDC@Fold@M@X}-5*\value{@PCDC@Label@Sep}} +\setcounter{@PCDC@Fold@M@Label@Y}{\value{@PCDC@Fold@M@Y}+4*\value{@PCDC@Label@Sep}} +%% +%% Text box coordinates. +\setcounter{@PCDC@Pouch@Matter@X}{\value{@PCDC@Fold@Length}+\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Pouch@Matter@Y}{\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Back@Matter@X}{\value{@PCDC@Fold@Length}+\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Back@Matter@Y}{\value{@PCDC@Pouch@Height}+\value{@PCDC@Back@Height}-\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Spine@Matter@X}{\value{@PCDC@Fold@Length}+\value{@PCDC@Back@Height}/2} +\setcounter{@PCDC@Spine@Matter@Y}{\value{@PCDC@Back@Matter@Y}+\value{@PCDC@Spine@Height}/2+\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Latch@Matter@X}{\value{@PCDC@Fold@Length}+\value{@PCDC@Text@Margin}} +\setcounter{@PCDC@Latch@Matter@Y}{\value{@PCDC@Spine@Matter@Y}+\value{@PCDC@Spine@Height}/2+\value{@PCDC@Text@Margin}} +%% +%% Typeset the folding scheme +\begin{picture}(\value{@PCDC@Design@width}, \value{@PCDC@Design@Height}) +%% Fold mark 1, left +\put(\value{@PCDC@Fold@A@Lft@X}, \value{@PCDC@Fold@A@Lft@Y}){\line(-1, 0){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@A@Lft@Label@X}, \value{@PCDC@Fold@A@Lft@Label@Y}){\makebox(0, 0)[br]{\rotatebox{180}{1}}} +%% +%% Fold mark 1, right +\put(\value{@PCDC@Fold@A@Rgt@X}, \value{@PCDC@Fold@A@Rgt@Y}){\line(1, 0){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@A@Rgt@Label@X}, \value{@PCDC@Fold@A@Rgt@Label@Y}){\makebox(0, 0)[bl]{\rotatebox{180}{1}}} +%% +%% Fold mark 2, left +\put(\value{@PCDC@Fold@B@Lft@X}, \value{@PCDC@Fold@B@Lft@Y}){\line(-1, 0){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@B@Lft@Label@X}, \value{@PCDC@Fold@B@Lft@Label@Y}){\makebox(0, 0)[tr]{2}} +%% +%% Fold mark 2, right +\put(\value{@PCDC@Fold@B@Rgt@X}, \value{@PCDC@Fold@B@Rgt@Y}){\line(1, 0){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@B@Rgt@Label@X}, \value{@PCDC@Fold@B@Rgt@Label@Y}){\makebox(0, 0)[tl]{2}} +%% +%% Fold mark 3, top +\put(\value{@PCDC@Fold@C@Top@X}, \value{@PCDC@Fold@C@Top@Y}){\line(0, -1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@C@Top@Label@X}, \value{@PCDC@Fold@C@Top@Label@Y}){\makebox(0, 0)[bl]{\rotatebox{90}{3}}} +%% +%% Fold mark 3, bottom +\put(\value{@PCDC@Fold@C@Bot@X}, \value{@PCDC@Fold@C@Bot@Y}){\line(0, 1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@C@Bot@Label@X}, \value{@PCDC@Fold@C@Bot@Label@Y}){\makebox(0, 0)[tl]{\rotatebox{90}{3}}} +%% +%% Fold mark 4, top +\put(\value{@PCDC@Fold@D@Top@X}, \value{@PCDC@Fold@D@Top@Y}){\line(0, -1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@D@Top@Label@X}, \value{@PCDC@Fold@D@Top@Label@Y}){\makebox(0, 0)[br]{\rotatebox{270}{4}}} +%% +%% Fold mark 4, bottom +\put(\value{@PCDC@Fold@D@Bot@X}, \value{@PCDC@Fold@D@Bot@Y}){\line(0, 1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@D@Bot@Label@X}, \value{@PCDC@Fold@D@Bot@Label@Y}){\makebox(0, 0)[tr]{\rotatebox{270}{4}}} +%% +%% Fold mark 5, left +\multiput(\value{@PCDC@Fold@E@Lft@X}, \value{@PCDC@Fold@E@Lft@Y})(-2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(-1, 0){1}} +\put(\value{@PCDC@Fold@E@Lft@Label@X}, \value{@PCDC@Fold@E@Lft@Label@Y}){\makebox(0, 0)[tr]{5 (bottom)}} +%% +%% Fold mark 5, right +\multiput(\value{@PCDC@Fold@E@Rgt@X}, \value{@PCDC@Fold@E@Rgt@Y})(2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(1, 0){1}} +\put(\value{@PCDC@Fold@E@Rgt@Label@X}, \value{@PCDC@Fold@E@Rgt@Label@Y}){\makebox(0, 0)[tl]{5 (bottom)}} +%% +%% Fold mark 6, left +\multiput(\value{@PCDC@Fold@F@Lft@X}, \value{@PCDC@Fold@F@Lft@Y})(-2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(-1, 0){1}} +\put(\value{@PCDC@Fold@F@Lft@Label@X}, \value{@PCDC@Fold@F@Lft@Label@Y}){\makebox(0, 0)[br]{\rotatebox{180}{6 (top)}}} +%% +%% Fold mark 6, right +\multiput(\value{@PCDC@Fold@F@Rgt@X}, \value{@PCDC@Fold@F@Rgt@Y})(2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(1, 0){1}} +\put(\value{@PCDC@Fold@F@Rgt@Label@X}, \value{@PCDC@Fold@F@Rgt@Label@Y}){\makebox(0, 0)[bl]{\rotatebox{180}{6 (top)}}} +%% +%% Fold mark 7, left +\multiput(\value{@PCDC@Fold@G@Lft@X}, \value{@PCDC@Fold@G@Lft@Y})(-2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(-1, 0){1}} +\put(\value{@PCDC@Fold@G@Lft@Label@X}, \value{@PCDC@Fold@G@Lft@Label@Y}){\makebox(0, 0)[br]{\rotatebox{180}{7 (top)}}} +%% +%% Fold mark 7, right +\multiput(\value{@PCDC@Fold@G@Rgt@X}, \value{@PCDC@Fold@G@Rgt@Y})(2, 0){\value{@PCDC@Fold@Dash@Number}}{\line(1, 0){1}} +\put(\value{@PCDC@Fold@G@Rgt@Label@X}, \value{@PCDC@Fold@G@Rgt@Label@Y}){\makebox(0, 0)[bl]{\rotatebox{180}{7 (top)}}} +%% +%% Fold mark 8 +\put(\value{@PCDC@Fold@H@X}, \value{@PCDC@Fold@H@Y}){\line(1, 1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@H@Label@X}, \value{@PCDC@Fold@H@Label@Y}){\makebox(0, 0)[tl]{\rotatebox{ 45}{8}}} +%% +%% Fold mark 9 +\put(\value{@PCDC@Fold@I@X}, \value{@PCDC@Fold@I@Y}){\line(1, -1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@I@Label@X}, \value{@PCDC@Fold@I@Label@Y}){\makebox(0, 0)[tr]{\rotatebox{315}{9}}} +%% +%% Fold mark 10 +\put(\value{@PCDC@Fold@J@X}, \value{@PCDC@Fold@J@Y}){\line(-1, 1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@J@Label@X}, \value{@PCDC@Fold@J@Label@Y}){\makebox(0, 0)[tr]{\rotatebox{315}{10}}} +%% +%% Fold mark 11 +\put(\value{@PCDC@Fold@K@X}, \value{@PCDC@Fold@K@Y}){\line(-1, -1){\value{@PCDC@Fold@Length}}} +\put(\value{@PCDC@Fold@K@Label@X}, \value{@PCDC@Fold@K@Label@Y}){\makebox(0, 0)[tl]{\rotatebox{ 45}{11}}} +%% +%% Fold mark 12 +\put(\value{@PCDC@Fold@L@X}, \value{@PCDC@Fold@L@Y}){\line(1, 1){\value{@PCDC@Fold@Short@Length}}} +\put(\value{@PCDC@Fold@L@Label@X}, \value{@PCDC@Fold@L@Label@Y}){\makebox(0, 0)[tl]{\rotatebox{ 45}{12}}} +%% +%% Fold mark 13 +\put(\value{@PCDC@Fold@M@X}, \value{@PCDC@Fold@M@Y}){\line(-1, 1){\value{@PCDC@Fold@Short@Length}}} +\put(\value{@PCDC@Fold@M@Label@X}, \value{@PCDC@Fold@M@Label@Y}){\makebox(0, 0)[tr]{\rotatebox{315}{13}}} +%% +%% Latch matter +\put(\value{@PCDC@Latch@Matter@X}, \value{@PCDC@Latch@Matter@Y}){\makebox(0, 0)[bl]{\rotatebox{180}{\parbox{\value{@PCDC@Text@width}\unitlength}{\@PCDC@Latch@Matter}}}} +%% +%% Spine matter +\put(\value{@PCDC@Spine@Matter@X}, \value{@PCDC@Spine@Matter@Y}){\makebox(0, 0)[cc]{\@PCDC@Spine@Matter}} +%% +%% Back matter +\put(\value{@PCDC@Back@Matter@X}, \value{@PCDC@Back@Matter@Y}){\makebox(0, 0)[tl]{\parbox{\value{@PCDC@Text@width}\unitlength}{\@PCDC@Back@Matter}}} +%% +%% Pouch matter +\put(\value{@PCDC@Pouch@Matter@X}, \value{@PCDC@Pouch@Matter@Y}){\makebox(0, 0)[bl]{\rotatebox{180}{\parbox{\value{@PCDC@Text@width}\unitlength}{\@PCDC@Pouch@Matter}}}} +\end{picture}} + +% \end{macrocode} +% +% \subsection{Clean Up} +% +% And finally, we do some housekeeping. +% \begin{macrocode} +\makeatother +% \end{macrocode} +% +% That's all. +% +% \PrintChanges +% \newpage +% \PrintIndex +% +% \Finale +% +\endinput +% +% Local Variables: +% mode: latex +% TeX-master: t +% End: diff --git a/Master/texmf-dist/source/latex/papercdcase/papercdcase.ins b/Master/texmf-dist/source/latex/papercdcase/papercdcase.ins new file mode 100644 index 00000000000..1d043ad3f2f --- /dev/null +++ b/Master/texmf-dist/source/latex/papercdcase/papercdcase.ins @@ -0,0 +1,43 @@ +%%------------------------------------------------------------------ +%% Driver file to extract the dtx style and package file. +%% +%% Copyright (C) 2006 Tobias Dussa +%% +%% Author: Tobias Dussa +%% Im Schlossfeld 4 +%% 77855 Achern +%% Mail: tdussa@sdhs.de +%% +%% papercdcase.ins is distributed in hopes that it will be useful, +%% but WITHOUT ANY WARRANTY. No author or distributor accepts +%% responsibility to anyone for the consequences of using it or for +%% whether it serves any particular purpose or works at all, unless +%% he says so in writing. +%% +%% Everyone is granted permission to copy, modify and redistribute +%% papercdcase.ins, provided this copyright notice is preserved and +%% any modifications are indicated. +%% +%%------------------------------------------------------------------ +%% +%% Run this file through TeX or LaTeX to extract the files. +%% You need the docstrip package as distributed with LaTeX2e. +%% It is also availlable as seperate package from any CTAN site. +%% +%%------------------------------------------------------------------ +\def\batchfile{papercdcase.ins} +\input docstrip.tex +\keepsilent +\generateFile{papercdcase.sty}{t}{\from{papercdcase.dtx}{}} +\Msg{****************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space papercdcase.sty} +\Msg{*} +\Msg{* To produce the documentation run papercdcase.dtx through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{****************************************************************} +\endinput -- cgit v1.2.3