Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.erols.net!feed1.news.erols.com!insync!Gamma.RU!srcc!news.uni-stuttgart.de!news.urz.uni-heidelberg.de!german From: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer) Newsgroups: de.comp.text.tex,de.answers,news.answers Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 9 of 11) Supersedes: Followup-To: de.comp.text.tex Date: 3 Feb 1997 11:28:06 GMT Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V. Lines: 330 Approved: news-answers-request@MIT.EDU Distribution: world Expires: 20 Mar 97 12:27:57 Message-ID: References: Reply-To: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer) NNTP-Posting-Host: sun.dante.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Summary: This posting contains a list of Frequently Asked Questions (and their answers) about the typesetting system TeX and about DANTE e.V., the german-speaking TeX users group. It is in German and uses the ISO Latin-1 character set. Keywords: FAQ TYPESETTING TeX USERGROUP DANTE Originator: german@sun.dante.de Xref: senator-bedfellow.mit.edu de.comp.text.tex:290 de.answers:1036 news.answers:93726 Posted-By: auto-faq 3.3 beta (Perl 5.003) Archive-name: de-tex-faq/part9 Posting-Frequency: monthly Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1 URL: http://www.dante.de/dante/dante-faq.html Fragen und Antworten (FAQ) über das Textsatzsystem TeX und ~~~~~~~~~~~~~~~~~~ DANTE, Deutschsprachige Anwendervereinigung TeX e.V. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Version 24 vom Februar 1997) === Teil 9: Metafont und Schriften == 9.1) METAFONT und METAFONT-Tools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9.1.1) Was ist ein Meta-Font? Um die einzelnen Zeichen einer Schrift, eines Font, auf Papier zu bringen, muß man wissen, an welchen Stellen das Papier mit Druckerfarbe geschwärzt werden soll und an welchen nicht. Diese Information kann auf verschiedene Arten repräsentiert werden: Die einfachste Form ist die `Bitmap' bzw. `Pixelmap', d.h. jedes Zeichen wird gerastert und für jeden einzelnen Punkt im Raster (= Pixel) wird abgespeichert, ob diese Stelle geschwärzt werden soll. Eine Bitmap-Repräsentation hat jedoch den Nachteil, daß man diese nicht ohne weiteres vergrößern, verkleinern oder die Rasterung an eine andere Auflösung eines Ausgabegeräts anpassen kann, da man in den meisten Fällen unerwünschte Seiteneffekte bekommt (Stufen, Moiré-Effekte, dünnere Linien verschwinden bei Verkleinerung, als regelmäßig oder unregelmäßige Muster sichtbare Rasterung, u.ä.). Man verwendet zur Beschreibung der Ausmaße und der Form eines Zeichens daher besser eine rasterungs-, also auflösungsunabhängige Repräsentation. Dazu gibt es nun mehrere Verfahren: In METAFONT legt man Linienzüge durch Punkte und durch diese Punkte festgelegte Spline-Kurven fest und zieht diese mit einem vorher definierten ``Pinsel'' nach. Durch die Form und die Lage des verwendeten Pinsels können mit denselben Kurven sehr unterschiedliche Zeichenformen erzeugt werden. Nachdem das Zeichen aus einzelnen Kurvenzügen definiert und mit unterschiedlichen Pinseln gezeichnet wurde, rastert METAFONT die dadurch eingefärbten Flächenteile und erzeugt daraus einen Font in Form einer Bitmap. Da METAFONT zur Programmierung einer solchen Font-Beschreibung eine Programmiersprache definiert, kann ein Font-Designer einer Font-Beschreibung beliebig viele Parameter mitgeben, die die Form und Ausmaße der einzelnen Zeichen der erzeugten Schrift in unterschiedlichen Richtungen verändern. Wegen dieser Möglichkeit, aus einer einzigen Beschreibung durch Wahl verschiedener Parameter viele verschiedene Schriften erzeugen zu können, nennt man diese Font-Beschreibungen auch `Meta-Font'. Man kann also durch Wahl der in einem Meta-Font definierten Parameter unterschiedliche Fonts in verschiedenen Größen erzeugen. Durch Angabe der gewünschten Auflösung und weiterer Parameter des Ausgabegeräts kann wiederum für einen solchen Font eine optimal an das jeweilige Ausgabegerät angepaßte Bitmap-Wiedergabe dieses Fonts erzeugt werden. Neben dieser von METAFONT verwendeten Beschreibung eines Fonts in Form von mit Pinseln gezeichneten Spline-Kurven kann man die Form eines Zeichens auch durch die Angabe des Umrisses der zu schwärzenden Fläche beschreiben. Auch hier werden wiederum Spline-Kurven zur Beschreibung der Umrisse eines Zeichens verwendet. Diese Beschreibung in Form eines sogenannten `Outline' wird beispielsweise in PostScript-Schriften verwendet. 9.1.2) Was sind tfm-, pl-, gf-, pk-, pxl-Dateien? Neben dem Aussehen der einzelnen Zeichen in einem Font werden noch weitere Informationen über jedes einzelne Zeichen und über schrift-globale Parameter benötigt: Von jedem Zeichen muß TeX die Ausmaße in Form von Breite, Höhe und Tiefe in Bezug zur Grundlinie wissen. Zu bildende Ligaturen (z.B. f+f => ff), das Kerning zwischen zwei Zeichen (z.B. Unterschneidung bei `Ta') und beispielsweise der zu verwendende Wortabstand sind weitere Informationen, die über einen Font abgelegt sein müssen, da sie von TeX benötigt werden. Diese Informationen liest TeX aus der `TeX Font Metric' oder kurz tfm-Datei. Die Tools `pltotf' und `tftopl' wandeln die Informationen in einer tfm-Datei in eine lesbare Form, die `Property List' oder kurz pl-Datei um. In den gf- (Generic Font), pxl- (Pixel) und pk- (Packed Pixel) Dateien sind die Bitmap-Repräsentationen jedes Zeichens einer Schrift abgelegt. Da pk- und pxl-Dateien genau dieselben Informationen enthalten, die pxl-Dateien jedoch mehr Platz benötigen, werden diese heutzutage nicht mehr verwendet und unterstützt. Mit den Tools `gftopk' und `pktogf' können die Bitmap-Repräsentationen ineinander umgewandelt werden. Da gf-Dateien in der Lage sind, in einer Bitmap neben den einzelnen Pixeln noch weitere Informationen zu enthalten (z.B. `special'-Anweisungen), können bei dieser Umwandlung Informationen verloren gehen. Da jedoch nur sehr wenige Tools und Gerätetreiber diese zusätzlichen Informationen verwenden und die pk-Darstellung viel kompakter ist, sind gf-Dateien normalerweise nur für METAFONT wichtig. METAFONT erzeugt aus einer mf-Source eine tfm-Datei mit der auflösungs_un_abhängigen `TeX Font Metric' und eine auflösungs- abhängige gf-Datei. Aus der gf-Datei wird üblicherweise mit `gftopk' eine pk-Datei erzeugt. TeX verwendet nur die Informationen in der tfm-Datei, die Bitmap in der gf- bzw. der pk-Datei wird von TeX _nicht_ gelesen. Ein Gerätetreiber, der eine dvi-Datei druckt oder darstellt, verwendet die pk-Dateien und in einigen Fällen auch die tfm-Datei. 9.1.3) Was sind virtuelle Fonts, was vpl-, vf-Dateien? Ein virtueller Font ist, wie der Name schon sagt, eine Schrift, die keine real (in Form einer Bitmap) existierenden Zeichen enthält. Stattdessen wird in einem virtuellen Font auf andere Schriften und die dort enthaltene Zeichen verwiesen. Durch diesen `Trick' kann man beispielsweise die Kodierung der Zeichen in einer Schrift umdefinieren oder eine Schrift aus Zeichen mehrerer Schriften zusammensetzen, um so z.B. einzelne Zeichen durch andere zu ersetzen. Darüberhinaus kann man in virtuellen Fonts auch einzelne Zeichen aus mehreren Zeichen zusammensetzen, indem man beispielsweise fertig akzentuierte Zeichen aus dem entsprechenden Akzent- und Basiszeichen bildet. Eine weitere Anwendung für virtuelle Fonts ist die Verwendung einer Ersatzschrift für eine nicht verfügbare Schrift, die dieser möglichst nahekommt und dieselben TeX-Font-Metric-Informationen besitzt. Eine vf-Datei enthält die Definition eines solchen virtuellen Fonts in binärer, sehr kompakter Form. Dieser vf-Datei muß eine tfm-Datei zugeordnet sein, in der TeX die `TeX Font Metric' für diese Schrift finden kann. Eine vpl-Datei ist eine für den Menschen lesbare Darstellung der vf- und tfm-Datei in Form von `Property Lists'. Mit dem Tool `vptovf' kann aus einer vpl-Datei eine vf- und die zugehörige tfm-Datei erzeugt werden, mit `vftovp' bekommt man aus diesen beiden Dateien wieder die vpl-Datei. TeX `weiß' nichts von virtuellen Fonts. TeX liest keine vf-Dateien, sondern benötigt nur die zugehörige tfm-Datei, aus der nicht ersichtlich ist, ob dies ein `realer' oder ein virtueller Font ist. vf-Dateien werden nur von den Gerätetreibern verwendet. Für Treiber, die (noch) keine virtuellen Fonts unterstützen, kann das Tool `dvicopy' verwendet werden, um eine dvi-Datei in eine dvi-Datei umzuwandeln, in der alle virtuellen Fonts `aufgelöst' worden sind, also nur noch `reale' Fonts verwendet werden. Achtung: Die meisten verfügbaren virtuellen Fonts sind unabhängig vom Ausgabegerät, sie können jedoch auch abhängig vom Ausgabegerät sein! *9.1.4) Was ist MetaPost? MetaPost ist ein aus METAFONT abgeleitetes Programm zum Erstellen von PostScript-Zeichnungen, das von John Hobby, einem ehemaligen Mitarbeiter von Donald E. Knuth, entwickelt wurde. Die MetaPost- Sprache ist sehr eng verwandt mit METAFONT, unterstützt aber einige zusätzliche Features, wie beispielsweise das Beschriften von Abbildungen in TeX über einen Präprozessor (dies setzt den dvi-Treiber `dvips' voraus). Um eine Zeichnung zu erstellen, muss man ein MetaPost-Programm schreiben und compilieren. Diese Arbeitsweise ähnelt METAFONT, ist somit eben ganz anders als die sonst gewohnten Grafik-/Malprogramme. MetaPost ist dafür aber gut für berechnete Zeichnungen geeignet oder zum Plotten von Funktionen oder Datenwerten. Knuth benutzt es selbst für Zeichnungen in seinen Büchern. MetaPost-Implementierungen existieren derzeit noch nicht für alle Plattformen, da das Programm erst seit Anfang 1995 frei erhältlich ist (vorher nur nach Abschluß eines `non-disclosure agreements'): - Unix: CTAN: graphics/metapost/ (Original: John Hobby) beruht auf web2c 5.8xx, setzt den web2c Konverter voraus, ansonsten eigenständig, nicht integriert - teTeX (Unix): CTAN: systems/unix/teTeX/ teTeX-0.4 enthält MetaPost - Web2C: CTAN: graphics/metapost/contrib/systems/web2c/ (Ulrik Vieth) demnächst in web2c-7.0 enthalten - Amiga: CTAN: systems/amiga/amiweb2c/ (Andreas Scherer) - DOS: CTAN: systems/msdos/metapost/ (Piet van Oostrum) passt zu emTeX CTAN: systems/msdos/dostp21/ (Peter Breitenlohner) integriert in PubliC (e-)TeX/MF/MP, TDS-kompatibel - OS2: CTAN: graphics/metapost/MetaPost4OS2/ (???) 9.1.5) Beim Übersetzen einer mf-Datei erhalte ich immer eine gf-Datei mit Endung `.2602gf' (bzw. `.260' bei Filesystemen, die nur drei Zeichen als Datei-Extension zulassen). Wieso? Zur Erzeugung einer Schrift für ein bestimmtes Ausgabegerät benötigt METAFONT eine Beschreibung in Form einer `Mode Definition' (kurz: `mode_def'), in der u.a. die Auflösung des Ausgabegeräts festgelegt wird. METAFONT wird meist mit mf \mode:=; mag:=; input aufgerufen (unter Unix Quote-Zeichen ' um die Argumente im MF-Aufruf nicht vergessen!), wobei mit der Namen einer solchen `mode_def' anzugeben ist. Wird kein `mode' angegeben oder ist unbekannt, verwendet METAFONT den Proof-Mode, der einen Korrekturabzug der Schrift erstellt. Damit die Zeichen in diesem Korrekturabzug groß genug sind, verwendet METAFONT dazu die Auflösung 2602 dpi (= `dots per inch'). Falls dies nicht erwünscht war, sollte man überprüfen, ob der `mode' korrekt gesetzt wurde, ob beispielsweise korrekt angegeben wurde (Schreibfehler!) und ob bei der Erstellung der base-Datei (`Dumpen' der Datei ``plain.mf'') mit `mode_def' definiert wurde. 9.1.6) Wozu benötige ich für jeden Druckertyp eine andere Anpassung in Form einer `mode_def'? Wo finde ich für den Drucker XYZ eine solche Anpassung? Jedes Ausgabegerät hat unterschiedliche Charakteristiken. Zum einen unterscheiden sie sich in der Auflösung, zum anderen beispielsweise auch in der Größe eines gezeichneten Pixels. So wird bei einem Tintenstrahldrucker im Vergleich zu einem Laserdrucker in den meisten Fällen ein einzelner Punkt etwas größer ausfallen. Sehr große Unterschiede treten prinzipbedingt beim Vergleich von sogenannten `schwarz'- und `weiß'-schreibenden Laserdruckern auf. Auch wird beim Schnitt zweier Kurven (z.B. in der Mitte des Zeichens `X') die geschwärzte Fläche etwas größer ausfallen, da die Druckerfarbe abhängig vom Druckprinzip und vom Druckwerk mehr oder weniger ineinander verlaufen kann. Damit METAFONT all diese und weitere Eigenschaften eines Ausgabegeräts bei der Erzeugung der Bitmap- Rasterung eines Zeichens in Betracht ziehen kann, werden die einzelnen Parameterwerte für ein Ausgabegerät in einer `Mode Definition' mit der Anweisung `mode_def' abgelegt. Da die Erstellung einer neuen `Mode Definition' für ein Ausgabegerät einiges an Arbeit (Testdruck, überprüfen, anpassen, Testdruck, usw.) bedeutet, wurden von Karl Berry alle bisher für verschiedene Ausgabegeräte gefundenen `Mode Definitions' in der Datei ``modes.mf'' gesammelt. Da ``modes.mf'' neben den `Mode Definitions' noch dafür sorgt, daß man verschiedene Informationen (z.B. `coding scheme') über einen Font setzen kann und diese korrekt abgelegt werden, ist diese Datei jedem empfohlen. modes.mf: CTAN: fonts/modes/modes.mf (Hinweis: Seit 8. Januar 1996 existiert Version 3.0 mit neuer `mode_def' für Hires-Fax, HP Laserjet 5 u.a.; seit 12. Oktober 1996 existiert Version 3.1 mit Epson SQ, Epson Stylus Pro u.a.; seit November 1996 Version 3.2) 9.1.7) Kann ich aus einer vorhandenen tfm-Datei die mf-Source erzeugen? Gibt es dafür ein Tool? Nein. tfm-Dateien enthalten keine Bitmap- oder ähnliche Information über das Aussehen der Zeichen in einer Schrift. Daher kann aus einem tfm-File weder eine pk-Datei noch die mf-Source restauriert werden. Es ist jedoch möglich, aus einer pk- und der tfm-Datei einer Schrift eine mf-Source zu erstellen. Dabei ist das entstehende Resultat jedoch kein _Meta_-Font mehr, sondern `nur' noch ein mf-Programm für genau diese Schrift. Das Ergebnis ist je nach Aufwand mehr oder weniger gut und verlangt in den meisten Fällen noch einiges an Handarbeit, sodaß sich der Aufwand nur in seltenen Fällen lohnt. 9.1.8) Wie kann ich nur die tfm-Dateien einer Schrift erzeugen? In der Datei ``modes.mf'' ist dafür die Mode-Definition `nullmode' gedacht, in der neben der tfm- zwar auch eine gf-Datei erzeugt wird, jedoch in einer Auflösung von 101dpi, so daß dies schneller als mit 300dpi oder 600dpi geschieht. 9.2) Schriften -- allgemein ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9.2.1) Gibt es eine Schrift XYZ? Wo finde ich diese? Als erste Informationsquelle sollte man die Liste `metafont-list' der verfügbaren METAFONT-Schriften nach der gesuchten Schrift durchsehen. Diese Liste enthält eine kurze Beschreibung und Klassifikation der meisten Schriften, die man auf CTAN im Verzeichnis ``fonts/'' finden kann. Beschränkt man sich nicht nur auf in METAFONT-Quellen vorhandene Schriften, kann man auch Schriften in PostScript-Type-1- oder Type-3-Form, PCL-Schriften u.a. auf verschiedenen ftp-Servern finden. Existieren für diese Schriften Font-Metriken, die man in eine tfm-Datei umwandeln kann, sind sie sehr einfach unter (La)TeX verwendbar (evtl. nach Umkodierung mittels virtueller Fonts). Verschiedene Tools dafür findet man auf CTAN im Verzeichnis ``fonts/utilities/'', fertige Anpassungen findet man für weitverbreitete Schriften ebenso unter ``fonts/''. metafont-list: CTAN: info/metafont-list 9.2.2) Gibt es eine Schönschrift/Handschrift? Mit `calligra' gibt es eine kalligraphische Schrift, eine schön ausgeführte Schmuckschrift, die leider noch kleinerer Verbesserungen (falsche Abstände vor Großbuchstaben und ß, fehlender Bindestrich) bedürfte. `calligra' verwendet die Kodierung `T1'. Um korrekte Akzente und Umlaute zu erhalten, muß man in LaTeX2e deshalb auf \fontencoding{T1} wechseln! Eine weitere Schrift ist die `twcal', die ursprünglich auf der vereinfachten Ausgangsschrift `va' basiert, jedoch durch viele Änderungen und Ligaturen weichere, durchgezogene Übergänge erhalten hat. calligra: CTAN: fonts/calligra/ twcal: CTAN: fonts/twcal/ 9.2.3) Ich suche eine Sütterlin, Fraktur, Schwabacher, Gotische Schrift. Yannis Haralambous hat einen Satz dieser altdeutschen Schriften auf der Tagung EuroTeX'91 in Cork/Irland vorgestellt. Neben den reinen Brotschriften hat er auch noch mit der Schrift `yinit' große Initialen als Schmuckschrift hinzugefügt. Die Einbindung dieser Schriften ist für LaTeX2e im Paket `oldgerm', das Bestandteil von `mfnfss' ist, enthalten. Zu der Sütterlin-Schrift `suet14' und ihrer schräggestellten Variante `schwell' wurde in der Newsgroup `de.comp.tex' (dem damaligen Vorgänger von `de.comp.text.tex') angemerkt: ``Die Fonts sehen wirklich klasse aus. Allerdings hat das kleine `a' keinen Kringel (Schleifchen) rechts oben, was es nach Brockhaus und alten Schulunterlagen haben sollte. Auch das `k' scheint etwas abzuweichen.'' Y.H.: CTAN: fonts/gothic/{yfrak,yswab,ygoth,yinit}/ mfnfss: CTAN: macros/latex/packages/mfnfss/ (LaTeX2e) cmfrak: CTAN: fonts/gothic/cmfrak/ sueterlin/schwell: CTAN: fonts/gothic/sueterlin/ 9.2.4) Gibt es die lateinische bzw. die vereinfachte Ausgangsschrift, mit der man das Schreiben in der ersten Klasse begonnen hat? la: CTAN: fonts/la/ va: CTAN: fonts/va/ --- DE-TeX-FAQ Ende Teil 9 ---