% \iffalse % % Copyright (C) 1996-98 by Jochen R"utschlin. All rights reserved. % % This file is part of the `jrlabels' class. % % 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} \DisableCrossrefs \OnlyDescription \pagestyle{empty} \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} \renewcommand*\descriptionlabel[1]{% \hspace\labelsep\normalfont\texttt{#1}:} \begin{document} \DocInput{jrlabels.dtx} \end{document} % % \fi % % \title{Die \textsf{jrlabels} Klasse v1.6b} % \author{Jochen R"utschlin} % \date{28.\ Februar 2000} % \maketitle % % \pagestyle{empty} % % \begin{abstract} % Mit dieser Klasse k"onnen auf einfache Weise Etiketten beschriftet % werden. Ausgangspunkt ist ein Bogen mit (selbstklebenden) Etiketten, % der in Zeilen und Spalten angeordnet ist; zwischen den Zeilen und % Spalten kann je nach Art des Bogens Zwischenraum auftreten. % \end{abstract} % % \noindent\rule{\hsize}{.4pt} % % \begin{multicols}{2} % \Describe{begin\{sheet\}\ \ldots\ \bslash{}end\{sheet\}} % Innerhalb dieser Umgebung werden die Inhalte der auf dem Bogen % befindlichen Etiketten definiert (mittels |\DeclareLabel|, % s.\,u.). Nach Verlassen der Umgebung wird eine DIN\,A4 Seite mit den % aktuellen Werten der Etiketten erzeugt. % % \Describe{DeclareLabel\marg{Zeile}\marg{Spalte}\marg{Inhalt}} % Mittels \meta{Zeile} und \meta{Spalte} kann der Inhalt eines bestimmten % Etiketts auf dem Bogen angesprochen werden -- die Werte sind Zahlen % gr"o"ser gleich eins. Der \meta{Inhalt} wird durch das dritte Argument % bestimmt; er wird sowohl horizontal als auch vertikal zentriert auf das % Etikettfeld gesetzt. % % \section*{Optionen} % Bisher werden folgende Optionen f"ur das Paket unterst"utzt % (unterstrichene Werte stellen die Voreinstellungen dar): % \begin{description}\parsep 0pt % \item[draft] stellt das Etikett mit einem d"unnen Rahmen dar. Nicht % belegte Etiketten auf dem Bogen erhalten die Beschriftung % $\langle$\emph{leer}$\rangle$. % \item[\underbar{final}] erzeugt die \glqq{}endg"ultige\grqq\ Version der % Etiketten. % \item[landscape] f"ullt die Etiketten im Querformat aus. % \item[\underbar{10pt}, 11pt, 12pt] stellt die 10, 11 oder 12 Punkt % gro"se Schrift als Dokumentschriftgr"o"se ein. % \item[\underbar{disk}] w"ahlt eine Bogenbelegung f"ur Diskettenetiketten % aus. Als Vorlage wurde der DIN\,A4 Bogen von Zweckform (No.\,4738) % genommen, der pro Blatt zehn Etiketten ($70\times 50,8$\,mm) in zwei % Spalten zu je f"unfen enth"alt. % \item[cd] w"ahlt eine Bogenbelegung f"ur CD-Etiketten aus. Als Vorlage % wurde der DIN\,A4 Bogen von Zweckform (No.\,6015) genommen, der pro % Blatt 2 Etiketten (untereinander) enth"alt. % \item[\underbar{disk}] w"ahlt eine Bogenbelegung f"ur zip-Dis"-ketten % Etiketten aus. Als Vorlage wurde der DIN\,A4 Bogen von Zweckform % (No.\,4747) genommen, der pro Blatt 15 Etiketten ($59\times % 50,8$\,mm) in drei Spalten zu je f"unfen enth"alt. % \item[file] w"ahlt eine Bogenbelegung f"ur Ordneretiketten (schmaler % R"ucken) aus. Als Vorlage wurde der DIN\,A4 Bogen von Zweckform % (No.\,4760) genommen, der pro Blatt sieben Etiketten ($190\times % 38$\,mm) -- einspaltig -- enth"alt. % \item[File] w"ahlt eine Bogenbelegung f"ur Ordneretiketten (breiter % R"ucken) aus. Als Vorlage wurde der DIN\,A4 Bogen von Zweckform % (No.\,4761) genommen, der pro Blatt vier Etiketten ($190\times % 61$\,mm) -- einspaltig -- enth"alt. % \item[video] w"ahlt eine Bogenbelegung f"ur Videoetiketten (R"ucken) % aus. Als Vorlage wurde der DIN\,A5 Bogen von Zweckform % (No.\,4711) genommen, der pro Blatt sieben Etiketten ($16,9\times % 147,3$\,mm) -- einzeilig -- enth"alt. % \item[address] w"ahlt eine Bogenbelegung f"ur Adre"setiketten aus. Als % Vorlage wurde der DIN\,A4 Bogen von Zweckform (No.\,3659) genommen, % der pro Blatt zw"olf Etiketten ($97\times 42,4$\,mm) in zwei Spalten % zu je sechsen enth"alt. % \item[businesscard] w"ahlt eine Bogenbelegung f"ur Visitenkarten aus. % Als Vorlage wurde der DIN\,A4 Bogen von Zweckform (No.\,32040) genommen, % der pro Blatt zehn Etiketten ($85\times 54$\,mm) in zwei Spalten % zu je f"unfen enth"alt. % \item[label] w"ahlt eine Bogenbelegung f"ur Beschriftungsetiketten aus. % Als Vorlage wurde der DIN\,A4 Bogen von Zweckform (No.\,4732) genommen, % der pro Blatt 80 Etiketten ($35,6\times 16,9$\,mm) in f"unf Spalten % zu je 16 enth"alt. % \item[box] w"ahlt eine Bogenbelegung f"ur Beschriftungsetiketten aus. % Als Vorlage wurde der DIN\,A4 Bogen von Zweckform (No.\,4736) genommen, % der pro Blatt 48 Etiketten ($45,7\times 21,2$\,mm) in vier Spalten % zu je 12 enth"alt. % \end{description} % % Sollten Etikettenb"ogen verwendet werden, f"ur die es keine Option % gibt, so kann durch die folgenden Befehle das Layout selbst angepa"st % werden. % % \Describe{SetLabel\marg{Breite}\marg{H"ohe}} % Legt die \meta{Breite} und \meta{H"ohe} eines Etiketts fest. Die Werte % werden in |\LabelWidth| und |\LabelHeight| geschrieben. % % \Describe{SetColumns\marg{Anzahl}\marg{Abstand}} % Damit kann die \meta{Anzahl} der Spalten pro Bogen und der % \meta{Abstand} zwischen den Spalten festgelegt werden.\footnote{Es wird % davon ausgegangen, da"s zwischen den einzelnen \emph{Spalten} immer der % gleiche Abstand auftritt.} % % \Describe{SetRows\marg{Anzahl}\marg{Abstand}} % Speichert analog zu |\SetColumn| die Werte f"ur die \meta{Anzahl} der % Zeilen pro Blatt und den \meta{Abstand} zwischen zwei Zeilen.\footnote{Es % wird davon ausgegangen, da"s zwischen den einzelnen \emph{Zeilen} immer % der gleiche Abstand auftritt.} % % \Describe{SetMargin} % Setzt entsprechend den durch |\SetLabel|, |\SetColumns| und |\SetRows| % eingestellten Etiketten den Rand der Seite. % \end{multicols} % \StopEventually{\Finale} % % \iffalse %<*class> % \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{jrlabels} [1999/04/15 v1.6a Label printing class (jr)] \RequirePackage{eepic} % \end{macrocode} % % \begin{macrocode} \newlength{\LabelWidth} \newlength{\LabelHeight} \newlength{\SepWidth} \newlength{\SepHeight} \newlength{\DraftRuleWidth} \newcounter{NoOfColumns} \newcounter{NoOfRows} \newcounter{RowCnt} \newcounter{ColumnCnt} % \end{macrocode} % % \begin{macrocode} \newcommand{\SetLabel}[2]{% \setlength{\LabelWidth}{#1} \setlength{\LabelHeight}{#2}} \newcommand{\SetColumns}[2]{% \setcounter{NoOfColumns}{#1} \setlength{\SepWidth}{#2}} \newcommand{\SetRows}[2]{% \setcounter{NoOfRows}{#1} \setlength{\SepHeight}{#2}} % \end{macrocode} % % \begin{macrocode} \DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}} \DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}} \DeclareOption{12pt}{\PassOptionsToClass{12pt}{article}} \DeclareOption{cd}{% \SetLabel{117mm}{117mm} \SetColumns{1}{0pt} \SetRows{2}{20mm} \PassOptionsToClass{a4paper}{article}} \DeclareOption{disk}{% \SetLabel{70mm}{50,8mm} \SetColumns{2}{2cm} \SetRows{5}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{zip}{% \SetLabel{59mm}{50,8mm} \SetColumns{3}{2.54mm} \SetRows{5}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{file}{% \SetLabel{190mm}{38mm} \SetColumns{1}{0pt} \SetRows{7}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{File}{% \SetLabel{190mm}{61mm} \SetColumns{1}{0pt} \SetRows{4}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{video}{% \SetLabel{16.9mm}{147.3mm} \SetColumns{7}{0pt} \SetRows{1}{0pt} \PassOptionsToClass{a5paper}{article}} \DeclareOption{address}{% \SetLabel{97mm}{42.3mm} \SetColumns{2}{0pt} \SetRows{6}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{businesscard}{% \SetLabel{85mm}{54mm} \SetColumns{2}{1cm} \SetRows{5}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{label}{% \SetLabel{35.56mm}{16.9mm} \SetColumns{5}{2.54mm} \SetRows{16}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{box}{% \SetLabel{45.72mm}{21.17mm} \SetColumns{4}{2.54mm} \SetRows{12}{0pt} \PassOptionsToClass{a4paper}{article}} \DeclareOption{draft}{% \setlength{\DraftRuleWidth}{.4pt}% \def\@emtry{$\langle$\emph{leer}$\rangle$}% \PassOptionsToClass{draft}{article}} \DeclareOption{final}{% \setlength{\DraftRuleWidth}{0pt}% \def\@emtry{}% \PassOptionsToClass{final}{article}} \DeclareOption{landscape}{% \setlength{\@tempdima}{\LabelWidth}% \setlength{\LabelWidth}{\LabelHeight}% \setlength{\LabelHeight}{\@tempdima}% % \@tempcnta\c@NoOfColumns% \c@NoOfColumns\c@NoOfRows% \c@NoOfRows\@tempcnta% % \setlength{\@tempdima}{\SepWidth}% \setlength{\SepWidth}{\SepHeight}% \setlength{\SepHeight}{\@tempdima}% \ifx\@undefined\pdfpagewidth \relax% \else \pdfpagewidth=29.7cm% \pdfpageheight=21.0cm% \fi% \PassOptionsToClass{landscape}{article}} \ExecuteOptions{disk,final} \ProcessOptions \LoadClass[a4paper]{article} % \end{macrocode} % % \begin{macrocode} \newcommand{\SetMargin}{% \setlength{\textwidth}{\c@NoOfColumns\LabelWidth} \addtolength{\textwidth}{\c@NoOfColumns\SepWidth} \addtolength{\textwidth}{-\SepWidth} \setlength{\evensidemargin}{\paperwidth} \addtolength{\evensidemargin}{-\textwidth} \divide\evensidemargin by 2 \setlength{\oddsidemargin}{\evensidemargin} \addtolength{\oddsidemargin}{-1in} % \setlength{\textheight}{\c@NoOfRows\LabelHeight} \addtolength{\textheight}{\c@NoOfRows\SepHeight} \addtolength{\textheight}{-\SepHeight} \setlength{\headheight}{0pt} \setlength{\headsep}{0pt} \setlength{\topmargin}{\paperheight} \addtolength{\topmargin}{-\textheight} \divide\topmargin by 2 \addtolength{\topmargin}{-1in} } \SetMargin \setlength{\parindent}{0pt} \pagestyle{empty} % \end{macrocode} % % \begin{macrocode} \newcommand{\@entry}[1]{% \bgroup% \normalbaselines% \setlength{\fboxsep}{0pt}% \setlength{\fboxrule}{\DraftRuleWidth}% \addtolength{\LabelHeight}{-2\DraftRuleWidth}% \framebox[\LabelWidth][c]{% \vbox to\LabelHeight{% \vfill% \hbox{#1}% \vfill}}% \addtolength{\LabelHeight}{2\DraftRuleWidth}% \offinterlineskip% \egroup} % \end{macrocode} % % \begin{macrocode} \newcommand{\DeclareLabel}[3]{% \expandafter\gdef\csname\romannumeral #1@\romannumeral #2\endcsname{\@entry{#3}}} % \end{macrocode} % % \begin{macrocode} \def\innerdefloop{% \bgroup% \loop% \stepcounter{ColumnCnt}% \expandafter\gdef\csname\roman{RowCnt}@\roman{ColumnCnt}\endcsname{\@entry{\@emtry}}% \ifnum\c@ColumnCnt<\c@NoOfColumns% \relax \repeat% \egroup} % \end{macrocode} % % \begin{macrocode} \def\innerprtloop{% \bgroup% \loop% \stepcounter{ColumnCnt}% \csname\roman{RowCnt}@\roman{ColumnCnt}\endcsname% \ifnum\c@ColumnCnt<\c@NoOfColumns% \hspace*{\SepWidth}% \repeat% \egroup} % \end{macrocode} % % \begin{macrocode} \newenvironment{sheet} {% \offinterlineskip% \setcounter{RowCnt}{0}% \loop% \stepcounter{RowCnt}% \setcounter{ColumnCnt}{0}% \innerdefloop% \ifnum\c@RowCnt<\c@NoOfRows% \relax% \repeat} {% \newpage% \setcounter{RowCnt}{0}% \vbox{% \loop% \stepcounter{RowCnt}% \setcounter{ColumnCnt}{0}% \hbox{\innerprtloop}% \ifnum\c@RowCnt<\c@NoOfRows% \vspace*{\SepHeight}% \repeat}} % \end{macrocode} % \iffalse % % \fi % \Finale