diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/german/stammtisch |
Initial commit
Diffstat (limited to 'info/german/stammtisch')
31 files changed, 2549 insertions, 0 deletions
diff --git a/info/german/stammtisch/wuppertal/1992/jahrb92.txt b/info/german/stammtisch/wuppertal/1992/jahrb92.txt new file mode 100644 index 0000000000..a7033b58f0 --- /dev/null +++ b/info/german/stammtisch/wuppertal/1992/jahrb92.txt @@ -0,0 +1,2 @@ +Das Jahrbuch 1992 ist in 1993 enthalten! + diff --git a/info/german/stammtisch/wuppertal/1993/disk1/label.tex b/info/german/stammtisch/wuppertal/1993/disk1/label.tex new file mode 100644 index 0000000000..b75322500f --- /dev/null +++ b/info/german/stammtisch/wuppertal/1993/disk1/label.tex @@ -0,0 +1,47 @@ +\NeedsTeXFormat{LaTeX2e} + +\documentclass{article} + +\usepackage{konstruk} + +\FreeStyle + Oben <3mm> + Unten <0mm> + Bund <-1.5mm> + Aussen <0mm> + Kopfzeile Abstand <0mm> + Hoehe <0mm> + Text {\hfil} / + Fusszeile Abstand <0mm> + Text {\hfil} / + / + +\raggedright\raggedbottom +\parindent=0pt + +\def\Label#1{\mbox{\hbox to 70mm{\hss\vbox to 41mm{\vglue 2mm + \hsize=70mm\normalbaselines + \large\vfill\centering + Wuppertaler\\ + DANTE-\TeX-Stammtisch\\[4mm] + Diskette #1 + \vfill}\hss}}\kern0pt\penalty0\ignorespaces}% + +\newcount\numb + +\begin{document} +\offinterlineskip +\numb=0 +\loop +\ifnum\numb<21 + \Label1 + \advance\numb by 1 +\repeat +\numb=0 +\loop +\ifnum\numb<21 + \Label2 + \advance\numb by 1 +\repeat +\end{document} + diff --git a/info/german/stammtisch/wuppertal/1993/disk1/wstammtk.tex b/info/german/stammtisch/wuppertal/1993/disk1/wstammtk.tex new file mode 100644 index 0000000000..076800ca20 --- /dev/null +++ b/info/german/stammtisch/wuppertal/1993/disk1/wstammtk.tex @@ -0,0 +1,137 @@ +\NeedsTeXFormat{LaTeX2e} + +\documentclass[a5paper]{article} + +\renewcommand\encodingdefault{T1} +\usepackage{german3} + +\setlength\textwidth{120mm} +\setlength\textheight{168mm} + +\setlength\parindent{0pt} +\setlength\parskip{1.5ex} + +\title{Der \TeX-Stammtisch in Wuppertal} +\author{Andreas Schrell} + +\newcommand\DeV{DANTE~e.\kern.1emV.} + +\ifx\MF\undefined + \newfont\manualfont{logo10} + \def\MF{{\manualfont META}\-{\manualfont FONT}} +\fi +\ifx\PiCTeX\undefined + \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} + \def\PiCTeX{\PiC\kern-.11em\TeX} +\fi + +\begin{document} + +\maketitle + +Nun gibt es ihn schon l"anger als ein Jahr, und --- abgesehen von der +Liste am Ende der \TeX nischen Kom"odie --- f"uhrte er immer ein stilles +Dasein. Die Rede ist vom Wuppertaler \TeX-Stammtisch. Die Idee zu dessen +Gr"undung erhielt ich nat"urlich durch die \TeX nische Kom"odie, weitere +Anst"o"se ergaben sich daraus, da"s ich in der Uni oft um Rat gefragt +werde, wenn es um \TeX\ Probleme geht. So entschlo"s ich mich zur +Initiierung des Wuppertaler \TeX-Stammtischs. + +Im Mai 1992 begannen die ersten Vorbereitungen: Absprache mit \DeV{}, +Suche nach einer Gastst"atte, Erstellen von Einladungen, Plakaten und des +Stammtisch-Wimpels, Sammeln von Themen usw. Freundlicherweise wurden mir +von \DeV{} Adressen von Mitgliedern in der Umgebung auf Diskette zur +Verf"ugung gestellt, weitere Interessenten kamen aus meinem +Bekanntenkreis. Dann wurden an 63~Personen Einladungen verschickt, +nat"urlich als Serienbrief mit Wege-Skizze und R"uckantwortkarte zum +Ankreuzen. + +Inzwischen hat sich ein "`harter Kern"' von etwa 12 Personen gebildet, +die zwar nicht immer alle da sind, aber im Durchschnitt treffen sich +etwa 8 Stammtisch-Geschwister. Die meisten kommen aus dem universit"aren +Bereich, allerdings nur wenige direkt aus Wuppertal. Teilweise reist man +mehr als 60\,km weit an! Nicht nur Mitglieder von DANTE\,e.\.V. kommen +regelm"a"sig zu unseren Treffen. Der Stammtisch ist auch eine Verbindung +zu \TeX-Benutzern, die aufgrund ihrer finanziellen Verh"altnisse den +DANTE-Beitrag nicht aufbringen k"onnen, und zu "`Fast-Nie-\TeX-Usern"'. + +Themen finden sich immer genug, gerade in letzter Zeit kommt man ja kaum +mit den Innovationen mit: NFSS l"auft gerade stabil, schon folgt NFSS\,2. +Dies ist noch nicht ganz installiert, da erscheint \LaTeX\,2e\ldots\ Auch +meine Arbeit als studentische Hilfskraft bei der FernUniversit"at in +Hagen liefert viele interessante Probleme (und deren L"osungen). Um die +Diskussion etwas in Gang zu bringen, hatte ich anfangs ein kleines Info +vorbereitet, in dem ich Probleml"osungen oder Styles vorstellte. Dies ist +bis heute so geblieben, ab und zu "ubernimmt aber auch ein anderes +Stammtisch-Mitglied diese Aufgabe. Danach bespricht man die +\TeX-Probleme der Anwesenden oder diskutiert "uber \TeX, Computer und +andere Themen. + +Die Infos wollte ich von Anfang an auch f"ur die \TeX nische Kom"odie +vorbereiten, doch fehlte immer die Zeit dazu. Ein weiteres Problem +stellt das Layout dar, das eine A4-Seite fast f"ullt. Dieses wird auch oft +ganz ausgenutzt, so da"s eine Anpassung an das A5-Layout der \TeX nischen +Kom"odie nicht ganz unproblematisch ist. Letztendlich ist der Umfang +nicht gerade gering. + +So habe ich mich entschlossen, die Infos als Stammtisch-Jahrbuch zur +Verf"ugung zu stellen. Dieses ist ab sofort in kopierter Form bei mir +erh"altlich. Die \TeX-Eingabedateien (mit notwendigen und beschriebenen) +Styles liegen auf $3.5''$-Disketten bei. Diese Disketten werden +demn"achst auch "uber \DeV{} erh"altlich sein. Au"serdem steht ihr Inhalt auf +dem Stuttgarter Server. Zum "Ubersetzen mit \TeX\ ben"otigt man jedoch f"ur +einige Infos eine Big-\TeX-Version, \MF, NFSS\,1, dvips und +PostScript-Fonts des PC-Programms Corel-Draw. + +Das erste Jahrbuch deckt die Zeit vom August 1992 bis Dezember 1993 ab +und ist genau 80\,Seiten dick. Die Infos behandeln folgende Themen: +\begin{enumerate} +\item Linien in Tabellen +\item \TeX- und \MF-Installation +\item Steigende Klammergr"o"sen +\item Einfaches Sperren von Text +\item Vorstellung von \PiCTeX +\item Teile von Zeichnungen in \MF +\item Seitenlayout mit \TeX\ und konstruk.sty +\item Fehlersuche bei Argumentklammern und Environments +\item Der array.sty und seine Verwandten +\item Schmuckumrandungen mit \TeX +\item Brief-Style f"ur vorgedruckte Briefpapiere +\item NFSS (Version 1) +\item DVIDVI: Seitenbasteln nach \TeX +\item Einbindung von Corel-Draw PostScript Fonts +\item Rundsatz (mit dvips) +\item Variabler Kalender-Style +\end{enumerate} + +Das Jahrbuch ist unter folgender Adresse zum Selbstkostenpreis zu +bestellen: +\begin{quote} +Andreas Schrell\\ +Windh"ovel 2\\ +42279 Wuppertal +\end{quote} +Es kostet +\[ 20\,\mbox{DM} \] +mit einer Kammbindung (das ist eine Plastik-Ringbindung, Anteil +2,50\,DM). Darin sind zwei 720\,KB-Disketten ($3.5''$, 4\,DM), Verpackung +(1\,DM) und Versandkosten (5\,DM) enthalten. F"ur die Kopien allein +berechne ich 7,50\,DM. Wer Sonderw"unsche hat (beispielsweise ungebunden +oder ohne Disketten), kann sich den Betrag nach diesen Angaben selbst +berechnen. Legen Sie der Bestellung bitte einen Geldschein oder besser +einen Verrechnungsscheck bei. + +In diesen 1$^1\!/\!_2$ Jahren hat mir die Arbeit f"ur den Wuppertaler +Stammtisch immer sehr viel Spa"s gemacht. Teilweise kostet die +Vorbereitung schon furchtbar viel Zeit und Energie, nicht zuletzt habe +ich aber auch viel dabei gelernt. Wollen Sie nicht auch in Ihrer N"ahe +einen Stammtisch organisieren? Man mu"s ja nicht jedesmal mit einem +Vortrag aufwarten! Dann ist der Aufwand gar nicht mehr so gro"s! Ich +stehe jedenfalls (zu normalen Zeiten) gern f"ur Ihre Fragen zur +Verf"ugung. + +Vielleicht habe ich ja Ihr Interesse geweckt, und wir sehen uns mal beim +Wuppertaler Stammtisch oder einer DANTE-Tagung. Das w"urde mich besonders +freuen. + +\end{document} diff --git a/info/german/stammtisch/wuppertal/README b/info/german/stammtisch/wuppertal/README new file mode 100644 index 0000000000..655d078fa3 --- /dev/null +++ b/info/german/stammtisch/wuppertal/README @@ -0,0 +1,114 @@ + ========================================== + Der DANTE-\TeX-Stammtisch in Wuppertal + ========================================== + + 6.1.1994, Andreas Schrell + +Nun gibt es ihn schon l"anger als ein Jahr, und --- abgesehen von der +Liste am Ende der \TeX nischen Kom"odie --- f"uhrte er immer ein stilles +Dasein. Die Rede ist vom Wuppertaler \TeX-Stammtisch. Die Idee zu dessen +Gr"undung erhielt ich nat"urlich durch die \TeX nische Kom"odie, weitere +Anst"o"se ergaben sich daraus, da"s ich in der Uni oft um Rat gefragt +werde, wenn es um \TeX\ Probleme geht. So entschlo"s ich mich zur +Initiierung des Wuppertaler \TeX-Stammtischs. + +Im Mai 1992 begannen die ersten Vorbereitungen: Absprache mit DANTE e.V., +Suche nach einer Gastst"atte, Erstellen von Einladungen, Plakaten und des +Stammtisch-Wimpels, Sammeln von Themen usw. Freundlicherweise wurden mir +von DANTE e.V. Adressen von Mitgliedern in der Umgebung auf Diskette zur +Verf"ugung gestellt, weitere Interessenten kamen aus meinem +Bekanntenkreis. Dann wurden an 63 Personen Einladungen verschickt, +nat"urlich als Serienbrief mit Wege-Skizze und R"uckantwortkarte zum +Ankreuzen. + +Inzwischen hat sich ein "`harter Kern"' von etwa 12 Personen gebildet, +die zwar nicht immer alle da sind, aber im Durchschnitt treffen sich +etwa 8 Stammtisch-Geschwister. Die meisten kommen aus dem universit"aren +Bereich, allerdings nur wenige direkt aus Wuppertal. Teilweise reist man +mehr als 60 km weit an! Nicht nur Mitglieder von DANTE e.\.V. kommen +regelm"a"sig zu unseren Treffen. Der Stammtisch ist auch eine Verbindung +zu \TeX-Benutzern, die aufgrund ihrer finanziellen Verh"altnisse den +DANTE-Beitrag nicht aufbringen k"onnen, und zu "`Fast-Nie-\TeX-Usern"'. + +Themen finden sich immer genug, gerade in letzter Zeit kommt man ja kaum +mit den Innovationen mit: NFSS l"auft gerade stabil, schon folgt NFSS 2. +Dies ist noch nicht ganz installiert, da erscheint \LaTeX 2e\ldots\ Auch +meine Arbeit als studentische Hilfskraft bei der FernUniversit"at in +Hagen liefert viele interessante Probleme (und deren L"osungen). Um die +Diskussion etwas in Gang zu bringen, hatte ich anfangs ein kleines Info +vorbereitet, in dem ich Probleml"osungen oder Styles vorstellte. Dies ist +bis heute so geblieben, ab und zu "ubernimmt aber auch ein anderes +Stammtisch-Mitglied diese Aufgabe. Danach bespricht man die +\TeX-Probleme der Anwesenden oder diskutiert "uber \TeX, Computer und +andere Themen. + +Die Infos wollte ich von Anfang an auch f"ur die \TeX nische Kom"odie +vorbereiten, doch fehlte immer die Zeit dazu. Ein weiteres Problem +stellt das Layout dar, das eine A4-Seite fast f"ullt. Dieses wird auch oft +ganz ausgenutzt, so da"s eine Anpassung an das A5-Layout der \TeX nischen +Kom"odie nicht ganz unproblematisch ist. Letztendlich ist der Umfang +nicht gerade gering. + +So habe ich mich entschlossen, die Infos als Stammtisch-Jahrbuch zur +Verf"ugung zu stellen. Dieses ist ab sofort in kopierter Form bei mir +erh"altlich. Die \TeX-Eingabedateien (mit notwendigen und beschriebenen) +Styles liegen auf 3.5''-Disketten bei. Diese Disketten werden demn"achst +auch "uber DANTE e.V. erh"altlich sein. Au"serdem steht ihr Inhalt auf +dem Stuttgarter Server. Zum "Ubersetzen mit \TeX\ ben"otigt man jedoch +f"ur einige Infos eine Big-\TeX-Version, \MF, NFSS 1, dvips und +PostScript-Fonts des PC-Programms Corel-Draw. + +Das erste Jahrbuch deckt die Zeit vom August 1992 bis Dezember 1993 ab +und ist genau 80 Seiten dick. Die Infos behandeln folgende Themen: + +-- Linien in Tabellen +-- \TeX- und \MF-Installation +-- Steigende Klammergr"o"sen +-- Einfaches Sperren von Text +-- Vorstellung von \PiCTeX +-- Teile von Zeichnungen in \MF +-- Seitenlayout mit \TeX\ und konstruk.sty +-- Fehlersuche bei Argumentklammern und Environments +-- Der array.sty und seine Verwandten +-- Schmuckumrandungen mit \TeX +-- Brief-Style f"ur vorgedruckte Briefpapiere +-- NFSS (Version 1) +-- DVIDVI: Seitenbasteln nach \TeX +-- Einbindung von Corel-Draw PostScript Fonts +-- Rundsatz (mit dvips) +-- Variabler Kalender-Style + +Das Jahrbuch ist unter folgender Adresse zum Selbstkostenpreis zu +bestellen: + +Andreas Schrell +Windh"ovel 2 +42279 Wuppertal + +Es kostet 20 DM mit einer Kammbindung (eine Plastik-Ringbindung, Anteil +2,50 DM). Darin sind zwei 720 KB-Disketten (3.5'', 4 DM), Verpackung +(1 DM) und Versandkosten (5 DM) enthalten. F"ur die Kopien allein +berechne ich 7,50 DM. Wer Sonderw"unsche hat (beispielsweise ungebunden +oder ohne Disketten), kann sich den Betrag nach diesen Angaben selbst +berechnen. Legen Sie der Bestellung bitte einen Geldschein oder besser +einen Verrechnungsscheck bei. + +In diesen 1.5 Jahren hat mir die Arbeit f"ur den Wuppertaler +Stammtisch immer sehr viel Spa"s gemacht. Teilweise kostet die +Vorbereitung schon furchtbar viel Zeit und Energie, nicht zuletzt habe +ich aber auch viel dabei gelernt. Wollen Sie nicht auch in Ihrer N"ahe +einen Stammtisch organisieren? Man mu"s ja nicht jedesmal mit einem +Vortrag aufwarten! Dann ist der Aufwand gar nicht mehr so gro"s! Ich +stehe jedenfalls (zu normalen Zeiten) gern f"ur Ihre Fragen zur +Verf"ugung. + +Vielleicht habe ich ja Ihr Interesse geweckt, und wir sehen uns mal beim +Wuppertaler Stammtisch. Das w"urde mich besonders freuen. + +Andreas Schrell +Windh"ovel 2 +42279 Wuppertal + +Mail: Andreas.Schrell@FernUni-Hagen.de +Tel. 0202/666889 + diff --git a/info/german/stammtisch/wuppertal/stybesch/00index b/info/german/stammtisch/wuppertal/stybesch/00index new file mode 100644 index 0000000000..d261a667a3 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/00index @@ -0,0 +1,4 @@ +STYBESCH
+ Style-Beschreibungen des Wuppertaler DANTE-TeX-Stammtisch. DVI-Dateien
+ und Fonts. Enthalten ist auch eine Anleitung fr weitere Style-
+ Beschreibungen.
diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/astro.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/astro.dvi Binary files differnew file mode 100644 index 0000000000..81020d5620 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/astro.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/chemtex.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/chemtex.dvi Binary files differnew file mode 100644 index 0000000000..53fee4f6a1 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/chemtex.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/dinbrief.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/dinbrief.dvi Binary files differnew file mode 100644 index 0000000000..038ecaeb1b --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/dinbrief.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/flow.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/flow.dvi Binary files differnew file mode 100644 index 0000000000..3ec468d3bd --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/flow.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/liste.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/liste.dvi Binary files differnew file mode 100644 index 0000000000..1fd8a68e7a --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/liste.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/longtabl.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/longtabl.dvi Binary files differnew file mode 100644 index 0000000000..8ac1f8887d --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/longtabl.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/nassi.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/nassi.dvi Binary files differnew file mode 100644 index 0000000000..f86f7d80fc --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/nassi.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/sb.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/sb.dvi Binary files differnew file mode 100644 index 0000000000..1c2bbffa85 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/sb.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/strukto.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/strukto.dvi Binary files differnew file mode 100644 index 0000000000..7eea05b1c9 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/strukto.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/titel.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/titel.dvi Binary files differnew file mode 100644 index 0000000000..ad51c09753 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/titel.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/dvis/tkonto.dvi b/info/german/stammtisch/wuppertal/stybesch/dvis/tkonto.dvi Binary files differnew file mode 100644 index 0000000000..bda1dc6728 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/dvis/tkonto.dvi diff --git a/info/german/stammtisch/wuppertal/stybesch/makros/baum.sty b/info/german/stammtisch/wuppertal/stybesch/makros/baum.sty new file mode 100644 index 0000000000..f2f96a4b1b --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/makros/baum.sty @@ -0,0 +1,121 @@ +\def\fileversion{1.2} +\def\filedate{94/03/11} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PiCTeX-Makros zum Satz von Verzeichnisb"aumen % +% von Andreas Schrell, Wuppertal % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Syntax (EBNF-Derivat): %%%%% +%%%%%%%%%%%%%%%%%%%% +% <baum> := % +%% % +% \baum <name> % +% structure % +% <struktur> % +% / at x y % +%%%%%%%%%%%%%%%%%%%% +% <struktur> := % +%% % +% \ordner <name> % +% <struktur> % +% \endordner % +%% % +% | % +%% % +% \datei <name> % +% <struktur> % +%% % +% | <empty> % +%%%%%%%%%%%%%%%%%% +% <leer> := % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% <name> := <alles was in einer \mbox stehen kann, % +% also z.B. kein einfacher _ \ % etc. > % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen\OAx \newdimen\OAy \newbox\Obox \newdimen\GY +\newdimen\Oleng \newdimen\GX \newdimen\Odown + +\newif\ifvariing \variingfalse +\def\VariablerBaum{\variingtrue} +\def\FesterBaum{\variingfalse} + +\def\Osep{0.5\unitlength} +\def\Oright{20\unitlength} +\def\Oinsert{15\unitlength} + +\def\Ostrut{\vphantom{/}} +\def\Bfont{\footnotesize\bf\Ostrut} +\def\Ofont{\footnotesize\bf\Ostrut} +\def\Dfont{\footnotesize\rm\Ostrut} +\def\Drule{.4pt} +\def\Orule{1pt} +\def\Brule{1pt} +\def\Oboxsep{3pt} + +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}\kern.06em} + +\def\baum #1 structure #2/ at #3 #4 + {\put {\beginpicture + \fboxsep=\Oboxsep + \fboxrule=\Orule + \unitlength=1mm + \OAx=0mm \OAy=0mm + \setdimensionmode + \setbox\Obox\hbox{\fboxrule=\Brule\fbox{\Bfont#1}}% +\ifvariing + \Odown=0pt +\else + \Odown=\ht\Obox \advance\Odown by \dp\Obox +\fi + \advance\Odown by \Osep + \Oleng=\Odown + \put {\box\Obox} [b] at 0mm 0mm + #2 + \endpicture} at #3 #4 +} + +\def\ordner #1 + {\GY=\OAy + \begingroup + \setbox\Obox\hbox{\fbox{\Ofont#1}}% + \global\GX=-\dp\Obox \global\advance\GX by -\ht\Obox +\ifvariing + \Odown=-.5\GX \advance\Odown by \Osep + \advance\Oleng by -.5\GX +\fi + \global\advance\OAy by -\Odown + \put {\vrule height\Oleng width\linethickness depth0pt} + [bl] at {\OAx} {\OAy} + \put {\vrule height\linethickness width\Oinsert depth0pt} + [lb] at {\OAx} {\OAy} + \put {\box\Obox} + <\Oinsert,0mm> [l] at {\OAx} {\OAy} +\ifvariing + \global\advance\OAy by .5\GX +\fi + \Oleng=\Odown + \advance\OAx by \Oright + \advance\Oleng by .5\GX +} + +\catcode`\!=11 +\def\endordner{% + \global\!Xleft=\!xleft \global\!Xright=\!xright + \global\!Ybot=\!ybot \global\!Ytop=\!ytop + \endgroup + \!xleft=\!Xleft \!xright=\!Xright + \!ybot=\!Ybot \!ytop=\!Ytop + \Oleng=-\OAy \advance\Oleng by \GY +\ifvariing + \advance\Oleng by .5\GX +\fi +} + +\catcode`\!=12 + +\def\datei #1 + {\fboxrule=\Drule + \ordner{\Dfont#1} \endordner + \fboxrule=\Orule} + +\endinput diff --git a/info/german/stammtisch/wuppertal/stybesch/makros/german.MISSING b/info/german/stammtisch/wuppertal/stybesch/makros/german.MISSING new file mode 120000 index 0000000000..895cdd7a94 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/makros/german.MISSING @@ -0,0 +1 @@ +../../../../../../language/german/german.MISSING
\ No newline at end of file diff --git a/info/german/stammtisch/wuppertal/stybesch/makros/sbmakro.tex b/info/german/stammtisch/wuppertal/stybesch/makros/sbmakro.tex new file mode 100644 index 0000000000..ed08331682 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/makros/sbmakro.tex @@ -0,0 +1,383 @@ +\def\fileversion{1.2c} +\def\filedate{94/03/24} + +% +% Makrodatei f"ur die Realisierung der Stylebeschreibungsbefehle von +% Stefan Pasche und Andreas Schrell, DANTE-\TeX-Stammtisch, Wuppertal. +% Fehlermeldungen f"ur diese (unver"anderte) Datei an +% Andreas.Schrell@FernUni-Hagen.de +% + +% +% Datei nur einmal einlesen! +% +\ifx\StyleName\undefined + \let\next\relax +\else + \let\next\endinput +\fi\next + +\message{^^JStylebeschreibungsmakrodatei Version \fileversion\space + vom \filedate.^^J^^J} + +% +% \newif darf bei uns nicht \outer sein! +% +\makeatletter +\def\newif#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\makeatother + +% +% Normalerweise wird nur eine SB-Datei ausgef"uhrt. +% +\newif\ifSingleBeschreibung +\ifx\AlleDefined\undefined + \SingleBeschreibungtrue +\else + \SingleBeschreibungfalse +\fi + +\ifx\documentclass\undefined + \ifSingleBeschreibung + \documentstyle[german,twoside]{article} + \else + \documentstyle[german,twoside,xfinder]{article} + \fi +\else + \documentclass[twoside]{article} + \usepackage{german} + \ifSingleBeschreibung\else + \usepackage{xfinder} + \fi +\fi +\ifSingleBeschreibung\else + \fields={[\DatenZeile:\Name\Rest] + } + \reademptylinefalse + \serienbrief{{% + \message{^^JDatei \Name wird bearbeitet...^^J^^J}% + \input{\Name}}} + \def\SBFiles#1{% + \begin{document} + \addressfile{#1} + \end{document}} +\fi + +\makeatletter + +\newif\ifFuerPlain \FuerPlainfalse +\newif\ifFuerLaTeX \FuerLaTeXfalse +\newif\ifMitFonts \MitFontsfalse +\newif\ifVRules \VRulesfalse + +\def\StyleName#1{% + \def\TEST{#1}% + \ifx\TEST\empty\else + \StyleNametrue + \fi + \def\@StyleName{#1}% + \def\@StyleNAME{\uppercase{#1}}}% +\newif\ifStyleName + +\def\ifnotempty#1#2{% + \def\TEST{#1}% + \ifx\TEST\empty\else#2\fi} + +\def\InitialisiereIf#1{% + \expandafter\newif\csname if#1\endcsname + \csname #1false\endcsname} + +\def\ErstelleBefehl{\@ifstar{\ErstelleMit}{\ErstelleOhne}} + +\def\ErstelleOhne#1{% + \InitialisiereIf{#1}% + \expandafter\def\csname #1\endcsname##1{% + \ifnotempty{##1}{\csname #1true\endcsname}% + \expandafter\def\csname @#1\endcsname{##1}}} +\def\ErstelleMit#1{% + \InitialisiereIf{#1}% + \expandafter\def\csname #1\endcsname##1{% + \ifnotempty{##1}{\csname #1true\endcsname}% + \expandafter\def\csname @#1\endcsname{##1}% + \notwendig{#1}}} + +\newdimen\MaxAutorName +\newcount\AutorCount +\def\StyleAutor#1 #2{% + \settowidth{\dimen0}{#1}% + \ifdim\dimen0>\MaxAutorName + \setlength\MaxAutorName{\dimen0}% + \fi + \csname StyleAutor\the\AutorCount\endcsname{#1}% + \csname StyleAutorAdresse\the\AutorCount\endcsname{#2}% + \advance\AutorCount by 1} + +\ErstelleBefehl{StyleVersion} +\ErstelleBefehl{StyleDatum} +\AutorCount=0 +\MaxAutorName=0pt +\loop + \ErstelleBefehl{StyleAutor\the\AutorCount} + \ErstelleBefehl{StyleAutorAdresse\the\AutorCount} + \advance\AutorCount by 1 +\ifnum\AutorCount<6 +\repeat +\AutorCount=0 + +\ErstelleBefehl*{StyleBezugsQuelle} +\ErstelleBefehl*{StyleDokumentation} +\ErstelleBefehl*{StyleKurzBeschreibung} +\ErstelleBefehl{StyleVoraussetzungen} +\ErstelleBefehl*{StyleStichWorte} + +\def\StyleFuerPlain#1{% + \ifnum#1=1 + \FuerPlaintrue + \fi} + +\def\StyleFuerLaTeX#1{% + \ifnum#1=1 + \FuerLaTeXtrue + \fi} + +\def\StyleMitFonts#1{% + \ifnum#1=1 + \MitFontstrue + \fi} + +\def\BoxSize{6pt} +\def\BoxMit{\vrule height \BoxSize width \BoxSize depth 0pt} +\def\BoxOhne{{\fboxrule=0.4pt\fboxsep=-\fboxrule + \fbox{\vbox to \BoxSize{\hbox to \BoxSize{\hss}\vss}}}} + +\def\BeschreibungAutor#1 #2{% + \BeschreibungAutorIntern{#1} + \BeschreibungAutorAdresse{#2}} + +\ErstelleBefehl*{BeschreibungDatum} +\ErstelleBefehl*{BeschreibungAutorIntern} +\ErstelleBefehl{BeschreibungAutorAdresse} + +\def\StyleFuerBeschreibung#1#2{% + \ifnotempty{#1}{% + \def\TEST{#2}\def\TESTX{sty}% + \ifx\TEST\TESTX + \makeatletter + \input #1.#2 + \makeatother + \else + \input #1.#2 + \fi + }} + +% +% Layout +% + +\evensidemargin=0mm +\oddsidemargin=0mm + +\headheight=0pt +\headsep=0pt + +\topmargin=0pt + +\textwidth=159.2mm +\textheight=246.2mm + +\parindent=0pt +\parskip=0.5\baselineskip + +\pagestyle{empty} + +\def\sfb{\ifx\undefined\sffamily\else\sffamily\fi + \ifx\undefined\bfseries\bf\else\bfseries\fi} + +% +% Entnommen aus script.sty: +% +\def\labelinglabel#1{\sfb#1\hfil\sc@septext} +\def\labeling{\@ifnextchar [{\@labeling}{\@labeling[]}} +\def\@labeling[#1]#2{\def\sc@septext{#1} + \begin{list}{}{\settowidth{\labelwidth}{\sfb#2#1} + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \let\makelabel\labelinglabel}} +\def\endlabeling{\end{list}} + +\def\notwendig#1{% + \global\let\mynext\relax + \csname if#1\endcsname\else + \global\let\mynext\@@end + \@latexerr{SB-Makro: \expandafter + \string\csname #1\endcsname\space muss + eingetragen werden!^^J} + \fi\mynext} + +\def\notwendigor#1#2{% + \global\let\mynext\relax + {\count100=0 + \csname if#1\endcsname + \advance\count100 by 1 + \fi + \csname if#2\endcsname + \advance\count100 by 1 + \fi + \ifnum\count100=0 + \global\let\mynext\@@end + \@latexerr{SB-Makro: + \expandafter\string\csname #1\endcsname\space oder + \expandafter\string\csname #2\endcsname\space + muss eingetragen werden!^^J} + \fi}\mynext} + +\def\LeseDatum#1.#2.#3.{% ohne "ausruhen" machts TeX wieder nicht: + \day=#1\relax + \month=#2\relax + \year=#3\relax + \let\Today\today + \ifnum\day=0 + \def\Today{\the\month.\the\year}% + \fi + \ifnum\month=0 + \def\Today{\the\year}% + \fi + \ifnum\year=0 + \def\Today{???????}% + \fi + \ifnum\year<82 \advance\year by 2000\relax\fi + % Wir benutzen ein TeX82. Alles <82 ist >2000! + % Damit funktionierts noch bis zum Jahr 2081 ;-) + \ifnum\year<100 \advance\year by 1900\relax\fi} + +\def\KonvertiereDatum#1{% + {\expandafter\LeseDatum#1.% + \xdef#1{\Today}}} + +\newwrite\StichFile + +\def\SchreibeStichWorte{% + \immediate\openout\StichFile=\jobname.stw + \edef\@StyleStichWorteSp{\@StyleStichWorte\space}% + \expandafter\SchreibeStichWort\@StyleStichWorteSp 0 } + +\def\StichClose{\immediate\closeout\StichFile} + +\def\SchreibeStichWort #1 {% + \def\TEST{#1}% + \def\RTEST{0}% + \ifx\TEST\RTEST + \let\Snext\StichClose + \else + \immediate\write\StichFile{#1\string\dotfill\space\jobname}% + \let\Snext\SchreibeStichWort + \fi + \Snext} + +\def\ps@stylebesch{% + \def\@evenhead{\hfil}% + \def\@oddhead{\hfil}% + \def\@evenfoot{\hfil\@StyleName\qquad -- \thepage\ --\hfil}% + \let\@oddfoot\@evenfoot} + +\pagestyle{stylebesch} + +\newif\ifWeiter + +\def\Beschreibung{% + \notwendig{StyleName} + \notwendigor{StyleVersion}{StyleDatum} + \notwendig{StyleAutor0} + \notwendig{StyleBezugsQuelle} + \notwendig{StyleDokumentation} + \notwendig{StyleStichWorte} + \notwendig{StyleKurzBeschreibung} + \notwendig{BeschreibungDatum} + \notwendig{BeschreibungAutorIntern} + \ifSingleBeschreibung + \begin{document} + \else + \cleardoublepage + \fi + \SchreibeStichWorte + \begin{flushright} + \Huge\sfb \@StyleNAME + \end{flushright} + \thispagestyle{empty} + \begin{labeling}[ :]{Kurzbeschreibung} + \item[Bezeichnung] \@StyleName + \item[Version] \ifStyleVersion\@StyleVersion + \ifStyleDatum\ vom \fi\fi + \ifStyleDatum + \KonvertiereDatum\@StyleDatum + \@StyleDatum + \fi + \item[Autor] + \AutorCount=0 + \loop + \leavevmode\hbox to \MaxAutorName{\csname + @StyleAutor\the\AutorCount\endcsname\hfil}% + \expandafter\ifx\csname @StyleAutorAdresse\the\AutorCount + \endcsname\relax\else + \ifVRules + \ \vrule\ + \else + \hskip 1cm + \fi + \vtop{\def\\{\egroup\hbox\bgroup\strut\ignorespaces} + \hbox\bgroup\strut + \csname @StyleAutorAdresse\the\AutorCount\endcsname + \egroup} + \fi + \advance\AutorCount by 1 + {\expandafter\ifx\csname @StyleAutor\the\AutorCount\endcsname + \relax\global\Weiterfalse\else\global\Weitertrue\fi} + \ifWeiter + \vskip0pt + \repeat + \item[Bezugsquelle] \@StyleBezugsQuelle + \item[Dokumentation] \@StyleDokumentation + \item[Voraussetzungen] + {\sc Plain}-\TeX\ \ifFuerPlain\BoxMit\else\BoxOhne\fi\hskip1cm + \LaTeX\ \ifFuerLaTeX\BoxMit\else\BoxOhne\fi\hskip1cm + Mit Fonts \ifMitFonts\BoxMit\else\BoxOhne\fi + \ifStyleVoraussetzungen\\ + \@StyleVoraussetzungen + \fi + \item[Stichworte] (\,\@StyleStichWorte\,) + \item[Kurzbeschreibung] \@StyleKurzBeschreibung + \vskip 7mm + \item[Beschreibung] \@BeschreibungAutorIntern + \ifBeschreibungAutorAdresse + \ifVRules + \ \vrule\ + \else + \hskip 1cm + \fi + \vtop{\def\\{\egroup\hbox\bgroup\strut\ignorespaces} + \hbox\bgroup\strut + \@BeschreibungAutorAdresse + \egroup} + \fi + \hfill + \KonvertiereDatum\@BeschreibungDatum + \@BeschreibungDatum + \end{labeling}\par} + +\def\endBeschreibung{% + \ifSingleBeschreibung + \par\endgroup + \def\@currenvir{document} + \def\next{\end{document}} + \else + \def\next{\par\ifodd\c@page\clearpage\hbox{}\fi} + \fi\next} + +\makeatother + +\endinput diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____0.790/astrosym.pk b/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____0.790/astrosym.pk Binary files differnew file mode 100644 index 0000000000..eff12b51a8 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____0.790/astrosym.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____2.488/cmssbx10.pk b/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____2.488/cmssbx10.pk Binary files differnew file mode 100644 index 0000000000..12f7e8614b --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/240x216/mag____2.488/cmssbx10.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____0.790/astrosym.pk b/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____0.790/astrosym.pk Binary files differnew file mode 100644 index 0000000000..2bdf13b49d --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____0.790/astrosym.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____2.488/cmssbx10.pk b/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____2.488/cmssbx10.pk Binary files differnew file mode 100644 index 0000000000..567c9ddb6f --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/300/mag____2.488/cmssbx10.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____0.790/astrosym.pk b/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____0.790/astrosym.pk Binary files differnew file mode 100644 index 0000000000..dac36dab0a --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____0.790/astrosym.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____2.488/cmssbx10.pk b/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____2.488/cmssbx10.pk Binary files differnew file mode 100644 index 0000000000..9f12a44b21 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/pk/360/mag____2.488/cmssbx10.pk diff --git a/info/german/stammtisch/wuppertal/stybesch/sbfiles/dinbrief.sb b/info/german/stammtisch/wuppertal/stybesch/sbfiles/dinbrief.sb new file mode 100644 index 0000000000..ea0f0610d3 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/sbfiles/dinbrief.sb @@ -0,0 +1,130 @@ +% +% Diese Datei ist Teil des Pakets f"ur Stylebeschreibungen des +% Wuppertaler DANTE-\TeX-Stammtischs. Sie ben"otigt \LaTeX als +% Format. Es sind nur Eingaben in den Argumentklammern erlaubt. +% +\input sbmakro + +% +% Name ohne Extension +% +\StyleName {dinbrief} + +% +% Versionsnummer, falls vorhanden +% +\StyleVersion {} + +% +% Datum der Styleversion, falls vorhanden +% +\StyleDatum {4.4.1990} + +% +% Autor des Styles, falls bekannt +% +\StyleAutor {Rainer Sengerling} + {} +\StyleAutor {Wolfgang Schwarz} + {Institut f"ur Theoretische und Angewandte Physik\\ + Universit"at Stuttgart\\ + Pfaffenwaldring 57/VI\\ + 7000 Stuttgart 80\\ + E-Mail: BLACKY@DS0ITA51.bitnet} + +% +% Bezugsquelle +% +\StyleBezugsQuelle {DANTE, Disk 15} + +% +% beiliegend, Verweis auf Artikel, deutsch, englisch +% +\StyleDokumentation {beiliegend, deutsch} + +% +% 2-3 Zeilen Beschreibung, was der Style leistet +% +\StyleKurzBeschreibung {{\tt letter.sty} f"ur vordrucklose Briefe im A4-Format, +entsprechend den DIN-Normen 5008 (von 1986), 2107, 2142 und 676.} + +% +% Notwendige Versionen von \LaTeX, NFSS etc. +% +\StyleVoraussetzungen {F"ur NFSS sind Anpassungen (Fontnamen) erforderlich.} + +% +% Suchbegriffe f"ur den Index, Trennung durch Leerzeichen +% +\StyleStichWorte {brief dinbrief letter} + +% +% Bei den folgenden Schaltern bedeutet +% 0 = nein +% 1 = ja +% +\StyleFuerPlain {0} +\StyleFuerLaTeX {1} +\StyleMitFonts {0} + +% +% Datum dieser Beschreibungsdatei +% +\BeschreibungDatum {1.3.1994} + +% +% Autor dieser Beschreibungsdatei +% +\BeschreibungAutor {Kai Nacke} + {Haydnstra"se 21\\ 44147 Dortmund} + +% +% Mit dem Befehl \StyleFuerBeschreibung kann eine Style-Datei +% eingelesen werden, die f"ur die folgende Beschreibung notwendig +% ist. Es sind aber nur Styles zu benutzen, die wirklich f"ur +% ein sinnvolles Beispiel erforderlich sind. Der Befehl kann +% mehrmals angegeben werden. +% Klammer 1: Name +% Klammer 2: Extension +% +\StyleFuerBeschreibung {}{} +\StyleFuerBeschreibung {}{} + +% +% Jetzt kommt der Text der Beschreibung, der so kurz sein mu"s, da"s +% die gesamte Beschreibung (mit Kopf) auf ZWEI Seiten pa"st! +% +\begin{Beschreibung} +Der {\tt dinbrief.sty} dient zur Formatierung vordruckloser Briefe im A4-Format. +Er wurde aus dem {\tt letter.sty} entwickelt; viele Befehle sind daher "anhlich. +Die Gestaltung des Briefes orientert sich an den oben genannten DIN-Normen. +Die Abweichungen sind dokumentiert. Auf Wunsch k"onnen auch Falzmarken und +Absenderadresse f"ur Fensterumschl"age oder Adre"s-Etiketten erstellt werden.\\ +Der Style erm"oglicht mit Hilfe weniger Befehle das Schreiben normgerechter +Briefe, wie folgendes Beispiel zeigt: +\begin{verbatim} +\documentstyle[norm,german]{dinbrief} +\pagestyle{empty} +\begin{document} +\Datum{Dortmund, den \today} +\Absender{Kai Nacke\\Haydnstr. 21\\44147 Dortmund} +\Retouradresse{Kai Nacke, Haydnstr. 21, 44147 Dortmund} +\Fenster +\Betreff{Fehler in \LaTeX} +\Anlagen{Textmarker} +\begin{letter}{Herrn A.U.~Thor\\c/o Verlag Perfect World} +\opening{Sehr geehrter Herr Thor!} + +Hier kommt eine Menge Text... + +\closing{Mit freundlichen Gr"u"sen} +\end{letter} +\end{document} +\end{verbatim} + +\end{Beschreibung} + + + + + diff --git a/info/german/stammtisch/wuppertal/stybesch/sbfiles/maske b/info/german/stammtisch/wuppertal/stybesch/sbfiles/maske new file mode 100644 index 0000000000..c7e35f2606 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/sbfiles/maske @@ -0,0 +1,108 @@ +% +% Diese Datei ist Teil des Pakets f"ur Stylebeschreibungen des +% Wuppertaler DANTE-\TeX-Stammtischs. Sie ben"otigt \LaTeX als +% Format. Es sind nur Eingaben in den Argumentklammern erlaubt. +% Auch halbe S"atze mit Gro"sbuchstaben beginnen lassen. +% +% Diese Datei pa"st zu sbmakro.tex, Version 1.2c +% +\input sbmakro + +% +% Name des Styles ohne Extension, ggf. als LOGO (\PiCTeX) +% +\StyleName {} + +% +% Versionsnummer, falls vorhanden +% +\StyleVersion {} + +% +% Datum der Styleversion, falls vorhanden. Format: tt.mm.jjjj +% Wenn z.B. nur Jahr bekannt ist, dann 00.00.jjjj +% +\StyleDatum {} + +% +% 1. Klammer: Autor des Styles, falls bekannt +% 2. Klammer: Postanschrift und Mailadresse des Styleautors, falls bekannt +% Trennung der Zeilen durch \\ +% Dieser Befehl kann mehrmals benutzt werden, falls mehrere Autoren den +% Style geschrieben haben. +% +\StyleAutor {} + {} + +% +% Bezugsquelle +% +\StyleBezugsQuelle {} + +% +% beiliegend, Verweis auf Artikel, deutsch, englisch +% +\StyleDokumentation {} + +% +% 2-3 Zeilen Beschreibung, was der Style leistet +% +\StyleKurzBeschreibung {} + +% +% Notwendige Versionen von \LaTeX, NFSS etc. +% +\StyleVoraussetzungen {} + +% +% Suchbegriffe f"ur den Index, Trennung durch Leerzeichen, KEINE UMLAUTE, +% keine Makros, alles Kleinbuchstaben +% +\StyleStichWorte {} + +% +% Bei den folgenden Schaltern bedeutet +% 0 = nein +% 1 = ja +% +\StyleFuerPlain {0} +\StyleFuerLaTeX {0} +\StyleMitFonts {0} + +% +% Datum dieser Beschreibungsdatei. Format: tt.mm.jjjj +% +\BeschreibungDatum {} + +% +% 1. Klammer: Autor dieser Beschreibungsdatei +% 2. Klammer: Postanschrift und Mailadresse des Autors dieser SB-Datei +% Trennung der Zeilen durch \\ +% +\BeschreibungAutor {} + {} + +% +% Mit dem Befehl \StyleFuerBeschreibung kann eine Style-Datei +% eingelesen werden, die f"ur die folgende Beschreibung notwendig +% ist. Es sind aber nur Styles zu benutzen, die wirklich f"ur +% ein sinnvolles Beispiel erforderlich sind. Der Befehl kann +% mehrmals angegeben werden. +% Klammer 1: Name +% Klammer 2: Extension +% +\StyleFuerBeschreibung {}{} +\StyleFuerBeschreibung {}{} + +% +% Jetzt kommt der Text der Beschreibung, der so kurz sein mu"s, da"s +% die gesamte Beschreibung (mit Kopf) auf ZWEI Seiten pa"st! +% +\begin{Beschreibung} + +\end{Beschreibung} + + + + + diff --git a/info/german/stammtisch/wuppertal/stybesch/sbfiles/sb.sb b/info/german/stammtisch/wuppertal/stybesch/sbfiles/sb.sb new file mode 100644 index 0000000000..5d94124455 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/sbfiles/sb.sb @@ -0,0 +1,126 @@ +% +% Diese Datei ist Teil des Pakets f"ur Stylebeschreibungen des +% Wuppertaler DANTE-\TeX-Stammtischs. Sie ben"otigt \LaTeX als +% Format. Es sind nur Eingaben in den Argumentklammern erlaubt. +% +\input sbmakro + +% +% Name ohne Extension +% +\StyleName {sb} + +% +% Versionsnummer, falls vorhanden +% +\StyleVersion {1.2} + +% +% Datum der Styleversion, falls vorhanden +% +\StyleDatum {21.03.94} + +% +% Autor des Styles, falls bekannt +% +\StyleAutor {Andreas Schrell} + {Windh"ovel 2\\42279 Wuppertal} +\StyleAutor {Stefan Pasche} + {Marktweg 93\,a\\58454 Witten} + +% +% Bezugsquelle +% +\StyleBezugsQuelle {ftp.dante.de} + +% +% beiliegend, Verweis auf Artikel, deutsch, englisch +% +\StyleDokumentation {Deutsche Dokumentation liegt bei} + +% +% 2-3 Zeilen Beschreibung, was der Style leistet +% +\StyleKurzBeschreibung {Style-Paket zur Erstellung von +Style-Beschreibungen, mit dessen Hilfe diese Beschreibung erstellt wurde.} + +% +% Notwendige Versionen von \LaTeX, NFSS etc. +% +\StyleVoraussetzungen {} + +% +% Suchbegriffe f"ur den Index, Trennung durch Leerzeichen +% +\StyleStichWorte {stylebeschreibung} + +% +% Bei den folgenden Schaltern bedeutet +% 0 = nein +% 1 = ja +% +\StyleFuerPlain {0} +\StyleFuerLaTeX {1} +\StyleMitFonts {0} + +% +% Datum dieser Beschreibungsdatei +% +\BeschreibungDatum {21.03.94} + +% +% Autor dieser Beschreibungsdatei +% +\BeschreibungAutor {Stefan Pasche} + {Marktweg 93\,a\\58454 Witten} + +% +% Mit dem Befehl \StyleFuerBeschreibung kann eine Style-Datei +% eingelesen werden, die f"ur die folgende Beschreibung notwendig +% ist. Es sind aber nur Styles zu benutzen, die wirklich f"ur +% ein sinnvolles Beispiel erforderlich sind. Der Befehl kann +% mehrmals angegeben werden. +% Klammer 1: Name +% Klammer 2: Extension +% +\StyleFuerBeschreibung {}{} +\StyleFuerBeschreibung {}{} + +% +% Jetzt kommt der Text der Beschreibung, der so kurz sein mu"s, da"s +% die gesamte Beschreibung (mit Kopf) auf ZWEI Seiten pa"st! +% +\begin{Beschreibung} +Das hier vorgestellte Style-Paket STB soll allen \TeX -Anwendern die +M"oglichkeit geben, bei der Suche nach Styles auf eine Art +\emph{Datenbank} zur"uckzugreifen. Jeder Style wird auf maximal zwei +Seiten beschrieben, wobei der Beschreibung eine "ubersicht "uber die +wichtigsten Merkmale wie Name, Version, Autor etc. vorangeht. Dieser +Kopf ist f"ur alle Style-Beschreibungen gleich. + +Um eine Einheitlichkeit zu erreichen, wird dem Beschreibenden, bei dem +es sich nicht um den Autor des Style handeln mu"s, eine Datei mit dem +Namen MASKE zur Verf"ugung gestellt. Diese Datei wird zun"achst +in eine Datei mit dem Namen des zu beschreibenden Style und der +Endung .STB kopiert. Anschlie"send werden in die neue Datei +die entsprechenden Daten einschlie"slich der Beschreibung an den daf"ur +vorgesehenen Stellen eingetragen. +Die Befehle zur Formatierung befinden sich in der Datei STBMAKRO.TEX. +An diesen Befehlen darf nichts ge"andert werden, da sonst die Einheitlichkeit +verloren geht. Die Datei STBMAKRO.TEX wird bei der Formatierung der neu +erzeugten .STB-Datei automatisch eingeladen. + +Damit ist die Arbeit f"ur den Beschreibenden schon erledigt, wenn man einmal +davon absieht, da"s eine Beschreibung eines Style, f"ur +den noch keine Beschreibung existiert, u.~U. ziemlich m"uhsam ist. + +Die dadurch erzeugte \emph{Datenbank} kann ebenfalls bei der oben genannten +Bezugsquelle erhalten werden. + + +\end{Beschreibung} + + + + + diff --git a/info/german/stammtisch/wuppertal/stybesch/tfm/astrosym.tfm b/info/german/stammtisch/wuppertal/stybesch/tfm/astrosym.tfm Binary files differnew file mode 100644 index 0000000000..4e26f526d3 --- /dev/null +++ b/info/german/stammtisch/wuppertal/stybesch/tfm/astrosym.tfm diff --git a/info/german/stammtisch/wuppertal/updates/konstruk.sty b/info/german/stammtisch/wuppertal/updates/konstruk.sty new file mode 100644 index 0000000000..c3996b0fc1 --- /dev/null +++ b/info/german/stammtisch/wuppertal/updates/konstruk.sty @@ -0,0 +1,1366 @@ +\def\fileversion{v1.4} +\def\filedate{94/01/04} +\def\docdate {93/08/14} + +%% \CheckSum{0} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \iffalse This is a METACOMMENT +% Everything up to the next `\ fi' (without a blank) will +% be ignored. This is necessary because `%' may no longer +% be a comment mark when this file is read in. +% +% Style-option `zsb' to use with LaTeX v2.09 +% Copyright (C) 1992 Andreas Schrell, all rights reserved. +% +% IMPORTANT NOTICE: +% +% You are not allowed to change this file. You may however copy +% this file to a different name and then change this copy. +% +% You are allowed to distribute this file under the condition that +% it is distributed together with all files mentioned in readme.txt. +% If you receive only some of these files from someone, complain! +% +% You are NOT ALLOWED to distribute this file alone. +% You are NOT ALLOWED to take money for the distribution or use of +% this file (or a changed version) except for some nominal charge +% for copying etc. +% +% +% Error reports for UNCHANGED versions please to: +% +% Andreas Schrell +% Windh"ovel 2 +% D-42279 Wuppertal +% Federal Republic of Germany +% Internet: <Andreas.Schrell@FernUni-Hagen.de> +% +% \fi +% +% \DoNotIndex{\@M,\@Mi,\@bsphack,\@cclv,\@colht,\@currlist,\@deferlist} +% \DoNotIndex{\@elt,\@esphack,\@floatplacement} +% \DoNotIndex{\@ifundefined,\@ifnextchar,\@makecol} +% \DoNotIndex{\@ne,\@outputpage,\@scolelt,\@spaces,\@tempb,\@tempcnta} +% \DoNotIndex{\@warning,\@width} +% \DoNotIndex{\addvspace,\advance,\allowbreak} +% \DoNotIndex{\baselineskip,\begingroup,\box,\columnsep,\copy,\count} +% \DoNotIndex{\count@,\def,\dimen@,\divide,\docdate} +% \DoNotIndex{\edef,\eject,\egroup,\else,\endgroup,\endinput} +% \DoNotIndex{\fi,\fileversion,\filedate} +% \DoNotIndex{\gdef,\global} +% \DoNotIndex{\hbox,\hfil,\hrule,\ht,\hss} +% \DoNotIndex{\ifdim,\ifnum,\ifvoid,\ignorespaces,\insert,\immediate} +% \DoNotIndex{\let,\loop} +% \DoNotIndex{\maxdepth,\message,\multiply} +% \DoNotIndex{\newbox,\newcount,\newdimen,\newskip,\number,\newpage} +% \DoNotIndex{\outputpenalty,\p@,\penalty} +% \DoNotIndex{\relax,\repeat,\setbox,\skip,\space,\splitmaxdepth} +% \DoNotIndex{\splittopskip,\string,\sixt@@n} +% \DoNotIndex{\the,\thepage,\thr@@,\topskip,\tw@,\typeout} +% \DoNotIndex{\unvbox,\vbox,\vfill,\vsplit,\voidb@x,\vrule} +% \DoNotIndex{\write,\wd} +% \DoNotIndex{\z@} +% +% \changes{v1.0b}{93/02/24}{{\tt`FreeEinfachseite} schaltete nicht +% auf Einfachseiten.} +% \changes{v1.0b}{93/02/24}{{\tt`KorEinfachseite} fehlte ganz.} +% \changes{v1.0h}{93/06/21}{{\tt`MaximalSeite} aufgenommen.} +% \changes{v1.1}{93/08/14}{{\tt`QuerFormat} hinzugef"ugt.} +% \changes{v1.1}{93/08/14}{Automatische Berechnung von Satzbreite und +% Satzh"ohe bei FreeStyle, falls nicht angegeben.} +% \changes{v1.1}{93/08/14}{Testversion von {\tt`SchnittMarken}} +% \changes{v1.2}{93/08/14}{Dimensionsregister sparen.} +% \changes{v1.3}{93/10/03}{{\tt`Zentriert auf} hinzugef"ugt. +% Schnittmarken mit Mittelmarkierungen.} +% +% \title{\vfil \thispagestyle{empty} +% Dokumentation zum KONSTRUK.STY\\[4mm] +% F"ur \LaTeX-Seitenlayout Festlegung +% \thanks{Diese Datei +% hat die Versionsnummer \fileversion, letzte "Anderung vom +% \filedate, Dokumentation vom \docdate.}} +% +% \author{% +% Andreas Schrell\\ +% Windh"ovel 2\\ +% D-42279 Wuppertal\\ +% Federal Republic of Germany\\ +% {\rm E-Mail:} {\tt Andreas.Schrell@FernUni-Hagen.de}} +% +% \date{Ausdruck vom \today} +% +% +% \maketitle +% \vfil +% \begin{abstract} +% \noindent +% Diese Stil-Option f"ur \LaTeX\ dient zum komfortablen Festlegen des +% Seitenlayouts f"ur \TeX-Dokumente. Neben vordefinierten Formaten werden +% auch Befehle zum freien Einstellen des Layouts und Makros zum Testen +% zur Verf"ugung gestellt. +% \end{abstract} +% +% \vfil\vfil +% +% \pagebreak +% \MakeShortVerb{\|} +% +% \section{Beschreibung der Befehle} +% +% \subsection{Papierformat festlegen} +% +% Nach dem Laden des Style-Files sollte das Papierformat des sp"ateren +% Druckerzeugnisses angegeben werden. Hierzu dient der Befehl +%\begin{verbatim} +%\PapierFormat +%\end{verbatim} +% Als Parameter bekommt er entweder die genauen Ma"se des Papiers, z.\,B. +%\begin{verbatim} +%\PapierFormat <200mm,280mm> +%\end{verbatim} +% oder eines der folgenden Formatk"urzel: +%\begin{verbatim} +%A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 +%B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 +%C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 +%\end{verbatim} +% Daraus wird dann die Papiergr"o"se des zugeh"origen DIN-Formats +% ermittelt. In diesem Falle werden die ermittelten Werte auch auf +% dem Bildschirm ausgegeben. +% +% Das so erzeugte Format kann mit dem Befehl +%\begin{verbatim} +%\QuerFormat +%\end{verbatim} +% in das entsprechende Querformat (landscape) umgewandelt werden. Hierbei +% wird nat"urlich nicht automatisch die \TeX-Ausgabe gedreht sondern nur +% die Seitenausma"se bestimmt. +% +% \subsection{Freies Layout} +% +% \def\dim{{\it dimen\/}} +% Der umfangreichste Befehl des Makropakets ist der |\FreeStyle|. Hier +% die vollst"andige Syntax: +% \begin{tabbing} +% |\FreeStyle| \= [|Doppelseite|] [|Einfachseite|] \\ +% \> |Satzbreite <|\dim|>| \\ +% \> |Satzhoehe <|\dim|>| \\ +% \> |Bund <|\dim|>| \\ +% \> |Oben <|\dim|>| \\ +% \> |Aussen <|\dim|>| \\ +% \> |Unten <|\dim|>| \\ +% \> |Kopfzeile| \= \\ +% \>\> [|lebend|] [|tot|] \\ +% \>\> |Hoehe <|\dim|>| \\ +% \>\> |Abstand <|\dim|>| \\ +% \>\> |Text {...} |\hskip 3cm (bei Einfachseite) \\ +% \>\> |Text {...} {...}|\hskip 3cm (bei Doppelseite) \\ +% \> |/| \\ +% \> |Fusszeile| \= \\ +% \>\> |Abstand <|\dim|>| \\ +% \>\> |Text {...} |\hskip 3cm (bei Einfachseite) \\ +% \>\> |Text {...} {...}|\hskip 3cm (bei Doppelseite) \\ +% \> |/| \\ +% |/| +% \end{tabbing} +% Die Schl"usselworte k"onnen innerhalb einer Wertigkeit in beliebiger +% Reihenfolge aufgef"uhrt werden. Nat"urlich k"onnen sie auch weggelassen +% werden. Alle L"angenangaben stehen in spitzen Klammern (also Kleiner- +% und Gr"o"serzeichen). Der Schr"agstrich dient zum Beenden der +% Teildefinitionen und des Gesamtmakros. Er darf nicht weggelassen +% werden. Ebenso m"ussen auch alle Leerzeichen eingehalten werden. +% Wichtig ist, da"s der |Abstand| der Kopfzeile der wirkliche Abstand +% ist, in der Fu"szeile jedoch den Abstand Basislinie -- Basislinie +% bedeutet. +% +% \subsubsection{Konstruktionsmethoden} +% +% Es werden die folgenden Konstruktionen angeboten:\\* +% |\Aehnlichkeitskonstruktion <|\dim|>| \\* +% |\Renaissancekonstruktion <|\dim|>| \\* +% |\Diagonalkonstruktion <|\dim|>| \\* +% |\GoldenerSchnitt| \\* +% |\SilbernerSchnitt| \\* +% |\Rasterkonstruktion {|{\it Teilung\/}|}| \\* +% |\FertigLayout 12A 12B 12C 10A 10B 10C 8A 7A| (wahlweise) \\* +% |\MaximalSeite| \\* +% Dimensionsangaben bezeichnen immer die Satzbreite. Standardm"a"sig +% werden Doppelseiten vorgesehen. Die Kopf- und Fu"szeilen werden +% nicht ver"andert. Mit einem nachfolgenden |\FreeStyle|-Befehl k"onnen +% einzelne Parameter ver"andert werden. +% +% \subsubsection{Korrekturen am Format} +% Zus"atzlich zum |\FreeStyle| gibt es auch den Befehl |\KorrStyle|. Er +% besitzt dieselbe Syntax, Ma"se werden jedoch nicht auf den angegebenen +% Betrag gesetzt, sondern entsprechend ver"andert. Zum Beispiel w"urde der +% Befehl +%\begin{verbatim} +%\KorrStyle +% Satzbreite <-1cm> +% / +%\end{verbatim} +% die Satzbreite um 1\,cm verringern. +% +% \subsubsection{Schnittmarken} +% +% Schnittmarken am Papierrand k"onnen mit dem Befehl +%\begin{verbatim} +%\SchnittMarken +%\end{verbatim} +% am Beginn einer Seite erzeugt werden. Dies ist allerdings nur dann +% sinnvoll, wenn man z.\,B. mit DVIDVI mehrere Seiten auf ein Blatt +% drucken m"ochte und dies sp"ater beschneidet. Wird \verb+\SchnittMarken+ +% nicht am Seitenanfang aufgerufen, wird ein \verb+\clearpage+ +% eingef"ugt. +% +% \subsubsection{Layout-Zeichnungen} +% +% Der Befehl +%\begin{verbatim} +%\Layout +%\end{verbatim} +% erzeugt eine Layoutzeichnung in Originalgr"o"se. Die Beschriftung kann +% mit +% \begin{tabbing} +% |\Layoutbeschriftung| \= \\ +% \> |Token| \\ +% \> |TeX-Namen| \\ +% \> |Werte| \\ +% \> |Einheit <|\dim|>| \\ +% \> |Konstruktion| \\ +% |/| +% \end{tabbing} +% eingestellt werden. Kleine Skizzen k"onnen mit +%\begin{verbatim} +%\begin{Layoutskizze} <5cm> +%\GoldenerSchnitt +%\end{Layoutskizze} +%\end{verbatim} +% erzeugt werden. Man kann den |<..>|-Parameter auch weglassen. Dann +% geht die Skizze "uber die gesamte Zeilenbreite. Hier das Beispiel: +% \[ \begin{Layoutskizze} <5cm> +% \GoldenerSchnitt +% \end{Layoutskizze} \] +% +% +% +% \end{document} +% +% \StopEventually{\PrintIndex \PrintChanges} +% +% \typein[\MitBesch]{^^JWollen Sie auch eine ausf\string"uhrliche +% Beschreibung der Makros? (j/n)} +% +% \if n\MitBesch \let\next\end \else \def\next#1{} \fi +% \next{document} +% +% \pagebreak +% +% \section{Die Makros} +% +% Zuerst die Lade-Meldung: +% \begin{macrocode} +\message{^^JLaTeX Konstruktion-Stil-Option Version \fileversion.^^J}% +% \end{macrocode} +% +% Im folgenden werden die Makros vorgestellt. Bis auf das Verfahren der +% Token-Parameter ist die Programmierung recht einfach. Es mu"s im +% wesentlichen gerechnet werden. Als allererstes sorgen wir daf"ur, da"s +% \TeX\ keine Schusterjungen und Hurenkinder setzt: +% \begin{macrocode} +\widowpenalty10000 \clubpenalty10000 +% \end{macrocode} +% +% \subsection{Die Schl"usselwort-Programmierung} +% +% Die Makros sind im Wesentlichen aus \PiCTeX\ "ubernommen. Ich danke +% an dieser Stelle M.\,J.\,Wichura f"ur seine vorbildliche Arbeit. +% Als erstes ben"otigen wir eine Hilfsmeldung und ein paar zus"atzliche +% Makros, damit ein potentieller Benutzer auch +% interaktiv falsche Schl"usselworte korrigieren kann. +% \begin{macrocode} +\newhelp\Schluesselhilfe{Das angegebene Schluesselwort ist nicht + definiert. Ersetze NEUES WORT in der vorgeschlagenen Antwort + durch das richtige!} + +\def\fixSchluessel#1{% + \errhelp=\Schluesselhilfe + \errmessage{Unbekanntes Schluesselwort `#1':^^J% + \the\Schluesseltoks{NEUES WORT}'}} + +\newtoks\Schluesseltoks +\Schluesseltoks={Eingabe `i\Schluessel} + +\def\Schluessel#1{\nextSchluessel#1 } +% \end{macrocode} +% Nun kommt das Makro, das eine Schl"usselwortliste durchwandert und +% daraus \TeX-Makronamen erzeugt. Damit unterschiedliche Oberbegriffe +% mit gleichen Schl"usseln zu unterschiedlichen Befehlen expandiert +% werden, wird der Oberbegriff mit in den Namen aufgenommen. +% \begin{macrocode} +\def\nextSchluessel#1 {% + \expandafter\ifx\csname\Ober#1\endcsname \relax + \def\Snext{\fixSchluessel{#1}}% + \else + \def\Snext{\csname\Ober#1\endcsname}% + \fi + \Snext} +% \end{macrocode} +% Die Makros der Schl"usselworte sind abh"angig vom Befehl, daher mu"s +% jeweils ein Oberbegriff definiert bzw. restauriert werden. +% \begin{macrocode} +\def\NewOber#1{% + \expandafter\edef\csname OOBER#1\endcsname{\Ober}% + \edef\Ober{#1}} +\def\OldOber#1{% + \edef\Ober{\csname OOBER#1\endcsname}} +\def\Ober{} +% \end{macrocode} +% +% \subsection{Ausgabe einer Testseite} +% +% \begin{macro}{\Layoutbeschriftung} +% Zu Beginn soll ein Makro vorgestellt werden, mit dem das Seitenlayout +% gezeichnet werden kann. Unterschiedliche Versionen sorgen daf"ur, +% da"s sowohl mit als auch ohne Beschriftung ausgegeben werden kann. Die +% folgenden Beschriftungsmethoden sind implementiert: +% \begin{description} +% \item[TeX-Namen] Es werden die \TeX-Bezeichnungen eingetragen. +% \item[Token] Es werden die Token f"ur den |\FreeStyle|-Befehl +% eingetragen. +% \item[Werte] Es werden die Werte eingetragen. +% \item[Einheit] Die Einheit f"ur die Werte wird festgelegt. +% \end{description} +% \begin{macrocode} +\def\Layoutbeschriftung {\NewOber{LB}% + \Tokenfalse \TeXNamenfalse \Wertefalse + \Pfeilefalse + \def\Einheit{1mm}\def\EFaktor{1}\def\EMass{mm}% + \nextSchluessel} +\newif\ifTeXNamen \newif\ifToken +\newif\ifWerte \newif\ifPfeile +\def\Einheit{1mm} +\def\EFaktor{1}\def\EMass{mm} +% \end{macrocode} +% F"ur jedes der erlaubten Token folgt nun dessen Definition. Wir +% beginnen am Ende: +% \begin{macrocode} +\@namedef{LB/}{\OldOber{LB}} +% \end{macrocode} +% Einfacher geht es nicht, oder? Als n"achstes werden dann einfach die +% |\if|s entsprechend den Token gesetzt. +% \begin{macrocode} +\@namedef{LBTeX-Namen}{% + \Tokenfalse \TeXNamentrue + \Pfeiletrue + \nextSchluessel} +\def\LBToken{% + \Tokentrue \TeXNamenfalse + \Pfeiletrue + \nextSchluessel} +\def\LBWerte{% + \Wertetrue \Pfeiletrue + \nextSchluessel} +\def\getEinheit#1#2. {% + \def\EFaktor{#1}\def\EMass{#2}} +\def\LBEinheit <#1> {\def\He{#1}% + \def\Einheit{#1}\relax + \expandafter\getEinheit\He. + \Wertetrue \Pfeiletrue + \nextSchluessel} +\def\LBKonstruktion{% + \ifx\setcoordinatesystem\undefined + \message{Warnung: Die Konstruktionsskizze kann nur mit + \string\PiCTeX\space gezeichnet werden.}% + \else + \Konstruktiontrue + \fi + \nextSchluessel} +\newif\ifKonstruktion \Konstruktionfalse +% \end{macrocode} +% \end{macro} +% +% Im folgenden wird ein Hilfsmakro ben"otigt, da"s die Einheit pt von +% einer Zahl entfernt. Es stammt auch aus \PiCTeX. +% \begin{macrocode} +\newdimen\removeDIM +\def\removept#1#2{\removeDIM=#1\relax + \edef#2{\expandafter\removePT\the\removeDIM}} +{\catcode`p=12 \catcode`t=12 \gdef\removePT#1pt{#1}} +% \end{macrocode} +% +% \begin{macro}{\KonKasten} +% Der wichtige Befehl, der jetzt programmiert werden soll, wird eine +% ganze Reihe von K"asten zu zeichnen haben. Hiermit beginnen wir. +% \begin{macrocode} +\def\KonKasten #1 #2 [#3] at #4 #5 {% + \removept{#1}\Hw \removept{#2}\Hh + \removept{#4}\Hx \removept{#5}\Hy + \put(\Hx,\Hy){\makebox(0,0)[#3]{\framebox(\Hw,\Hh){}}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KonPfeil} +% \begin{macro}{\KonText} +% Ein Pfeil zum Beschriften wird auch ben"otigt. Hier wird auch +% entschieden, was als Ma"swert stehen soll. Wir brauchen (wieder +% aus \PiCTeX\ ein Makro, mit dem man Dimensionsregister dividieren +% kann: +% \begin{macrocode} +\newdimen\dimenA \newdimen\dimenB +\newdimen\dimenC \newdimen\dimenD +\def\@Divide#1#2#3{% + \dimenB=#1% + \dimenC=#2% + \dimenD=\dimenB + \divide \dimenD \dimenC + \dimenA=\dimenD + \multiply\dimenD \dimenC + \advance\dimenB -\dimenD + \dimenD=\dimenC + \ifdim\dimenD<0pt\dimenD=-\dimenD + \fi + \ifdim\dimenD<64pt + \Divstep[256]\Divstep[256]% + \else + \DIvide + \fi + #3=\dimenA\ignorespaces} +\def\DIvide{% + \ifdim\dimenD<256pt + \Divstep[64]\Divstep[32]\Divstep[32]% + \else + \Divstep[8]\Divstep[8]\Divstep[8]\Divstep[8]\Divstep[8]% + \dimenA=2\dimenA + \fi} +\def\Divstep[#1]{% + \dimenB=#1\dimenB + \dimenD=\dimenB + \divide \dimenD by \dimenC + \dimenA=#1\dimenA + \advance\dimenA by \dimenD + \multiply\dimenD by \dimenC + \advance\dimenB by -\dimenD} +% \end{macrocode} +% Um die vielen Berechnungen etwas "ubersichtlicher zu gestalten, +% benutzen wir die Token-Makros zum Parsen von einfachen Formeln. +% Es sind Ausdr"ucke der Form +%\begin{verbatim} +%\Rechne {...} + {...} - ... + {...} -> {...} [...] +%\end{verbatim} +% erlaubt. Es sind als "`Zahlen"' nur Dimensionen (pt) erlaubt. +% Sie k"onne allerdings optionale Faktoren haben. Beispiel: +%\begin{verbatim} +%\Rechne {0.5\textwidth} + {\textwidth} - {2pt} -> {\Ergebnis} +%\end{verbatim} +% Die Makros sind eigentlich recht linear. Mit dem optionalen Argument +% (in eckigen Klammern) kann das Ergebnis gleich ohne "`pt"' in ein +% Makro "ubernommen werden. +% \changes{v1.0b}{93/02/24}{$/$ und $*$ beim Rechnen erg"anzt.} +% \begin{macrocode} +\newdimen\HW +\def\Rechne #1 {\NewOber{Rechne}% + \dimenA = #1% + \nextSchluessel} +\@namedef{Rechne->}#1 {\OldOber{Rechne}% + #1=\dimenA\relax + \@ifnextchar[{\Rechneopt}{\ignorespaces}} +\def\Rechneopt[#1] {\removept{\dimenA}{#1}\ignorespaces} +\@namedef{Rechne+}#1 {% + \advance\dimenA by #1% + \nextSchluessel} +\@namedef{Rechne-}#1 {% + \advance\dimenA by -#1% + \nextSchluessel} +\@namedef{Rechne/}#1 {% + \divide\dimenA by #1% + \nextSchluessel} +\@namedef{Rechne*}#1 {% + \multiply\dimenA by #1% + \nextSchluessel} +\def\ABS#1{\ifdim#1<0pt-#1\else#1\fi} +% \end{macrocode} +% Jetzt kommt das Makro, mit dem die Bema"sung ausgegeben wird. Die +% Einstellungen aus |\Layoutbeschriftung| werden beachtet. +% \begin{macrocode} +\def\CUT#1{\edef\TMP{#1}% + \edef#1{\expandafter\MakeCUT\TMP.000*}} +\def\MakeCUT#1.#2#3#4*{#1.#2#3} +\def\Wert#1#2{\@Divide{#1}{\Einheit}{\dimenA}% + \removept{\dimenA}{#2}% + \CUT#2} +\def\KonText#1{% + \def\Name{% + \ifToken\hbox{\footnotesize#1\vphantom{)}}% + \else + \ifTeXNamen\hbox{\footnotesize\char92#1\vphantom{)}}\fi + \fi}% + \ifWerte + \ifToken + \expandafter\HW\csname DIM#1\endcsname + \else + \expandafter\HW\csname #1\endcsname + \fi + \ifdim\HW>12pt\vbox\fi{\footnotesize + \Wert{\HW}{\Hw}% + \Name + \hbox{\ifToken~=~\else\ifTeXNamen~=~\fi\fi + \Hw + \if\EFaktor1\else\cdot\EFaktor\fi + \,\EMass\vphantom{(}}}% + \else + \Name + \fi} +\def\KonPfeil #1 from #2 #3 to #4 #5 {{% + \ifdim#2=#4% vertikaler Pfeil + \ifdim#3=#5\else + \Rechne {#3} - {#5} -> {\dimen0} + \Rechne {\ABS{\dimen0}} -> {\dimen1} [\Hl] + \Rechne {0.5\dimen0} + {#5} -> {\dimen0} [\Hm] + \ifdim#5<#3% + \removept{#5}\Ha + \else + \removept{#3}\Ha + \fi + \removept{#2}\Hx + \put(\Hx,\Ha){\vector(0,1){\Hl}} + \put(\Hx,\Ha){\vector(0,-1){0}} + \put(\Hx,\Hm){\makebox(0,0)[l]{\fbox{\KonText{#1}}}} + \fi + \else % horizontaler Pfeil + \Rechne {#2} - {#4} -> {\dimen0} + \Rechne {\ABS{\dimen0}} -> {\dimen1} [\Hl] + \Rechne {0.5\dimen0} + {#4} -> {\dimen0} [\Hm] + \ifdim#4<#2% + \removept{#4}\Ha + \else + \removept{#2}\Ha + \fi + \removept{#3}\Hy + \put(\Ha,\Hy){\vector(1,0){\Hl}} + \put(\Ha,\Hy){\vector(-1,0){0}} + \put(\Hm,\Hy){\makebox(0,0)[t]{\fbox{\KonText{#1}}}} + \fi +}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Nun zeichnen wir einfach eine \LaTeX-picture-Umgebung mit K"asten, +% die die Layoutteile umranden. Hier k"onnen wir auch noch einige +% Register allozieren. +% \begin{macrocode} +\newif\ifKopfinnen +\newdimen\Skizze +% \end{macrocode} +% \begin{macro}{\Layoutskizze} +% Das Layout soll sowohl formatf"ullend als auch klein in Abbildungen +% dargestellt werden k"onnen. Die kleine Darstellung ruft man mit dem +% Environment |Layoutskizze| auf. Der Verkleinerungsfaktor wird der +% aktuellen Satzbreite angepa"st. Hier die Makros: +% \begin{macrocode} +\def\Layoutskizze{\@ifnextchar<{\Layoutmitmass}{\Layoutohne}} +\def\Layoutohne{\leavevmode\hbox\bgroup + \Skizze=\linewidth\ignorespaces} +\def\Layoutmitmass <#1> {\leavevmode\hbox\bgroup + \Skizze=#1\ignorespaces} +\def\endLayoutskizze{% + \@Divide{\Skizze}{2\Papierbreite}{\Skizze}% + \removept{\Skizze}\MinFak + \mbox{\fboxrule=0.1pt\fboxsep=-\fboxrule + \topskip=0pt + \unitlength=\Skizze + \ifKopfinnen + \Rechne {\DIMOben} + {\DIMKAbstand} + {\DIMKHoehe} + -> {\dimen0} + \else + \dimen0=\DIMOben + \fi + \Pfeilefalse + \fbox{\c@page=2\Konstruktionsbild + \vbox to \MinFak\Papierhoehe + {\kern\MinFak\dimen0 + \hbox to \MinFak\Papierbreite{% + \kern\MinFak\DIMAussen + \LayoutXX + \hss}\vss}}% + \fbox{\c@page=1\Konstruktionsbild + \vbox to \MinFak\Papierhoehe + {\kern\MinFak\dimen0 + \hbox to \MinFak\Papierbreite{% + \kern\MinFak\DIMBund + \LayoutXX + \hss}\vss}}}% + \egroup} +% \end{macrocode} +% \end{macro} +% Das Konstruktionsbild wird mit \PiCTeX\ realisiert. Das Bild darf +% keine Ausma"se haben: +% \begin{macrocode} +\def\Konstruktionsbild{% + \ifKonstruktion + \beginpicture + \accountingoff + \setcoordinatesystem units <\unitlength,\unitlength> + \setplotarea x from 0 to 0, y from 0 to 0 + \the\PiCKonstruktion + \endpicture + \fi} +\newtoks\PiCKonstruktion \PiCKonstruktion={} +% \end{macrocode} +% Das gro"se Layout ist ganz einfach: +% \begin{macrocode} +\def\Layout{{\unitlength=1pt\LayoutXX}% + \thispagestyle{empty}} +% \end{macrocode} +% Jetzt kommt das eigentliche Makro, das die Zeichnung realisiert. +% \begin{macrocode} +\def\LayoutXX{\hbox{% + \removept{\topskip}\TOPSKIP + \begin{picture}(0,0)(0,-\TOPSKIP) + \ifKopfinnen + \KonKasten {\textwidth} {\headsep} [bl] at 0pt 0pt + \thicklines + \KonKasten {\textwidth} {\DIMSatzhoehe} [bl] + at {0pt} {-\textheight} + \else + \KonKasten {\textwidth} {\headheight} [bl] at 0pt {\headsep} + \thicklines + \KonKasten {\textwidth} {\textheight} [tl] at 0pt 0pt + \fi + \thinlines + \Rechne {-\textheight} - {\footskip} -> {\dimen2} + \KonKasten {\textwidth} {\headheight} [bl] at 0pt {\dimen2} + \ifPfeile + \fboxsep=1pt \fboxrule=0.1pt + \ifToken + \Rechne {\dimen2} + {\footskip} -> {\dimen2} + \KonPfeil {Satzbreite} + from {0pt} {-0.1\textheight} + to {\textwidth} {-0.1\textheight} + \ifKopfinnen + \Rechne {\headsep} + {\headheight} -> {\dimen2} [\Zpt] + \KonPfeil {Satzhoehe} + from {0.1\textwidth} {\dimen2} + to {0.1\textwidth} {-\textheight} + \else + \def\Zpt{0}% + \KonPfeil {Satzhoehe} + from {0.1\textwidth} {0pt} + to {0.1\textwidth} {-\textheight} + \fi + \KonPfeil {KAbstand} + from {0.2\textwidth} {0pt} + to {0.2\textwidth} {\headsep} + \Rechne {\headsep} + {\headheight} -> {\dimen2} + \KonPfeil {KHoehe} + from {0.3\textwidth} {\headsep} + to {0.3\textwidth} {\dimen2} + \Rechne {-\textheight} - {\footskip} -> {\dimen2} + \KonPfeil {FAbstand} + from {0.2\textwidth} {-\textheight} + to {0.2\textwidth} {\dimen2} + \Rechne {-\textheight} - {\DIMUnten} -> {\dimen3} + \KonPfeil {Unten} + from {0pt} {-\textheight} to {0pt} {\dimen3} + \ifKopfinnen + \Rechne {\topmargin} + {\voffset} + {1in} + + {\headheight} + {\headsep} -> {\dimen2} + \Rechne {\headheight} + {\headsep} -> {\dimen3} + \else + \dimen2 = \DIMOben + \dimen3 = 0pt + \fi + \KonPfeil {Oben} + from {0pt} {\dimen2} to {0pt} {\dimen3} + \ifodd\value{page} + \Rechne {-\oddsidemargin} - {\hoffset} - {1in} -> {\dimen2} + \KonPfeil {Bund} + from {\dimen2} {\Zpt pt} to {0pt} {\Zpt pt} + \Rechne {\textwidth} + {\DIMAussen} -> \dimen2 + \KonPfeil {Aussen} + from {\textwidth} {\Zpt pt} to {\dimen2} {\Zpt pt} + \else + \Rechne {-\evensidemargin} - {\hoffset} - {1in} -> {\dimen2} + \KonPfeil {Aussen} + from {\dimen2} {\Zpt pt} to {0pt} {\Zpt pt} + \Rechne {\textwidth} + {\DIMBund} -> \dimen2 + \KonPfeil {Bund} + from {\textwidth} {\Zpt pt} to {\dimen2} {\Zpt pt} + \fi + \fi + \fi + \end{picture}}} +% \end{macrocode} +% +% \subsubsection{Papierformat} +% +% \begin{macro}{\PapierFormat} +% F"ur die Konstruktionen mu"s das Papierformat bekannt sein. Man kann +% DIN-Formate angeben, aber auch explizite L"angenangaben sind erlaubt. +% \begin{macrocode} +\let\EndPapierFormat\relax +\let\EndPapierFormatEX\relax +\def\PapierFormat{% + \@ifnextchar<{\let\EndPapierFormatEX\EndPapierFormat + \PapierFormatEX}{\PapierFormatDIN}} +\let\Papierformat\PapierFormat +\newdimen\Papierbreite \newdimen\Papierhoehe +\def\PapierFormatEX<#1,#2> {% + \Papierbreite=#1\relax + \Papierhoehe=#2\relax + \EndPapierFormatEX} +\def\WZwei{1.4142pt} +\newcount\loopcount +\def\PapierFormatDIN#1#2 {% + \if#1A\PapierFormatEX <841mm,1189mm> + \else + \if#1B\PapierFormatEX <1000mm,1414mm> + \else + \if#1C\PapierFormatEX <917mm,1297mm> + \else + \message{Warnung: Formatreihe #1 nicht definiert.} + \message{Benutze DIN-A-Reihe.} + \PapierFormatEX <841mm,1189mm> + \fi + \fi + \fi + \loopcount=#2\relax + \loop + \ifnum\loopcount>0 + \@Divide{\Papierbreite}{\WZwei}{\Papierbreite} + \@Divide{\Papierhoehe}{\WZwei}{\Papierhoehe} + \advance\loopcount by -1 + \repeat + \RoundmmInt\Papierbreite + \RoundmmInt\Papierhoehe + \Wert{\Papierbreite}\Ha \Wert{\Papierhoehe}\Hb + \message{DIN #1#2 berechnet zu <\Ha\EMass,\Hb\EMass>.}% + \EndPapierFormat} +\PapierFormat <210mm,297mm> +% \end{macrocode} +% Nach der DIN-Norm wird nach der Berechnung das Format auf Millimeter +% gerundet. Das geschieht durch das Makro |\RoundmmInt|. Der Summand +% 0.5001 ist der Wert 0.5, der jedoch wegen der Integer-Rechnung von +% \TeX\ etwas korrigiert werden mu"s. |\CUTG| schneidet auf ganze +% Zahlen ab. +% \begin{macrocode} +\def\RoundmmInt#1{% + \@Divide{#1}{1mm}{\HW}% + \Rechne {\HW} + {0.0pt} -> {\HW} + \removept{\HW}\Hw + \CUTG\Hw + #1=\Hw mm} +\def\CUTG#1{\edef\TMP{#1}% + \edef#1{\expandafter\MakeCUTG\TMP.000*}} +\def\MakeCUTG#1.#2#3#4*{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\QuerFormat} +% Das Umschalten auf Querformat ist ganz einfach, es wird nur die +% Papierh"ohe mit der Papierbreite vertauscht: +% \begin{macrocode} +\def\QuerFormat{% + \dimen0=\Papierbreite + \Papierbreite=\Papierhoehe + \Papierhoehe=\dimen0} +% \end{macrocode} +% \end{macro} +% +% \subsection{Freie Einstellung der Parameter} +% +% \begin{macro}{\FreeStyle} +% Die Konstruktionsmethoden bauen alle auf dem folgenden Befehl +% auf. Mit |\FreeStyle| werden beliebige Werte gesetzt und +% globale Einstellungen vorgenommen. +% +% Zuerst ben"otigen wir einige Register: +% \begin{macrocode} +\newdimen\DIMSatzbreite \newdimen\DIMSatzhoehe +\newdimen\DIMBund \newdimen\DIMAussen +\newdimen\DIMOben \newdimen\DIMUnten +\newdimen\DIMKAbstand \newdimen\DIMKHoehe +\newdimen\DIMFAbstand +\newif\ifDoppelseite \Doppelseitefalse +\newif\ifnoSB \newif\ifnoSH +% \end{macrocode} +% Jetzt folgen die Makros f"ur die Schl"usselworte. +% \begin{macrocode} +\def\FreeStyle{\NewOber{Free}% + \noSBtrue\noSHtrue + \DIMSatzbreite = \textwidth + \DIMSatzhoehe = \textheight + \ifKopfinnen + \Rechne {\DIMSatzhoehe} + {\headsep} + {\headheight} + -> {\DIMSatzhoehe} + \Rechne {1in} + {\topmargin} + {\voffset} -> {\DIMOben} + \else + \Rechne {1in} + {\topmargin} + {\voffset} + + {\headheight} + {\headsep} -> {\DIMOben} + \fi + \Rechne {1in} + {\hoffset} + {\oddsidemargin} -> {\DIMBund} + \Rechne {\Papierbreite} - {\DIMBund} - {\DIMSatzbreite} + -> {\DIMAussen} + \Rechne {\Papierhoehe} - {\DIMOben} - {\DIMSatzhoehe} + -> {\DIMUnten} + \DIMKAbstand = \headsep + \DIMKHoehe = \headheight + \DIMFAbstand = \footskip + \if@twoside\Doppelseitetrue\fi + \nextSchluessel} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\@namedef{Free/}{\OldOber{Free}% + \ifnoSB + \Rechne {\Papierbreite} - {\DIMBund} - {\DIMAussen} + -> {\DIMSatzbreite} + \fi + \textwidth = \DIMSatzbreite + \ifnoSH + \Rechne {\Papierhoehe} - {\DIMOben} - {\DIMUnten} + -> {\DIMSatzhoehe} + \fi + \textheight = \DIMSatzhoehe + \headheight\DIMKHoehe + \headsep\DIMKAbstand + \footskip\DIMFAbstand + \voffset=0pt\hoffset=0pt + \Rechne {\DIMBund} - {1in} -> {\oddsidemargin} + \Rechne {\DIMAussen} - {1in} -> {\evensidemargin} + \ifKopfinnen + \Rechne {\DIMSatzhoehe} - {\headsep} - {\headheight} + -> {\textheight} + \Rechne {\DIMOben} - {1in} -> {\topmargin} + \else + \textheight = \DIMSatzhoehe + \Rechne {\DIMOben} - {\headsep} - {\headheight} - {1in} + -> {\topmargin} + \fi + \ifDoppelseite + \@twosidetrue\@mparswitchtrue + \ifx\KopfTextlinks\Pempty\else + \def\@evenhead{\KopfTextlinks}% + \fi + \ifx\FussTextlinks\Pempty\else + \def\@evenfoot{\FussTextlinks}% + \fi + \else + \@twosidefalse\@mparswitchfalse + \fi + \ifx\KopfTextrechts\Pempty\else + \def\@oddhead{\KopfTextrechts}% + \fi + \ifx\FussTextrechts\Pempty\else + \def\@oddfoot{\FussTextrechts}% + \fi +} +\def\Pempty{.} +\def\KopfTextlinks{.} +\def\KopfTextrechts{.} +\def\FussTextlinks{.} +\def\FussTextrechts{.} +\def\FreeDoppelseite{\Doppelseitetrue + \nextSchluessel} +\def\FreeEinfachseite{\Doppelseitefalse + \nextSchluessel} +\def\FreeSatzbreite <#1> {\DIMSatzbreite=#1% + \noSBfalse + \nextSchluessel} +\def\FreeSatzhoehe <#1> {\DIMSatzhoehe=#1% + \noSHfalse + \nextSchluessel} +\def\FreeBund <#1> {\DIMBund=#1% + \nextSchluessel} +\def\FreeAussen <#1> {\DIMAussen=#1% + \nextSchluessel} +\def\FreeOben <#1> {\DIMOben=#1% + \nextSchluessel} +\def\FreeUnten <#1> {\DIMUnten=#1% + \nextSchluessel} +\def\FreeKopfzeile{\NewOber{FreeKopf}% + \nextSchluessel} +\@namedef{FreeKopf/}{\OldOber{FreeKopf}% + \nextSchluessel} +\def\FreeKopflebend{\Kopfinnentrue + \nextSchluessel} +\def\FreeKopftot{\Kopfinnenfalse + \nextSchluessel} +\def\FreeKopfHoehe <#1> {\DIMKHoehe#1 + \nextSchluessel} +\def\FreeKopfAbstand <#1> {\DIMKAbstand#1 + \nextSchluessel} +\def\FreeKopfText{% + \ifDoppelseite + \let\next\KTextzwei + \else + \let\next\KTexteins + \fi\next} +\def\KTexteins #1 {\def\KopfTextrechts{{#1}}% + \nextSchluessel} +\def\KTextzwei #1 #2 {\def\KopfTextlinks{{#1}}% + \def\KopfTextrechts{{#2}}% + \nextSchluessel} +\def\FreeFusszeile{\NewOber{FreeFuss}% + \nextSchluessel} +\@namedef{FreeFuss/}{\OldOber{FreeFuss}% + \nextSchluessel} +\def\FreeFussAbstand <#1> {\DIMFAbstand#1 + \nextSchluessel} +\def\FreeFussText{% + \ifDoppelseite + \let\next\FTextzwei + \else + \let\next\FTexteins + \fi\next} +\def\FTexteins #1 {\def\FussTextrechts{{#1}}% + \nextSchluessel} +\def\FTextzwei #1 #2 {\def\FussTextlinks{{#1}}% + \def\FussTextrechts{{#2}}% + \nextSchluessel} +% \end{macrocode} +% +% \subsection{Korrektur voreingestellter Werte} +% +% An dieser Stelle wiederholen sich in etwa die Makros aus dem +% vorangegangenen Abschnitt. Die Zuweiseungen sind jedoch Additionen. +% Die Kopf- und Fu"szeilen-Textfestlegung ist in |\KorrStyle| nicht +% vorgesehen. Man kann ja |\FreeStyle| dazu benutzen. +% \begin{macrocode} +\def\KorrStyle{\NewOber{Korr}% + \DIMSatzbreite = \textwidth + \DIMSatzhoehe = \textheight + \ifKopfinnen + \Rechne {\DIMSatzhoehe} + {\headsep} + {\headheight} + -> {\DIMSatzhoehe} + \Rechne {1in} + {\topmargin} + {\voffset} -> {\DIMOben} + \else + \Rechne {1in} + {\topmargin} + {\voffset} + + {\headheight} + {\headsep} -> {\DIMOben} + \fi + \Rechne {1in} + {\hoffset} + {\oddsidemargin} -> {\DIMBund} + \Rechne {\Papierbreite} - {\DIMBund} - {\DIMSatzbreite} + -> {\DIMAussen} + \Rechne {\Papierhoehe} - {\DIMOben} - {\DIMSatzhoehe} + -> {\DIMUnten} + \DIMKAbstand\headsep + \DIMKHoehe\headheight + \DIMFAbstand\footskip + \if@twoside\Doppelseitetrue\fi + \nextSchluessel} +\@namedef{Korr/}{\OldOber{Korr}% + \textwidth\DIMSatzbreite + \headheight\DIMKHoehe + \headsep\DIMKAbstand + \footskip\DIMFAbstand + \voffset=0pt \hoffset=0pt + \Rechne {\DIMBund} - {1in} -> {\oddsidemargin} + \Rechne {\DIMAussen} - {1in} -> {\evensidemargin} + \ifKopfinnen + \Rechne {\DIMSatzhoehe} - {\headsep} - {\headheight} + -> {\textheight} + \Rechne {\DIMOben} - {1in} -> {\topmargin} + \else + \textheight = \DIMSatzhoehe + \Rechne {\DIMOben} - {\headsep} - {\headheight} - {1in} + -> {\topmargin} + \fi + \ifDoppelseite + \@twosidetrue\@mparswitchtrue + \fi +} +\def\KorrDoppelseite{\Doppelseitetrue + \nextSchluessel} +\def\KorrEinfachseite{\Doppelseitefalse + \nextSchluessel} +\def\KorrSatzbreite <#1> {\advance \DIMSatzbreite by #1% + \nextSchluessel} +\def\KorrSatzhoehe <#1> {\advance \DIMSatzhoehe by #1% + \nextSchluessel} +\def\KorrBund <#1> {\advance \DIMBund by #1% + \nextSchluessel} +\def\KorrAussen <#1> {\advance \DIMAussen by #1% + \nextSchluessel} +\def\KorrOben <#1> {\advance \DIMOben by #1% + \nextSchluessel} +\def\KorrUnten <#1> {\advance \DIMUnten by #1% + \nextSchluessel} +\def\KorrKopfzeile{\NewOber{KorrKopf}% + \nextSchluessel} +\@namedef{KorrKopf/}{\OldOber{KorrKopf}% + \nextSchluessel} +\def\KorrKopflebend{\Kopfinnentrue + \nextSchluessel} +\def\KorrKopftot{\Kopfinnenfalse + \nextSchluessel} +\def\KorrKopfHoehe <#1> {\advance \DIMKHoehe by #1 + \nextSchluessel} +\def\KorrKopfAbstand <#1> {\advance \DIMKAbstand by #1 + \nextSchluessel} +\def\KorrFusszeile{\NewOber{KorrFuss}% + \nextSchluessel} +\@namedef{KorrFuss/}{\OldOber{KorrFuss}% + \nextSchluessel} +\def\KorrFussAbstand <#1> {\advance \DIMFAbstand by #1 + \nextSchluessel} +% \end{macrocode} +% +% \subsection{Konstruktionsmethoden} +% +% Um dem Anwender nun aber wirklich das Leben zu erleichtern, werden +% einige Konstruktionsmethoden hier schon implementiert. Ihre Ergebnisse +% k"onnen dan immer noch mit |\KorrStyle| korrigiert bzw. angepa"st +% werden. Wichtig ist, da"s dem Benutzer verschiedene Layouts an die +% Hand gegeben werden, die ohne Aufwand mit \TeX\ realisiert werden +% k"onnen. Bevor diese Konstruktionsmethoden aufgerufen werden k"onnen, +% mu"s das Papierformat definiert worden sein. +% +% \subsubsection{"Ahnlichkeitskonstruktion} +% +% Die Basis ist eine vom Benutzer zu w"ahlende Satzbreite. Davon +% ausgehend wird dann ein zum Papierformat "ahnliches Rechteck als +% Satzspiegel konstruiert. Die R"ander werden im Verh"altnis des +% goldenen Schnitts ($1:1.618$) verteilt. +% \begin{macrocode} +\def\Aehnlichkeitskonstruktion <#1> {% + \@Divide{\Papierhoehe}{\Papierbreite}{\HW}% + \removept{\HW}\Hf + \DIMSatzbreite=#1\relax + \DIMSatzhoehe=\Hf\DIMSatzbreite + \Rechne {\Papierbreite} - {\DIMSatzbreite} -> {\HW} + \DIMAussen = 0.618\HW \DIMBund = 0.382\HW + \Rechne {\Papierhoehe} - {\DIMSatzhoehe} -> {\HW} + \DIMUnten = 0.618\HW \DIMOben = 0.382\HW + \WerteRealisieren} +% \end{macrocode} +% Die Festlegung der \TeX-Werte kann man sich nun aus dem |\FreeStyle| +% borgen, genauer aus dem Makro |\Free/|. Zum Ende der Konstruktion +% wird dann noch eine Plausibilit"atspr"ufung durchgef"uhrt, um den +% Benutzer vor merkw"urdigen Werten zu warnen. +% \begin{macrocode} +\def\WW#1{\Wert{\csname DIM#1\endcsname}{\HH}% + \message{(#1:\HH)}} +\def\WerteRealisieren{% + \Plausibilitaet% + \DIMKAbstand=1\baselineskip + \DIMKHoehe=1\baselineskip + \DIMFAbstand=2\baselineskip + \Kopfinnentrue + \NewOber{Korr}% + \csname Korr/\endcsname} +% \end{macrocode} +% +% Die Plausibilit"atspr"ufung wird gleich anschlie"send programmiert. Sie +% ist recht einfach nachzuvollziehen. +% \begin{macrocode} +\def\Plausibilitaet{% + \ifdim\DIMSatzbreite<0.6\Papierbreite + \KonWarn{Die Satzbreite ist ziemlich klein.}% + \fi + \ifdim\DIMSatzbreite>0.8\Papierbreite + \KonWarn{Die Satzbreite ist ziemlich gross.}% + \fi + \ifdim\DIMBund<15mm + \KonWarn{Der Bundsteg ist sehr klein ausgefallen.}% + \fi + \ifdim\Rcount=1234pt\else + \ifdim\Rcount<5pt + \removept{\Rcount}\RCount + \KonWarn{Rasterteilung zu grob (\RCount).}% + \fi + \ifdim\Rcount>12pt + \removept{\Rcount}\RCount + \KonWarn{Rasterteilung zu fein (\RCount).}% + \fi + \fi} +\def\KonWarn#1{\message{Layout Warnung: #1}} +% \end{macrocode} +% +% \subsubsection{Renaissance-Verteilung} +% +% Bei der Renaissance-Verteilun werden die R"ander im Verh"altnis +% $2:3:4:5$ aufgeteilt. Die Satzbreite wird vorgegeben. +% +% \begin{macrocode} +\def\Renaissancekonstruktion <#1> {% + \DIMSatzbreite=#1\relax + \Rechne {\Papierbreite} - {\DIMSatzbreite} -> {\HW} + \divide\HW by 6 + \DIMBund=2\HW \DIMAussen=4\HW \DIMOben=3\HW \DIMUnten=5\HW + \Rechne {\Papierhoehe} - {\DIMOben} - {\DIMUnten} + -> {\DIMSatzhoehe} + \WerteRealisieren} +% \end{macrocode} +% +% \subsubsection{Rasterkonstruktion} +% +% Die allgemeine Rasterkonstruktion geht von einer rasterartigen +% Aufteilung der Seite auf. Die R"ander werden dann im Verh"altnis +% $1:2$ besetzt. +% \begin{macrocode} +\newdimen\Rcount \Rcount=1234pt +\def\Rasterkonstruktion #1 {\Rcount=#1pt% + \advance\Rcount by -3pt% + \removept{\Rcount}\RCount + \@Divide{\Papierbreite}{#1pt}{\HW}% + \DIMSatzbreite=\RCount\HW + \@Divide{\Papierhoehe}{\Papierbreite}{\HW}% + \removept{\HW}\Hw + \DIMSatzhoehe=\Hw\DIMSatzbreite + \@Divide{\Papierbreite}{#1pt}{\HW}% + \DIMBund=1\HW + \DIMAussen=2\HW + \edef\RasterWeiteB{\the\HW}% + \@Divide{\Papierhoehe}{#1pt}{\HW}% + \DIMOben=1\HW + \DIMUnten=2\HW + \edef\RasterWeiteH{\the\HW}% + \Rcount=#1pt% + \WerteRealisieren +% \end{macrocode} +% Nun wird noch die Konstruktionsmethode als \PiCTeX-Eingabe festgelegt, +% damit sie bei der Satzspiegelzeichnung mit eingebaut werden kann: +% \begin{macrocode} + \PiCKonstruktion={% + \removept{\Papierbreite}\Pb + \removept{\Papierhoehe}\Ph + \dimen0\Rcount\removept{\Rcount}\RC + \edef\RC{\expandafter\MakeCUTG\RC.000*}% + \expandafter\HW\RC pt + \ifdim\Rcount=\HW + \accountingoff + \put {\beginpicture + \setplotarea x from 0 to {\Pb}, y from 0 to {\Ph} + \accountingoff + \linethickness=0.1pt + \grid {\RC} {\RC} + \endpicture} [Bl] at 0 0 + \fi}} +% \end{macrocode} +% +% \subsubsection{Diagonalkonstruktion} +% +% Das Diagonalverfahren ist ein Rasterverfahren mit ggf. +% nichtganzzahliger Rasterzahl. Die Berechnung erfolgt nach +% der gew"unschten Satzbreite +% \begin{macrocode} +\def\Diagonalkonstruktion <#1> {\DIMSatzbreite=#1 + \Rechne {0.33333\Papierbreite} - {0.33333\DIMSatzbreite} -> {\HW} + \@Divide{\Papierbreite}{\HW}{\Rcount}% + \removept{\Rcount}\RCOunt + \Rasterkonstruktion {\RCOunt} +% \end{macrocode} +% Auch hier kommt noch die Konstruktionsmethode: +% \begin{macrocode} + \PiCKonstruktion={% + \removept{\Papierbreite}{\Pb}% + \removept{\Papierhoehe}{\Ph}% + \removept{0.5\Papierhoehe}{\Phh}% + \ifodd\value{page}% + \plot {\Pb} 0 0 {\Ph} / + \plot {\Pb} 0 0 {\Phh} {\Pb} {\Ph} / + \else + \plot 0 {\Ph} {\Pb} {\Phh} 0 0 / + \plot 0 0 {\Pb} {\Ph} / + \fi}} +% \end{macrocode} +% +% \subsubsection{Goldener Schnitt} +% +% Der Konstruktion zum Goldenen Schnitt ist noch einfacher zu +% programmieren. Sie hat den Vorteil, da"s zus"atzlich zu den R"andern +% auch der Satzspiegel zum Papierformat im Goldenen Schnitt steht. +% Es handelt sich einfach um die Rasterkonstruktion mit Rasterwert~9. +% \begin{macrocode} +\def\GoldenerSchnitt{% + \Rasterkonstruktion 9 +% \end{macrocode} +% Die Konstruktionsmethode wird jedoch wie bei der Diagonalkonstruktion +% mit einer Zusatzkonstruktion gezeichnet. +% \begin{macrocode} + \PiCKonstruktion={% + \removept{\Papierbreite}{\Pb}% + \removept{\Papierhoehe}{\Ph}% + \removept{0.5\Papierhoehe}{\Phh}% + \removept{0.3333\Papierbreite}{\Pbd}% + \removept{0.6667\Papierbreite}{\Pbdd}% + \removept{0.6667\Papierhoehe}{\Phs}% + \removept{0.8333\Papierhoehe}{\Phss}% + \ifodd\value{page}% + \plot {\Pb} 0 0 {\Ph} / + \plot {\Pb} 0 0 {\Phh} {\Pb} {\Ph} / + \plot {\Pbd} {\Phs} {\Pbd} {\Ph} / + \plot {\Pbd} {\Ph} 0 {\Phss} / + \else + \plot 0 {\Ph} {\Pb} {\Phh} 0 0 / + \plot 0 0 {\Pb} {\Ph} / + \plot {\Pbdd} {\Phs} {\Pb} {\Phss} / + \fi}} +% \end{macrocode} +% +% \subsubsection{Silberner Schnitt} +% +% Da wir bei der Konstruktion des Goldenen Schnitts eigentlich gar nicht +% so recht wissen, was hier eigentlich im Verh"altnis des Goldenen +% Schnitts stehen soll, kommt hier ein etwas abgewandeltes Verfahren. +% Damit steht die Satzbreite (Satzh"ohe) zur Papierbreite (Papierh"ohe) +% etwa im richtigen Verh"altnis ($3:5$). +% \begin{macrocode} +\def\SilbernerSchnitt{% + \Rasterkonstruktion 8 +% \end{macrocode} +% Die Konstruktionsmethode ist fast die des Goldenen Schnitts: +% \begin{macrocode} + \PiCKonstruktion={% + \removept{\Papierbreite}{\Pb}% + \removept{\Papierhoehe}{\Ph}% + \removept{0.5\Papierhoehe}{\Phh}% + \removept{0.3333\Papierbreite}{\Pbd}% + \removept{0.5\Papierbreite}{\Pbh}% + \removept{0.6667\Papierhoehe}{\Phs}% + \ifodd\value{page}% + \plot {\Pb} 0 0 {\Ph} / + \plot {\Pb} 0 0 {\Phh} {\Pb} {\Ph} / + \plot {\Pbd} {\Phs} {\Pbd} {\Ph} / + \plot {\Pbd} {\Ph} {-\Pbh} {\Phh} / + \else + \plot 0 {\Ph} {\Pb} {\Phh} 0 0 / + \plot 0 0 {\Pb} {\Ph} / + \plot 0 {\Ph} {\Pb} 0 / + \fi}} +% \end{macrocode} +% +% \subsection{Fertige Layouts} +% +% Die fertigen Layouts werden auf den Originalkonstruktionen aufgebaut. +% Dann werden die Werte entsprechend ge"andert. +% \changes{v1.0f}{93/05/13}{{\tt`FertigLayout} {\tt`fi} erg"anzt.} +% \begin{macrocode} +\def\FertigLayout #1 {% + \expandafter\ifx\csname Fertig#1\endcsname\undefined + \message{Layout Warnung: Das fertige Layout #1 existiert nicht.}% + \else + \csname Fertig#1\endcsname + \fi} +\@namedef{Fertig12A}{\Rasterkonstruktion 12 } +\@namedef{Fertig12B}{\Rasterkonstruktion 12 + \dimen0=\RasterWeiteB \dimen1=\RasterWeiteH + \Rechne {\DIMSatzbreite} - {\dimen0} -> {\DIMSatzbreite} + \Rechne {\DIMSatzhoehe} - {\dimen1} -> {\DIMSatzhoehe} + \DIMBund=1.5\dimen0 \DIMAussen=2.5\dimen0 + \DIMOben=1.5\dimen1 \DIMUnten=2.5\dimen1 + \WerteRealisieren} +\@namedef{Fertig12C}{\Rasterkonstruktion 12 + \dimen0=\RasterWeiteB \dimen1=\RasterWeiteH + \DIMOben=\dimen1 \DIMUnten=2\dimen1 + \DIMBund=2\dimen0 \DIMAussen=2\dimen0 + \DIMSatzbreite=8\dimen0 \DIMSatzhoehe=9\dimen1 + \WerteRealisieren} +\@namedef{Fertig10A}{\Rasterkonstruktion 10 } +\@namedef{Fertig10B}{\Rasterkonstruktion 10 + \Rechne {\DIMBund} + {\RasterWeiteB} -> {\DIMBund} + \Rechne {\DIMSatzbreite} - {\RasterWeiteB} -> {\DIMSatzbreite} + \WerteRealisieren} +\@namedef{Fertig10C}{\Rasterkonstruktion 10 + \dimen0=\RasterWeiteB + \Rechne {\DIMBund} + {0.5\dimen0} -> {\DIMBund} + \Rechne {\DIMSatzbreite} - {0.5\dimen0} -> {\DIMSatzbreite} + \WerteRealisieren} +\@namedef{Fertig8A}{\Rasterkonstruktion 8 } +\@namedef{Fertig7A}{\Rasterkonstruktion 7 } +% \end{macrocode} +% +% \subsection{Wenn man fast alles auf eine Seite bekommen will\ldots} +% F"ur Seiten, die einen m"oglichst gro"sen Satzspiegel erhalten sollen, +% gibt es den folgenden Befehl: +% \begin{macrocode} +\def\MaximalSeite{% + \FreeStyle Einfachseite + Oben <15mm> + Unten <20mm> + Bund <20mm> + Aussen <10mm> + Fusszeile Abstand <8mm> + Text {\hfil--\,\thepage\,--\hfil} / + Kopfzeile tot + Hoehe <0mm> + Abstand <0mm> + Text {\hfil} / + / +} +% \end{macrocode} +% +% Die Schnittmarken bestehen aus $+$-Zeichen, die mittels Kerning und +% leeren Boxen an die richtigen Stellen positioniert werden. Mittels +% \verb+\clearpage+ wird ggf. am Anfang eine neue Seite erzeugt. Hierdurch +% ist garantiert, da"s das Makro nur am Seitenanfang aufgerufen wird. +% \begin{macrocode} +\def\@SPunkt{\vbox to 0pt{\vss\hbox to 0pt{\hss+\hss}\vss}} +\def\@SDot{\vbox to 0pt{\vss\hbox to 0pt{\hss.\hss}\vss}} +\def\SchnittMarken{\clearpage{\offinterlineskip% + \vbox to 0pt{\kern-\DIMOben + \ifKopfinnen\else + \kern-\headsep\kern-\headheight + \fi + \hbox to 0pt{\kern-\DIMBund\@SPunkt + \kern0.5\Papierbreite + \@SDot + \kern0.5\Papierbreite + \@SPunkt\hss}% + \kern0.5\Papierhoehe + \hbox to 0pt{\kern-\DIMBund\@SDot + \kern\Papierbreite\@SDot\hss}% + \kern0.5\Papierhoehe + \hbox to 0pt{\kern-\DIMBund\@SPunkt + \kern0.5\Papierbreite + \@SDot + \kern0.5\Papierbreite + \@SPunkt\hss}% + \vss}}} +% \end{macrocode} +% +% \subsection{Zentrieren auf dem Druckformat} +% +% \begin{macro}{\Zentriert} +% Mittels \verb+\Zentriert auf+ kann das erstellte Layout auf das +% angegebene Druckformat zentriert werden. Normalerweise steht es +% ja in der linken oberen Ecke. Es werden die Differenzen zwischen +% dem bestehenden und dem angegebenen Format berechnet. Entsprechend +% werden dann \verb+\hoffset+ und \verb+\voffset+ erh"oht. +% \begin{macrocode} +\def\Zentriert auf {\bgroup\let\EndPapierFormat\EndZentriert + \edef\PB@{\the\Papierbreite}% + \edef\PH@{\the\Papierhoehe}% + \def\message##1{}% + \PapierFormat} +\def\EndZentriert{% + \advance\Papierbreite by -\PB@ + \advance\Papierhoehe by -\PH@ + \Papierhoehe=0.5\Papierhoehe + \Papierbreite=0.5\Papierbreite + \typeout{Verschoben um (\the\Papierbreite,\the\Papierhoehe).}% + \global\advance\hoffset by \Papierbreite + \global\advance\voffset by \Papierhoehe + \egroup} +% \end{macrocode} +% \end{macro} +% +% +\endinput diff --git a/info/german/stammtisch/wuppertal/updates/pictex.sty b/info/german/stammtisch/wuppertal/updates/pictex.sty new file mode 100644 index 0000000000..c6bb831048 --- /dev/null +++ b/info/german/stammtisch/wuppertal/updates/pictex.sty @@ -0,0 +1,10 @@ +\ifx\fiverm\undefined + \newfont\fiverm{cmr5} +\fi +\input prepicte +\input pictex +\input postpict +\catcode`\@=11 +\@input{picmore.tex} +\@input{piccorr.sty} +\endinput |