summaryrefslogtreecommitdiff
path: root/support/latexdraw/bin
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/latexdraw/bin
Initial commit
Diffstat (limited to 'support/latexdraw/bin')
-rwxr-xr-xsupport/latexdraw/bin/latex2epc436
-rwxr-xr-xsupport/latexdraw/bin/ldstapeldiagramm190
-rwxr-xr-xsupport/latexdraw/bin/ldtortendiagramm129
3 files changed, 755 insertions, 0 deletions
diff --git a/support/latexdraw/bin/latex2epc b/support/latexdraw/bin/latex2epc
new file mode 100755
index 0000000000..3837202e68
--- /dev/null
+++ b/support/latexdraw/bin/latex2epc
@@ -0,0 +1,436 @@
+#!/usr/local/dist/bin/perl
+#
+# ****************************************************************
+# LaTeX-Datei, die von latexdraw erzeugt,
+# zurueckwandeln in interne LaTeXdraw-Datei
+# ****************************************************************
+# Stand 23.5.1997 Siegert
+# 1. Parameter: Name der vorhandenen latex-Datei
+# 2. Parameter: Name der erzeugten latexdraw-Datei
+
+$zahl = "([0-9.+-]*)";
+$xy = "\\($zahl,$zahl\\)";
+$klzahl = "\\{$zahl\\}";
+$optzahl = "\\[$zahl\\]";
+$star = "\\*";
+$fontbez = "\\\\(F[XVIbi]*pt) ";
+$unitlength = "\\\\setlength{\\\\unitlength}{$zahl";
+$bdoc = "\\\\begin{document}";
+$bpic = "\\\\begin{picture}$xy";
+
+$ldlinew = "\\\\ldlinewidth$klzahl$klzahl";
+$put = "\\\\put$xy";
+$putc = "\\\\putc$xy$klzahl";
+$rput = "\\\\rput$optzahl$xy";
+$rputc = "\\\\rputc$optzahl$xy$klzahl";
+
+$line = "\\\\ldline$xy$xy";
+$line2 = "\\\\ldline$optzahl$xy$xy";
+$line3 = "\\\\ldcpline$xy$xy";
+$line4 = "\\\\ldcpline$optzahl$xy$xy";
+$line5 = "\\\\LdpLine$klzahl\\{$xy\\}$optzahl";
+$gefdreieck = "\\\\gefdreieck$xy$xy";
+$gefviereck = "\\\\gefviereck$xy$xy$xy";
+$circle = "\\\\circle$klzahl";
+$circle2 = "\\\\circle$optzahl$klzahl";
+$ell = "\\\\ellipse$klzahl$klzahl";
+$ell2 = "\\\\ellipse$optzahl$klzahl$klzahl";
+$gefcircle = "\\\\circle$star$klzahl";
+$gefell = "\\\\ellipse$star$klzahl$klzahl";
+$arc = "\\\\arc$klzahl$klzahl$klzahl";
+$arc2 = "\\\\arc$optzahl$klzahl$klzahl$klzahl";
+$arc3 = "\\\\LdpArc$klzahl$klzahl$klzahl$optzahl$klzahl";
+$ellarc = "\\\\ellarc$klzahl$klzahl$klzahl$klzahl";
+$ellarc2 = "\\\\ellarc$optzahl$klzahl$klzahl$klzahl$klzahl";
+$ellarc3 = "\\\\LdpEllarc$klzahl$klzahl$klzahl$optzahl$klzahl$klzahl";
+$pie = "\\\\pieslice$klzahl$klzahl$klzahl$klzahl";
+$bezier = "\\\\bezier$xy$xy$xy";
+$bezier2 = "\\\\bezier$optzahl$xy$xy$xy";
+$bezier3 = "\\\\LdpBezier$klzahl$xy$xy$xy$optzahl";
+$gefbezier = "\\\\beziergef$xy$xy$xy";
+
+$text = "\\\\makebox\\(0,0\\)\\[([a-z]+)\\]{";
+$textf = "\\\\makebox\\(0,0\\){";
+
+$standardfont = 1;
+$textlage{'bl'} = 0;
+$textlage{'f'} = 1;
+$textlage{'br'} = 2;
+$textlage{'b'} = 3;
+$textlage{'tl'} = 4;
+$textlage{'tr'} = 5;
+$textlage{'t'} = 6;
+$textlage{'l'} = 7;
+$textlage{'r'} = 8;
+
+
+$font{'FVIpt'} = 0;
+$font{'FVIIIpt'} = 2;
+$font{'FXpt'} = 3;
+$font{'FXIIpt'} = 4;
+$font{'FXIVpt'} = 5;
+$font{'FXVIIIpt'} = 6;
+
+$font{'FVIbpt'} = 7;
+$font{'FVIIIbpt'} = 8;
+$font{'FXbpt'} = 9;
+$font{'FXIIbpt'} = 10;
+$font{'FXIVbpt'} = 11;
+$font{'FXVIIIbpt'} = 12;
+
+$font{'FVIipt'} = 13;
+$font{'FVIIIipt'} = 14;
+$font{'FXipt'} = 15;
+$font{'FXIIipt'} = 16;
+$font{'FXIVipt'} = 17;
+$font{'FXVIIIipt'} = 18;
+
+
+$ttext = 2;
+$tgerade = 3;
+$tkreis = 5;
+$tkreisgef = 6;
+$tkreisbogen = 7;
+$tell = 8;
+$tellgef = 9;
+$tellbogen = 10;
+$trechteckgef = 11;
+$tbezier = 12;
+$tdreieckgef = 13;
+$tviereckgef = 14;
+$tkreissektorgef= 15;
+$tellsektorgef = 16;
+$tbeziergef = 17;
+
+
+
+if ($#ARGV != 1) {die "number of arguments not 2 (file in, file out)";}
+
+sub grad { # texwinkel nach latexdraw-Winkel (math)
+ $wi = @_[0];
+ $wi = (1-$wi/(2*3.1415926))*3600;
+ if (($wi > 3599.9)&&($wi < 3600.1)) {$wi=3600;}
+ if (($wi > -0.1) && ($wi < 0.1)) {$wi=0;}
+ while ($wi > 3600) {$wi = $wi - 3600;}
+ while ($wi < 0) {$wi = $wi + 3600;}
+ $wi;
+}
+
+sub winkel { # Berechnung Anfangs - und Endwinkel
+ $endwi = grad(@_[0]);
+ $anfwi = grad(@_[1]);
+}
+
+sub vorspannpar { # vorspannparameter merken
+ $xxmin =0;
+ $yymin=0;
+ $xxmax=$1;
+ $yymax=$2;
+ $dxpixel = $1;
+ $dypixel = $2;
+ $breite = $xxmax*$unitl;
+ $hoehe = $yymax*$unitl;
+ $querformat = 1;
+ if ($anzpic == 2) {$querformat = 0;}
+}
+
+sub ausvorspann {# vorspann ausgeben
+ print AUS "LaTeXdraw (Siegert, TUM, C15.13)\n";
+ print AUS $unitl, " (TEXFAKTOR)", "\n";
+ print AUS " 2.00000E+00 (TEXDASHLAENGE)", "\n";
+ print AUS " 1.80000E+00 (TEXDOTGAP)", "\n";
+ print AUS " 8.00000E-01 (TEXINTERDOTGAP)", "\n";
+ print AUS "16.667 16.667 525.2 294 1 0 0 1 (GITTERWERTE)\n";
+ print AUS "$xxmin $yymin $xxmax $yymax $dxpixel $dypixel ",
+ "$breite $hoehe $mitdoc $querformat (AUSGABEOPTIONEN)\n";
+ $ausgegeben = 1;
+}
+
+sub zeileninit {
+ $element = 0; # falls Zeichnungselement gefunden = 1
+ $rotwinkel = 0;
+ $lende = 0;
+ $ltype = 1;
+ $anfwi = 0;
+ $endwi = 0;
+ $laenge1 = 0;
+ $laenge2 = 0;
+ $x2 = 0;
+ $y2 = 0;
+ $xb1 = 0;
+ $yb1 = 0;
+ $xb2 = 0;
+ $yb2 = 0;
+}
+
+open (EIN, "<$ARGV[0]")|| die "can't open input file $ARGV[0]";
+open (AUS, ">$ARGV[1]")|| die "can't open output file $ARGV[1]";
+
+$lwidth = 1;
+$unitl = 1;
+$anzpic = 0;
+$ausgegeben = 0;
+$mitdoc = 0;
+while (<EIN>) { #zeilenweise Eingabe in $_
+
+ zeileninit();
+ if (/$bdoc/) {$mitdoc = 1;}
+ if (/$unitlength/) {$unitl = $1;}
+ if ((/$bpic/x)&&($ausgegeben ==0)) {$anzpic = $anzpic + 1; vorspannpar(); }
+ if (/$ldlinew/) {$lwidth = $1;}
+ if (/$put/) {$x1 = $1; $y1 = $2; $color = 0;}
+ if (/$putc/) {$x1 = $1; $y1 = $2; $color = $3;}
+ if (/$rput/) {$rotwinkel = grad($1); $x1 = $2; $y1 = $3; $color = 0;}
+ if (/$rputc/){$rotwinkel = grad($1); $x1 = $2; $y1 = $3; $color = $4;}
+
+ if (/$text/) { # Text mit Lageangabe
+ $typ = $ttext;
+ $laenge2 = $textlage{$1};
+ $ltype = $standardfont;
+ $_ = $';
+ if (/$fontbez/) {$ltype = $font{$1};}
+ $TEXT = substr($',0,length($')-3);
+ $element = 1;
+ }
+
+ if (/$textf/) { # Text ohne Lageangabe
+ $typ = $ttext;
+ $laenge2 = $textlage{'f'};
+ $ltype = $standardfont;
+ $_ = $';
+ if (/$fontbez/) {$ltype = $font{$1};}
+ $TEXT = substr($',0,length($')-3);
+ $element = 1;
+ }
+
+ if (/$line/) {
+ $typ = $tgerade;
+ $x2 = $x1+$3;
+ $y2 = $y1+$4;
+ $element = 1;
+ }
+
+ if (/$line2/) {
+ $typ = $tgerade;
+ $ltype = $1;
+ $x2 = $x1+$4;
+ $y2 = $y1+$5;
+ $element = 1;
+ }
+
+ if (/$line3/) { # cap projecting
+ $typ = $tgerade;
+ $lende = 4;
+ $x2 = $x1+$3;
+ $y2 = $y1+$4;
+ $element = 1;
+ }
+
+ if (/$line4/) { # cap projecting
+ $typ = $tgerade;
+ $lende = 4;
+ $ltype = $1;
+ $x2 = $x1+$4;
+ $y2 = $y1+$5;
+ $element = 1;
+ }
+
+ if (/$line5/) { # LdpLine
+ $typ = $tgerade;
+ $lende = $1;
+ $x2 = $x1+$2;
+ $y2 = $y1+$3;
+ $ltype = $4;
+ $element = 1;
+ }
+
+
+ if (/$circle/) {
+ $typ = $tkreis;
+ $laenge1 = $1/2;
+ $laenge2 = $laenge1;
+ $element = 1;
+ }
+
+ if (/$circle2/) {
+ $typ = $tkreis;
+ $ltype = $1;
+ $laenge1 = $2/2;
+ $laenge2 = $laenge1;
+ $element = 1;
+ }
+
+ if (/$gefcircle/) {
+ $typ = $tkreisgef;
+ $laenge1 = $1/2;
+ $laenge2 = $laenge1;
+ $element = 1;
+ }
+
+ if (/$arc/) {
+ $typ = $tkreisbogen;
+ $laenge1 = $1/2;
+ $laenge2 = $laenge1;
+ winkel($2,$3);
+ $element = 1;
+ }
+
+ if (/$arc2/) {
+ $typ = $tkreisbogen;
+ $ltype = $1;
+ $laenge1 = $2/2;
+ $laenge2 = $laenge1;
+ winkel($3,$4);
+ $element = 1;
+ }
+
+ if (/$arc3/) {
+ $typ = $tkreisbogen;
+ $lende = $1;
+ winkel($2,$3);
+ $ltype = $4;
+ $laenge1 = $5/2;
+ $laenge2 = $laenge1;
+ $element = 1;
+ }
+
+ if (/$ell/) {
+ $typ = $tell;
+ $laenge1 = $1/2;
+ $laenge2 = $2/2;
+ $element = 1;
+ }
+
+ if (/$ell2/) {
+ $typ = $tell;
+ $ltype = $1;
+ $laenge1 = $2/2;
+ $laenge2 = $3/2;
+ $element = 1;
+ }
+
+ if (/$gefell/) {
+ $typ = $tellgef;
+ $laenge1 = $1/2;
+ $laenge2 = $2/2;
+ $element = 1;
+ }
+
+ if (/$ellarc/) {
+ $typ = $tellbogen;
+ $laenge1 = $1/2;
+ $laenge2 = $2/2;
+ winkel($3,$4);
+ $element = 1;
+ }
+
+ if (/$ellarc2/) {
+ $typ = $tellbogen;
+ $ltype = $1;
+ $laenge1 = $2/2;
+ $laenge2 = $3/2;
+ winkel($4,$5);
+ $element = 1;
+ }
+
+ if (/$ellarc3/) {
+ $typ = $tellbogen;
+ $lende = $1;
+ winkel($2,$3);
+ $ltype = $4;
+ $laenge1 = $5/2;
+ $laenge2 = $6/2;
+ $element = 1;
+ }
+
+ if (/$gefdreieck/) {
+ $typ = $tdreieckgef;
+ $x2 = $x1+$1;
+ $y2 = $y1+$2;
+ $xb1 = $x1+$3;
+ $yb1 = $y1+$4;
+ $element = 1;
+ }
+
+ if (/$gefviereck/) {
+ $typ = $tviereckgef;
+ $xb1 = $x1+$1;
+ $yb1 = $y1+$2;
+ $x2 = $x1+$3;
+ $y2 = $y1+$4;
+ $xb2 = $x1+$5;
+ $yb2 = $y1+$6;
+ $element = 1;
+ }
+
+ if (/$pie/) {
+ $typ = $tellsektorgef;
+ $laenge1 = $1/2;
+ $laenge2 = $2/2;
+ if ($laenge1 == $laenge2) {$typ = $tkreissektorgef;}
+ $anfwi = $3*10;
+ $endwi = $4*10;
+ $element = 1;
+ }
+
+ if (/$bezier/) {
+ $typ = $tbezier;
+ $xb1 = $x1+$1;
+ $yb1 = $y1+$2;
+ $xb2 = $x1+$3;
+ $yb2 = $y1+$4;
+ $x2 = $x1+$5;
+ $y2 = $y1+$6;
+ $element = 1;
+ }
+
+ if (/$bezier2/) {
+ $typ = $tbezier;
+ $ltype = $1;
+ $xb1 = $x1+$2;
+ $yb1 = $y1+$3;
+ $xb2 = $x1+$4;
+ $yb2 = $y1+$5;
+ $x2 = $x1+$6;
+ $y2 = $y1+$7;
+ $element = 1;
+ }
+
+ if (/$bezier3/) {
+ $typ = $tbezier;
+ $lende = $1;
+ $xb1 = $x1+$2;
+ $yb1 = $y1+$3;
+ $xb2 = $x1+$4;
+ $yb2 = $y1+$5;
+ $x2 = $x1+$6;
+ $y2 = $y1+$7;
+ $ltype = $8;
+ $element = 1;
+ }
+
+ if (/$gefbezier/) {
+ $typ = $tbeziergef;
+ $xb1 = $x1+$1;
+ $yb1 = $y1+$2;
+ $xb2 = $x1+$3;
+ $yb2 = $y1+$4;
+ $x2 = $x1+$5;
+ $y2 = $y1+$6;
+ $element = 1;
+ }
+
+ if ($element) {
+ if ($ausgegeben==0) {ausvorspann();}
+ $tmp = 100 * $color + $lwidth;
+ print AUS "$typ $x1 $y1 $x2 $y2 $xb1 $yb1 $xb2 $yb2 $anfwi $endwi ",
+ "$tmp $lende $ltype $laenge1 $laenge2 $rotwinkel", "\n";
+ if ($typ == 2) {print AUS "$TEXT\n";}
+ }
+}
+
+
+print AUS "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n";
+print AUS " 0 \n";
+print AUS "0 0\n";
+
diff --git a/support/latexdraw/bin/ldstapeldiagramm b/support/latexdraw/bin/ldstapeldiagramm
new file mode 100755
index 0000000000..9980e61c74
--- /dev/null
+++ b/support/latexdraw/bin/ldstapeldiagramm
@@ -0,0 +1,190 @@
+#!/bin/ksh
+# Erzeugung Stapeldiagramm (Einzelwerte werden gestapelt) als LaTeXdraw-Datei
+# Information, die nachfolgend in einer Zeile, muss auch in der
+# Eingabe-Datei in einer Zeile sein
+# Trennzeichen zwischen Eingabeeinheiten in einer Zeile ist der Zwischenraum
+# Falls nur eine Einheit in einer Zeile verlangt wird, koennen auch
+# Zwischenraeume in der Einheit sein
+# Die eingegebenen Zahlenwerte werden automatisch normalisiert
+# Die Zahlenwerte in einer Zeile werden gestapelt
+# Eingabe ueber stdin, Ausgabe ueber stdout
+# Leerzeilen werden ueberlesen
+# Kommentarzeilen (mit # oder % beginnend) werden ueberlesen
+# stdin: unterschrift
+# Bezeichnung y-Achse
+# Bezeichnung Spalte 1 (x-Achse) Bezeichnung Spalte 2 usw.
+# text1 werta wertb wertc ...
+# text2 werta wertb wertc ...
+# usw.
+#
+# falls Schluesselwort farbig allein in Zeile auftritt,
+# wird farbiges Diagramm erzeugt
+# falls Schluesselwort Folie allein in Zeile auftritt,
+# wird die Schrift als 18pt-Schrift erzeugt
+# (Makro \FXVIIIpt)
+# falls Schluesselwort Anmerkung allein in einer Zeile
+# auftritt, werden alle folgenden Zeilen als Anmerkungen
+# betrachtet und nach der Bildunterschrift zeilenweise
+# ausgegeben
+# stdout:LaTeXdraw-Datei, die in latexdraw eingelesen werden kann
+# Stand 6.3.96 Siegert
+
+# Dimension ggf durch xpixel und ypixel aendern
+#
+# Farben durch andere Zuweisung von Werten an farbe[] aenderbar
+# Farbnummern aus LaTeXdraw
+# Farben spaeter auch durch chatt in LaTeXdraw aenderbar
+# Farben werden im Diagramm ggf. zyklisch wiederholt
+awk 'BEGIN{xpixel=600; xmm=190; ypixel = 300;
+ schwarz=0;grau90=2;grau80=3;grau70=4;grau60=5;
+ grau50=6;grau40=7;grau30=8;grau20=9; grau10=10;
+ rot=11; gruen=29; blau=33; magenta=36;orange=27;
+ gelb=14; cyan=32; hellgruen=44; hellblau=52;
+ hellrot=48;
+ farbe[1]=schwarz;farbe[2]=grau80;farbe[3]=grau60;
+ farbe[4]=grau40;farbe[5]=grau20;farbe[6]=grau90;
+ farbe[7]=grau70;farbe[8]=grau50;farbe[9]=grau30;
+ farbe[10]=grau10;
+ anzfarben=10;
+ farbe[11]=gruen;farbe[12]=blau;farbe[13]=rot;
+ farbe[14]=magenta;farbe[15]=orange;farbe[16]=cyan;
+ farbe[17]=hellgruen;farbe[18]=hellblau;
+ farbe[19]=gelb;
+ anzffarben=9;
+
+ x0pixel = 250; y0pixel = 130;
+ xupixel= x0pixel-30; yupixel = y0pixel-70;
+ schrift=1; anzstapel = 0; anzteilstapel=0;
+ maxwert=0; unterschrift="";
+ yachse = ""; xachse="";
+ anzanm=0; istanmerkung = 0; }
+ {if (NF==0) next;
+ if (substr($0,1,1)=="#") next;
+ if (substr($0,1,1)=="%") next;
+ if (istanmerkung == 1) {anzanm++; anmerkung[anzanm]=$0; next;}
+ if ((NF==1)&&($1=="farbig")) {
+ for (k=1;k<=anzffarben;k++) farbe[k]=farbe[k+anzfarben];
+ anzfarben=anzffarben; next;}
+ if ((NF==1)&&($1=="Folie")) {schrift=6; next;}
+ if ((NF==1)&&($1=="folie")) {schrift=6; next;}
+ if ((NF==1)&&(substr($1,1,9)=="Anmerkung")) {
+ istanmerkung = 1; next;}
+ if ((NF==1)&&(substr($1,1,9)=="anmerkung")) {
+ istanmerkung = 1; next;}
+
+ if (unterschrift=="") {unterschrift = $0; next; }
+ if (yachse=="") {yachse = $0; next; }
+ if (xachse=="") {xachse = $1;
+ for (s=2;s<=NF;s++) stapelname[s]=$s;
+ anzteilstapel = NF; next; }
+ anzstapel++;
+ text[anzstapel] = $1; anz[anzstapel]=NF; summe = 0;
+ for (j=2;j<=NF;j++) {wert[100*anzstapel+j]=$j; summe += $j;}
+ if (summe > max) max = summe;
+ }
+ END{ print "LaTeXdraw (Siegert, TUM, C14.14)Digi";
+ printf(" %.3f (TEXFAKTOR) \n", xmm/xpixel );
+ print " 2.00000E+00 (TEXDASHLAENGE)";
+ print " 1.80000E+00 (TEXDOTGAP)";
+ print " 8.00000E-01 (TEXINTERDOTGAP)";
+ print " 16.667 16.667 562.800 295.000 1.000 0.000 0.000 1.000 (GITTERWERTE)";
+ print " 446 295 547 411 101 116 240 160 1 0 (AUSGABEOPTIONEN)";
+
+ dx = xpixel/2/(anzstapel+1);
+ yfaktor = ypixel/max;
+ xakt=x0pixel+dx;
+ for (k=1;k<=anzstapel;k++) {
+ yakt=y0pixel;
+ m = anzfarben;
+ for (j=2;j<=anz[k];j++) {
+ m++; if (m>anzfarben) m -= anzfarben;
+ dy=wert[100*k+j]*yfaktor;
+ printf("14 %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f 0 3600 %d01 0 1 0 0 0 \n", \
+ xakt,yakt,xakt+dx,yakt+dy,xakt+dx,yakt,xakt,yakt+dy,farbe[m]);
+ yakt = yakt+dy;
+ }
+ yakt=y0pixel;
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 0 1 0 0 0 \n", \
+ xakt,yakt,xakt+dx,yakt);
+ for (j=2;j<=anz[k];j++) {
+ dy=wert[100*k+j]*yfaktor;
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 0 1 0 0 0 \n", \
+ xakt,yakt,xakt,yakt+dy);
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 0 1 0 0 0 \n", \
+ xakt+dx,yakt,xakt+dx,yakt+dy);
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 0 1 0 0 0 \n", \
+ xakt,yakt+dy,xakt+dx,yakt+dy);
+ yakt = yakt+dy;
+ }
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 2 6 0 \n", \
+ xakt+dx/2,y0pixel-10,schrift);
+ print text[k];
+ xakt += 2*dx;
+ }
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 2 1 0 0 0 \n", \
+ x0pixel,y0pixel,x0pixel+xpixel,y0pixel);
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 2 1 0 0 0 \n", \
+ x0pixel,y0pixel,x0pixel,y0pixel+ypixel+20);
+ f=1;
+ if (max >1) {while (max >f) f = f*10; f=f*0.1; a=max/f;}
+ if (max <1) {while (max <f) f = f*0.1; a=max/f;}
+ dy=1; if (a<5) dy = 0.5;
+ dypixel = dy*f*yfaktor;
+ yaktpixel=0;
+ yakt=0;
+ while (yaktpixel < (ypixel+10)) {
+ printf("3 %.3f %.3f %.3f %.3f 0 0 0 0 0 3600 1 0 1 0 0 0 \n", \
+ x0pixel,y0pixel+yaktpixel,x0pixel-10,y0pixel+yaktpixel);
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 3 8 0 \n", \
+ x0pixel-15,y0pixel+yaktpixel,schrift);
+ printf("%.1f\n",yakt);
+ yaktpixel +=dypixel;
+ yakt +=dy;
+ }
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ x0pixel,y0pixel+ypixel+40,schrift);
+ if (f > 1) printf("%s (Einheit %d) \n", yachse,f,schrift);
+ if (f == 1) print yachse;
+ if (f < 1) printf("%s (Einheit 1/%d) \n", yachse,1/f);
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ xupixel,yupixel,schrift);
+ print unterschrift;
+
+ dy =20;
+ yakt=yupixel-dy/2;
+ for (j=1;j<=anzanm;j++) {
+ yakt -= dy;
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ xupixel,yakt,schrift);
+ print anmerkung[j]; }
+
+ dy = 20;
+ dx = 15;
+ xakt=x0pixel+xpixel+5;
+ xakttext=xakt+2*dx;
+ yakt=y0pixel+2*dy;
+ m = anzfarben;
+ for (j=2;j<=anzteilstapel;j++) {
+ m++; if (m>anzfarben) m -= anzfarben;
+ yakt += dy;
+ printf("14 %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f 0 3600 %d01 0 1 0 0 0 \n", \
+ xakt,yakt,xakt+dx,yakt+dx,xakt+dx,yakt,xakt,yakt+dx,farbe[m]);
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 7 0 \n", \
+ xakttext,yakt+dy/2,schrift);
+ print stapelname[j];}
+
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ x0pixel+xpixel+5,y0pixel,schrift);
+ print xachse
+
+
+ print "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ";
+ print "0 ";
+ print "0 0 ";
+ print ;
+ }'
+
+
+
+
+
diff --git a/support/latexdraw/bin/ldtortendiagramm b/support/latexdraw/bin/ldtortendiagramm
new file mode 100755
index 0000000000..634c9c6a87
--- /dev/null
+++ b/support/latexdraw/bin/ldtortendiagramm
@@ -0,0 +1,129 @@
+#!/bin/ksh
+#!/bin/ksh
+# Erzeugung Tortendiagramm als LaTeXdraw-Datei
+# Information, die nachfolgend in einer Zeile, muss auch in der
+# Eingabe-Datei in einer Zeile sein
+# Trennzeichen zwischen Eingabeeinheiten in einer Zeile ist der Zwischenraum
+# Falls nur eine Einheit in einer Zeile verlangt wird, koennen auch
+# Zwischenraeume in der Einheit sein
+# Eingabe ueber stdin, Ausgabe ueber stdout
+# Leerzeilen werden ueberlesen
+# Kommentarzeilen (mit # oder % beginnend) werden ueberlesen
+# stdin: unterschrift
+# text1 wert1
+# text2 wert2
+# usw
+# falls Schluesselwort farbig allein in Zeile auftritt
+# wird farbiges Diagramm erzeugt
+# falls Schluesselwort Folie allein in Zeile auftritt,
+# wird die Schrift als 18pt-Schrift erzeugt
+# (Makro \FXVIIIpt)
+# falls Schluesselwort Anmerkung allein in einer Zeile
+# auftritt, werden alle folgenden Zeilen als Anmerkungen
+# betrachtet und nach der Bildunterschrift zeilenweise
+# ausgegeben
+# stdout:LaTeXdraw-Datei, die in latexdraw eingelesen werden kann
+# Stand 6.3.96 Siegert
+
+# Dimension ggf durch xpixel und ypixel aendern
+# Farben durch andere Zuweisung von Werten an farbe[] aenderbar
+# Farbnummern aus LaTeXdraw
+# Farben spaeter auch durch chatt in LaTeXdraw aenderbar
+# Farben werden im Diagramm ggf. zyklisch wiederholt
+
+awk 'BEGIN{rpixel=125; rmm=40; xmpixel = 500; ympixel = 300;
+ schwarz=0;grau90=2;grau80=3;grau70=4;grau60=5;
+ grau50=6;grau40=7;grau30=8;grau20=9; grau10=10;
+ rot=11; gruen=29; blau=33; magenta=36;orange=27;
+ gelb=15; cyan=32; hellgruen=44; hellblau=52;
+
+ farbe[1]=schwarz;farbe[2]=grau80;farbe[3]=grau60;
+ farbe[4]=grau40;farbe[5]=grau20;farbe[6]=grau90;
+ farbe[7]=grau70;farbe[8]=grau50;farbe[9]=grau30;
+ farbe[10]=grau10;
+ anzfarben=10;
+ farbe[11]=gruen;farbe[12]=blau;farbe[13]=rot;
+ farbe[14]=magenta;farbe[15]=orange;farbe[16]=cyan;
+ farbe[17]=hellgruen;farbe[18]=hellblau;
+ farbe[19]=gelb;
+ anzffarben=9;
+
+ summe=0; unterschrift=""; schrift=1; i=0;
+ anzanm=0; istanmerkung = 0; }
+ {if (NF==0) next;
+ if (substr($0,1,1)=="#") next;
+ if (substr($0,1,1)=="%") next;
+ if (istanmerkung == 1) {anzanm++; anmerkung[anzanm]=$0; next;}
+ if ((NF==1)&&($1=="farbig")) {
+ for (k=1;k<=anzffarben;k++) farbe[k]=farbe[k+anzfarben];
+ anzfarben=anzffarben; next;}
+ if ((NF==1)&&($1=="folie")) {schrift=6; next;}
+ if ((NF==1)&&($1=="Folie")) {schrift=6; next;}
+ if ((NF==1)&&(substr($1,1,9)=="Anmerkung")) {
+ istanmerkung = 1; next;}
+ if ((NF==1)&&(substr($1,1,9)=="anmerkung")) {
+ istanmerkung = 1; next;}
+
+ if (i==0) {unterschrift = $0; i++; next; }
+ gruppe[i] = $1; wert[i] = $2; i++; summe = summe + $2; }
+ END{ wend=900;
+ xupixel = xmpixel-1.4*rpixel; yupixel = ympixel-1.6*rpixel;
+ print "LaTeXdraw (Siegert, TUM, C14.14)Digi";
+ printf(" %.3f (TEXFAKTOR) \n", rmm/rpixel );
+ print " 2.00000E+00 (TEXDASHLAENGE)";
+ print " 1.80000E+00 (TEXDOTGAP)";
+ print " 8.00000E-01 (TEXINTERDOTGAP)";
+ print " 16.667 16.667 562.800 295.000 1.000 0.000 0.000 1.000 (GITTERWERTE)";
+ print " 446 295 547 411 101 116 160 240 1 1 (AUSGABEOPTIONEN)";
+ m = 1;
+ for (k=1;k<i;k++) {
+ wanf=wend-wert[k]*3600/summe;
+ if (wanf<0) wanf += 3600;
+ printf("15 %s %s 0 0 0 0 0 0 %.3f %.3f %d01 0 1 %s %s 0.000 \n", \
+ xmpixel,ympixel,wanf,wend,farbe[m],rpixel,rpixel);
+ dw = (wend-wanf);
+ if (dw < 0) dw +=3600;
+ wmittel = wanf+dw/2.0;
+ if (wmittel >= 3600) wmittel -= 3600;
+ vzc = 1; vzs = 1; tausch = -1;
+ if (wmittel >=1800) {wmittel -= 1800; vzc = -1; vzs = -1;}
+ if (wmittel >=900) {wmittel -= 900; tausch = -tausch;
+ x = vzc; vzc = vzs; vzs = -x;}
+ if (wmittel >450) {wmittel = 900-wmittel; tausch = -tausch;
+ x = vzc; vzc = vzs; vzs = x;}
+ wmittel = wmittel/1800*3.14159;
+ wq=wmittel*wmittel;
+ sini = vzs*(wmittel*(1-wq/6*(1-wq/20*(1-wq/42*(1-wq/72)))));
+ cosi = vzc*(1-wq/2*(1-wq/12*(1-wq/30*(1-wq/56))));
+ if (tausch >0) {x=cosi; cosi = sini; sini = x;}
+ xtpixel = xmpixel+1.2*rpixel*cosi;
+ ytpixel = ympixel+1.2*rpixel*sini;
+ richtung=" 4 0 ";
+ if (xtpixel < xmpixel) richtung = " 9 2 ";
+ printf("2 %s %s 0 0 0 0 0 0 0 3600 1 2 %d %s 0 \n", \
+ xtpixel,ytpixel, schrift, richtung);
+ printf("%2.1f\%% %s\n", wert[k]/summe*100, gruppe[k]);
+ wend=wanf;
+ m++;
+ if (m>anzfarben) m -= anzfarben;
+ }
+ printf("2 %s %s 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ xupixel,yupixel,schrift);
+ print unterschrift;
+ dy =20;
+ yakt=yupixel-dy/2;
+ for (j=1;j<=anzanm;j++) {
+ yakt -= dy;
+ printf("2 %.3f %.3f 0 0 0 0 0 0 0 3600 1 2 %d 4 0 0 \n", \
+ xupixel,yakt,schrift);
+ print anmerkung[j]; }
+ print "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ";
+ print "0 ";
+ print "0 0 ";
+ print ;
+ }'
+
+
+
+
+