DECLARE SUB FontMapErzeugen ()
DECLARE SUB VPtoVFLauf ()
DECLARE SUB PLtoTFLauf ()

CLS

FontMapErzeugen
PLtoTFLauf
VPtoVFLauf

END

SUB FontMapErzeugen

' Mit Hilfe von afm2tfm die Fontnamen aller im Unterverzeichnis
' enthaltenen FontDateinamen ermitteln
' und in eine tempor�re Datei fonts.tmp schreiben:

IF DIR$("fonts.tmp") <> "" THEN
  KILL "fonts.tmp"
END IF

AFMDatei$ = DIR$("*.afm")           ' AFM-Dateien ermitteln
KB$ = LCASE$(LEFT$(AFMDatei$, 3))   ' Karl-Berry-Name (die ersten 3 Buchstaben)
DO                                  '
  AFMDatei$ = LCASE$(AFMDatei$)    ' Kleinschreibung sicherstellen
  Punkt = INSTR(AFMDatei$, ".")
  TFMDatei$ = LEFT$(AFMDatei$, Punkt) + "tfm"
  Befehl$ = "afm2tfm " + AFMDatei$ + " " + TFMDatei$ + " >>fonts.tmp"  ' afm2tfm in einer DOS-Shell ausf�hren
  SHELL Befehl$                    ' Fontnamen ermitteln
  KILL TFMDatei$                   ' *.tfm-Datei l�schen (Befehl evtl. �berfl�ssig)
  AFMDatei$ = DIR$                 ' n�chste *.afm-Datei im Unterverzeichnis
LOOP WHILE AFMDatei$ <> ""

' ***************************************************************

OPEN "fonts.tmp" FOR INPUT AS #1
OPEN "fonts.map" FOR OUTPUT AS #2

DO
  LINE INPUT #1, Zeile$
  Lz = INSTR(Zeile$, " ")    ' Trennstelle zwischen Datei- und Fontname
  Dateiname$ = LEFT$(Zeile$, Lz - 1)
  Fontname$ = RIGHT$(Zeile$, LEN(Zeile$) - Lz)

  ' Informationen f�r Non-Slanted Fonts schreiben:
  SELECT CASE LCASE$(RIGHT$(Dateiname$, 2))
     CASE "8a"   ' Non-Condensed Font
        AchtrEncDateiname$ = LEFT$(Dateiname$, LEN(Dateiname$) - 2) + "8r"
     CASE "an"   ' Condensed Font
        AchtrEncDateiname$ = LEFT$(Dateiname$, LEN(Dateiname$) - 2) + "rn"
  END SELECT
  PRINT #2, AchtrEncDateiname$ + " " + Fontname$ + " "; CHR$(34) + "TeXBase1Encoding ReEncodeFont" + CHR$(34) + " <[8r.enc <" + Dateiname$ + ".pfb"

  ' Informationen f�r Slanted Fonts schreiben:
  SELECT CASE LCASE$(AchtrEncDateiname$)  ' Slanted Fonts f�r Non-Condensed
     CASE KB$ + "a8r", KB$ + "i8r", KB$ + "l8r", KB$ + "k8r", KB$ + "r8r", KB$ + "m8r", KB$ + "d8r", KB$ + "s8r", KB$ + "b8r", KB$ + "c8r", KB$ + "h8r", KB$ + "x8r", KB$ + "u8r"
     AchtrEncSlDateiname$ = LEFT$(AchtrEncDateiname$, LEN(AchtrEncDateiname$) - 2) + "o8r"
     PRINT #2, AchtrEncSlDateiname$ + " " + Fontname$ + " "; CHR$(34) + ".167 SlantFont TeXBase1Encoding ReEncodeFont" + CHR$(34) + " <[8r.enc <" + Dateiname$ + ".pfb"
  END SELECT
  SELECT CASE LCASE$(AchtrEncDateiname$)  ' Slanted Fonts f�r Condensed
     CASE KB$ + "a8rn", KB$ + "i8rn", KB$ + "l8rn", KB$ + "k8rn", KB$ + "r8rn", KB$ + "m8rn", KB$ + "d8rn", KB$ + "s8rn", KB$ + "b8rn", KB$ + "c8rn", KB$ + "h8rn", KB$ + "x8rn", KB$ + "u8rn"
     AchtrEncSlDateiname$ = LEFT$(AchtrEncDateiname$, LEN(AchtrEncDateiname$) - 3) + "o8rn"
     PRINT #2, AchtrEncSlDateiname$ + " " + Fontname$ + " "; CHR$(34) + ".167 SlantFont TeXBase1Encoding ReEncodeFont" + CHR$(34) + " <[8r.enc <" + Dateiname$ + ".pfb"
  END SELECT

LOOP WHILE NOT EOF(1)
CLOSE

IF DIR$("fonts.tmp") <> "" THEN
  KILL "fonts.tmp"
END IF
PRINT "Fonts.map erzeugt"

END SUB

SUB PLtoTFLauf

PLDatei$ = DIR$("*.pl")
IF PLDatei$ = "" THEN
  CLS
  PRINT
  PRINT "No PL files available yet."
  PRINT "Please run 'TeX fontinst' first!"
  PRINT
  PRINT "Program aborted"
  END
END IF

DO
  PLDatei$ = LCASE$(PLDatei$)
  Punkt = INSTR(PLDatei$, ".")
  TFMDatei$ = LEFT$(PLDatei$, Punkt) + "tfm"
  Befehl$ = "pltotf " + PLDatei$ + " " + TFMDatei$
  SHELL Befehl$
  PLDatei$ = DIR$
LOOP WHILE PLDatei$ <> ""

END SUB

SUB VPtoVFLauf

VPLDatei$ = DIR$("*.vpl")
DO
  VPLDatei$ = LCASE$(VPLDatei$)
  Punkt = INSTR(VPLDatei$, ".")
  VFDatei$ = LEFT$(VPLDatei$, Punkt) + "vf"
  TFMDatei$ = LEFT$(VPLDatei$, Punkt) + "tfm"
  Befehl$ = "vptovf " + VPLDatei$ + " " + VFDatei$ + " " + TFMDatei$
  SHELL Befehl$
  VPLDatei$ = DIR$
LOOP WHILE VPLDatei$ <> ""

END SUB