[comp.text.tex] Cassette labeling macros

drstrip@intvax.UUCP (David R. Strip) (02/26/91)

Due to popular request (at least 3 mailings) I am posting
my macros for doing audio cassette labels.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  cassette.tex (C) Copyright 1991 by David Strip.
%  Permission is granted for non-commercial use.
%  Please send corrections, refinements, etc to drstrip@cs.sandia.gov
%  Flames to \dev\null
%
%  These macros are designed to lay out a label for a standard
%  phillips audio cassette box. See the pictorial layout below.
%
%  In general you will begin with a \artist command. This command
%  takes a single argument and prints it in large boldface on the
%  spine of the cassette. Within this argument the \\ command will
%  create spacing between words. The total blank space on the line
%  is divided equally between the left margin, the right margin, and 
%  each occurance of \\. The most typical use of \\ is to separate the
%  names of different artists appearing on the tape. The \artist command
%  does not need to be repeated if several labels are being made with
%  the same artist.
%
%  The next command is the \title command. This is very similar to the
%  \artist command. It takes a single argument, which is printed on the
%  cassette spine. The \\ command and spacing are the same as in the
%  title command.
%
%  Commands \sideA and \sideB are nearly indentical. They layout the
%  left and right columns, repectively of the face of the cassette. 
%  (These columns are twice the length of the cassette box face, and are
%  intended to be folded in half. These commands also take a single arguement
%  which is then formatted as a paragraph  in the appropriate column. The
%  paragraph formatting has reverse indenting - the first line starts at the
%  margin, subsequent lines are indented. In these commands you can use \\ to
%  end lines (e.g., song titles).
%  For the daring, the arguments to the commands can contain any TeX code
%  (within reason). A few useful tricks for the uninitiated: You can call
%  \centerline{...} to center some text. You can use {\bf ...} to put text in 
%  bold face. \blankline (defined in this file, will leave a blank line.
%  (See the example.)
%
%  The \NR and \noNR switches turn on or off the dolby logo on the spine.
%
%  The \CD command within a \sideA or \sideB command will center the 
%  compact audio disk logo at the point that the command occurs.
%
%  After you have filled in these fields, you actually cause the casette
%  label to be processed with the \cassette-label command, which takes 
%  no arguements.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%      _______________________________________________
%     |                                               |
%     |                                               |
%     |_______________________________________________|
%     |                 \artist                       |
%     |                 \title                        |
%     |_______________________________________________|
%     |                      |                        |
%     |    \sideA            |       \sideB           |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |                      |                        |
%     |______________________|________________________|
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Example
%
%   \artist{Dylan\\Kooper, Bloomfield, Stills}
%   \title{Highway 61 Revisited\\Super Session}
%   \sideA{
%   Like A Rolling Stone\\
%   Tombstone Blues\\
%   It Takes a Lot to Laugh, It Takes a Train to Cry\\
%   From a Buick 6\\
%   Queen Jane Approximately\\
%   Highway 61 Revisited\\
%   Just Like Tom Thumb's Blues\\
%   Desolation Row\\
%   \CD}                                      %original was on CD
%   \sideB{
%   Ballad of a Thin Man\\
%   \blankline                                %leave a blank line
%   \centerline{\bf Bloomfield and Kooper}    %center and bold for subhead
%   Albert's Shuffle\\
%   Stop\\
%   Man's Temptation\\
%   His Holy Modal Majesty\\
%   \blankline
%   \centerline{\bf Stills and Kooper}
%   It Takes a Lot to Laugh, It Takes a Train to Cry\\
%   Season of the Witch\\
%   \CD}
%   \cassette-label                           %Print the label
%
%\end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%FONTS  Substitute freely to get what you want. These are Nini Billawala's 
%       pandora family, which lends a slightly informal touch.

\font\ftnbf=pnb10 scaled \magstep2
\font\rm=pnr10
\font\bf=pnb10

%These are two specialty fonts. I hope that you can find them. 
\font\dolby=dolby
\font\cdlogo=cdlogo

\tolerance=10000    %Allow very sloppy line breaking.
\nopagenumbers

%setup the indentation the way I want it.
\parindent=0.pt
\def\\{\par\hangindent 2em \hangafter 1}

%Now grab a few boxes to build the stuff in
\newbox\ART \newbox\TITLE \newbox\ASIDE \newbox\BSIDE \newbox\NRmark

\def\sideA#1{\setbox\ASIDE=\vbox to 4.98in{\hsize 1.875in \raggedright 
\vskip \baselineskip \\ \rm #1\vfil}}

\def\sideB#1{\setbox\BSIDE=\vbox to 4.98in{\hsize 1.875in \raggedright 
\vskip \baselineskip \\ \rm #1\vfil}}

\def\artist#1{
\setbox\ART=\vbox {\def\\{\hfil}\hsize 4.0in \ftnbf \hfil #1\hfil}}

\def\title#1{\setbox\TITLE=\vbox {
   \def\\{\hfil}
   \hsize 4.0in \hfil \rm #1 \hfil}}


%These next two may very likely need some munging with, since there obviously 
%no such thing as a standard font for the logos. In each case there is a
%single letter right after the font change command that specifies the mapping
%of the character in the font. Change that if you need.


\def\NR{\setbox\NRmark=\vbox {\hbox to 4in {\hfil \dolby E\hskip 2pt} \vskip 2pt}}
\def\noNR{\setbox\NRmark=\vbox to 10pt{}}

\def\CD{\vfill\centerline{{\cdlogo C}}\vskip 1pc}

\def\blankline{\vskip\baselineskip}

%Noise reduction logo is enabled by default.
\NR

\def\cassette-label{%

%My driver does not do landscape, so I can only do one label per page.
%If you can do landscape, you might want to remove this centerline, and
%adjust the page size parameters to do two-up. I just cut a sheet of
%paper in half and print one at a time.

\centerline{
\hbox{
   \vrule height6.0in width.01in
   \vbox to 6.0in{\vfil                  %this seems to be necessary to pick
      \hrule width4in height.01in        %   for round-off in the decimals.
      \vskip .49in
      \hrule width4.0in height.01in
      \vbox to .49in {\vfil
          \copy\ART   %artist name
          \vfil
          \box\TITLE   %album titles
          \vfil
          \vskip -\ht\NRmark
          \box\NRmark
          }
       \hrule width4.0in height.01in
       \hbox to 4.0in{
          \hskip .06in
          \box\ASIDE        %side A
          \hfil
          \vrule height4.98in width.01in
          \hfil
          \box\BSIDE        %side B
          \hskip .06in
          }
       \hrule width4.0in height.01in
       }\vrule height 6.0in width.01in
   }
}}