diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/plength.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/doc/plength.dtx | 1192 |
1 files changed, 1192 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx b/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx new file mode 100644 index 00000000000..84ca2cde664 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx @@ -0,0 +1,1192 @@ +% \CheckSum{0} +% \iffalse +% ====================================================================== +% plength.dtx +% Copyright (c) Markus Kohm, 2005-2006 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% plength.dtx +% Copyright (c) Markus Kohm, 2005-2006 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Generation of plength figures at scrlttr2 chapter of the KOMA-Script guide +% Maintained by Markus Kohm +% Original source by Stephan Hennig +% +% --------------------------------------------------------------------------- +% +% Erzeugung der plength Abbildungen im scrlttr2-Kapitel der +% KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% Originalquellen von Stephan Hennig +% +% ============================================================================ +%<*ins> +\def\batchfile{plength.dtx} +\input docstrip.tex + +\ifx\askonceonly\undefined\else\askonceonly\fi + +\preamble +\endpreamble + +\postamble +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{% + \file{plength.drv}{\from{plength.dtx}{driver}}% + \file{plenDIN.mp}{\from{plength.dtx}{main,DIN,length,\languagename}}% +% Ebenfalls enthalten, derzeit aber nicht verwendet: +% \file{varDIN.mp}{\from{plength.dtx}{main,DIN,variables,\languagename}}% +% \file{plenSN.mp}{\from{plength.dtx}{main,SN,length,\languagename}}% +% \file{varSN.mp}{\from{plength.dtx}{main,SN,variables,\languagename}}% + \file{plinc.mp}{\from{plength.dtx}{include}}% + \file{pltex.mp}{\from{plength.dtx}{tex}}% + \file{pllcoDIN.mp}{\from{plength.dtx}{DIN,values}}% +% Ebenfalls enthalten, derzeit aber nicht verwendet: +% \file{pllcoSN.mp}{\from{plength.dtx}{SN,values}}% +} + +\csname endinput\endcsname +%</ins> +% +%<*driver> +% \begin{macrocode} +\ProvidesFile{plength.drv}[2005/08/30 plength MetaPost graphics] +\documentclass{ltxdoc} +\usepackage{ngerman} +\usepackage[utf8]{inputenc} +\begin{document} + \DocInput{plength.dtx} +\end{document} +% \end{macrocode} +%</driver> +% \fi +% +% \title{MetaPost-Grafiken für das Briefkapitel} +% \author{Stephan Henig} +% \date{2005-08-30} +% \maketitle +% +% Es werden diverse Dateien erzeugt: \texttt{plenDINde.mp}, +% \texttt{varDINde.mp}, \texttt{plenSNde.mp}, \texttt{varSNde.mp}, \dots Diese +% mit +% \begin{flushleft} +% \texttt{mpost --tex=latex} \meta{mp-file} +% \end{flushleft} +% bearbeitet ergibt \texttt{1}-Dateien. Diese können als EPS-Dateien +% geladen werden. Es kann aber auch mit +% \begin{flushleft} +% \texttt{mptopdf} \meta{1-Datei} +% \end{flushleft} +% eine PDF-Datei erzeugt werden. +% +% Anpassungen werden ausschließlich in der \texttt{dtx}-Datei vorgenommen! +% Wesentlich ist dabei der Abschnitt \texttt{main}. +% +%<*main> +% \section{Der Abschnitt \texttt{main}} +% Diese Abschnitt erzeugt die Haupttreiberdateien, die dann mit \texttt{mpost} +% bearbeitet werden. +% +% Hinweise zu den Variablen: +% \begin{itemize} +% \item \texttt{input pllcoDIN} oder \texttt{input pllcoSN}\hfill\\ +% legt fest, ob die Maße für Briefe nach DIN oder SN +% geladen werden. Damit kann gewählt werden, welches Layout +% verdeutlicht werden soll. Sollen die Längen eingezeichnet werden, +% ist pllcoDIN zu verwenden. +% \item \texttt{grafikhoehe}\hfill\\ +% legt die Höhe der Ausgabedatei fest. +% \item \texttt{strichstaerke}\hfill\\ +% bestimmt die Stiftbreite, die zum Zeichnen des +% Briefbogens, der Faltmarken und der From-Rule benutzt wird. +% \item \texttt{framestrichstaerke}\hfill\\ +% bestimmt die Stiftbreite zum Zeichnen der +% Element-Rahmen (nicht der Hilfsrahmen). +% \item \texttt{hilfsstrichstaerke}\hfill\\ +% bestimmt die Stiftbreite zum Zeichnen der +% Bemaßung und der Hilfsrahmen. +% \item \texttt{tickhoehe}\hfill\\ +% legt die Höhe der vertikalen Linien horizontaler +% Bemaßung fest (Makro hmeasure). Die Maßlinie wird auf halber Höhe +% von tickhoehe gezeichnet. Für die Makros vmeasure und dmeasure gilt +% ähnliches. In dmeasure wird jedoch ein Vielfaches von tickhoehe +% verwendet. +% \item \texttt{framed} und \texttt{filled}\hfill\\ +% legen fest, ob die Elemente mit einem Rahmen +% versehen bzw. gefüllt werden sollen. +% \item \texttt{drawcolor}\hfill\\ +% legt die Farbe von Linien und Text fest. +% \item \texttt{fillcolor}\hfill\\ +% legt die Füllfarbe fest, falls filled=true ist. +% \item \texttt{latexlengths}\hfill\\ +% legt fest, ob die unveränderlichen LaTeX-Längen +% angezeigt werden sollen. +% \item \texttt{latexlengthcolor}\hfill\\ +% legt die Farbe fest, mit der LaTeX-Längen +% gezeichnet werden. +% \item \texttt{language}\hfill\\ +% legt die Sprache der Beschreibung fest. +% \item \texttt{ahlength}\hfill\\ +% Da foldmarkhpos sehr klein ist, können sich bei kleinen Grafiken +% die Pfeilspitzen der Bemaßung berühren. Um das zu verhindern, kann +% mit der MetaPost-internen Variablen ahlength die Pfeillänge +% verringert werden. +% \end{itemize} +% +% \begin{macrocode} +prologues:=1; +%<DIN>input pllcoDIN +%<SN>input pllcoSN +input plinc +input pltex +beginfig(1); + numeric grafikhoehe; + numeric tickhoehe; + numeric strichstaerke, framestrichstaerke, hilfsstrichstaerke; + boolean framed, filled, latexlengths; + color drawcolor, fillcolor, latexlengthcolor; + string language; + grafikhoehe := 167mm; + strichstaerke := 0.6pt; + framestrichstaerke := 0.2pt; + hilfsstrichstaerke := 0.2pt; + tickhoehe := 10pt; + framed := true; + filled := true; + drawcolor := black; + fillcolor := .8white; + latexlengths := true; + latexlengthcolor := .4white; +%<ngerman> language := "de"; +%<english> language := "en"; + ahlength := 0.7mm; + picture description[], plength[], latexlength[]; + transform T; + T = identity reflectedabout ((0pt,.5*paperheight), + (paperwidth,.5*paperheight)) scaled (grafikhoehe/paperheight); +%<length> lengths; writedescription(language); +%<variables> describe(language); +endfig +end +% \end{macrocode} +%</main> +% +%<*tex> +% \section{Der Abschnitt \texttt{tex}} +% +% Dieser Abschnitt enthält sozusagen den \TeX{}-Part der Grafiken. +% Hier werden beispielsweise die Fonts festgelegt. +% +% \begin{macrocode} +verbatimtex +\documentclass[8pt]{scrartcl} +\usepackage[utf8]{inputenc} +\usepackage{ngerman} +\usepackage[T1]{fontenc} +\IfFileExists{scrnonfree.tex}{% + \usepackage{charter}% + \usepackage[scaled=0.87]{luximono}% + \usepackage[scaled=0.92]{frutiger}% +}{% + \usepackage{lmodern}% +} +\newcommand*{\plength}{\fontsize{7}{8}\sffamily} +\newcommand*{\descr}{\fontsize{7}{8}\itshape} +\newcommand*{\latexlength}{\fontsize{7}{8}\ttfamily} +\begin{document} +etex + +def deflengths = +begingroup + plength[1]=btex \plength{}backaddrheight etex; + plength[2]=btex \plength{}bfoldmarkvpos etex; + plength[3]=btex \plength{}firstfootvpos etex; + plength[4]=btex \plength{}firstfootwidth etex; + plength[5]=btex \plength{}firstheadvpos etex; + plength[6]=btex \plength{}firstheadwidth etex; + plength[7]=btex \plength{}foldmarkhpos etex; + plength[8]=btex \plength{}locwidth\strut etex; + plength[9]=btex \plength{}refaftervskip etex; + plength[10]=btex \plength{}refvpos etex; + plength[11]=btex \plength{}refwidth etex; + plength[12]=btex \plength{}sigbeforevskip etex; + plength[13]=btex \plength{}sigindent etex; + plength[14]=btex \plength{}specialmailindent etex; + plength[15]=btex \plength{}specialmailrightindent etex; + plength[16]=btex \plength{}tfoldmarkvpos etex; + plength[17]=btex \plength{}toaddrhpos\strut etex; + plength[18]=btex \plength{}toaddrindent\strut etex; + plength[19]=btex \plength{}toaddrvpos etex; + plength[20]=btex \plength{}toaddrwidth\strut etex; + plength[21]=btex \plength{}toaddrheight etex; + plength[22]=btex \plength{}refhpos etex; + plength[23]=btex \plength{}fromrulewidth etex; + plength[24]=btex \plength{}-toaddrhpos\strut etex; +endgroup +enddef; + +def deflatexlengths = +begingroup + latexlength[1] = btex \latexlength{}\textbackslash{}baselineskip etex; + latexlength[2] = btex \latexlength{}2\textbackslash{}baselineskip etex; + latexlength[3] = btex \latexlength{}\textbackslash{}textwidth etex; + latexlength[4] = btex \latexlength{}$\geq$\textbackslash{}footskip etex; +endgroup +enddef; + +def defdescriptionde = +begingroup + description[1]=btex \descr{}Briefkopf etex; + description[2]=btex \descr{}Brief"|fuß etex; + description[3]=btex \descr{}Rücksendeadresse etex; + description[4]=btex \descr{}Versandart etex; + description[5]=btex \descr{}Empfängeradresse etex; + description[6]=btex \descr{}Geschäftszeile etex; + description[7]=btex \descr{}Titel etex; + description[8]=btex \descr{}Betreff etex; + description[9]=btex \descr{}Anrede etex; + description[10]=btex \descr{}Brieftext etex; + description[11]=btex \descr{}Grußfloskel etex; + description[12]=btex \descr{}Signatur etex; + description[13]=btex \descr{}\begin{tabular}{@{}c@{}}Absender-\\ergänzung\end{tabular} etex; +endgroup +enddef; + +def defdescriptionen = +begingroup + description[1]=btex \descr{}letter-head etex; + description[2]=btex \descr{}letter foot etex; + description[3]=btex \descr{}return address etex; + description[4]=btex \descr{}special mail etex; + description[5]=btex \descr{}addressee etex; + description[6]=btex \descr{}business line etex; + description[7]=btex \descr{}title etex; + description[8]=btex \descr{}subject etex; + description[9]=btex \descr{}opening etex; + description[10]=btex \descr{}letter body etex; + description[11]=btex \descr{}closing etex; + description[12]=btex \descr{}signature etex; + description[13]=btex \descr{}\begin{tabular}{@{}c@{}}supplemental\\data\end{tabular} etex; +endgroup +enddef; +% \end{macrocode} +%</tex> +% +%<*values> +% \section{Der Abschnitt \texttt{values}} +% In diesem Abschnitt finden sich Maße für die unterschiedlichen Briefe +% ausgehend von \texttt{11pt}, \texttt{a4paper}. +% +%<*DIN> +% \section{Maße für DIN-Briefe} +% +%\begin{macrocode} +numeric paperwidth; +numeric paperheight; +numeric textwidth; +numeric textheight; +numeric evensidemargin; +numeric oddsidemargin; +numeric topmargin; +numeric headheight; +numeric headsep; +numeric topskip; +numeric footskip; +numeric baselineskip; + +paperwidth = 597.50793pt; +paperheight = 845.04694pt; +textwidth = 418.25555pt; +textheight = 595.80026pt; +evensidemargin = 17.3562pt; +oddsidemargin = 17.3562pt; +topmargin = -25.16531pt; +headheight = 17.0pt; +headsep = 20.40001pt; +topskip = 11.0pt; +footskip = 47.60002pt; +baselineskip = 13.6pt; + + + +numeric foldmarkhpos; +numeric tfoldmarkvpos; +numeric bfoldmarkvpos; +numeric toaddrvpos; +numeric refvpos; +numeric refaftervskip; +numeric toaddrhpos; +numeric toaddrwidth; +numeric toaddrheight; +numeric toaddrindent; +numeric specialmailindent; +numeric specialmailrightindent; +numeric locwidth; +numeric backaddrheight; +numeric firstheadvpos; +numeric firstheadwidth; +numeric firstfootwidth; +numeric firstfootvpos; +numeric refwidth; +numeric sigindent; +numeric sigbeforevskip; + + +foldmarkhpos = 3.5mm; +tfoldmarkvpos = 105mm; +bfoldmarkvpos = 210mm; +toaddrvpos = 45mm; +refvpos = 98.5mm; +refaftervskip = baselineskip; +toaddrhpos = 20mm; +toaddrwidth = 85mm; +toaddrheight = 40mm; +toaddrindent = 0mm; +%specialmailindent = \fill; +specialmailrightindent = 11pt; +locwidth = 3.75cm; +backaddrheight = 5mm; +firstheadvpos = 8mm; +firstheadwidth = paperwidth - 2*abs(toaddrhpos); +firstfootwidth = firstheadwidth; +firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip; +refwidth = 0pt; +sigindent = 0mm; +sigbeforevskip = 2*baselineskip; + +% \end{macrocode} +% weitere Hilfsvariablen +% \begin{macrocode} +numeric firstheadhpos; +numeric firstheadheight; +numeric firstfoothpos; +numeric firstfootheight; +numeric fromrulewidth; +numeric fromrulehpos; +numeric specialmailwidth; +numeric specialmailheight; +numeric lochpos; +numeric refhpos; +numeric refheight; +numeric titlevpos; +numeric titlewidth; +numeric titleheight; +numeric subjectvpos; +numeric subjectwidth; +numeric subjectheight; +numeric openingvpos; +numeric openingwidth; +numeric openingheight; +numeric bodyvpos; +numeric bodywidth; +numeric bodyheight; +numeric typeareabottom; +numeric sigvpos; +numeric sigwidth; +numeric sigheight; +numeric tfoldmarkwidth; +numeric mfoldmarkwidth; +numeric bfoldmarkwidth; +firstheadhpos = 0.5*(paperwidth-firstheadwidth); +firstheadheight = 5*baselineskip; +firstfoothpos = 0.5*(paperwidth-firstfootwidth); +firstfootheight = 3*baselineskip; +fromrulewidth = 0.5*firstheadwidth; +fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth); +specialmailwidth = 5cm; +specialmailheight = baselineskip; +specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth; +lochpos = paperwidth-toaddrhpos-locwidth; +refhpos = 1in+oddsidemargin; +refheight = 2*baselineskip; +refwidth := textwidth; +titlevpos = refvpos+refheight+refaftervskip; +titlewidth = 9cm; +titleheight = 1.2*baselineskip; +subjectvpos = titlevpos+titleheight+1*baselineskip; +subjectwidth = 8cm; +subjectheight = baselineskip; +openingvpos = subjectvpos+subjectheight+2*baselineskip; +openingwidth = 6cm; +openingheight = baselineskip; +bodyvpos = openingvpos+openingheight+baselineskip; +bodywidth = textwidth; +bodyheight = 8*baselineskip; +typeareabottom = firstfootvpos-footskip; +sigvpos = bodyvpos+bodyheight+baselineskip; +sigwidth = 5cm; +sigheight = baselineskip; +tfoldmarkwidth = 2mm; +mfoldmarkwidth = 4mm; +bfoldmarkwidth = 2mm; +% \end{macrocode} +%</DIN> +% +%<*SN> +% \section{Maße für SN-Briefe} +% \begin{macrocode} +numeric paperwidth; +numeric paperheight; +numeric textwidth; +numeric textheight; +numeric evensidemargin; +numeric oddsidemargin; +numeric topmargin; +numeric headheight; +numeric headsep; +numeric topskip; +numeric footskip; +numeric baselineskip; + +paperwidth = 597.50793pt; +paperheight = 845.04694pt; +textwidth = 418.25555pt; +textheight = 595.80026pt; +evensidemargin = 17.3562pt; +oddsidemargin = 17.3562pt; +topmargin = -25.16531pt; +headheight = 17.0pt; +headsep = 20.40001pt; +topskip = 11.0pt; +footskip = 47.60002pt; +baselineskip = 13.6pt; + + + +numeric foldmarkhpos; +numeric tfoldmarkvpos; +numeric bfoldmarkvpos; +numeric toaddrvpos; +numeric refvpos; +numeric refaftervskip; +numeric toaddrhpos; +numeric toaddrwidth; +numeric toaddrheight; +numeric toaddrindent; +numeric specialmailindent; +numeric specialmailrightindent; +numeric locwidth; +numeric backaddrheight; +numeric firstheadvpos; +numeric firstheadwidth; +numeric firstfootwidth; +numeric firstfootvpos; +numeric refwidth; +numeric sigindent; +numeric sigbeforevskip; + + +foldmarkhpos = 3.5mm; +tfoldmarkvpos = 105mm; +bfoldmarkvpos = 210mm; +toaddrvpos = 45mm; +refvpos = 98.5mm; +refaftervskip = baselineskip; +toaddrhpos = -8mm; +toaddrwidth = 90mm; +toaddrheight = 40mm; +toaddrindent = 0mm; +%specialmailindent = \fill; +specialmailrightindent = 11pt; +locwidth = (paperwidth-2*abs(toaddrhpos)-toaddrwidth)/2; +backaddrheight = 5mm; +firstheadvpos = 8mm; +firstheadwidth = paperwidth - 2*abs(toaddrhpos); +firstfootwidth = firstheadwidth; +firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip; +show firstfootvpos; +refwidth = 0pt; +sigindent = 0mm; +sigbeforevskip = 2*baselineskip; + + +% \end{macrocode} +% weitere Hilfsvariablen +% \begin{macrocode} +numeric firstheadhpos; +numeric firstheadheight; +numeric firstfoothpos; +numeric firstfootheight; +numeric fromrulewidth; +numeric fromrulehpos; +numeric specialmailwidth; +numeric specialmailheight; +numeric lochpos; +numeric refhpos; +numeric refheight; +numeric titlevpos; +numeric titlewidth; +numeric titleheight; +numeric subjectvpos; +numeric subjectwidth; +numeric subjectheight; +numeric openingvpos; +numeric openingwidth; +numeric openingheight; +numeric bodyvpos; +numeric bodywidth; +numeric bodyheight; +numeric typeareabottom; +numeric sigvpos; +numeric sigwidth; +numeric sigheight; +numeric tfoldmarkwidth; +numeric mfoldmarkwidth; +numeric bfoldmarkwidth; +firstheadhpos = 0.5*(paperwidth-firstheadwidth); +firstheadheight = 4*baselineskip; +firstfoothpos = 0.5*(paperwidth-firstfootwidth); +firstfootheight = 3*baselineskip; +fromrulewidth = 0.5*firstheadwidth; +fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth); +specialmailwidth = 5cm; +specialmailheight = baselineskip; +specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth; +lochpos = -toaddrhpos; +refhpos = 1in+oddsidemargin; +refheight = 2*baselineskip; +refwidth := textwidth; +titlevpos = refvpos+refheight+refaftervskip; +titlewidth = 9cm; +titleheight = 1.2*baselineskip; +subjectvpos = titlevpos+titleheight+1*baselineskip; +subjectwidth = 8cm; +subjectheight = baselineskip; +openingvpos = subjectvpos+subjectheight+2*baselineskip; +openingwidth = 6cm; +openingheight = baselineskip; +bodyvpos = openingvpos+openingheight+baselineskip; +bodywidth = textwidth; +bodyheight = 8*baselineskip; +typeareabottom = firstfootvpos-footskip; +sigvpos = bodyvpos+bodyheight+baselineskip; +sigwidth = 5cm; +sigheight = baselineskip; +tfoldmarkwidth = 2mm; +mfoldmarkwidth = 4mm; +bfoldmarkwidth = 2mm; +% \end{macrocode} +%</SN> +%</values> +% +%<*include> +% \section{Der Abschnitt \texttt{include}} +% \changes{}{2005-08-30}{Korrektur der Stiftstärken} +% +% Dieser Abschnitt erzeugt die Datei \texttt{plinc.mp} mit den wesentlichen +% Definitionen für die Erzeugung eines Elements. Eine Element ist +% beispielsweise eine Pseudolänge, eine Beschreibung (Variable), ein Feld, +% \dots). +% +% \begin{macrocode} +def lengths = + toaddrindent := 0.7cm; +% \end{macrocode} +% Die Breite des \texttt{location}-Feldes wird später berechnet und deshalb +% hier nicht mehr mit +% \begin{verbatim} +% locwidth := 3.7cm; +% \end{verbatim} +% gesetzt. +% \begin{macrocode} + firstheadheight := firstheadheight-3pt; + firstheadvpos := firstheadvpos+3pt; + sigindent := 1cm; + if (latexlengths=true): + writelatexlengths; + fi + if (filled=true): + drawfilledelements; + fi + if (framed=true): + drawframedelements; + fi + drawpaperandfoldmarks; + drawboxes; +% \end{macrocode} +% From-Rule: +% \begin{macrocode} + draw ((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke)-- + (fromrulehpos+fromrulewidth,firstheadvpos+firstheadheight-strichstaerke)) + transformed T withpen pencircle scaled strichstaerke; + writelengths; +enddef; + +def describe(expr lang) = + drawpaperandfoldmarks; + if (filled=true): + drawfilledelements; + fi + if (framed=true): + drawframedelements; + fi + writedescription(lang); +enddef; + +def drawframedelements = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + pickup pencircle scaled framestrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kopf und Fuß +% \begin{macrocode} + draw unitsquare xscaled firstheadwidth yscaled firstheadheight + shifted (firstheadhpos, firstheadvpos) transformed T; + draw unitsquare xscaled firstfootwidth yscaled firstfootheight + shifted (firstfoothpos, firstfootvpos) transformed T; +% \end{macrocode} +% Adressfeld +% \begin{macrocode} + draw unitsquare xscaled toaddrwidth yscaled backaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; + draw unitsquare xscaled specialmailwidth yscaled specialmailheight + shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent, + toaddrvpos+backaddrheight) transformed T; + draw unitsquare xscaled (toaddrwidth-2*toaddrindent) + yscaled (toaddrheight-backaddrheight-specialmailheight) + shifted (istoaddrhpos+toaddrindent, + toaddrvpos+backaddrheight+specialmailheight) transformed T; +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + draw unitsquare xscaled locwidth yscaled toaddrheight + shifted (lochpos, toaddrvpos) transformed T; +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + draw unitsquare xscaled refwidth yscaled refheight + shifted (1in+oddsidemargin, refvpos) transformed T; +% \end{macrocode} +% Titel: +% \begin{macrocode} + draw unitsquare xscaled titlewidth yscaled titleheight + shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos) + transformed T; +% \end{macrocode} +% Betreff: +% \begin{macrocode} + draw unitsquare xscaled subjectwidth yscaled subjectheight + shifted (1in+oddsidemargin, subjectvpos) transformed T; +% \end{macrocode} +% Anrede: +% \begin{macrocode} + draw unitsquare xscaled openingwidth yscaled openingheight + shifted (1in+oddsidemargin, openingvpos) transformed T; +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + draw unitsquare xscaled bodywidth yscaled bodyheight + shifted (1in+oddsidemargin, bodyvpos) transformed T; +% \end{macrocode} +% Signatur: +% \begin{macrocode} + draw unitsquare xscaled sigwidth yscaled sigheight + shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T; + draw unitsquare xscaled (0.8*sigwidth) yscaled sigheight + shifted (1in+oddsidemargin+sigindent+.1*sigwidth, + sigvpos+sigheight+sigbeforevskip) transformed T; +enddef; + +def drawfilledelements = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + drawoptions (withcolor fillcolor); +% \end{macrocode} +% Kopf und Fuß: +% \begin{macrocode} + fill unitsquare xscaled firstheadwidth yscaled firstheadheight + shifted (firstheadhpos, firstheadvpos) transformed T; + fill unitsquare xscaled firstfootwidth yscaled firstfootheight + shifted (firstfoothpos, firstfootvpos) transformed T; +% \end{macrocode} +% Adressfeld: +% \begin{macrocode} + fill unitsquare xscaled toaddrwidth yscaled backaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; + fill unitsquare xscaled specialmailwidth yscaled specialmailheight + shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent, + toaddrvpos+backaddrheight) transformed T; + fill unitsquare xscaled (toaddrwidth-2*toaddrindent) + yscaled (toaddrheight-backaddrheight-specialmailheight) + shifted (istoaddrhpos+toaddrindent, + toaddrvpos+backaddrheight+specialmailheight) transformed T; +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + fill unitsquare xscaled locwidth yscaled toaddrheight + shifted (lochpos, toaddrvpos) transformed T; +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + fill unitsquare xscaled refwidth yscaled refheight + shifted (refhpos, refvpos) transformed T; +% \end{macrocode} +% Titel: +% \begin{macrocode} + fill unitsquare xscaled titlewidth yscaled titleheight + shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos) + transformed T; +% \end{macrocode} +% Betreff: +% \begin{macrocode} + fill unitsquare xscaled subjectwidth yscaled subjectheight + shifted (1in+oddsidemargin, subjectvpos) transformed T; +% \end{macrocode} +% Anrede: +% \begin{macrocode} + fill unitsquare xscaled openingwidth yscaled openingheight + shifted (1in+oddsidemargin, openingvpos) transformed T; +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + fill unitsquare xscaled bodywidth yscaled bodyheight + shifted (1in+oddsidemargin, bodyvpos) transformed T; +% \end{macrocode} +% Signatur: +% \begin{macrocode} + fill unitsquare xscaled sigwidth yscaled sigheight + shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T; + fill unitsquare xscaled (0.8*sigwidth) yscaled sigheight + shifted (1in+oddsidemargin+sigindent+.1*sigwidth, + sigvpos+sigheight+sigbeforevskip) transformed T; +enddef; + +def drawpaperandfoldmarks = + pickup pencircle scaled strichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Briefbogen: +% \begin{macrocode} + draw unitsquare xscaled paperwidth yscaled paperheight transformed T; +% \end{macrocode} +% Falzmarken: +% \begin{macrocode} + draw ((foldmarkhpos,tfoldmarkvpos)-- + (foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos)) transformed T; + draw ((foldmarkhpos,0.5*paperheight)-- + (foldmarkhpos+mfoldmarkwidth,0.5*paperheight)) transformed T; + draw ((foldmarkhpos,bfoldmarkvpos)-- + (foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos)) transformed T; +enddef; + +def drawboxes = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + pickup pencircle scaled hilfsstrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kasten Adressfeld: +% \begin{macrocode} + draw unitsquare xscaled toaddrwidth yscaled toaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; +% \end{macrocode} +% ^^A auskommentiert: +% ^^A Kasten Adresszeile +% ^^A draw unitsquare xscaled (paperwidth-2*toaddrhpos) +% ^^A yscaled toaddrheight shifted (toaddrhpos, toaddrvpos) transformed T; +% Kasten Signatur: +% \begin{macrocode} + draw unitsquare xscaled sigwidth yscaled (2*sigheight+sigbeforevskip) + shifted (1in+oddsidemargin+sigindent,sigvpos) transformed T; +% \end{macrocode} +% Kasten Satzspiegel: +% \begin{macrocode} + draw unitsquare xscaled textwidth yscaled (typeareabottom-titlevpos) + shifted (1in+oddsidemargin,titlevpos) transformed T; +enddef; + +def writelengths = +begingroup + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + deflengths; + pickup pencircle scaled hilfsstrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% \texttt{firstheadwidth}: +% \begin{macrocode} + hmeasure((firstheadhpos,firstheadvpos), firstheadwidth, plength[6], origin, + top); +% \end{macrocode} +% \texttt{fromrulewidth}: +% \begin{macrocode} + hmeasure((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke), + fromrulewidth, plength[23], origin, top); +% \end{macrocode} +% \texttt{toaddrwidth}: +% \begin{macrocode} + hmeasure((istoaddrhpos,toaddrvpos), toaddrwidth, plength[20], origin, top); +% \end{macrocode} +% \texttt{locwidth}: +% \begin{macrocode} + hmeasure((lochpos,toaddrvpos), locwidth, plength[8], origin, top); +% \end{macrocode} +% \texttt{specialmailindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos, + toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)), + specialmailindent, plength[14], (-0.5*specialmailindent+toaddrindent,+14pt), rt); +% \end{macrocode} +% \texttt{specialmailrightindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos+toaddrwidth-specialmailrightindent, + toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)), + specialmailrightindent, plength[15], + (0.5*specialmailrightindent-3pt,0pt), rt); +% \end{macrocode} +% \texttt{toaddrhpos}: +% \begin{macrocode} + if toaddrhpos > 0 : + hmeasure((0,toaddrvpos), toaddrhpos, plength[17], (6pt,0pt), top); + hmeasure((lochpos+locwidth,toaddrvpos), toaddrhpos, plength[17], (-6pt,0pt), + top); + else : + hmeasure((0,toaddrvpos), -toaddrhpos, plength[24], (6pt,0pt), top); + hmeasure((paperwidth+toaddrhpos,toaddrvpos), -toaddrhpos, plength[24], + (-6pt,0pt), top); + fi +% \end{macrocode} +% \texttt{toaddrindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos, + toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)), + toaddrindent, plength[18], (0.5*toaddrindent,0pt), rt); + hmeasure((istoaddrhpos+toaddrwidth-toaddrindent, + toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)), + toaddrindent, plength[18], (-0.5*toaddrindent,0pt), lft); +% \end{macrocode} +% \texttt{refwidth}: +% \begin{macrocode} + hmeasure((1in+oddsidemargin,refvpos), refwidth, plength[11], origin, top); +% \end{macrocode} +% \texttt{refhpos}: +% \begin{macrocode} + hmeasure((0,refvpos), refhpos, plength[22], origin, top); +% \end{macrocode} +% \texttt{foldmarkhpos}: +% \begin{macrocode} + hmeasure((0,bfoldmarkvpos+tickhoehe), foldmarkhpos, plength[7], + (-6pt,0.5*tickhoehe), lrt); +% \end{macrocode} +% \texttt{sigindent}: +% \begin{macrocode} + hmeasure((1in+oddsidemargin,sigvpos+0.5*(sigheight+tickhoehe)), sigindent, + plength[13], (-0.5*sigindent,0pt), lft); +% \end{macrocode} +% \texttt{firstfootwidth}: +% \begin{macrocode} + hmeasure((firstfoothpos,firstfootvpos), firstfootwidth, plength[4], origin, + top); +% \end{macrocode} +% \texttt{toaddrheight}: +% \begin{macrocode} + vmeasure((istoaddrhpos-tickhoehe,toaddrvpos), toaddrheight, + plength[21] rotated 90, origin, lft); + vmeasure((lochpos+locwidth,toaddrvpos), toaddrheight, + plength[21] rotated 90, origin, rt); +% \end{macrocode} +% \texttt{backaddrheight}: +% \begin{macrocode} + vmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), backaddrheight, plength[1], + origin, rt); +% \end{macrocode} +% \texttt{refaftervskip}: +% ^^A auskommentiert: +% ^^A vmeasure((1in+oddsidemargin+0.5*(textwidth+titlewidth), +% ^^A refvpos+refheight), refaftervskip, plength[9], origin, rt); +% \begin{macrocode} + vmeasure((1in+oddsidemargin+textwidth,refvpos+refheight), refaftervskip, + plength[9], origin, rt); +% \end{macrocode} +% \texttt{sigbeforvskip}: +% \begin{macrocode} + vmeasure((1in+oddsidemargin+sigindent+0.1*sigwidth-tickhoehe, + sigvpos+sigheight), sigbeforevskip, plength[12], origin, rt); +% \end{macrocode} +% \texttt{firstheadvpos}: +% \begin{macrocode} + dmeasure((firstheadhpos-2*tickhoehe,firstheadvpos), plength[5], origin, rt); +% \end{macrocode} +% \texttt{toaddrvpos}: +% \begin{macrocode} + if toaddrhpos > 0 : + dmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), plength[19], origin, top); + else : + dmeasure((lochpos+locwidth,toaddrvpos), plength[19], origin, top); + fi +% \end{macrocode} +% \texttt{refvpos}: +% \begin{macrocode} + dmeasure((refhpos+refwidth,refvpos), plength[10], (0pt,0pt), top); +% \end{macrocode} +% \texttt{tfoldmarkvpos}: +% \begin{macrocode} + dmeasure((foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos), plength[16], + (18pt,1.5*tickhoehe), bot); +% \end{macrocode} +% \texttt{bfoldmarkvpos}: +% \begin{macrocode} + dmeasure((foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos), plength[2], + (18pt,0pt), top); +% \end{macrocode} +% \texttt{firstfootvpos}: +% \begin{macrocode} + dmeasure((firstfoothpos-2*tickhoehe,firstfootvpos), plength[3], origin, top); +endgroup +enddef; + +def writelatexlengths = +begingroup + color temp; + deflatexlengths; + temp := drawcolor; + drawcolor := latexlengthcolor; + pickup pencircle scaled hilfsstrichstaerke; +% \end{macrocode} +% \LaTeX-Längen: +% \begin{macrocode} + vmeasure((1in+oddsidemargin+openingwidth,subjectvpos-baselineskip), + baselineskip, latexlength[1], origin, rt); + vmeasure((1in+oddsidemargin+openingwidth,subjectvpos+baselineskip), + 2*baselineskip, latexlength[2], origin, rt); + vmeasure((1in+oddsidemargin+openingwidth,openingvpos+baselineskip), + baselineskip, latexlength[1], origin, rt); + vmeasure((1in+oddsidemargin+sigindent+sigwidth,sigvpos-baselineskip), + baselineskip, latexlength[1], origin, rt); + hmeasure((1in+oddsidemargin,typeareabottom+tickhoehe), + textwidth, latexlength[3], (0pt,-3pt), bot); + draw ((1in+oddsidemargin+textwidth,typeareabottom)-- + (firstfoothpos+firstfootwidth,typeareabottom)) transformed T; + vmeasure((firstfoothpos+firstfootwidth,typeareabottom), + firstfootvpos-typeareabottom, latexlength[4] rotated 90, origin, + rt); + drawcolor := temp; +endgroup +enddef; +% \end{macrocode} +% Anker ist links unten. +% \begin{macrocode} +def hmeasure(expr p, breite, pic, s)(suffix alig) = +begingroup + save pleft, pright; + pair pleft, pright; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% linker Tick: +% \begin{macrocode} + draw (p--p shifted (0,-tickhoehe)) transformed T; +% \end{macrocode} +% rechter Tick: +% \begin{macrocode} + draw (p--p shifted (0,-tickhoehe)) shifted (breite,0) transformed T; +% \end{macrocode} +% Messlinie; +% die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen: +% \begin{macrocode} + pleft = p shifted (0,-0.5*tickhoehe) + transformed T shifted (hilfsstrichstaerke,0); + pright = p shifted (0,-0.5*tickhoehe) shifted (breite,0) + transformed T shifted (-hilfsstrichstaerke,0); + drawdblarrow pleft--pright; + label.alig(pic, (p shifted (0.5*breite, -0.5*tickhoehe) shifted s) + transformed T); +endgroup +enddef; + + +% \end{macrocode} +% Anker ist links oben. +% \begin{macrocode} +def vmeasure(expr p, breite, pic, s)(suffix alig) = +begingroup + save ptop, pbottom; + pair ptop, pbottom; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% oberer Tick: +% \begin{macrocode} + draw (p--p shifted (tickhoehe,0)) transformed T; +% \end{macrocode} +% unterer Tick: +% \begin{macrocode} + draw (p--p shifted (tickhoehe,0)) shifted (0,breite) transformed T; +% \end{macrocode} +% Messlinie; +% die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen: +% \begin{macrocode} + ptop = p shifted (0.5*tickhoehe,0) + transformed T shifted (0,-hilfsstrichstaerke); + pbottom = p shifted (0.5*tickhoehe,0) shifted (0,breite) + transformed T shifted (0,hilfsstrichstaerke); + drawdblarrow ptop--pbottom; + label.alig(pic, (p shifted (0.5*tickhoehe, 0.5*breite) shifted s) + transformed T); +endgroup +enddef; + + +% \end{macrocode} +% Anker ist links unten. +% \begin{macrocode} +def dmeasure(expr p, pic, s)(suffix alig) = +begingroup + save ptop, pbottom; + pair ptop, pbottom; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% horizontale Linie: +% \begin{macrocode} + draw (p--p shifted (2*tickhoehe,0)) transformed T; +% \end{macrocode} +% Messlinie: +% \begin{macrocode} + ptop = p shifted (0,-1.5*tickhoehe) shifted (tickhoehe,0) + transformed T; +% \end{macrocode} +% Die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen. +% \begin{macrocode} + pbottom = p shifted (tickhoehe,0) + transformed T shifted (0,hilfsstrichstaerke); + drawarrow ptop--pbottom; + label.alig(pic, (p shifted (tickhoehe, -1.5*tickhoehe) shifted s) + transformed T); +endgroup +enddef; + + +def writedescription(expr lang) = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + if (lang="de"): defdescriptionde; + else: defdescriptionen; + fi + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kopf und Fuß: +% \begin{macrocode} + label(description[1], + (firstheadhpos+0.5*firstheadwidth, firstheadvpos+0.5*firstheadheight) + transformed T); + label(description[2], + (firstfoothpos+0.5*firstfootwidth, firstfootvpos+0.5*firstfootheight) + transformed T); +% \end{macrocode} +% Adressfeld: +% \begin{macrocode} + label(description[3], + (istoaddrhpos+0.5*toaddrwidth, toaddrvpos+0.5*backaddrheight) + transformed T); + label(description[4], + (istoaddrhpos+toaddrwidth-specialmailrightindent-0.5*specialmailwidth, + toaddrvpos+backaddrheight+0.5*specialmailheight) transformed T); + label(description[5], + (istoaddrhpos+0.5*toaddrwidth, + toaddrvpos+backaddrheight+specialmailheight+0.5*(toaddrheight-backaddrheight-specialmailheight)) + transformed T); +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + label(description[13], (lochpos+0.5*locwidth, toaddrvpos+0.5*toaddrheight) + transformed T); +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + label(description[6], (1in+oddsidemargin+0.5*refwidth, + refvpos+0.5*refheight) + transformed T); +% \end{macrocode} +% Titel: +% \begin{macrocode} + label(description[7], + (1in+oddsidemargin+0.5textwidth, titlevpos+0.5*titleheight) + transformed T); +% \end{macrocode} +% Betreff: +% \begin{macrocode} + label(description[8], + (1in+oddsidemargin+0.5*subjectwidth, subjectvpos+0.5*subjectheight) + transformed T); +% \end{macrocode} +% Anrede: +% \begin{macrocode} + label(description[9], + (1in+oddsidemargin+0.5*openingwidth, openingvpos+0.5*openingheight) + transformed T); +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + label(description[10], + (1in+oddsidemargin+0.5*bodywidth, bodyvpos+0.5*bodyheight) + transformed T); +% \end{macrocode} +% Signatur: +% \begin{macrocode} + label(description[11], + (1in+oddsidemargin+sigindent+0.5*sigwidth, sigvpos+0.5*sigheight) + transformed T); + label(description[12], + (1in+oddsidemargin+sigindent+0.5*sigwidth, + sigvpos+sigheight+sigbeforevskip+0.5*sigheight) transformed T); +enddef; +% \end{macrocode} +%</include> +% +% \iffalse +\endinput +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: +% \fi |