1 %% \ratexenc ist ein Paket, um (Geschäfts)-Briefen, die mit scrlttr2 aus %% dem KOMA-Skript erzeugt werden, PDF-Dateien als Anhänge hinzu zu
2 %% fügen und diese zu referrenzieren.
4 %% Außerdem stellt das Paket einen Befehl \fax[]{} zur Verfügung. Dieser
5 %% kann an beliebiger Stelle in einem eigens definierten Briefkopf
6 %% verwendet werden. Als obligatorisches Argument wird die Faxnummer
7 %% benötigt, die vom Paket telprint.sty entsprechend ausgegeben wird.
8 %% Als optionales Argument kann »vorab« oder »nur« eingegeben werden.
9 %% Dementsprechend erscheint dann in der Ausgabe »nur als Fax« oder
10 %% »vorab als Fax«. Außerdem wird unterhalb der Faxnummer angegeben,
11 %% wieviele Seiten das Fax umfasst.
13 %% Das Paket ratexenc kennt drei Optionen:
15 %% [footnote] Die Referenz im Brieftext verweist mittels nummerierter
16 %% Fußnote auf den entsprechend nummerierten Listeneintrag
17 %% unter der Grußformel und die entsprechende auf die Anlage
18 %% gestempelte Nummer der Anlage
19 %% [margin] Die beigefügten Dokumente werden jeweils in einer
20 %% Randglosse erwähnt. Außerdem werden sämtliche Anhänge
21 %% unter der Grußformel unter Nennung der fortlaufenden
22 %% Nummer der Anlage aufgelistet und jeder Anlage wird
23 %% fortlaufend ihre Nummer aufgestempelt.
24 %% [noencl] Entspricht [margin] mit dem Unterschied dass die Anlagen
25 %% nur in Randglossen erwähnt werden. Eine Auflistung unter
26 %% der Grußformel findet nicht statt.
28 %% Getestet wurde das Paket nur mit scrlttr2. Kernstück ist die
29 %% Anweisung \rtxencl. Deren Syntax lautet: \rtxencl[Bezeichnung der
30 %% Anlage][Art der Anlage]{Dateiname der Anlage}{Stichwort im Brieftext}
31 %% Die Anweisung \rtxencl bewirkt, dass (a) je nach gewählter Option
32 %% die angehängten Dokumente im Brief referenziert und gelistet werden,
33 %% (b) die Anlagen sodann fortlaufend nummeriert werden und (c)
34 %% sämtliche referrenzierten Dokumente als Anlage in %% die PDF-Ausgabe
35 %% des jeweiligen Briefs inkludiert werden Dabei unterstützt das Paket
36 %% die Fähigkeit von KOMA-Skript mit einem Dokument mehrere Briefe zu
37 %% erzeugen. Jeder Brief kann seine eigenen, unterschiedlichen Anlagen
38 %% haben; Die Anlagenzählung beginnt bei jedem Brief neu.
40 %% Die Anweisung \rtxencl erfordert zwei obligatorische Argumente,
41 %% nämlich 1.) im Text des Briefs die Benennung des angehängten
42 %% Dokuments, sozusagen das Stichwort. Dessen Bezeichnung wird --
43 %% vorbehaltlich eines optionalen Arguments -- auch als Bezeichnung der
44 %% Anlage verwendet; und 2.) den Dateinamen des anzuhängenden
47 %% Optional können zwei weitere Argumente verwendet werden: 1.) Soll das
48 %% angehängte Dokument -- je nachdem welche Paketoption gewählt wurde --
49 %% in der Randglosse und in der nach der Grußformel folgenden Auflistung
50 %% eine andere Benennung haben als die Referenz, resp. das Stichwort im
51 %% Brieftext, kann als erstes optionales Argument der Refernzname
52 %% eingesetzt werden; er ersetzt dann in er Anlagenbennenung das
53 %% Stichwort des Brieftextes. Wird dieses optionale Argument nicht
54 %% definiert wird automatisch die im Brieftext verwendete Bezeichnung
55 %% gesetzt. Achtung: Falls im Brieftext die Bezeichnung des Dokuments im
56 %% Genitiv steht -- »Kopie des Briefs« -- genügt, nur den Wortteil
57 %% »Brief«, also ohne »s« als obligatorsiches Argument zu verwenden. So
58 %% wird vermieden, dass in der Randglosse und in der Auflistung am
59 %% Briefende »Briefs« steht. 2.) Je nachdem, ob dem wirklichen Brief das
60 %% Original oder die Kopie beigefügt wird, kann als zweites optionales
61 %% Argument ein O, ein E oder ein K angegeben werden, so dass in der
62 %% Randnotiz die Mitteilung »im Original«, »im Entwurf« oder »in Kopie«
63 %% erscheint. Wird das Argument nicht gesetzt, erscheint Kopie. Kopien
64 %% werden außerdem durch ein diagonal aufgesetztes KOPIE markiert,
65 %% Entwürfe durch ein diagonal aufgesetzes ENTWURF.
66 %%================================================================
67 \NeedsTeXFormat{LaTeX2e
}
68 \ProvidesPackage{ratexenc
}[2010/
02/
06 v0.2
.0.0 RA Friedrich Vosberg
]
69 \RequirePackage{graphicx, ifthen, pdfpages, picture, ragged2e, telprint, twoopt, zref-abspage
}
70 %%----------------------------------------------------------------
71 \KOMAoptions{twoside=semi
}%
72 %%----------------------------------------------------------------
73 \def\JX@Anlagenform
{}%
74 \def\JX@Anlagenname
{}%
75 %%----------------------------------------------------------------
76 \newcommand*
{\JXenclContent}{}%
77 %%----------------------------------------------------------------
78 \def\JXenclAnlage{als Anlage
}%
80 \def\JXenclOriginal{\textbf{im Original
}}%
81 \def\JXenclKopie{in Kopie
}%
82 \def\JXenclEntwurf{im Entwurf
}%
84 \def\JXenclStempelK{KOPIE
}%
85 \def\JXenclStempelE{ENTWURF
}%
86 \def\JXenclStempelX{ENTWERTET
}%
87 \def\JXenclAnlNr{Anl. Nr.
}%
88 %%----------------------------------------------------------------
89 \newcounter{AbsLetter
}
90 %%----------------------------------------------------------------
91 \newcounter{JXenclcntr
}
92 %%----------------------------------------------------------------
93 \newcounter{JXattachcntr
}
94 %%----------------------------------------------------------------
95 \renewcommand*
{\theAbsLetter}{letter@
\number\value{AbsLetter
}}
96 %%----------------------------------------------------------------
97 \newcounter{FirstLetterPage
}
98 %%----------------------------------------------------------------
99 \renewcommand*
{\theFirstLetterPage}{\number\value{FirstLetterPage
}}
100 %%----------------------------------------------------------------
101 \newcommand*
{\Debug}[1]{%
102 % \typeout{[Debug] #1}%
104 %%----------------------------------------------------------------
105 \newcommand*
{\StartLetterPages}{%
106 \stepcounter{AbsLetter
}%
107 \Debug{\string\StartLetterPages:
\theAbsLetter}%
108 \setcounter{FirstLetterPage
}{\value{abspage
}}%
109 \Debug{FirstPage (zero-based):
\theFirstLetterPage}%
110 \let\OrgClearDoublePage\cleardoublepage
111 \renewcommand*
{\cleardoublepage}{%
113 \addtocounter{FirstLetterPage
}{-
\value{abspage
}}%
115 \addtocounter{FirstLetterPage
}{\value{abspage
}}%
117 FirstPage (zero-based) after
%
118 \string\cleardoublepage:
\theFirstLetterPage
122 %%----------------------------------------------------------------
123 \newcommand*
{\IncludeAppendixHook}{}
124 %%----------------------------------------------------------------
125 \newcommand*
{\StopLetterPages}{%
128 \Debug{AbsPage:
\number\value{abspage
}}%
129 % calculate difference and store in FirstLetterPage
130 \setcounter{FirstLetterPage
}{-
\value{FirstLetterPage
}}%
131 \addtocounter{FirstLetterPage
}{\value{abspage
}}%
132 \Debug{Pages of
\theAbsLetter:
\theFirstLetterPage}%
133 \zref@wrapper@immediate
{%
134 % set info for next label
135 \edef\@currentlabel
{\theFirstLetterPage}%
136 \zref@labelbyprops
{\theAbsLetter}{default
}%
139 %%----------------------------------------------------------------
140 \newcommand*
{\LetterPages}{%
141 \zref@refused
{\theAbsLetter}%
142 \zref@extractdefault
{\theAbsLetter}{default
}{0}%
144 %%----------------------------------------------------------------
145 \AtBeginLetter{\StartLetterPages}
146 %%----------------------------------------------------------------
147 \DeclareOption{footnote
}{%
148 \newcommandtwoopt{\rtxencl}[5][][K
]{%
149 \stepcounter{JXattachcntr
}%
150 \ifthenelse{\equal{#2}{K
}}{%
151 \let\JX@Anlagenform
\JXenclKopie%
153 \ifthenelse{\equal{#2}{E
}}{%
154 \let\JX@Anlagenform
\JXenclEntwurf%
156 \let\JX@Anlagenform
\JXenclOriginal%
159 \ifthenelse{\equal{#1}{}}{%
160 \def\JX@Anlagenname
{#4}%
162 \def\JX@Anlagenname
{#1}%
164 #4\textsuperscript{\theJXattachcntr}%
165 \protected@edef
\JXenclContent{%
166 \JXenclContent\theJXattachcntr)
\JX@Anlagenname
{} (
\JX@Anlagenform)
\endgraf%
168 \l@addto@macro
\IncludeAppendixHook{%
170 \stepcounter{JXenclcntr
}%
174 \put(
.83\paperwidth,
.96\paperheight)
{%
176 \LARGE\bfseries\sffamily
177 --
\JXenclAnlNr~
\theJXenclcntr~--
182 \ifthenelse{\equal{#2}{K
}}{%
183 \put(
0.5\paperwidth,
0.5\paperheight)
{%
185 \resizebox{.95\paperwidth}{!
}{%
191 \textsf{\textbf{\JXenclStempelK}}%
200 \ifthenelse{\equal{#2}{E
}}{%
201 \put(
0.5\paperwidth,
0.5\paperheight)
{%
203 \resizebox{.95\paperwidth}{!
}{%
209 \textsf{\textbf{\JXenclStempelE}}%
218 \ifthenelse{\equal{#2}{X
}}{%
219 \put(
0.5\paperwidth,
0.5\paperheight)
{%
221 \resizebox{.95\paperwidth}{!
}{%
227 \textsf{\textbf{\JXenclStempelX}}%
245 %%----------------------------------------------------------------
246 % Das Kommando \rtxencl hat jetzt (seit 2011/06/09) fünf Argumente. Optional sind ein besonderer Name und die Anweisung ob Kopie, Entwurf oder Original. Obligatorisch sind die Seiten, wobei »-« für »alle« steht; der Dateiname der einzufügenden Datei und das Stichwort.
247 \DeclareOption{margin
}{%
248 \newcommandtwoopt{\rtxencl}[5][][]{%
249 \stepcounter{JXattachcntr
}%
250 \ifthenelse{\equal{#2}{K
}}{%
251 \let\JX@Anlagenform
\JXenclKopie%
253 \ifthenelse{\equal{#2}{E
}}{%
254 \let\JX@Anlagenform
\JXenclEntwurf%
256 \ifthenelse{\equal{#2}{O
}}{%
257 \let\JX@Anlagenform
\JXenclOriginal%
259 \let\JX@Anlagenform
\JXenclEmpty%
263 \ifthenelse{\equal{#1}{}}{%
264 \def\JX@Anlagenname
{#5}%
266 \def\JX@Anlagenname
{#1}%
269 \setlength{\baselineskip}{1.5ex
}{%
270 \sffamily\scriptsize\RaggedRight%
271 \hspace{0pt
}Anlage~
\theJXattachcntr%
274 \protected@edef
\JXenclContent{\JXenclContent \JX@Anlagenname
{} (
\JXenclAnlNr{}~
\theJXattachcntr)
\endgraf}%
275 \g@addto@macro
\IncludeAppendixHook{%
277 \stepcounter{JXenclcntr
}%
281 \ifthenelse{\equal{#2}{}}{}{%
282 \put(
.72\paperwidth,
.955\paperheight)
{%
283 \fboxrule2mm\fboxsep2mm%
284 \fcolorbox{red
}{white
}{%
285 \LARGE\bfseries\sffamily
286 --
\JXenclAnlNr~
\theJXenclcntr~--
292 \ifthenelse{\equal{#2}{K
}}{%
293 \put(
0.935\paperwidth,
0.5\paperheight)
{%
295 \resizebox{!
}{.8\paperheight}{%
301 \textsf{\textbf{\JXenclStempelK}\hspace{3em
}\textbf{\JXenclStempelK}\hspace{3em
}\textbf{\JXenclStempelK}}%
310 \ifthenelse{\equal{#2}{E
}}{%
311 \put(
0.935\paperwidth,
0.5\paperheight)
{%
313 \resizebox{!
}{.8\paperheight}{%
319 \textsf{\textbf{\JXenclStempelE}\hspace{3em
}\textbf{\JXenclStempelE}\hspace{3em
}\textbf{\JXenclStempelE}}%
328 \ifthenelse{\equal{#2}{X
}}{%
329 \put(
0.5\paperwidth,
0.5\paperheight)
{%
331 \resizebox{.95\paperwidth}{!
}{%
337 \textsf{\textbf{\JXenclStempelX}}%
356 %%----------------------------------------------------------------
357 \DeclareOption{noencl
}{%
358 \newcommandtwoopt{\rtxencl}[4][][]{%
359 \stepcounter{JXattachcntr
}%
360 \ifthenelse{\equal{#2}{K
}}{%
361 \let\JX@Anlagenform
\JXenclKopie%
363 \ifthenelse{\equal{#2}{E
}}{%
364 \let\JX@Anlagenform
\JXenclEntwurf%
366 \let\JX@Anlagenform
\JXenclOriginal%
369 \ifthenelse{\equal{#1}{}}{%
370 \def\JX@Anlagenname
{#4}%
372 \def\JX@Anlagenname
{#1}%
375 \setlength{\baselineskip}{1.5ex
}{%
376 \sffamily\scriptsize\RaggedRight%
377 \hspace{0pt
}\JX@Anlagenname
{} \JX@Anlagenform
{} \JXenclAnlage{} \theJXattachcntr
380 \l@addto@macro
\IncludeAppendixHook{%
382 \stepcounter{JXenclcntr
}%
386 \put(
.83\paperwidth,
.96\paperheight)
{%
388 \LARGE\bfseries\sffamily
389 --
\JXenclAnlNr~
\theJXenclcntr~--
394 \ifthenelse{\equal{#2}{K
}}{%
395 \put(
0.5\paperwidth,
0.5\paperheight)
{%
397 \resizebox{.95\paperwidth}{!
}{%
403 \textsf{\textbf{\JXenclStempelK}}%
412 \ifthenelse{\equal{#2}{E
}}{%
413 \put(
0.5\paperwidth,
0.5\paperheight)
{%
415 \resizebox{.95\paperwidth}{!
}{%
421 \textsf{\textbf{\JXenclStempelE}}%
438 %%------------------------------------------------------------Faxvermerk
440 \ifthenelse{\isundefined{\fax}}{}{%
441 \renewcommand*
{\Fax}{}%
442 \renewcommand*
{\fax}[2][]{%
443 \ifthenelse{\equal{#2}{}}{%
446 \setlength{\unitlength}{1mm
}%
447 \begin{picture
}(
0,
0)
%
451 \ifthenelse{\equal{#1}{}}{%
462 % am 6. November 2013 ersetzt durch die folgende Zeile \equal{\LetterPages}{1}%
463 \equal{\pageref{TotPages
}}{\pageref{Startseite
}}%
468 insgesamt
\LetterPages~Seiten.
%
477 %%----------------------------------------------------------------------
479 \BeforeClosingMainAux{\TotPages@putlabel
}%
481 %%----------------------------------------------------------------------
484 \def\IncludeAppendixHook{}
486 %%----------------------------------------------------------------------
488 \ifx\JXenclContent\@empty
490 \encl{\parbox[t
]{.85\textwidth}{\JXenclContent}}%
494 %%----------------------------------------------------------------
496 \PackageError{jxenclbeta
}{Unknown option '
\CurrentOption'
}%
498 %%----------------------------------------------------------------
499 \ProcessOptions\relax
500 %%=============================================================EOF