summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/papercdcase/papercdcase.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/papercdcase/papercdcase.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/papercdcase/papercdcase.dtx')
-rw-r--r--macros/latex/contrib/papercdcase/papercdcase.dtx968
1 files changed, 968 insertions, 0 deletions
diff --git a/macros/latex/contrib/papercdcase/papercdcase.dtx b/macros/latex/contrib/papercdcase/papercdcase.dtx
new file mode 100644
index 0000000000..1aa07e96b4
--- /dev/null
+++ b/macros/latex/contrib/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}
+%</driver>
+%\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: