% \CheckSum{0} % \iffalse % ====================================================================== % plength.dtx % Copyright (c) Markus Kohm, 2005-2019 % % 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. % ---------------------------------------------------------------------- % plength.dtx % Copyright (c) Markus Kohm, 2005-2019 % % 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. % ====================================================================== % % 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,terms,\languagename}}% \file{varDIN.mp}{\from{plength.dtx}{main,DIN,variables,\languagename}}% % Ebenfalls enthalten, derzeit aber nicht verwendet: % \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-vars.mp}{\from{plength.dtx}{tex}}% \file{pltex-terms.mp}{\from{plength.dtx}{tex,terms}}% \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 % % %<*driver> % \begin{macrocode} \ProvidesFile{plength.drv}[2014/02/28 plength MetaPost graphics] \documentclass{ltxdoc} \usepackage[ngerman]{babel} \begin{document} \DocInput{plength.dtx} \end{document} % \end{macrocode} % % \fi % % \title{MetaPost-Grafiken für das Briefkapitel} % \author{Stephan Hennig und Markus Kohm} % \date{2010-02-09} % \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; %input pllcoDIN %input pllcoSN input plinc %input pltex-vars %input pltex-terms 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; % language := "de"; % language := "en"; ahlength := 0.7mm; picture description[], plength[], latexlength[]; transform T; T = identity reflectedabout ((0pt,.5*paperheight), (paperwidth,.5*paperheight)) scaled (grafikhoehe/paperheight); % lengths; writedescription(language); % describe(language); endfig end % \end{macrocode} % % %<*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 %< 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; % %<*!terms> description[1]=btex \Multi{\Variable{firsthead}\\ \Variable{fromname}\and \Variable{fromaddress}\and \Variable{fromphone}\and \Variable{fromfax}\and \Variable{fromemail}\and \Variable{fromurl}} etex; description[2]=btex \Variable{firstfoot} etex; description[3]=btex \Variable{backaddress} etex; description[4]=btex \Variable{specialmail} etex; description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{Name und Adresse} etex; description[6]=btex \Multi{\Variable{yourref}\and \Variable{yourmail}\and \Variable{myref}\and \Variable{customer}\and \Variable{invoice}\and \Variable{place}\and \Variable{date}} etex; description[7]=btex \Variable{title} etex; description[8]=btex \Variable{subject} etex; description[9]=btex \Macro{opening}\Parameter{Anrede} etex; description[10]=btex \descr{}Brieftext etex; description[11]=btex \Macro{closing}\Parameter{Floskel} etex; description[12]=btex \Variable{signature} etex; description[13]=btex \Variable{location} etex; % endgroup enddef; def defdescriptionen = begingroup %<*terms> description[1]=btex \descr{}letterhead etex; description[2]=btex \descr{}letter footer etex; description[3]=btex \descr{}return address etex; description[4]=btex \descr{}mode of dispatch etex; description[5]=btex \descr{}addressee etex; description[6]=btex \descr{}reference fields 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; % %<*!terms> description[1]=btex \Multi{\Variable{firsthead}\\ \Variable{fromname}\and \Variable{fromaddress}\and \Variable{fromphone}\and \Variable{fromfax}\and \Variable{fromemail}\and \Variable{fromurl}} etex; description[2]=btex \Variable{firstfoot} etex; description[3]=btex \Variable{backaddress} etex; description[4]=btex \Variable{specialmail} etex; description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{addressee} etex; description[6]=btex \Multi{\Variable{yourref}\and \Variable{yourmail}\and \Variable{myref}\and \Variable{customer}\and \Variable{invoice}\and \Variable{place}\and \Variable{date}} etex; description[7]=btex \Variable{title} etex; description[8]=btex \Variable{subject} etex; description[9]=btex \Macro{opening}\Parameter{opening term} etex; description[10]=btex \descr{}letter body etex; description[11]=btex \Macro{closing}\Parameter{closing term} etex; description[12]=btex \Variable{signature} etex; description[13]=btex \Variable{location} etex; % endgroup enddef; % \end{macrocode} % % %<*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 tfoldmarklength; numeric pfoldmarklength; numeric bfoldmarklength; 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; tfoldmarklength = 2mm; pfoldmarklength = 4mm; bfoldmarklength = 2mm; 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; 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; % \end{macrocode} % % %<*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 tfoldmarklength; numeric pfoldmarklength; numeric bfoldmarklength; 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; tfoldmarklength = 2mm; pfoldmarklength = 4mm; bfoldmarklength = 2mm; 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; 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; % \end{macrocode} % % % %<*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+tfoldmarklength,tfoldmarkvpos)) transformed T; draw ((foldmarkhpos,0.5*paperheight)-- (foldmarkhpos+pfoldmarklength,0.5*paperheight)) transformed T; draw ((foldmarkhpos,bfoldmarkvpos)-- (foldmarkhpos+bfoldmarklength,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{firstheadhpos}: % \begin{macrocode} if firstheadhpos > 0 : hmeasure((0,firstheadvpos), firstheadhpos, plength[33], (12pt,0pt), top); else : hmeasure((0,firstheadvpos), -firstheadhpos, plength[34], (12pt,0pt), top); fi % \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); else : hmeasure((0,toaddrvpos), -toaddrhpos, plength[24], (6pt,0pt), top); fi % \end{macrocode} % \texttt{lochpos}: % \begin{macrocode} if toaddrhpos > 0 : hmeasure((lochpos+locwidth,toaddrvpos), toaddrhpos, plength[25], (-6pt,0pt), top); else : hmeasure((paperwidth+toaddrhpos,toaddrvpos), -toaddrhpos, plength[26], (-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{firstfoothpos}: % \begin{macrocode} if firstfoothpos > 0 : hmeasure((0,firstfootvpos+firstfootheight+tickhoehe), firstfoothpos, plength[31], (12pt,0pt), bot); else : hmeasure((firstfootwidth-firstfoothpos,firstfootvpos+firstfootheight+tickhoehe), -firstfoothpos, plength[32], (12pt,0pt), bot); fi % \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); % \end{macrocode} % \texttt{locheight}: % \begin{macrocode} vmeasure((lochpos+locwidth,toaddrvpos), toaddrheight, plength[28] rotated 90, origin, rt); % \end{macrocode} % \texttt{subjectbeforevskip} % \begin{macrocode} label(plength[30], (1in+oddsidemargin+openingwidth+152pt, subjectvpos-.5*baselineskip) transformed T); % \end{macrocode} % \texttt{subjectaftervskip} % \begin{macrocode} vmeasure((1in+oddsidemargin+openingwidth,subjectvpos+baselineskip), 2*baselineskip, plength[29], 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} if firstheadhpos < 0 : dmeasure((-firstheadhpos-2*tickhoehe,firstheadvpos), plength[5], origin, rt); else : dmeasure((firstheadhpos+firstheadwidth,firstheadvpos), plength[5], origin, lft); fi % \end{macrocode} % \texttt{toaddrvpos}: % \begin{macrocode} if toaddrhpos > 0 : dmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), plength[19], origin, top); else : dmeasure((istoaddrhpos-2*tickhoehe,toaddrvpos), plength[19], origin, top); fi % \end{macrocode} % \texttt{locvpos}: % \begin{macrocode} if toaddrhpos > 0 : dmeasure((lochpos-2*tickhoehe,toaddrvpos), plength[27], origin, top); else : dmeasure((lochpos+locwidth,toaddrvpos), plength[27], 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+tfoldmarklength,tfoldmarkvpos), plength[16], (18pt,1.5*tickhoehe), bot); % \end{macrocode} % \texttt{bfoldmarkvpos}: % \begin{macrocode} dmeasure((foldmarkhpos+bfoldmarklength,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,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} % % % \iffalse \endinput %%% Local Variables: %%% mode: doctex %%% coding: utf-8 %%% TeX-master: t %%% End: % \fi