home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
bazy
/
adm
/
arexx
/
adm-arexxmakros.lha
/
TeX
/
TeX_TelList.adm
(
.txt
)
next >
Wrap
LaTeX Document
|
1996-02-27
|
11KB
|
266 lines
/* $VER: TeX_TelList.adm 0.9 (23.2.96)
basierend auf List.rexx 1.3 von Jan Geissler
und TrapFax-Export.adm 1.1 (26.3.95) von Kai Bolay.
Written by Thomas Schr
der. */
NL = '0a'x
OPTIONS RESULTS
SIGNAL ON BREAK_C
SIGNAL ON BREAK_D
SIGNAL ON BREAK_E
SIGNAL ON BREAK_F
SIGNAL ON ERROR
SIGNAL ON HALT
SIGNAL ON IOERR
SIGNAL ON SYNTAX
/* RexxReqTools-Library
ffnen */
reqname = "rexxreqtools.library"
if ~show("L", reqname) then
if ~addlib(reqname, 0, -30, 0) then do
say reqname "not found!"
EXIT
end
an = rtezrequest("Ausgabeformat","_Standard|_Konfiguration|_Abbruch")
IF an = 1 THEN DO
/* VOREINSTELLUNGEN */
groesse = 11
ausgabeart = "SMALLBOOKLET"
seite = "TWOSIDE"
/* ENDE VOREINSTELLUNGEN */
IF an = 0 THEN EXIT
IF an = 2 THEN DO
an2 = rtezrequest("Auf welche Art soll die Liste ausgegeben werden?","_Booklet|_Kleines Booklet|_Normal")
SELECT
WHEN an2 = 0 THEN ausgabeart = "NOBOOKLET"
WHEN an2 = 1 THEN ausgabeart = "BOOKLET"
WHEN an2 = 2 THEN ausgabeart = "SMALLBOOKLET"
END
IF ausgabeart = "NOBOOKLET" THEN DO
an3 = rtezrequest("Ein- oder zweiseitig?","_Einseitig|_Zweiseitig")
SELECT
WHEN an3 = 0 THEN seite = "TWOSIDE"
WHEN an3 = 1 THEN seite = "ONESIDE"
END
an4 = rtezrequest("Verwendete Fontgr
e","1_0pt|1_1pt|1_2pt")
SELECT
WHEN an4 = 0 THEN groesse = 12
WHEN an4 = 1 THEN groesse = 10
WHEN an4 = 2 THEN groesse = 11
END
OPTIONS RESULTS /* R
ckgabewerte zulassen */
ADDRINMEM /* Anzahl Adressen holen */
numadr = RESULT
IF ~OPEN(datei,"t:TelListe.tex","W") THEN DO /* Ausgabedatei
ffnen */
SAY "Kann Ausgabedatei nicht
ffnen!"
EXIT
ACTIVATEFIRST /* Ersten Eintr. aktivieren */
/* ----------------------------------------------------------------------
AUSGABE
---------------------------------------------------------------------- */
IF ausgabeart = "SMALLBOOKLET" THEN DO
text = "\documentclass["||groesse||"pt,a5paper,twoside]{article}"
CALL DruckZeile
ELSE DO
IF seite = "ONESIDE" THEN DO
text = "\documentclass["||groesse||"pt,a4paper]{article}"
CALL DruckZeile
ELSE DO
text = "\documentclass["||groesse||"pt,a4paper,twoside]{article}"
CALL DruckZeile
text = "\parindent0cm"
CALL DruckZeile
text = "\columnsep1cm"
CALL DruckZeile
IF ausgabeart = "NOBOOKLET" THEN DO
text = "\usepackage{german,multicol,wasysym,a4}"
CALL DruckZeile
ELSE DO
text = "\usepackage{german,multicol,wasysym}"
CALL DruckZeile
text = "\usepackage[T1]{fontenc}"
CALL DruckZeile
text = "\usepackage[latin1]{inputenc}"
CALL DruckZeile
text = "\begin{document}"
CALL DruckZeile
text = "\begin{multicols}{2}"
CALL DruckZeile
text = "\hbadness=10000"
CALL DruckZeile
DO FOR numAdr
text = "\begin{samepage}"
CALL DruckZeile
GETADDRESS ADM /* Adresse -> Stemvar ADM */
text = "\begin{bf}" ADM.COMPANY"\end{bf}"
CALL DruckZeile
text = "\begin{bf}"ADM.LASTNAME || "," ADM.FIRSTNAME "\end{bf}\\"
IF ADM.ID ~= "" THEN text = text "(ID" ADM.ID || ")"
CALL DruckZeile
text = ADM.ADDRESS1"\hfill\\"
CALL DruckZeile
/* text = ADM.ADDRESS2"\hfill\\"
CALL DruckZeile*/
text = " " ADM.POSTCODE ADM.CITY || "" ADM.COUNTRY "\hfill\\"
CALL DruckZeile
pp = POS("|",ADM.TELEPHONE)
DO WHILE pp > 0
ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
ADM.TELEPHONE = INSERT(", ",ADM.TELEPHONE,pp-1)
pp = POS("|",ADM.TELEPHONE)
END;
text = " "
IF ADM.TELEPHONE ~= "" THEN text = text || "\phone\ " ADM.TELEPHONE /*|| ", "
IF ADM.FAX ~= "" THEN text = text || "Fax" ADM.FAX"\hfill\\" */
CALL DruckZeile
/* text = " "
IF ADM.BIRTHDAY ~= "" THEN text = text || "Geb." ADM.BIRTHDAY
CALL DruckZeile
ok = WriteLn(datei,"") /* Leerzeile schreiben */
ACTIVATENEXT /* Akt. naechsten Eintrag */
text = "\end{samepage}"
CALL DruckZeile
text= "\vspace{1ex}"
CALL DruckZeile
text = "\end{multicols}"
CALL DruckZeile
text = "\end{document}"
CALL DruckZeile
ok = CLOSE(datei)
BERSETZUNG MIT VIRTEX */
ADDRESS COMMAND "virtex t:TelListe.tex"
/* ANZEIGEN MIT SHOWDVI */
ADDRESS COMMAND "showdvi t:TelListe.dvi"
/* BOOKLET-ERSTELLUNG */
IF ausgabeart = "BOOKLET" THEN DO
IF groesse = 10 THEN DO
ADDRESS COMMAND "dvidvi -m 4:0(-4.5cm,-1.0cm),3(15.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
ADDRESS COMMAND "dvidvi -m 4:1(15.5cm,-1.0cm),2(-4.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
IF groesse = 11 THEN DO
ADDRESS COMMAND "dvidvi -m 4:0(-4.25cm,-1.0cm),3(16.25cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
ADDRESS COMMAND "dvidvi -m 4:1(16.25cm,-1.0cm),2(-4.25cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
IF groesse = 12 THEN DO
ADDRESS COMMAND "dvidvi -m 4:0(-3.5cm,-1.0cm),3(17cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
ADDRESS COMMAND "dvidvi -m 4:1(17cm,-1.0cm),2(-3.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
booklet_druck = rtezrequest("Soll das Booklet auf dem Drucker" || NL ||,
"oder in ein File ausgegeben werden?","_Drucker|_File")
IF booklet_druck = 0 THEN DO
ADDRESS COMMAND "dviprint landscape t:Booklet1.dvi OUT=t:Booklet1.out"
ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi OUT=t:Booklet2.out"
bla = rtezrequest("So, die beiden Files t:Booklet1.out und" || NL ||,
"t:Booklet2.out wurden jetzt geschrieben. Zum" || NL ||,
"Ausdrucken einfach nur per Shell Booklet1.out nach" || NL ||,
"PAR: kopieren, das Papier umdrehen, und dasselbe" || NL ||,
"mit Booklet2.out machen.","Ok")
IF booklet_druck = 1 THEN DO
ADDRESS COMMAND "dviprint landscape t:Booklet1.dvi"
papierumdreh = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
"den Schacht zur
ck, da
sie richtig bedruckt" || NL ||,
"werden. Fertig?", "_Ja|_Nein")
IF papierumdreh = 0 THEN DO
file = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
"t:Booklet2.out geschrieben werden?" || NL ||,
"(Das kannst Du dann sp
ter mal ausdrucken, indem" || NL ||,
"Du es nach PAR: kopierst.)","_Ja|_Nein")
IF file = 1 THEN DO
ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi OUT=t:Booklet2.out"
END
END
IF papierumdreh = 1 THEN DO
ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi"
END
/* Erstellung eines kleinen Booklets */
IF ausgabeart = "SMALLBOOKLET" THEN DO
ADDRESS COMMAND "dvidvi -m 4:0(-0.8cm,-0.5cm),2(14.25cm,-0.5cm) -sm -2 -sw 4 t:TelListe.dvi t:SM1.dvi"
ADDRESS COMMAND "dvidvi -m 2:0(0cm,0cm),1(0cm,14.8cm) t:SM1.dvi t:SM_Booklet1.dvi"
ADDRESS COMMAND "delete t:SM1.dvi quiet force"
ADDRESS COMMAND "dvidvi -m 4:1(14.25cm,-0.5cm),3(-0.8cm,-0.5cm) -sm -2 -sw 4 t:TelListe.dvi t:SM2.dvi"
ADDRESS COMMAND "dvidvi -m 2:0(0cm,0cm),1(0cm,14.8cm) t:SM2.dvi t:SM_Booklet2.dvi"
ADDRESS COMMAND "delete t:SM2.dvi quiet force"
sm_booklet_druck = rtezrequest("Soll das Booklet auf dem Drucker" || NL ||,
"oder in ein File ausgegeben werden?","_Drucker|_File")
IF sm_booklet_druck = 0 THEN DO
ADDRESS COMMAND "dviprint landscape t:SM_Booklet1.dvi OUT=t:SM_Booklet1.out"
ADDRESS COMMAND "dviprint landscape t:SM_Booklet2.dvi OUT=t:SM_Booklet2.out"
bla = rtezrequest("So, die beiden Files t:SM_Booklet1.out und" || NL ||,
"t:SM_Booklet2.out wurden jetzt geschrieben. Zum" || NL ||,
"Ausdrucken einfach nur per Shell SM_Booklet1.out nach" || NL ||,
"PAR: kopieren, das Papier umdrehen, und dasselbe" || NL ||,
"mit SM_Booklet2.out machen.","Ok")
IF sm_booklet_druck = 1 THEN DO
ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet1.dvi"
sm_papierumdreh = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
"den Schacht zur
ck, da
sie richtig bedruckt" || NL ||,
"werden. Fertig?", "_Ja|_Nein")
IF sm_papierumdreh = 0 THEN DO
sm_file = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
"t:SM_Booklet2.out geschrieben werden?" || NL ||,
"(Das kannst Du dann sp
ter mal ausdrucken, indem" || NL ||,
"Du es nach PAR: kopierst.)","_Ja|_Nein")
IF file = 1 THEN DO
ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet2.dvi OUT=t:SM_Booklet2.out"
END
END
IF sm_papierumdreh = 1 THEN DO
ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet2.dvi"
END
/* Normales Ausdrucken mit DVIprint ohne Booklet-Erstellung */
IF ausgabeart = "NOBOOKLET" THEN DO
IF seite = "ONESIDE" THEN DO
ADDRESS COMMAND "dviprint t:TelListe.dvi"
IF seite = "TWOSIDE" THEN DO
ADDRESS COMMAND "dviprint ODD t:TelListe.dvi"
papierumdreh2 = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
"den Schacht zur
ck, da
sie richtig bedruckt" || NL ||,
"werden. Fertig?", "_Ja|_Nein")
IF papierumdreh2 = 0 THEN DO
file2 = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
"t:ListeGerade.out geschrieben werden?" || NL ||,
"(Das kannst Du dann sp
ter mal ausdrucken, indem" || NL ||,
"Du es nach PAR: kopierst.)","_Ja|_Nein")
IF file2 = 1 THEN DO
ADDRESS COMMAND "dviprint EVEN t:TelListe.dvi OUT=t:ListeGerade.out"
END
IF file2 = 0 THEN DO
ADDRESS COMMAND "dviprint EVEN t:TelListe.dvi"
END
END
/* Programmende */
/* ----------------------------------------------------------------------
UNTERPROGRAMM: Zeile Schreiben
---------------------------------------------------------------------- */
DruckZeile:
text = STRIP(text,"T"," ") /* Leerzeichen am Ende entfernen */
text = STRIP(text,"T",",") /* Kommas am Ende entfernen */
pp = POS("&",text)
DO WHILE pp > 0
text = INSERT("\",text,pp-1)
pp = POS("&",text,pp+2)
END;
pp = POS("#",text)
DO WHILE pp > 0
text = INSERT("\",text,pp-1)
pp = POS("#",text,pp+2)
END;
pp = POS("%",text)
DO WHILE pp > 0
text = INSERT("\",text,pp-1)
pp = POS("%",text,pp+2)
END;
IF text ~= "" THEN /* Wenn Zeile nicht leer... */
ok = WRITELN(datei,text) /* Zeile ausgeben */
RETURN