diff options
author | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
commit | 9b219d1b664067729034647a4b37626cf2bf5e26 (patch) | |
tree | 00708467b44f90736dc32ed1bebb95e9c4710139 /Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx | |
parent | c00c8298eb6913b74270a36c1f1018f1e9946f7b (diff) |
koma-script (26dec13)
git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx | 1464 |
1 files changed, 1464 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx new file mode 100644 index 00000000000..3bc69e080d7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx @@ -0,0 +1,1464 @@ +% \CheckSum{1467} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-letterclassoptions.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-letterclassoptions.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi +% +% \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 +%%% From File: $Id: scrkernel-letterclassoptions.dtx 1499 2013-11-05 17:22:29Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-letterclassoptions.dtx}[2013/11/05 v3.12 KOMA-Script + (letter class options)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-letterclassoptions.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/22}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Optionendateien für Briefe} +% +% Bei der Briefklasse tritt eine Besonderheit ein. Hier ist es +% möglich, spezielle \texttt{lco}-Dateien zu definieren, die über +% Optionen geladen werden können. Die unterschiedlichen Brieftypen +% sind ein Fall für solche \emph{\textbf{l}etter \textbf{c}lass +% \textbf{o}ption} Dateien. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen für Letter-Class-Options} +% +% \begin{macro}{\lco@test} +% \changes{v2.95}{2006/03/22}{Neu} +% \changes{v2.97c}{2007/09/12}{an neue Optionenabarbeitung angepasst} +% Letter-Class-Optionen können auch für jede per |\documentclass| angegebene +% keyval-Option oder sonstige scan-Option (das sind Optionen, die nicht per +% |\DeclareOption| definiert wurden) geladen werden. Dabei wird die +% Abarbeitung der Option nicht unterbrochen. Dazu wird dieses Makro in den +% scan-Vorgang eingebaut +% \begin{macrocode} +\newcommand*{\lco@test}{% + \IfFileExists{\CurrentOption.lco}{% + \expandafter\AtEndOfClass\expandafter{% + \expandafter\LoadLetterOption\expandafter{\CurrentOption}% + }% + \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% + \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% + \scr@pti@nerr@r + }% + }% + }{}% +} +% \end{macrocode} +% \end{macro} +% +% Als Voreinstellung wird am Ende schon einmal die Datei \texttt{DIN.lco} +% geladen. +% \begin{macrocode} +\AtEndOfClass{\LoadLetterOption{DIN}} +% \end{macrocode} +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \subsection{Makros für Letter-Class-Options} +% +% \begin{macro}{\LoadLetterOption} +% \changes{v2.8q}{2001/10/08}{Neu} +% Bei der neuen Briefklasse existiert eine Anweisung, mit der eine +% \emph{\textbf{l}etter-\texttt{c}lass-\texttt{o}ption}-Datei geladen +% werden kann. Das Laden wird mit entsprechender Information in der +% \texttt{log}-Datei vermerkt. Damit in der Datei interne Makros +% verwendet werden können, muss der catcode von "`@"' entsprechend +% gesetzt sein. Damit der Befehl sowohl in der Präambel als auch in +% weiteren Optionen-Dateien oder in der Klasse selbst verwendet werden +% kann, muss der catcode am Ende wieder restauriert werden. Dabei muss +% etwas trickreich gearbeitet werden, damit tatsächlich eine +% Schachtelung möglich ist. So erfolgt die Umschaltung des catcodes +% immer nur beim ersten Aufruf innerhalb einer Schachtel. +% \begin{macrocode} +\newcommand*{\LoadLetterOption}[1]{% + \@ifundefined{@restore@catcode@level}% + {\let\@restore@catcode@level=\z@}{}% + \ifnum\@restore@catcode@level =\z@ + \ifnum\catcode`\@=11 + \let\@restore@catcode\relax + \else + \@tempcnta=\catcode`\@ + \edef\@restore@catcode{% + \noexpand\catcode`\noexpand\@=\the\@tempcnta}% + \makeatletter + \fi + \fi + \@tempcnta=\@restore@catcode@level\relax + \advance\@tempcnta by \@ne\relax + \edef\@restore@catcode@level{\the\@tempcnta}% + \InputIfFileExists{#1.lco}{% + \ClassInfo{% + scrlttr2% + }{Letter-Class-Option `#1' loaded}% + }{% + \ClassError{% + scrlttr2% + }{% + Letter-Class-Option file `#1.lco' not found% + }{% + You've told me to load the Letter-Class-Option `#1'. So I have + to load\MessageBreak + the file `#1.lco'. But the file isn't available.}% + }% + \@tempcnta=\@restore@catcode@level\relax + \advance\@tempcnta by \m@ne\relax + \edef\@restore@catcode@level{\the\@tempcnta}% + \ifnum\@tempcnta =\z@ + \@restore@catcode + \fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LetterOptionNeedsPapersize} +% \changes{v2.8q}{2001/10/17}{Neu} +% Es besteht die Möglichkeit, in \texttt{lco}-Dateien eine bestimmte +% Papiergröße zu fordern. Dazu wird der Name der \texttt{lco}-Datei +% und die geforderte Papiergröse als Parameter übergeben. Stimmt die +% Papiergröße nicht überein, so wird bei \cs{opening} eine Warnung +% ausgegeben. +% \begin{macro}{\@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \changes{v3.12}{2013/11/05}{Abweichung von 1\,mm nach unten und oben +% erlaubt}%^^A +% \begin{macro}{\@@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \begin{macro}{\LOPNP@size} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \begin{macro}{\LOPNP@option} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% Zur einfacheren Realisierung wird mit vier internen Hilfsmakros +% gearbeitet. +% \begin{macrocode} +\newcommand*{\LOPNP@option}{} +\newcommand*{\LOPNP@size}{} +\newcommand*{\@PapersizeWarning}{% + \begingroup% + \edef\@tempc{\noexpand\@tempswafalse + \noexpand\ifdim\paperwidth<\the\dimexpr\paperwidth-.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperwidth>\the\dimexpr\paperwidth+.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperheight<\the\dimexpr\paperheight-.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperheight>\the\dimexpr\paperheight+.1mm\relax + \relax + \noexpand\else + \noexpand\@tempswatrue + \noexpand\fi + \noexpand\fi + \noexpand\fi + \noexpand\fi + \noexpand\@@PapersizeWarning + }% + \def\@tempb{letter}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{11in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{legal}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{14in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{executive}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{10.5in}\setlength{\paperwidth}{7.25in}% + \else% + \def\ta@opt@err{% + \ClassError{% + scrlttr2% + }{papersize `\LOPNP@size' undefined}{% + You've told me to check for paper size + `\LOPNP@size'\MessageBreak + at letter option file `\LOPNP@option.lco',\MessageBreak + but this paper size is not supported.\MessageBreak + See the KOMA-Script manual for informations about known + paper sizes.}% + }% + \let\@headlines\ta@opt@err% + \expandafter\x@@paper\LOPNP@size paperpaper\x@@paper% + \fi\fi\fi + \@tempc + \endgroup% +} +\newcommand*{\@@PapersizeWarning}{% + \if@tempswa\else% + \ClassWarningNoLine{% + scrlttr2% + }{% + Letter option file `\LOPNP@option.lco'\MessageBreak + needs paper size `\LOPNP@size'.\MessageBreak + Current paper size is not `\LOPNP@size'!\MessageBreak + You should add `paper=\LOPNP@size' at the\MessageBreak + option list of \string\documentclass!\MessageBreak + Maybe you know what you are doing,\MessageBreak + so I do not change this myself}% + \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\newcommand*{\LetterOptionNeedsPapersize}[2]{% + \edef\LOPNP@size{#2}\edef\LOPNP@option{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</body> +%</letter> +% \fi +% +% \subsection{Die Letter-Class-Optionen} +% +% Die Letter-Class-Optionen selbst werden wie bereits erwähnt über Dateien +% realisiert. In den vorgefertigen Dateien für unterschiedliche Arten von +% Briefen werden in erster Linie Pseudo-Längen passend gesetzt. In einigen +% Fällen werden aber auch zusätzlich Befehle umdefiniert. +% +% \iffalse +%<*lco> +% \fi +% +% \subsubsection{Der Datei Kopf} +% +% \iffalse +%<*head> +% \fi +% +% Im Kopf ist natürlich die Datei zu deklarieren: +% \changes{v3.04}{2009/04/21}{neue LCO \texttt{NF} von Jean-Marie Pacquet +% übernommen und ergänzt} +% \changes{v3.04}{2009/06/26}{neue LCO \texttt{USletter2w} in Zusammenarbeit +% mit Engelbert Buxbaum und Richard Ar\`es geschaffen} +% \changes{v3.04}{2009/06/29}{neue LCO \texttt{UScommercial9DW} für Papier im +% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit +% zwei Fenstern} +% \changes{v3.04}{2009/06/30}{neue LCO \texttt{UScommercial9} für Papier im +% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit +% einem Fenster auf Basis von \texttt{http://www.envelopesuperstore.com/}} +% \changes{v3.04}{2009/06/26}{seit langem existierende LCO \texttt{visualize} +% zur Visualisierung einiger Pseudolängen aufgenommen} +% \begin{macrocode} +\ProvidesFile{% +%<visualize> visualize% +%<DIN> DIN% +%<DINmoretext> DINmtext% +%<SN> SN% +%<SNold> SNold% +%<SwissLeft> SNleft% +%<KOMAold> KOMAold% +%<NF> NF% +%<USletter2w> USletter2w +%<UScommercial9> UScommercial9 +%<UScommercial9DW> UScommercial9DW + .lco}[\KOMAScriptVersion\space letter-class-option] +% \end{macrocode} +% +% \begin{macro}{\LCOWarningNoLine} +% \changes{v2.95}{2006/03/24}{Neu} +% \begin{macro}{\LCOWarning} +% \changes{v2.95}{2006/03/24}{Neu} +% Außerdem wird ein Makro benötigt, das analog zu |\ClassWarningNoLine| oder +% |\PackageWarningNoLine| funktioniert. +\providecommand*\LCOWarningNoLine[2]{% + \LCOWarning{#1}{#2\@gobble}% +} +\providecommand*\LCOWarning[2]{% + \GenericWarning{% + (#1)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces + }{% + Letter class option #1 Warning: #2% + }% +} +% \end{macro} +% \end{macro} +% +% \iffalse +%</head> +%<*body> +%<*!visualize> +% \fi +% +% \subsubsection{Der Hauptteil} +% +% Die Maße für einige Optionen wurden nicht von mir selbst recherchiert: +% \begin{center} +% \begin{tabular}{ll} +% \texttt{lco}-Datei & Recherchiert von \\\hline\\[-1.6ex] +% DIN & mir \\ +% DINmtext & mir \\ +% KOMAold & mir \\ +% SNleft & Roger Luethi \\ +% SN & Roger Luethi \\ +% NF & Jean-Marie Pacquet \\ +% USletter2w & Engelbert Buxbaum \\ +% UScommercial9 & mir \\ +% UScommercial9DW & mir \\ +% \end{tabular}{ll} +% \end{center} +% +% Zunächst wird geprüft, ob überhaupt die richtige Klasse geladen ist. +% \begin{macrocode} +\@ifundefined{scr@fromname@var}{% + \LCOWarningNoLine{% +%<DIN> DIN% +%<DINmoretext> DINmtext% +%<SN> SN% +%<SNold> SNold% +%<SwissLeft> SNleft% +%<KOMAold> KOMAold% +%<NF> NF% +%<USletter2w> USletter2w% +%<UScommercial9> UScommercial9% +%<UScommercial9DW> UScommercial9DW% + }{% + This letter class option file was made only\MessageBreak + to be used with KOMA-Script letter class\MessageBreak + `scrlttr2'. Use with other classes may result\MessageBreak + in a lot of errors% + }% +}{} +% \end{macrocode} +% +% Dann wird geprüft, ob das richtige Papierformat vorhanden ist. +% \begin{macrocode} +\LetterOptionNeedsPapersize{% +%<DIN> DIN% +%<DINmoretext> DINmtext% +%<SN> SN% +%<SNold> SNold% +%<SwissLeft> SNleft% +%<KOMAold> KOMAold% +%<NF> NF% +%<USletter2w> USletter2w% +%<UScommercial9> UScommercial9% +%<UScommercial9DW> UScommercial9DW% +%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF> +}{a4} +%</DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF> +%<*USletter2w|UScommercial9|UScommercial9DW> +}{letter} +%</USletter2w|UScommercial9|UScommercial9DW> +% \end{macrocode} +% +% Dann werden die Werte gesetzt. +% \begin{description} +% \item[ZIP-Code] +% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode} +% wird gesetzt} +% \begin{macrocode} +%<!KOMAold>\setkomavar*{fromzipcode}{% +%<DIN|DINmoretext> D} +%<SwissLeft|SN> CH} +%<NF> F} +%<USletter2w|UScommercial9|UScommercial9DW> US} +% \end{macrocode} +% \item[Faltmarken] +% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.} +% \begin{macrocode} +\@setplength{foldmarkhpos}{3.5mm} +\@setplength{tfoldmarkvpos}{% +%<DIN|SwissLeft|SN> 105mm} +%<DINmoretext> 87mm} +%<KOMAold> 103.5mm} +%<NF> 99mm} +%<USletter2w|UScommercial9|UScommercial9DW> 3.75in} +\@setplength{mfoldmarkvpos}{\z@} +\@setplength{bfoldmarkvpos}{% +%<DIN|SwissLeft|SN> 210mm} +%<DINmoretext> 192mm} +%<KOMAold> 202.5mm} +%<NF> 198mm} +%<USletter2w> 7.4in} +%<UScommercial9|UScommercial9DW> 7.375in} +\@setplength{lfoldmarkhpos}{\z@} +% \end{macrocode} +% \item[Anschrift] +% \begin{macrocode} +\@setplength{toaddrvpos}{% +%<DIN|SN> 45mm} +%<DINmoretext> 27mm} +%<SwissLeft> 35.5mm} +%<KOMAold> 49mm} +%<NF> 35mm} +%<USletter2w> 1.8in} +%<UScommercial9|UScommercial9DW> 2.1875in} +\@setplength{toaddrhpos}{% +%<DIN|DINmoretext|SwissLeft> 20mm} +%<SN> -8mm} +%<KOMAold> 1in} +%<KOMAold>\@addtoplength{toaddrhpos}{\oddsidemargin} +%<NF> -10mm} +%<USletter2w> .73in} +%<UScommercial9> 0.6875in} +%<UScommercial9DW> .5625in} +\@setplength{toaddrwidth}{% +%<DIN|DINmoretext> 85mm} +%<SN> 90mm} +%<SwissLeft|NF> 100mm} +%<KOMAold> 70mm} +%<USletter2w> 3.11in} +%<UScommercial9> 4.5in} +%<UScommercial9DW> 3.625in} +% \end{macrocode} +% \changes{v3.03}{2009/06/25}{Anschriftfeld enthält laut Doku die +% Rücksendeadresse, also machen wir das jetzt auch so} +% \begin{macrocode} +\@setplength{toaddrheight}{% +%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 45mm} +%<USletter2w> 1.17in} +%<UScommercial9|UScommercial9DW> 1.125in} +\@setplength{toaddrindent}{% +%<DIN|DINmoretext|SN|SwissLeft|KOMAold|USletter2w|UScommercial9|UScommercial9DW> \z@} +%<NF> 10mm} +\@setplength{backaddrheight}{% +%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 5mm} +%<USletter2w|UScommercial9|UScommercial9DW> \z@} +%<USletter2w|UScommercial9|UScommercial9DW>\KOMAoptions{backaddress=false} +\@setplength{specialmailindent}{\fill} +\@setplength{specialmailrightindent}{1em} +% \end{macrocode} +% \item[Absenderergänzung] +% \begin{macrocode} +\@setplength{locwidth}{% +%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW> \z@} +% \end{macrocode} +% \item[Kopf] +% \begin{macrocode} +\@setplength{firstheadvpos}{% +%<DIN|DINmoretext|SN|SwissLeft> 8mm} +%<KOMAold> 6mm} +%<NF> 15mm} +%<USletter2w> .36in} +%<UScommercial9|UScommercial9DW> .4375in} +\@setplength{firstheadwidth}{% +%<KOMAold> \textwidth} +%<NF> 170mm} +%<*DIN|DINmoretext|SN|SwissLeft|UScommercial9> + \paperwidth} +\ifdim \useplength{toaddrhpos}>\z@ + \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}} +\else + \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}} +\fi +%</DIN|DINmoretext|SN|SwissLeft|UScommercial9> +%<*USletter2w> + \paperwidth} +\@addtoplength[-]{firstheadwidth}{.68in} +%</USletter2w> +%<*UScommercial9DW> + \paperwidth} +\@addtoplength[-]{firstheadwidth}{.25in} +%</UScommercial9DW> +% \end{macrocode} +% \item[Fuß] +% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm +% über der unteren Papierkante.} +% \begin{macrocode} +\@setplength{firstfootwidth}{\useplength{firstheadwidth}} +%<KOMAold>\@setplength{firstfootvpos}{\paperheight} +%<KOMAold>\@addtoplength{firstfootvpos}{-2cm} +%<!KOMAold&!NF>\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax +%<!KOMAold&!NF> \@setplength{firstfootvpos}{\paperheight} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{-16mm} +%<!KOMAold&!NF>\else +%<!KOMAold&!NF> \@setplength{firstfootvpos}{1in} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\topmargin} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headheight} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headsep} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\textheight} +%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\footskip} +%<!KOMAold&!NF>\fi +%<NF>\@setplength{firstfootvpos}{266.679mm} +% \end{macrocode} +% \item[Geschäftszeile] +% \begin{macrocode} +\@setplength{refvpos}{% +%<DIN|SN> 98.5mm} +%<DINmoretext> 80.5mm} +%<SwissLeft> 89mm} +%<KOMAold> 89.5mm} +%<NF> \useplength{tfoldmarkvpos}} +%<USletter2w> 3.1in} +%<UScommercial9|UScommercial9DW> 3.4375in} +\@setplength{refaftervskip}{% +%<!KOMAold> \baselineskip} +%<KOMAold> 2\baselineskip} +% \end{macrocode} +% Bei der Breite der Geschäftszeile brauchen wir wieder eine Sonderlösung, +% damit die Option "`wide"' auch später noch gesetzt werden kann. Also +% verwenden wir hier den Wert 0 als mit der Bedeutung "`ist bei \cs{opening} +% zu berechnen. +% \begin{macrocode} +\@setplength{refwidth}{0pt} +% \end{macrocode} +% \item[Signature] +% \begin{macrocode} +\@setplength{sigindent}{0mm} +\@setplength{sigbeforevskip}{2\baselineskip} +%<DIN|DINmoretext|SN|SwissLeft>\let\raggedsignature=\centering +%<KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW>\let\raggedsignature=\raggedright +% \end{macrocode} +% \end{description} +% Es folgen ggf. noch zusätzliche Änderungen. +% \begin{macrocode} +%<*DINmoretext> +\renewcommand*{\@firsthead}{\noindent + \parbox[b]{\useplength{firstheadwidth}}{\centering% + \usekomafont{fromaddress}{% + \ifkomavarempty{fromname}{}{% + \usekomafont{fromname}% + {\ignorespaces\usekomavar{fromname}\\[-8pt] + \rule{\useplength{firstheadwidth}}{.4pt}\\ + }% + }% + \ifkomavarempty{fromaddress}{}{% + \def\\{,\ \@ogobble}% + \ignorespaces\usekomavar{fromaddress}% + }% + }% + }% + } +%</DINmoretext> +% \end{macrocode} +% +% Außerdem gibt es noch die Kompatibilitätseinstellungen, die ebenfalls von +% \texttt{KOMAold} aktiviert werden. +% \begin{macrocode} +%<*KOMAold> +\def\yourref{\setkomavar{yourref}} +\def\yourmail{\setkomavar{yourmail}} +\def\myref{\setkomavar{myref}} +\def\customer{\setkomavar{customer}} +\def\invoice{\setkomavar{invoice}} +\@ifundefined{scr@refitemi@var}{\newkomavar{refitemi}}{} +\def\refitemi{\setkomavar{refitemi}} +\def\refitemnamei{\setkomavar*{refitemi}} +\@ifundefined{scr@refitemii@var}{\newkomavar{refitemii}}{} +\def\refitemii{\setkomavar{refitemii}} +\def\refitemnameii{\setkomavar*{refitemii}} +\@ifundefined{scr@refitemiii@var}{\newkomavar{refitemiii}}{} +\def\refitemiii{\setkomavar{refitemiii}} +\def\refitemnameiii{\setkomavar*{refitemiii}} +\l@addto@macro{\defaultreffields}{% + \addtoreffields{refitemi}% + \addtoreffields{refitemii}% + \addtoreffields{refitemiii}% + } +\addtoreffields{refitemi}% +\addtoreffields{refitemii}% +\addtoreffields{refitemiii}% +\def\toname{\usekomavar{toname}} +\def\toaddress{\usekomavar{toaddress}} +\@ifundefined{scr@branch@var}{\newkomavar{branch}}{} +\def\branch{\setkomavar{branch}} +\def\frombranch{\usekomavar{branch}} +\def\signature{\setkomavar{signature}} +\def\fromsig{\usekomavar{signature}} +\def\name{\setkomavar{fromname}} +\def\fromname{\usekomavar{fromname}} +\def\address{\setkomavar{fromaddress}} +\def\fromaddress{\usekomavar{fromaddress}} +\def\location{\setkomavar{location}} +\def\fromlocation{\usekomavar{location}} +\def\backaddress{\setkomavar{backaddress}} +\def\@tempa{% + \ifkomavarempty{fromname}{}{% + \strut\ignorespaces\usekomavar{fromname}% + \ifkomavarempty{fromaddress}{}{\\}}% + \ifkomavarempty{fromaddress}{}{% + \strut\ignorespaces\usekomavar{fromaddress}}% + } +\ifx\@tempa\scr@backaddress@var% + \setkomavar{backaddress}{} +\fi +\def\frombackaddress{\usekomavar{backaddress}} +\def\telephone{\setkomavar{fromphone}} +\def\telephonenum{\usekomavar{fromphone}} +\def\specialmail{\setkomavar{specialmail}} +\def\@specialmail{\usekomavar{specialmail}} +\def\title{\setkomavar{title}} +\def\@title{\usekomavar{title}} +\def\subject{\setkomavar{subject}} +\def\@subject{\usekomavar{subject}} +\def\place{\setkomavar{place}} +\def\fromplace{\usekomavar{place}} +\let\ccnameseparator=\scr@ccseparator@var +\setkomavar{ccseparator}{\ccnameseparator} +\let\enclnameseparator=\scr@enclseparator@var +\setkomavar{enclseparator}{\enclnameseparator} +\setkomafont{fromname}{\scshape} +\def\foldmarkson{\@ObsoleteCommand{\foldmarkson}{foldmarks=on}} +\def\foldmarksoff{\@ObsoleteCommand{\foldmarksoff}{foldmarks=off}} +\def\addrfieldon{\@ObsoleteCommand{\addrfieldon}{addrfield=on}} +\def\addrfieldoff{\@ObsoleteCommand{\addrfieldoff}{addrfield=off}} +\def\subjecton{\@ObsoleteCommand{\subjecton}{subject=titled}} +\def\subjectoff{\@ObsoleteCommand{\subjectoff}{subject=untitled}} +\def\subjectafteron{% + \@ObsoleteCommand{\subjectafteron}{subject=afteropening}} +\def\subjectafteroff{% + \@ObsoleteCommand{\subjectafteroff}{subject=beforeopening}} +%</KOMAold> +% \end{macrocode} +% +% \iffalse +%</!visualize> +%<*visualize> +% \fi +% +% \subsection{Makros zur Visualisierung diverser Felder in einem Brief} +% +% Diese Makros werden nur von \texttt{visualize.lco} verwendet und stellen den +% Hauptteil dieser LCO dar. +% +% Das Paket benötigt \textsf{eso-pic}. Das Paket wird nur dann explizit +% geladen, wenn dies nicht bereits geschehen ist. Damit ist es möglich das +% Paket mit Optionen vor der LCO zu laden: +% \begin{macrocode} +\@ifpackageloaded{eso-pic}{}{\RequirePackage{eso-pic}} +% \end{macrocode} +% +% \begin{macro}{\showfields} +% Diese Anweisung erlaubt es, eine Reihe von Felder zu visualisieren. Dazu +% gibt man die gewünschten Felder als Komma separierte Liste im ersten und +% einzigen Argument der Anweisung an. Gibt man ein unbekanntes Feld an, so +% wird nicht etwa ein Fehler, sondern nur eine Warnung ausgegeben. Die +% Visualisierung erfolgt im Hintergrund. Dies wird mit Hilfe des Pakets +% \textsf{eso-pic} erreicht. Wichtig ist noch, dass die Anweisung nicht +% zurückgenommen werden kann. +% \begin{macrocode} +\newcommand*{\showfields}[1]{% + \AtBeginLetter{% + \begingroup + \@for \@tempa:=#1\do{% + \ifx\@tempa\@empty\else + \@ifundefined{showfield@\@tempa}{% + \LCOWarning{visualize}{Unknown field `\@tempa' ignored}% + }{% + \edef\@tempa{% + \noexpand\AddToShipoutPicture*{% + \noexpand\AtPageUpperLeft{% + \noexpand\usekomafont{field}% + \noexpand\@nameuse{showfield@\@tempa}% + }% + }% + }\@tempa + }% + \fi + }% + \endgroup + }% +} +% \end{macrocode} +% \begin{KOMAfont}{field} +% Die Visualisierung erfolgt dabei in einer wählbaren Farbe, die über das +% Element \cs{field} definiert ist. Voreingestellt ist dabei +% \cs{normalcolor}. +% \begin{macrocode} +\newkomafont{field}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% \begin{macro}{\showfield} +% Die Visualisierung der einzelnen Felder erfolgt über eigene Anweisungen des +% Aufbaus \cs{showfield@\emph{Feldname}}. In der Regel sind die Felder +% rechteckig. Zur Visualisierung solcher Felder können daher einheitliche +% Anweisungen verwendet werden. Diese besitzen vier Argumente: +% \begin{enumerate} +% \item Abstand vom linken Rand (x-Koordinate des Rahmens) +% \item Abstand vom oberen Rand (y-Koordinate des Rahmens) +% \item Breite des Feldes +% \item Höhe des Feldes; ist dieser Wert negativ gibt es keine feste Höhe, +% sondern nur eine Art unbestimmte Ausdehnung mit einer Mindesthöhe +% \end{enumerate} +% +% \begin{macro}{\showfield@by@frame} +% Diese Anweisung visualisiert ein rechteckiges Feld durch Rahmen. Bei einer +% negativen Höhe wird ein unten offener Rahmen gezeichnet, bei dem die +% vertikalen Linien als Pfeile nach unten ausgeführt werden. +% \begin{macrocode} +\newcommand*{\showfield@by@frame}[4]{% + \thinlines + \ifdim #4<\z@ + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \setlength{\@tempdimb}{#4} + \put(\LenToUnit{#1},-\LenToUnit{#2}){% + \vector(0,-1){\LenToUnit{-\@tempdimb}}}% + \put(\LenToUnit\@tempdima,-\LenToUnit{#2}){% + \vector(0,-1){\LenToUnit{-\@tempdimb}}}% + \else + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{#4}}}% + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% + \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% + \line(-1,0){\LenToUnit{#3}}}% + \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% + \line(0,1){\LenToUnit{#4}}}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showfield@by@edges} +% Diese Anweisung visualisert ein rechteckiges Feld, indem es die Ecken des +% Feldes durch kleine Striche markiert. Bei negativer Höhe entfallen die +% unteren Eckmarkierungen. +% \begin{macrocode} +\newcommand*{\showfield@by@edges}[4]{% + \thinlines + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(-1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% + \ifdim #4<\z@\else + \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% + \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(-1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% + \fi +} +% \end{macrocode} +% \begin{macro}{\edgesize} +% Die Länge der Ecklinien wird über dieses Makro bestimmt. Voreingestellt ist +% 1\,ex. +% \begin{macrocode} +\newcommand*{\edgesize}{1ex} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\showfield@by@rule} +% Diese Anweisung visualisiert ein rechteckiges Feld, indem es das komplette +% Feld einfärbt. Es wird hier nicht zwischen unten offenen und geschlossenen +% Feldern unterschieden. +% \begin{macrocode} +\newcommand*{\showfield@by@rule}[4]{% + \ifdim #4<\z@ + \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[#4]{#3}{-#4}}% + \else + \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[-#4]{#3}{#4}}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% Die Voreinstellung für die Visualsierung ist mit Rahmen: +% \begin{macrocode} +\newcommand*{\showfield}{} +\let\showfield\showfield@by@frame +% \end{macrocode} +% +% \begin{macro}{\setshowstyle} +% Dieser Stil der Visualisierung kann per Anweisung umgeschaltet +% werden. Existiert ein Stil nicht, so wird kein Fehler gemldet, sondern +% lediglich eine Warnung und der Standardstil verwendet: +% \begin{macrocode} +\newcommand*{\setshowstyle}[1]{% + \@ifundefined{showfield@by@#1}{% + \LCOWarning{visualize}{Unknown show type `#1'.\MessageBreak + You should simply set one of the supported\MessageBreak + show types `frame', `edges', `rule'.\MessageBreak + Style `frame' will be used instead}% + \let\showfield\showfield@by@frame + }{% + \expandafter\let\expandafter\showfield\csname showfield@by@#1\endcsname + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Die folgenden Felder werden derzeit unterstützt: +% \begin{macro}{\showfield@test} +% ein Testfeld \texttt{test} mit den Koordinaten: +% $(1\,\mathrm{cm},1\,\mathrm{cm})\times(10\,\mathrm{cm},15\,\mathrm{cm})$ +% \begin{macrocode} +\newcommand*{\showfield@test}{% + \showfield{1cm}{1cm}{10cm}{15cm}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@head} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos} +% beachtet} +% das Feld \texttt{head} für den Kopfbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@head}{% + \ifdim\useplength{firstheadhpos}<\paperwidth + \ifdim \useplength{firstheadhpos}>-\paperwidth + \ifdim \useplength{firstheadhpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstheadhpos}% + \addtolengthplength[-]{\@tempskipa}{firstheadwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstheadhpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% + \fi + \showfield{\@tempskipa}% + {\useplength{firstheadvpos}}% + {\useplength{firstheadwidth}}% + {-\headheight}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@foot} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos} +% beachtet} +% das Feld \texttt{foot} für den Fußbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@foot}{% + \ifdim\useplength{firstfoothpos}<\paperwidth + \ifdim \useplength{firstfoothpos}>-\paperwidth + \ifdim \useplength{firstfoothpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstfoothpos}% + \addtolengthplength[-]{\@tempskipa}{firstfootwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstfoothpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% + \fi + \showfield{\@tempskipa}% + {\useplength{firstfootvpos}}% + {\useplength{firstfootwidth}}% + {-\baselineskip}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@address} +% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in +% \textsf{scrlttr}~3.03b angepasst.} +% das Feld \texttt{address} für das Feld mit der Anschrift: +% \begin{macrocode} +\newcommand*{\showfield@address}{% + \setlengthtoplength{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% + \fi + \showfield{\@tempskipa}{\useplength{toaddrvpos}}% + {\useplength{toaddrwidth}}% + {\dimexpr\useplength{toaddrheight}\relax}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@location} +% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in +% \textsf{scrlttr}~3.03b angepasst.} +% das Feld \texttt{location} mit der Absenderergänzung: +% \begin{macrocode} +\newcommand*{\showfield@location}{% + \begingroup + \ifdim \useplength{locwidth}=\z@% + \@setplength{locwidth}{\paperwidth}% + \ifdim \useplength{toaddrhpos}>\z@ + \@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}% + \else + \@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}% + \fi + \@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}% + \if@bigloc% + \@setplength[.66667]{locwidth}{\useplength{locwidth}}% + \else% + \@setplength[.5]{locwidth}{\useplength{locwidth}}% + \fi% + \fi% + \ifdim \useplength{lochpos}=\z@% + \@setplength{lochpos}{\useplength{toaddrhpos}}% + \fi + \ifdim \useplength{locvpos}=\z@% + \@setplength{locvpos}{\useplength{toaddrvpos}}% + \fi + \ifdim \useplength{locheight}=\z@% + \@setplength{locheight}{\useplength{toaddrheight}}% + \fi + \setlengthtoplength[-]{\@tempskipa}{lochpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \else + \addtolengthplength{\@tempskipa}{locwidth}% + \fi + \addtolengthplength[-]{\@tempskipa}{locwidth}% + \showfield{\@tempskipa}{\useplength{locvpos}}% + {\useplength{locwidth}}{\useplength{locheight}}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@refline} +% das Feld mit der Geschäftszeile: +% \begin{macrocode} +\newcommand*{\showfield@refline}{% + \begingroup + \ifdim\useplength{refwidth}=\z@ + \if@refwide + \@setplength{refwidth}{\paperwidth}% + \ifdim \useplength{toaddrhpos}>\z@ + \@setplength{refhpos}{\useplength{toaddrhpos}}% + \else + \@setplength[-]{refhpos}{\useplength{toaddrhpos}}% + \fi + \@addtoplength[-2]{refwidth}{\useplength{refhpos}}% + \else + \@setplength{refwidth}{\textwidth}% + \@setplength{refhpos}{\oddsidemargin}% + \@addtoplength{refhpos}{1in}% + \fi + \else\ifdim\useplength{refhpos}=\z@ + \begingroup + \setlength\@tempdima{\textwidth}% + \addtolengthplength[-]{\@tempdima}{refwidth}% + \setlength\@tempdimb{\oddsidemargin}% + \addtolength\@tempdimb{1in}% + \setlength{\@tempdimc}{\paperwidth}% + \addtolength{\@tempdimc}{-\textwidth}% + \divide\@tempdimb by 32768\relax + \divide\@tempdimc by 32768\relax + \ifdim\@tempdimc=\z@\else + \multiply\@tempdima by\@tempdimb + \divide\@tempdima by\@tempdimc + \fi + \edef\@tempa{\noexpand\endgroup + \noexpand\@setplength{refhpos}{\the\@tempdima}}% + \@tempa + \fi\fi + \showfield{\useplength{refhpos}}{\useplength{refvpos}}% + {\useplength{refwidth}}{-1.5\baselineskip}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showenvelope} +% \begin{macro}{\@showenvelope} +% \begin{macro}{\@@showenvelope} +% \begin{macro}{\@@@showenvelope} +% Es kann auch ein Briefumschlag angezeigt werden. Dazu müssen verschiedene +% Parameter des Umschlags bekannt sein. Der Umschlag wird immer hochkant auf +% der aktuellen Seite angezeigt. Hierfür wird das Paket \textsf{graphicx} +% benötigt. Das Paket wird nur dann explizit geladen, wenn dies nicht bereits +% geschehen ist. Damit ist es möglich das Paket mit Optionen vor der LCO zu +% laden. +% \begin{macrocode} +\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}} +\newcommand*{\showenvelope}{} +\newcommand*{\@@showenvelope}{} +\newcommand*{\@@@showenvelope}{} +\def\showenvelope(#1,#2){% + \@ifnextchar (%) + {\@showenvelope({#1},{#2})}% + {\@@@showenvelope({#1},{#2})}% +} +\def\@@@showenvelope(#1,#2){% + \begingroup + \def\@tempa{\endgroup}% + \ifdim \paperwidth>#1\relax + \LCOWarning{visualize}{% + \string\paperwidth\space > envelope width not supported}% + \else + \ifdim \paperheight>#2\relax + \ifdim .5\paperheight>#2\relax + \expandafter\ifdim \useplength{tfoldmarkvpos}>#2\relax + \LCOWarning{visualize}{% + tfoldmarkvpos > envelope height not supported}% + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-\expandafter\dimexpr + \useplength{tfoldmarkvpos}\relax)% + /2\relax})% + }% + \fi + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-.5\paperheight)/2\relax})% + }% + \fi + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-\paperheight)/2\relax})% + }% + \fi + \fi + \@tempa +} +\def\@showenvelope(#1,#2)(#3,#4){% + \@ifnextchar [%] + {\@@showenvelope({#1},{#2})({#3},{#4})}% + {\@@showenvelope({#1},{#2})({#3},{#4})[]}% +} +\def\@@showenvelope(#1,#2)(#3,#4)[#5]{% +% \end{macrocode} +% Die Argumente sind: +% \begin{enumerate} +% \item Breite des Umschlags, +% \item Höhe des Umschlags, +% \item Abstand des Briefbogens vom linken und rechten Rand des Umschlags, +% \item Abstand des Briefbogens vom oberen und unteren Rand des Umschlags, +% \item optionale weitere Anweisungen, zum Setzen von Elementen. +% \end{enumerate} +% \begin{macrocode} + \newpage + \vspace*{\fill} + \rotatebox{90}{% + \begin{picture}(0,0) + \begin{picture}(\LenToUnit{#1},\LenToUnit{#2})(0,\LenToUnit{#2}) + \newcommand*{\PlusHOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax + #3\relax + }% + \newcommand*{\MinusHOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax - #3\relax + }% + \newcommand*{\PlusVOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax + #4\relax + }% + \newcommand*{\MinusVOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax - #4\relax + }% + \newcommand{\AtEnvelopeUpperLeft}[1]{% + \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\MinusVOffset{#2}}){##1}% + }% + \newcommand{\AtEnvelopeLowerLeft}[1]{% + \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\PlusVOffset\z@}){##1}% + }% + \newcommand{\AtEnvelopeUpperRight}[1]{% + \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\MinusVOffset{#2}}){##1}% + }% + \newcommand{\AtEnvelopeLowerRight}[1]{% + \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\PlusVOffset\z@}){##1}% + }% + \newcommand*{\measuredIFrame}{}% + \def\measuredIFrame(##1,##2)(##3,##4){% + \put(\LenToUnit{##1},\LenToUnit{##2}){% + \measuredFrameLB({##3},{##4})% + }% + \put(\LenToUnit{\MinusHOffset\z@},% + \LenToUnit{\dimexpr ##2-.5mm\relax}){% + \measureLineHB{\PlusHOffset{##1}}% + }% + \put(\LenToUnit{\dimexpr ##1+##3\relax},% + \LenToUnit{\dimexpr ##2-.5mm\relax}){% + \measureLineHB{\dimexpr #1-% + \PlusHOffset{\dimexpr ##1+##3\relax}\relax}% + }% + \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% + \LenToUnit{\dimexpr ##2+##4\relax}){% + \measureLineVL{\PlusVOffset{\dimexpr -##2-##4\relax}}% + }% + \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% + \LenToUnit{\PlusVOffset{-#2}}){% + \measureLineVL{\dimexpr #2-% + \PlusVOffset{\dimexpr -##2\relax}\relax}% + }% + }% + \put(0,0){% + \thicklines + \usekomafont{envelope}% + \measuredFrameLB({#1},{#2})% + }% + \AtEnvelopeLowerLeft{% + \usekomafont{letter}% + \dashbox{\LenToUnit{1mm}}% + (\LenToUnit{\MinusHOffset{\MinusHOffset{#1}}},% + \LenToUnit{\MinusVOffset{\MinusVOffset{#2}}}){}% + }% + \expandafter\ifdim \useplength{toaddrhpos}<\z@ + \AtEnvelopeUpperLeft{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame(\expandafter\dimexpr \useplength{toaddrhpos}+ + \MinusHOffset{\MinusHOffset{#1}}\relax,% + -\dimexpr % + \expandafter\dimexpr\useplength{toaddrvpos}\relax + + + \expandafter + \dimexpr\useplength{toaddrheight}\relax + \relax)% + (\useplength{toaddrwidth},\useplength{toaddrheight})% + }% + \else + \AtEnvelopeUpperLeft{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame(\useplength{toaddrhpos},% + -\dimexpr % + \expandafter\dimexpr\useplength{toaddrvpos}\relax + + + \expandafter + \dimexpr\useplength{toaddrheight}\relax + \relax)% + (\useplength{toaddrwidth},\useplength{toaddrheight})% + }% + \fi + \AtEnvelopeUpperLeft{#5}% + \end{picture} + \end{picture} + }% + \newpage +} +% \end{macrocode} +% \begin{KOMAfont}{envelope} +% Farbe des Umschlagrahmens. +% \begin{macrocode} +\newkomafont{envelope}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \begin{KOMAfont}{letter} +% Farbe des getrichelten Briefbogens im Umschlag +\newkomafont{letter}{\normalcolor} +% \end{KOMAfont} +% \begin{macro}{\unmeasuredFrame} +% Ein Rahmen ohne Maßlinien. +% \begin{macrocode} +\newcommand*{\unmeasuredFrame}{} +\def\unmeasuredFrame(#1,#2){% + \put(0,0){\line(1,0){\LenToUnit{#1}}}% + \put(\LenToUnit{#1},0){\line(0,1){\LenToUnit{#2}}}% + \put(\LenToUnit{#1},\LenToUnit{#2}){\line(-1,0){\LenToUnit{#1}}}% + \put(0,\LenToUnit{#2}){\line(0,-1){\LenToUnit{#2}}}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measuredFrameLB} +% \begin{macro}{\measuredFrameLT} +% \begin{macro}{\measuredFrameRB} +% \begin{macro}{\measuredFrameRT} +% Die Maßlinien für ein Rechteck. +% \begin{macrocode} +\newcommand*{\measuredFrameLB}{} +\def\measuredFrameLB(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% + \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% +} +\newcommand*{\measuredFrameLT}{} +\def\measuredFrameLT(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% + \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% +} +\newcommand*{\measuredFrameRB}{} +\def\measuredFrameRB(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% + \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% +} +\newcommand*{\measuredFrameRT}{} +\def\measuredFrameRT(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% + \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\measureLineV} +% Vertikale Maßlinie ohne Beschriftung: +% \begin{macrocode} +\newcommand*{\measureLineV}[1]{% + \begin{picture}(0,0) + \thinlines + \usekomafont{measure}% + \put(0,0){\vector(0,1){\LenToUnit{#1}}}% + \put(0,\LenToUnit{#1}){\vector(0,-1){\LenToUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measureLineVL} +% \begin{macro}{\measureLineVR} +% Vertikale Maßlinie mit Beschriftung links bzw. rechts. +% \begin{macrocode} +\newcommand*{\measureLineVL}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineV{#1}}% + \put(0,0){\makebox(0,\LenToUnit{#1})[r]{\ValPerUnit{#1}}}% + \end{picture} +} +\newcommand*{\measureLineVR}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineV{#1}}% + \put(0,0){\makebox(0,\LenToUnit{#1})[l]{\ValPerUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \begin{macro}{\ValPerUnit} +% \begin{macro}{\unitfactor} +% Zeige die Längen in \cs{unitlength} mit einer Genauigkeit von +% 1/\cs{unitfactor} an. +% \begin{macrocode} +\newcommand*{\ValPerUnit}[1]{% + \begingroup + \setlength{\@tempdima}{% + \dimexpr #1/(\unitlength/\unitfactor)*\p@/\unitfactor\relax + }% + \strip@pt\@tempdima + \endgroup +} +\newcommand*{\unitfactor}{1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\measureLineH} +% Horizontale Maßlinie ohne Beschriftung: +% \begin{macrocode} +\newcommand*{\measureLineH}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\vector(1,0){\LenToUnit{#1}}}% + \put(\LenToUnit{#1},0){\vector(-1,0){\LenToUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measureLineHB} +% \begin{macro}{\measureLineHT} +% Horizontale Maßlinie mit Beschriftung darunter bzw. oben. +% \begin{macrocode} +\newcommand*{\measureLineHB}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineH{#1}}% + \put(0,\LenToUnit{\dimexpr -\ht\strutbox-.5mm\relax}){% + \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% + \end{picture} +} +\newcommand*{\measureLineHT}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineH{#1}}% + \put(0,0){% + \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{KOMAfont}{measure} +% Farbe der Maßlinien. +% \begin{macrocode} +\newkomafont{measure}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% \begin{macro}{\showISOenvelope} +% Zeigt einen DIN/ISO C4, C5, DL=C5/6, C6/5 Umschlag. +% \begin{macrocode} +\newcommand*{\showISOenvelope}[1]{% + \ifstr{#1}{C4}{% + \showenvelope(324mm,229mm)% + }{% + \ifstr{#1}{C5}{% + \showenvelope(229mm,162mm)% + }{% + \ifstr{#1}{C5/6}{% + \showenvelope(220mm,110mm)% + }{% + \ifstr{#1}{DL}{% + \showenvelope(220mm,110mm)% + }{% + \ifstr{#1}{C6/5}{% + \showenvelope(229mm,114mm)% + }{% + \ifstr{#1}{C6}{% + \showenvelope(162mm,114mm)% + }{% + \LCOWarning{visualize}{envelope size `ISO #1' unsupported}% + }% + }% + }% + }% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showUScommercial} +% Zeige ein US commercial Umschlag der Nummer 9 und 10 +% \begin{macrocode} +\newcommand*{\showUScommercial}[1]{% + \ifstr{#1}{9}{% + \showenvelope(8.875in,3.875in)% + }{% + \ifstr{#1}{10}{% + \showenvelope(9.5in,4.125in)% + }{% + \LCOWarning{visualize}{envelope size `US commercial #1' unsupported}% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showUScheck} +% Zeige einen US check Umschag. +% \begin{macrocode} +\newcommand*{\showUScheck}{% + \showenvelope(8.625in,3.625in)% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</visualize> +%<*!visualize> +% \fi +% +% \begin{macro}{\showUSletterCixDW} +% Ein Umschlag im Format commercial No. 9 mit 2 Fenstern, +% Absenderfenster $3\frac{1}{2}\,\mathrm{in}\times\frac{7}{8}\,\mathrm{in}$, +% $\frac{5}{16}\,\mathrm{in}$ von links und $2\frac{1}{2}\,\mathrm{in}$ von +% unten. +% \begin{macrocode} +%<*UScommercial9DW> +\newcommand*{\showUSletterCixDW}{% + \showUScommercial9[{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame({\dimexpr (\paperwidth- + \expandafter\dimexpr \useplength{firstheadwidth}\relax% + )/2\relax},% + -\expandafter\dimexpr\useplength{firstheadvpos}\relax)% + (3.5in,.875in)% + }]% +} +%</UScommercial9DW> +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</!visualize> +%</body> +%</lco> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-letterclassoptions.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: |