diff options
author | Karl Berry <karl@freefriends.org> | 2009-07-20 18:10:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-07-20 18:10:03 +0000 |
commit | c085420206defb618b877e4e046024830c6ef8e1 (patch) | |
tree | 4871a44a4250285bfd69467785548085cf5ab21e /Master/texmf-dist/source/latex/koma-script/scrklco.dtx | |
parent | d0d80da633ecb4209bb8355828026d5cf5419ea7 (diff) |
koma-script update (8jul09)
git-svn-id: svn://tug.org/texlive/trunk@14345 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrklco.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrklco.dtx | 948 |
1 files changed, 892 insertions, 56 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx b/Master/texmf-dist/source/latex/koma-script/scrklco.dtx index 9f7fd86b0bd..8da4396c721 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrklco.dtx @@ -1,4 +1,4 @@ -% \CheckSum{505} +% \CheckSum{1378} % \iffalse meta-comment % ====================================================================== % scrklco.dtx @@ -58,7 +58,7 @@ %%% From File: scrklco.dtx %<*driver> % \fi -\ProvidesFile{scrklco.dtx}[2009/03/04 v3.03 KOMA-Script (letter class options)] +\ProvidesFile{scrklco.dtx}[2009/06/30 v3.04 KOMA-Script (letter class options)] % \iffalse \documentclass{scrdoc} \usepackage[english,ngerman]{babel} @@ -297,14 +297,31 @@ % \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} % @@ -330,6 +347,7 @@ % \iffalse %</head> %<*body> +%<*!visualize> % \fi % % \subsubsection{Der Hauptteil} @@ -343,6 +361,10 @@ % KOMAold & mir \\ % SNleft & Roger Luethi \\ % SN & Roger Luethi \\ +% NF & Jean-Marie Pacquet \\ +% USletter2w & Engelbert Buxbaum \\ +% UScommercial9 & mir \\ +% UScommercial9DW & mir \\ % \end{tabular}{ll} % \end{center} % @@ -356,6 +378,10 @@ %<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 @@ -367,7 +393,6 @@ % % Dann wird geprüft, ob das richtige Papierformat vorhanden ist. % \begin{macrocode} -%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold> \LetterOptionNeedsPapersize{% %<DIN> DIN% %<DINmoretext> DINmtext% @@ -375,77 +400,161 @@ %<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> +%</DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF> +%<*USletter2w|UScommercial9|UScommercial9DW> +}{letter} +%</USletter2w|UScommercial9|UScommercial9DW> % \end{macrocode} % % Dann werden die Werte gesetzt. -% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm -% über der unteren Papierkante.} -% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.} -% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode} +% \begin{description} +% \item[ZIP-Code] +% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode} % wird gesetzt} % \begin{macrocode} -%<DIN|DINmoretext>\setkomavar*{fromzipcode}{D} -%<SwissLeft|SN>\setkomavar*{fromzipcode}{CH} +\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} -%<DIN|SwissLeft|SN>\@setplength{tfoldmarkvpos}{105mm} -%<DINmoretext>\@setplength{tfoldmarkvpos}{87mm} -%<KOMAold>\@setplength{tfoldmarkvpos}{103.5mm} +\@setplength{tfoldmarkvpos}{% +%<DIN|SwissLeft|SN> 105mm} +%<DINmoretext> 87mm} +%<KOMAold> 103.5mm} +%<NF> 99mm} +%<USletter2w|UScommercial9|UScommercial9DW> 3.75in} \@setplength{mfoldmarkvpos}{\z@} -%<DIN|SwissLeft|SN>\@setplength{bfoldmarkvpos}{210mm} -%<DINmoretext>\@setplength{bfoldmarkvpos}{192mm} -%<KOMAold>\@setplength{bfoldmarkvpos}{202.5mm} +\@setplength{bfoldmarkvpos}{% +%<DIN|SwissLeft|SN> 210mm} +%<DINmoretext> 192mm} +%<KOMAold> 202.5mm} +%<NF> 198mm} +%<USletter2w> 7.4in} +%<UScommercial9|UScommercial9DW> 7.375in} \@setplength{lfoldmarkhpos}{\z@} -%<DIN|SN>\@setplength{toaddrvpos}{45mm} -%<DINmoretext>\@setplength{toaddrvpos}{27mm} -%<SwissLeft>\@setplength{toaddrvpos}{35.5mm} -%<KOMAold>\@setplength{toaddrvpos}{49mm} -%<DIN|SN>\@setplength{refvpos}{98.5mm} -%<DINmoretext>\@setplength{refvpos}{80.5mm} -%<SwissLeft>\@setplength{refvpos}{89mm} -%<KOMAold>\@setplength{refvpos}{89.5mm} -%<!KOMAold>\@setplength{refaftervskip}{\baselineskip} -%<KOMAold>\@setplength[2]{refaftervskip}{\baselineskip} -%<DIN|DINmoretext|SwissLeft>\@setplength{toaddrhpos}{20mm} -%<SN>\@setplength{toaddrhpos}{-8mm} -%<KOMAold>\@setplength{toaddrhpos}{1in} +% \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} -%<DIN|DINmoretext>\@setplength{toaddrwidth}{85mm} -%<SN>\@setplength{toaddrwidth}{90mm} -%<SwissLeft>\@setplength{toaddrwidth}{100mm} -%<KOMAold>\@setplength{toaddrwidth}{70mm} -%<DIN|DINmoretext|SN|SwissLeft|KOMAold>\@setplength{toaddrheight}{40mm} -\@setplength{toaddrindent}{\z@} +%<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} -\@setplength{locwidth}{\z@} -%<DIN|DINmoretext|SN|SwissLeft|KOMAold>\@setplength{backaddrheight}{5mm} -%<DIN|DINmoretext|SN|SwissLeft>\@setplength{firstheadvpos}{8mm} -%<KOMAold>\@setplength{firstheadvpos}{6mm} -%<KOMAold>\@setplength{firstheadwidth}{\textwidth} -%<*!KOMAold> -\@setplength{firstheadwidth}{\paperwidth} +% \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 -%</!KOMAold> +%</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>\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax -%<!KOMAold> \@setplength{firstfootvpos}{\paperheight} -%<!KOMAold> \@addtoplength{firstfootvpos}{-16mm} -%<!KOMAold>\else -%<!KOMAold> \@setplength{firstfootvpos}{1in} -%<!KOMAold> \@addtoplength{firstfootvpos}{\topmargin} -%<!KOMAold> \@addtoplength{firstfootvpos}{\headheight} -%<!KOMAold> \@addtoplength{firstfootvpos}{\headsep} -%<!KOMAold> \@addtoplength{firstfootvpos}{\textheight} -%<!KOMAold> \@addtoplength{firstfootvpos}{\footskip} -%<!KOMAold>\fi +%<!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 @@ -453,10 +562,17 @@ % zu berechnen. % \begin{macrocode} \@setplength{refwidth}{0pt} +% \end{macrocode} +% \item[Signature] +% \begin{macrocode} \@setplength{sigindent}{0mm} \@setplength{sigbeforevskip}{2\baselineskip} -%<!KOMAold>\let\raggedsignature=\centering -%<KOMAold>\let\raggedsignature=\raggedright +%<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% @@ -557,6 +673,726 @@ % \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', `edge', `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} +% das Feld \texttt{head} für den Kopfbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@head}{% + \showfield{\dimexpr (\paperwidth-\useplength{firstheadwidth})/2\relax}% + {\useplength{firstheadvpos}}% + {\useplength{firstheadwidth}}% + {-\headheight}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@foot} +% das Feld \texttt{foot} für den Fußbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@foot}{% + \showfield{\dimexpr (\paperwidth-\useplength{firstfootwidth})/2\relax}% + {\useplength{firstfootvpos}}% + {\useplength{firstfootwidth}}% + {-\baselineskip}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@address} +% 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}+ + \useplength{backaddrheight}\relax}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@location} +% 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}}% + \@addtoplength{locheight}{\useplength{backaddrheight}}% + \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 |