% \iffalse % % Copyright (C) 1996-98 by Jochen R"utschlin. All rights reserved. % % This file is part of the `cassette' package. % % IMPORTANT NOTICE: % % You are not allowed to change this file. % % You are NOT ALLOWED to distribute this file alone. You are NOT % ALLOWED to take money for the distribution or use of this file (or % a changed version). % % If you receive only some of these files from someone, complain! % % \fi % % \CheckSum{100} % % \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 \~} % % \iffalse %<*driver> \documentclass[a4paper,11pt]{ltxdoc} \pagestyle{empty} \DisableCrossrefs \OnlyDescription \usepackage[german]{babel} \usepackage{typearea} \typearea{15} \usepackage{multicol} \renewcommand{\meta}[1]{{\normalfont\textit{#1}}} \renewcommand{\DescribeMacro}[1]{\relax} \renewcommand{\DescribeEnv}[1]{\relax} \newcommand*{\Describe}[1]{% \bigskip\noindent\fbox{\footnotesize\texttt{\bslash{}#1}}\par\smallskip} \begin{document} \DocInput{cassette.dtx} \end{document} % % \fi % % \title{Das \textsf{cassette} Paket v1.0b} % \author{Jochen R"utschlin} % \date{22.\ M"arz 1998} % \maketitle % % \thispagestyle{empty} % % \begin{abstract} % Mit diesem Paket k"onnen bequem Etiketten f"ur Kassettenh"ullen % erzeugt werden. % \end{abstract} % % \noindent\rule{\hsize}{.4pt} % % \begin{multicols}{2} % Beim Aufruf des Paketes kann durch den Optionsparameter |flatsize| das % Etikett f"ur schmale Kassettenh"ullen eingestellt werden. % % % % \Describe{cassette\marg{Titel$_1$}\oarg{Titel$_2$}\marg{Seite$_1$}\marg{Seite$_2$}} % \DescribeMacro{\cassette}% % Aus \meta{Titel$_1$} und \meta{Titel$_2$} wird die Beschriftung des % Kassettenr"uckens erstellt. \meta{Seite$_1$} und \meta{Seite$_2$} % enthalten die |\entry|-Eintr"age f"ur die Lieder auf der jeweiligen % Seite (ggf.\ k"onnen hier auch mit dem Befehl |\title| Titelzeilen % erzeugt werden). % % Jeder |\cassette|-Aufruf erzwingt einen Seitenwechsel, so da"s sich % jeweils ein Kassettenh"ullenetikett auf einer Seite (auf einem Blatt) % befindet. % % % % \Describe{title\oarg{Gruppe/Interpret}\marg{Titel}} % \DescribeMacro{\title}% % Mit diesem Makro kann eine \meta{Titel}zeile erzeugt werden, die % z.\,B.\ den Namen eines Albums enth"alt. Optional dazu kann ein % \meta{Interpert} oder eine \meta{Gruppe} angegeben werden. % % % % \Describe{entry\marg{Liedtitel}\oarg{Gruppe/Interpret}\marg{Zeit}} % \DescribeMacro{\entry}% % Die Eintr"age f"ur die \meta{Liedtitel} werden schlie"slich mit diesem % Befehl erzeugt. Optional kann auch hier eine \meta{Gruppe} oder ein % \meta{Interpret} angegeben werden. Zus"atzlich wird als letztes % Argument die Spiel\meta{zeit} ben"otigt, die in der Form \texttt{00:00} % angegeben werden sollte. % \end{multicols} % \StopEventually{\Finale} % % \iffalse %<*package> % \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{cassette} [1998/03/22 v1.0b cassette package (jr)] % \end{macrocode} % % \begin{macrocode} \newlength{\tapeheight} \newlength{\tapeback} \newlength{\tapewidth} \setlength{\tapewidth}{10.25cm} \newlength{\tapelength} % \end{macrocode} % % \begin{macrocode} \DeclareOption{normalsize}{% \setlength{\tapeheight}{1.3cm}% \setlength{\tapelength}{6.65cm}% \setlength{\tapeback}{1.6cm}% } \DeclareOption{flatsize}{% \setlength{\tapeheight}{1.1cm}% \setlength{\tapelength}{6.5cm}% \setlength{\tapeback}{.9cm}% } \ExecuteOptions{normalsize} \ProcessOptions* % \end{macrocode} % % \begin{macrocode} \pagestyle{empty} \newlength{\tmpwidth} \newlength{\timewidth} \settowidth{\timewidth}{\footnotesize 00:00} \newlength{\tapeabswidth} \setlength{\tapeabswidth}{\tapewidth} \addtolength{\tapeabswidth}{-2\fboxsep} \addtolength{\tapelength}{-2\fboxsep} \addtolength{\tapeheight}{-2\fboxsep} \addtolength{\tapeback}{-2\fboxsep} % \end{macrocode} % % \begin{macro}{\cassette} % \begin{macrocode} \def\cassette#1{\@ifnextchar[{\@cassette{#1}}{\@cassette{#1}[\@empty]}} \long\def\@cassette#1[#2]#3#4{% \vbox{% \hbox{\framebox[\tapewidth]{% % Back \vbox to\tapeback{\vfill}}} \hbox{\framebox[\tapewidth]{% % Titel \vbox to\tapeheight{% \vfill \hbox to\tapeabswidth{\hfill\bfseries #1\hfill} \ifx\@empty#2 \else \vfill \hbox to\tapeabswidth{\hfill\bfseries #2\hfill} \fi \vfill}% }}% \hbox{\framebox[\tapewidth]{% % Seite 1 \vbox to\tapelength{% #3 \vfill}% }}% \hbox{\framebox[\tapewidth]{% % Seite 2 \vbox to\tapelength{% #4 \vfill}% }}% }% \newpage} % \end{macrocode} % \end{macro} % % \begin{macro}{\entry} % \begin{macrocode} \def\entry#1{\@ifnextchar[{\@entry{#1}}{\@entry{#1}[\@empty]}} \def\@entry#1[#2]#3{% \def\songlen{\hbox to\timewidth{\footnotesize\hfill#3}}% \ifx #2\@empty \hbox to\tapeabswidth{\textit{#1}\,\dotfill\,\songlen} \else \settowidth{\tmpwidth}{\textit{#1} $\cdot$ #2\,\,\songlen} \ifnum \tmpwidth>\tapeabswidth \hbox to\tapeabswidth{\textit{#1}\,\dotfill\,\songlen} \hbox to\tapeabswidth{\quad #2\hfill} \else \hbox to\tapeabswidth{\textit{#1} $\cdot$ #2\,\dotfill\,\songlen} \fi \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\title} % \begin{macrocode} \def\title{\@ifnextchar[{\@title}{\@title[\@empty]}} \def\@title[#1]#2{% \vskip 2mm \hbox to\tapeabswidth{\hfill \ifx#1\@empty \textbf{#2} \else \textbf{#1\ $\cdot$\ \textit{#2}} \fi \hfill} \vskip 1mm} % \end{macrocode} % \end{macro} % \iffalse % % \fi % \Finale