home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Top 1
/
os2_top1.zip
/
os2_top1
/
APPS
/
TEKST
/
TEXDISK
/
MFWARE2.ZIP
/
EMTEX
/
DOC
/
GERMAN
/
MFJOB.DOC
Wrap
Text File
|
1990-09-24
|
14KB
|
361 lines
==============================================================================
MFJOB.DOC für MFjob 1.1f VERSION: 25.09.1990
==============================================================================
Programm zum automatischen Ausrechnen von Zeichensätzen mit METAFONT,
GFtoPXL und GFtoPK. In einer Datei (mfj-Datei) wird angegeben, welche
Zeichensätze in welchen Größen für welche Geräte zu erzeugen sind.
Aufruf
======
mfjob <mfj-Datei> [<Optionen>] [<makro>=<definition>]
mfjob /s [<Optionen>]
<mfj-Datei>:
Name der mfj-Datei (Standarderweiterung: mfj).
<Optionen>:
/2 Es wird die METAFONT-Version für 80286-Prozessor aufgerufen
(mf286.exe oder bmf286.exe statt mf.exe oder bmf.exe). Diese
Option kann nicht unter OS/2 verwendet werden. Siehe auch /b.
/a Alle Zeichensätze erzeugen (Voreinstellung: nur nicht-existierende
erzeugen).
/b Es wird bigMETAFONT statt der Standardversion aufgerufen
(bmf.exe, bmf286.exe oder bmfp.exe statt mf.exe, mf286.exe oder
mfp.exe). Siehe auch /2.
/d Expanded Memory wird nicht verwendet (nur unter DOS).
Diese Option wird an METAFONT weitergereicht.
/i Von METAFONT gelieferte Fehler ignorieren. Wenn METAFONT einen Fehler
erkennt, liefert es einen Fehlercode, der von 0 verschieden ist.
Ohne Angabe von /i wird dann auch MFjob beendet. Bei kleinen
Auflösungen treten jedoch Fehler häufiger auf, z.B. `strange path'
oder `Bad pos'. Um MFjob unbeaufsichtigt arbeiten zu lassen,
sollte deshalb /i angegeben werden. Wenn bei Verwendung von /i
METAFONT einen Fehlercode liefert, der von 0 verschieden ist,
wird die von METAFONT erzeugte Datei an die Datei mfjob.log im
Arbeitsverzeichnis angehängt und weitergemacht. Wenn Sie MFjob
abbrechen wollen, während METAFONT läuft, müssen Sie zunächst mit ^C
METAFONT unterbrechen, mit X beenden und dann mit ^C MFjob abbrechen.
Ohne /i geht es einfacher, da METAFONT bei Abbruch mit ^C und X
den Fehlercode 2 liefert und damit auch MFjob beendet.
/l Low priority (nur OS/2). Diese Option wird an METAFONT weitergereicht.
/m Master (für Netzwerk). [nicht implementiert]
/n Keine Zeichensätze erzeugen, nur Liste der Kommandos ausgeben.
/pv[:][=]<Laufwerk>
Laufwerksbuchstabe für voreingestellte Verzeichnisse. Wird außerdem
an METAFONT weitergereicht.
/s Slave (für Netzwerk). [nicht implementiert]
<makro>=<definition>:
Makro definieren. Siehe unten.
Aufbau der mfj-Datei
====================
Es können Kommentare verwendet werden, diese werden mit einem % eingeleitet.
Der Rest der Zeile wird dann ignoriert. Ausnahme: Innerhalb von eckigen
Klammern [...] wird durch % kein Kommentar eingeleitet.
Eine minimale mfj-Datei kann wie folgt aussehen:
-------------------------------------------------------------------------------
%
% minimal.mfj
%
{
font=cmr10;
mag=1;
mode=hplaser[300];
output=pk[c:\emtex\pixel.lj\$rdpi];
}
-------------------------------------------------------------------------------
Diese Datei enthält einen BLOCK, der durch eine öffnende geschweifte
Klammer begonnen wird und durch eine schließende beendet wird.
Außerhalb eines Blockes können keine DEKLARATIONEN (außer Makro-Definition)
angegeben werden. Blöcke dürfen geschachtelt werden. Alle Deklarationen
innerhalb eines Blocks wirken sich nicht auf außerhalb aus, werden jedoch an
weiter innen liegende Blöcke vererbt. Nun zu den Deklarationen:
font=
fonts=
Hiermit werden die Namen der Zeichensätze angegeben, die berechnet
werden sollen. Die einzelnen Namen werden durch Leerzeichen
(oder Zeilenende) getrennt. Am Ende muß ein Semikolon angegeben werden.
Die font-Deklaration fügt die angeführten Zeichensätze zu den
auszurechnenden hinzu. In den Zeichensatznamen können folgende
Spezialzeichen verwendet werden:
? Paßt auf ein beliebiges Zeichen.
* Paßt auf den Rest des Namens.
# Paßt auf eine bis beliebig viele Ziffern.
mag=
mags=
Hiermit wird eingestellt, in welchen Vergrößerungen (magnifications)
die Zeichensätze berechnet werden sollen. Es können Gleitpunktzahlen
zwischen 0.1 und 1000 angegeben werden. Für die üblicherweise
verwendeten Vergrößerungsstufen (magsteps) stehen Abkürzungen
zur Verfügung: s0 bedeutet 1.0, s1 bedeutet 1.2, s2 bedeutet 1.44,
usw. bis s9=5.159780352. Außerdem steht sh für 1.095445115.
Die einzelnen Vergrößerungen werden durch Leerzeichen getrennt,
am Ende der Liste muß ein Semikolon stehen. Die mag-Deklaration
fügt die Vergrößerungen zu den bisher angegebenen hinzu.
mode=
Hiermit wird eingestellt, für welches Gerät die Zeichensätze
ausgerechnet werden sollen. Hierzu ist der mode-Name (wie in
local.mf definiert) gefolgt von der horizontalen Auflösung (in DPI)
in eckigen Klammern anzugeben. Ein Semikolon schließt die
Deklaration ab. Die mode-Deklaration ersetzt die vorige
mode-Einstellung. Pro Block können also nur für ein Gerät
Zeichensätze erzeugt werden (jedoch können Blöcke geschachtelt
werden, siehe unten).
output=
Hiermit wird eingestellt, welche Dateitypen erzeugt werden sollen
und wohin diese Dateien geschrieben werden sollen. Es gibt die
folgenden Dateitypen:
pxl pxl-Datei (mit GFtoPXL erzeugt).
pk pk-Datei (mit GFtoPK erzeugt).
gf gf-Datei (von METAFONT erzeugt).
log log-Datei (von METAFONT erzeugt).
tfm tfm-Datei (von METAFONT erzeugt).
Nach dem Dateityp ist in eckigen Klammern anzugeben, in welches
Verzeichnis die Dateien dieses Typs zu schreiben sind. Dabei können
folgende Spezialsequenzen benutzt werden:
%r oder $r Auflösung des Gerätes (mode) in DPI.
%s oder $s PXL-Zeichensatzgröße (Auflösung*5).
Mehrere Dateitypen werden durch Leerzeichen getrennt, am Ende
der Liste steht ein Semikolon.
Es werden nur die Dateien erzeugt, die in einer output-Deklaration
aufgeführt sind (oder vielmehr: tfm-, gf-, und log-Dateien werden
gelöscht, falls nicht in einer output-Deklaration aufgeführt).
Die output-Deklaration ersetzt die alten Angaben für die einzelnen
Dateitypen.
base=
Hiermit wird für die FOLGENDEN font-Deklarationen eingestellt,
welche METAFONT base benutzt werden soll. Üblicherweise wird
base=cm oder base=plain verwendet, zu Beginn der äußersten
Blöcke ist base=cm eingestellt. Die base-Deklaration ersetzt
die vorige Einstellung. Die Deklaration wird durch ein Semikolon
abgeschlossen.
Am Ende eines jeden Blockes, der keine weiteren Blöcke enthält,
werden die eingestellten Zeichensätze mit den eingestellten
METAFONT bases in den eingestellten Vergrößerungen für das
eingestellte Gerät für die Erzeugung der eingestellten Dateitypen
vorgemerkt. Nach dem Lesen der mfj-Datei beginnt dann die Erzeugung
aller vorgemerkten Zeichensätze. Wenn die A-Option nicht verwendet
wird, werden nur die Zeichensätze erzeugt, die noch nicht existieren
(wenn nur die log-Datei fehlt, wird ein Zeichensatz nicht ausgerechnet).
Das folgende Beispiel erzeugt die Zeichensätze cmr10 und cmbx10
(nur pk-Dateien) in den Vergrößerungen 1 und 1.2 für den HP LaserJet+
und den EPSON FX-80.
-------------------------------------------------------------------------------
%
% beispiel.mfj
%
{
fonts=cmr10 cmbx10;
mags=s0 s1;
{
mode=hplaser[300];
output=pk[c:\emtex\pixel.lj\pxl$s];
}
{
mode=epsonfx[240];
output=pk[c:\emtex\pixel.fx\pxl$s];
}
}
-------------------------------------------------------------------------------
Einfügen von Dateien
====================
Mit
input [name];
Wird die mfj-Datei `name' an dieser Stelle eingefügt.
Makros
======
Makros werden über die Kommandozeile (siehe oben) oder durch
def makro=[definition];
redef makro=[definition];
definiert. Bei mehrfacher Definition eines Makros durch `def' wird
die allererste Definition (z.B. in der Kommandozeile) benutzt.
Makrodefinitionen mit `redef' ersetzen immer die alte Definition,
wobei die alte Version erst dann weggeworfen wird,
wenn sie nicht mehr gebraucht wird. Beispiel:
def x=[mag=2;redef x=[mag=4;];mag=3;x;mag=5];
x;
Dies expandiert zu: mag=2;mag=3;mag=4;mag=5
Makros werden nur außerhalb [...] expandiert. Da über die Kommandozeile
keine Makros definiert werden können, die Leerzeichen enthalten, werden
Kommata bei Makrodefinitionen in der Kommandozeile in Leerzeichen umgewandelt.
Beispiel:
-------------------------------------------------------------------------------
%
% x.mfj
%
input [modes];
def s=[1];
def f=[cmr10];
{
fonts=f; mags=s; m;
}
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
%
% modes.mfj
%
def lj=[mode=hplaser[300]; output=pk[c:\newfonts\pixel.lj\%rdpi]; tfmlog];
def fx=[mode=epsonfx[240]; output=pk[c:\newfonts\pixel.fx\%rdpi]; tfmlog];
def mx=[mode=epsonmx[120]; output=pk[c:\newfonts\pixel.mx\%rdpi]; tfmlog];
def lql=[mode=lqlores[180]; output=pk[c:\newfonts\pixel.p6l\%rdpi]; tfmlog];
def lqm=[mode=lqmedres[360]; output=pk[c:\newfonts\pixel.p6m\%rdpi]; tfmlog];
def lqh=[mode=lqhires[360]; output=pk[c:\newfonts\pixel.p6h\%rdpi]; tfmlog];
def ito=[mode=itoh[160]; output=pk[c:\newfonts\pixel.ito\%rdpi]; tfmlog];
def kyo=[mode=kyocera[300]; output=pk[c:\newfonts\pixel.lj\%rdpi]; tfmlog];
def FAX=[mode=fax[204]; output=pk[c:\newfonts\pixel.fax\%rdpi]; tfmlog];
def qj=[mode=hpquiet[192]; output=pk[c:\newfonts\pixel.qj\%rdpi]; tfmlog];
def m=[lj];
def tfmlog=[output=tfm[c:\newfonts\tfm] log[c:\newfonts\log];];
-------------------------------------------------------------------------------
Aufruf:
mfjob x s=s0,s1 f=cmbx10,cmti10 m=fx
Beachten Sie, daß in modes.mfj `fax' und `FAX' unterschieden werden!
Hinweise
========
Die Optionen /m und /s (für Netzwerk) sind noch nicht implementiert.
Die Bedeutung soll folgende sein: Auf genau einem Rechner wird
MFjob mit /m gestartet, auf allen anderen mit /s. Die Arbeit wird
dann auf alle beteiligten Rechner verteilt. Die MFjob-Programme mit
/s lesen nicht die mfj-Datei sondern nur die von MFjob mit /m
erzeugte temporäre Datei.
Die Zeichensatzdateien werden zuerst im Arbeitsverzeichnis,
dann in den durch die Environment-Variable MFINPUT definierten
Verzeichnissen gesucht. Wenn die Environment-Variable MFINPUT nicht
gesetzt ist, wird zusätzlich zum Arbeitsverzeichnis das Verzeichnis
`\emtex\mfinput' durchsucht. Mit der Environment-Variablen EMTEXDRV
oder der Kommandozeilenoption /pv kann ein Laufwerk für \emtex\mfinput
eingestellt werden: Bei Angabe von
set emtexdrv=e
oder
mfjob /pv:e ...
wird e:\emtex\mfinput und e:\emtex\mfjob verwendet. Ohne diese Angaben
wird \emtex\mfinput und \emtex\mfjob (auf dem selektierten Laufwerk)
durchsucht.
MFjob besteht aus drei Programmen: mfjob.exe, mfjob1.ovl, mfjob2.ovl.
Zusätzlich zu METAFONT werden gftopk.exe und gftopxl.exe benötigt. Für
METAFONT wird die folgende Datei benutzt:
MFjob-Aufruf | DOS | OS/2
------------------+------------+-------------
MFjob | mf.exe | mfp.exe
MFjob /2 | mf286.exe | --
MFjob /b | bmf.exe | bmfp.exe
MFjob /2 /b | bmf286.exe | --
METAFONT schreibt die Ausgabedateien ins Arbeitsverzeichnis.
Außerdem benutzt MFjob eine temporäre Datei im Arbeitsverzeichnis.
Deshalb ist vor dem Start von MFjob in ein geeignetes temporäres Verzeichnis
zu wechseln. Gleichzeitig aktive MFjob-Programme (Netzwerk oder OS/2)
müssen in verschiedenen Verzeichnissen laufen.
Die mfj-Dateien werden zuerst im angegebenen Verzeichnis
(falls vorhanden) gesucht, dann im Arbeitsverzeichnis, dann
in den mit der Environment-Variable MFJOB eingestellten
Verzeichnissen (mehrere Verzeichnisse werden durch Strichpunkte getrennt)
und schließlich in \emtex\mfmjob (mit dem mit EMTEXDRV oder /pv
eingestellten Laufwerksbuchstaben) gesucht.
Bei Verwendung von /i werden METAFONT-log-Dateien im Fehlerfalle an
die Datei mfjob.log im Arbeitsverzeichnis angehängt. Falls diese
Datei noch nicht existiert, wird sie angelegt.
Änderungen
==========
Version 1.1a:
-------------
- Fehler bei `input' beseitigt.
- Environment-Variable MFJOB.
Version 1.1b:
-------------
- Das Verzeichnis \emtex\mfinput wird nicht mehr durchsucht, wenn
die Environment-Variable MFINPUT gesetzt ist.
Version 1.1c (21.02.90):
------------------------
- Das Zeichen `_' kann nun verwendet werden (z.B. bei mode=).
Version 1.1d (05.06.90):
------------------------
- Neue Option: /i zum Ignorieren der METAFONT-Fehlercodes.
- Neue Option: /2 bewirkt Verwendung der 286-Version von METAFONT.
- Neue Option: /b bewirkt Verwendung von bigMETAFONT.
- Neue Option: /d wird an METAFONT weitergegeben.
- mfjob1.exe und mfjob2.exe wurden in mfjob1.ovl und mfjob2.ovl umbenannt.
Version 1.1e (16.07.90):
------------------------
- mfj-Dateien werden zusätzlich in \emtex\mfjob gesucht.
- Neue Option: /pv (Laufwerk für \emtex\mfinput und \emtex\mfjob).
- Die Environment-Variable EMTEXDRV wird beachtet (Laufwerk für
\emtex\mfinput und \emtex\mfjob).
Version 1.1f (25.09.90):
------------------------
- Ausgabe von `======...' nach der Bearbeitung eines Zeichensatzes.