--- DE-TeX-FAQ Beginn Teil 1 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
Dieser Text enthält häufig gestellte Fragen und passende Antworten zum
Textsatzsystem TeX und zu DANTE e.V.
Er kann über beliebige Medien frei verteilt werden, solange er
unverändert bleibt (inklusive dieses Hinweises). Die Autoren bitten bei
Verteilung über gedruckte Medien, über Datenträger wie CD-ROM u.ä. um
Zusendung von mindestens drei Belegexemplaren.
Anregungen, Ergänzungen, Kommentare und Bemerkungen zur FAQ senden Sie
bitte per E-Mail an `dete...@dante.de'
------------------------------------------------------------------------
Inhalt
1 Allgemeines
1.1 Über diese FAQ (*)
1.2 CTAN, das `Comprehensive TeX Archive Network'
1.3 Newsgroups und Diskussionslisten (*)
2 Anwendervereinigungen, Tagungen, Literatur
2.1 DANTE e.V.
2.2 Anwendervereinigungen
2.3 Tagungen (*)
2.4 Literatur (*)
3 Textsatzsystem TeX - Übersicht
3.1 Grundlegendes
3.2 Welche TeX-Formate gibt es? Was ist LaTeX?
3.3 Welche TeX-Weiterentwicklungen gibt es? (*)
4 Textsatzsystem TeX - Bezugsquellen
4.1 Wie bekomme ich ein TeX-System?
4.2 TeX-Implementierungen (+)
4.3 Editoren, Frontend-/GUI-Programme (*)
5 TeX, LaTeX, Makros etc. (I)
5.1 LaTeX - Grundlegendes
5.2 LaTeX - Probleme beim Umstieg von LaTeX 2.09
5.3 (Silben-)Trennung, Absatz-, Seitenumbruch
5.4 Seitenlayout, Layout allgemein, Kopf- und Fußzeilen (*)
6 TeX, LaTeX, Makros etc. (II)
6.1 Abbildungen und Tafeln (+)
6.2 Tabellen (+)
6.3 Fußnoten, Endnoten etc.
6.4 Grafiken, Bilder, Farbe und andere Effekte (*)
7 TeX, LaTeX, Makros etc. (III)
7.1 Gliederung, Inhalts-, Abbildungs- und andere Verzeichnisse (+)
7.2 Literaturzitate, Literaturverzeichnis, BibTeX
7.3 \verb-Anweisung, verbatim- und Kommentar-Umgebungen
7.4 Zerbrechliche Anweisungen in `moving arguments'
8 TeX, LaTeX, Makros etc. (IV)
8.1 Verschiedene Zeichen (+)
8.2 Mathematischer Formelsatz (+)
8.3 Chemischer Struktur- und Formelsatz (*)
8.4 Notensatz (*)
8.5 Verschiedenes (+)
9 METAFONT und Schriften
9.1 METAFONT und METAFONT-Hilfsprogramme
9.2 Schriften - allgemein (+)
10 METAFONT und Schriften (Fortsetzung)
10.1 Die `EC'-Schriftfamilie und andere T1-kodierte Schriften
10.2 PostScript-Type-1-Schriften (*)
10.3 TrueType-Schriften
11 Tools und Utilities
11.1 Tools zur Manipulation von dvi-Dateien
11.2 Syntax-Checker
11.3 Dokument-Konverter von bzw. in das (La)TeX-Markup-Format (*)
11.4 TeX-Benutzungsoberflächen und Editoren
11.5 dvi-Treiber - Druckertreiber und Previewer
11.6 Zeichenprogramme
------------------------------------------------------------------------
Neu hinzugekommene Abschnitte oder Abschnitte mit neuen Fragen und
Antworten sind durch ein Plus-Zeichen (+), Abschnitte mit geänderten
Fragen und Antworten sind durch ein Sternchen (*) markiert. Geringfügige
Textänderungen durch Korrektur von Ausdrucks- oder Rechtschreibfehlern
sind nicht markiert.
1 Allgemeines
1.1 Über diese FAQ (*)
1.1.1 Entstehung und Erstellung (*)
Diese deutschsprachige FAQ (``frequently asked questions'' = Liste mit
häufig gestellten Fragen und Antworten) wurde durch die in der Newsgroup
`de.comp.text.tex' regelmäßig auftauchenden Fragen ``Was ist DANTE
e.V.?'', ``Was ist ``Die TeXnische Komödie''?'', ``Wie kann ich Mitglied
werden?'', ``Was kostet eine Mitgliedschaft?'' geboren. Aus diesem Grund
besteht ein Teil der FAQ aus Fragen über DANTE e.V. und den
entsprechenden Antworten. Aus der ca. 14KB großen, zweiteiligen ersten
Version vom 6. November 1995 ist innerhalb von zwei Monaten zuerst eine
vier-, dann eine achtteilige, ca. 90KB große FAQ-Liste entstanden, die
ab Oktober 1996 auf elf Teile angewachsen ist und mittlerweile eine
Größe von ca. 280KB Text erreicht.
Bis 1998 wurde die FAQ nur als reine Textversion gepflegt und
veröffentlicht. Im Oktober 1997 hat Rolf Niepraschk den Text der FAQ zur
weiteren Verarbeitung mit Hyperlatex umgesetzt, so daß daraus sowohl
eine Textversion der FAQ als auch Versionen in HTML- und anderen
Formaten generiert werden kann. Die Hyperlatex-Eingabe wurde in den
Folgemonaten von Fehlern befreit und erste Testversionen ab Februar 1998
veröffentlicht. In dieser Zeit erfolgte die Pflege der offiziellen
Textversion und der Test-Hyperlatex-Quelle parallel. Im April 1999 stand
schließlich die 50. Ausgabe dieser FAQ der Öffentlichkeit in
verschiedenen Formaten zur Verfügung, die aus einer einzigen
Hyperlatex-Quelle erzeugt wurden.
Die DVI-, PostScript- und PDF-Versionen werden mit einem üblichen
teTeX-System erzeugt. Für die PDF-Version kommt pdfTeX zusammen mit dem
Paket `hyperref' zum Einsatz. Als Dokumentklasse finden die
Koma-Script-Klassen Verwendung.
Aus derselben Eingabequelle erstellt Hyperlatex die HTML-Version. Die
leider sehr beschränkten Möglichkeiten von Hyperlatex zur Generierung
eines Stichwortverzeichnisses wurden von einem der Autoren der FAQ
erweitert, da der Index für eine FAQ hilfreiche Dienste leisten kann.
Die Textversion wurde bis Version 57 (November 1999) mit Lynx aus einer
speziell angepaßten HTML-Version erstellt. Im Dezember 1999 wechselten
wir mit Version 58 von Lynx auf html2text, das auch HTML-Tabellen
verarbeiten kann.
Um diese Vielzahl von Zielformaten zu ermöglichen, besteht die
Eingabequelle der FAQ aus einer Menge von Treiberdateien, die für jedes
Format die notwendigen Deklarationen und Makro-Definitionen enthalten
und den eigentlichen Dateien mit den Fragen und Antworttexten. Das
Stichwortverzeichnis wird durch entsprechend definierte
Markup-Anweisungen für Pakete, Klassen, Schriften etc. automatisch und
durch viele weitere von uns manuell vorgenommene Eintragungen generiert.
1.1.2 Erscheinungsweise
Die Textversion der FAQ wird regelmäßig zur Monatsmitte in die
Newsgroups `de.comp.text.tex', `de.answers' und `news.answers'
verschickt. Die FAQ besteht aus mehreren Teilen, wobei jeder Teil ohne
News-Header nicht länger als ca. 32KB ist.
1.1.3 Copyright
Copyright © 1995-2000 B. Raichle, R. Niepraschk, Th. Hafner
Dieser Text kann über beliebige Medien frei verteilt werden, solange er
vollständig und unverändert bleibt (zusammen mit diesem Hinweis). Die
Autoren bitten allerdings bei Verteilung über gedruckte Medien, über
Datenträger wie CD-ROM u.a. um Zusendung von mindestens drei
Belegexemplaren.
In diesem Werk werden eingetragene Warenzeichen, Handelsnamen und
Gebrauchsnamen verwendet. Auch wenn diese nicht als solche
gekennzeichnet sind, gelten die entsprechenden Schutzbestimmungen.
1.1.4 Archivierung
Eine Kopie kann man über das World-Wide-Web (WWW) in
http://www.dante.de/faq/de-tex-faq/
finden.
Da die FAQ in die Newsgroups `de.answers' und `news.answers' verschickt
wird, kann man die neueste Version in dem weltweiten FAQ-Archiv
ftp://rtfm.mit.edu/pub/usenet/news.answers/de-tex-faq/ und allen
Spiegeln dieses Archivs, u.a. den ftp-Servern des CTAN (siehe Abschnitt
1.2) in CTAN: help/de-tex-faq/ oder in CTAN: usergrps/dante/de-tex-faq/,
finden. Die Dateien auf diesen ftp-Servern kann man sich auch mit Hilfe
eines ftp-Mailer über E-Mail zuschicken lassen (siehe Frage 1.2.4).
1.1.5 Verwendete Abkürzungen
Wird im Zusammenhang mit ftp-Adressen
CTAN: XXX
geschrieben, so ist dies als
ftp://ftp.dante.de/tex-archive/XXX
zu lesen. Statt ftp.dante.de kann auch jeder andere CTAN-Server
verwendet werden, wobei im Interesse einer geringeren Belastung des
Internet in Deutschland bevorzugt der deutsche CTAN-Server oder einer
seiner deutschen Spiegel genutzt werden sollte (siehe Frage 1.2).
1.1.6 Verwendete Kodierung:
Die Autoren schreiben den Text in ISO Latin-1 (ISO 8859-1) und
verschicken ihn mit entsprechendem MIME-Mail-Header, so daß er von
korrekt konfigurierten Programmen problemlos und automatisch in andere
Kodierungen konvertiert werden kann.
Erhalten Sie diesen Text mit unlesbaren Umlauten und trägt ein
fehlerhaft konfiguriertes Gateway die Schuld daran, könnten Sie dies zum
Anlaß nehmen, die Verwalter der Gateways zu überreden, deren
Konfiguration zu korrigieren. Und bitte vorher überprüfen, ob nicht die
eigene Software, beispielsweise der eigene Newsreader an den unlesbaren
Umlauten Schuld trägt! Einen Artikel mit fehlerhaft kodierten Umlauten
kann man mit Hilfsprogrammen, wie `recode' (in jedem guten GNU-Archiv zu
finden) oder `charconv' in vielen Fällen korrigieren. Dazu folgt hier
eine Referenzliste der Umlaute und des scharfen s:
Ae Oe Ue ae oe ue ss ('e 'i 'o)
Ä Ö Ü ä ö ü ß ( é í ó)
1.1.7 Mitwirkende an dieser FAQ
Aktiv mitgewirkt haben bisher:
Bernd Raichle, Thomas Hafner, Luzia Dietsche, Ulrik Vieth, Matthias G.
Berberich, Olaf Kummer, Michael Wolf, Martin Schröder, Markus Kohm,
Marion Neubauer, em, Petra Humann, Ulrich Kuckert, Martin Mattel,
Wilfried Hennings, Karl Eichwalder, Anselm Lingnau, Jörg Knappen, Werner
Icking, Heinz Kusznier, Alexander Bugl, Jürgen Dollinger, Tilmann Böß,
Sebastian Kirsch, Ralph Schleicher, Marcus Otto, Ralf Gärtner, Rolf
Herzog, Reinhard Zierke, Klaus Höppner, Rainer Dorsch, Marcus Ohlhaut,
Günter Partosch, Andreas Schlechte, Heiko Nock, Tilman Raible, Hartmut
Goebel, Werner Liebscher, Lutz Pogrell, Hartmut Schirmer, Andreas Frick,
Tobias Burnus, Walter Schmidt, Christine Waigl, Helmut Geyer, Karl F.
Banke, Heinrich Goetzger, Peter Wyzlic, Rolf Niepraschk, Björn Lorenz,
Ronald G. Wichern, Thomas Behrens, Thomas Neumann, Stefan Ulrich,
Christoph Wutzke, Jörg Schulz, Klaus Dahlenberg, Axel Reichert, Karl
Heinz Marbaise, Karsten Tinnefeld, Schorsch Slickers, Martin Sander,
Thomas Pothmann, Hans Steffani, Werner Lemberg, Colin Marquardt, Michael
Streichsbier, Daniel Büchner, Thorsten Hansen, Michael Fischer von
Mollard, Norbert Roth, Thomas Henlich, Jens Berger, Jan Theofel, Arash
Esbati.
Herzlichen Dank für die bisher eingesandten Fragen und Korrekturen! Wir
hoffen, daß wir niemanden vergessen haben. Dank auch an diejenigen, die
uns etwas geschickt haben, die ihre Einsendung jedoch noch nicht in
dieser FAQ wiederfinden. Wir bitten um Verständnis, daß wir leider nie
die notwendige Zeit haben, sofort alle Einsendungen zu bearbeiten.
1.1.8 Ihre Mitarbeit ist erwünscht!
Eine FAQ ist nie fertiggestellt; es gibt immer etwas zu tun:
* Korrekturlesen
Finden Sie falsche, fehlerhafte oder fehlende Querbezüge oder Verweise
auf ftp-Server, Literatur u.ä., korrigieren Sie fehlerhafte oder
unvollständige Antworten, verbessern Sie Rechtschreib- und
Ausdrucksfehler.
* Neuerungen/Updates
Überprüfen und ergänzen Sie die Listen, wie beispielsweise die
Übersicht der verfügbaren TeX-CD-ROM-Angebote, der
TeX-Implementierungen etc. Stimmen die Angaben, gibt es neuere
Versionen oder neue Angebote, sind Angebote veraltet bzw. vom Markt
genommen worden?
* Erweiterungen
Haben Sie eine neue Frage und die dazugehörige Antwort? Haben Sie
einen Vorschlag, wie man eine Antwort kürzer bzw. knapper formulieren
kann? Hinweise auf andere FAQ, Artikel, Übersichten etc.
Bitte senden Sie uns _keine_ Fragen ohne Antworten! Wir bekommen relativ
häufig Fragen zu verschiedenen Dingen zugeschickt, da einige Leser
hoffen, daß wir diese beantworten können. Meist lautet unsere Antwort:
``Wende Dich an `de.comp.text.tex' oder eine der vielen anderen
Newsgroups oder Diskussionslisten!''. Es ist auch keine Lösung, uns dann
zu bitten, diese Frage weiterzuleiten - das kann jeder ebensogut selbst
tun.
Anregungen, Ergänzungen, Korrekturen, Verbesserungsvorschläge, neue
Fragen und Antworten senden Sie bitte per E-Mail an
`dete...@dante.de'
Danke schon jetzt im voraus!
Bernd Raichle
Rolf Niepraschk
Thomas Hafner
1.2 CTAN, das `Comprehensive TeX Archive Network'
1.2.1 Was ist CTAN?
CTAN steht für `Comprehensive TeX Archive Network'. Dies ist ein Verbund
von z.Z. drei Rechnern im Internet. Hierauf ist fast alles, was mit TeX
zu tun hat, zu finden. Die Server gleichen ihre Dateien untereinander
ab, so daß Sie auf jedem der drei Rechner dieselben Dateien finden
können. Dadurch ist es gleichgültig, wo Sie die Dateien holen. Sie
sollten aber bedenken, daß es am günstigsten ist, die Dateien bei dem
Server zu holen, der Ihnen am nächsten ist. Dies ist für den
deutschsprachigen Raum der von DANTE e.V. finanzierte ftp-Server
ftp.dante.de /tex-archive/ (Mainz)
Die beiden anderen ftp-Server sind
ftp.tex.ac.uk /tex-archive/ (Cambridge, UK)
ctan.tug.org /tex-archive/ (Vermont, USA)
Diese drei Rechner sind auch über die Namen `dante.ctan.org',
`cam.ctan.org' und `tug.ctan.org' erreichbar.
Neben diesen drei Rechnern, die das Rückgrat des CTAN bilden, existieren
viele weitere ftp-Server, die den kompletten CTAN-Inhalt oder Teile
davon `spiegeln'. Die aktuelle Liste dieser ftp-Server finden Sie in der
Datei ``CTAN.sites'' auf einem der CTAN-Server im Verzeichnis
``/tex-archive/''. Im deutschsprachigen Raum sind dies u.a. (Stand:
Juli 2000):
ftp.univie.ac.at /packages/tex/ (Wien, A)
gd.tuwien.ac.at /publishing/tex/CTAN/ (Wien, A)
sunsite.cnlab-switch.ch /mirror/tex (Zürich,
CH)
ftp.uni-augsburg.de /pub/tex/ctan/ (Augsburg)
ftp.uni-bielefeld.de /pub/tex/
(Bielefeld)
ftp.tu-chemnitz.de /pub/tex/ (Chemnitz)
ftp.gwdg.de /pub/dante/
(Göttingen)
ftp.informatik.uni-hamburg.de /tex-archive (Hamburg)
ftp.uni-mainz.de /tex-archive (Mainz)
ftp.mpi-sb.mpg.de /pub/tex/mirror/ftp.dante.de/
(Saarbrücken)
ftp.uni-stuttgart.de /pub/tex/
(Stuttgart)
1.2.2 Wieso liegen auch Dateien, die zu einem Paket gehören, auf CTAN
als Einzeldateien und nicht in gepackten Archivdateien?
Die ftp-Server des CTAN und einige der ftp-Server, die den Inhalt von
CTAN spiegeln, sind in der Lage, alle Dateien eines Verzeichnisses
zusammenzupacken und `on-the-fly' zu komprimieren. Um herauszufinden,
welche Archivarten der von Ihnen benutzte Server unterstützt, lesen Sie
die Mitteilung, die Sie erhalten, wenn Sie den Server direkt ansprechen.
Möchte man alle Dateien des Verzeichnisses
``tex-archive/macros/latex/base/'' bekommen, reicht es, in das
übergeordnete Verzeichnis zu wechseln und eine der Endungen ``.tar'',
``.tar.gz'' oder ``.zip'' an den Namen des Verzeichnisses zu hängen. Um
alle Dateien im Verzeichnis als tar- oder ZIP-Datei zu erhalten:
ftp> cd tex-archive/macros/latex
ftp> bin
ftp> get base.tar.gz
oder
ftp> get base.zip
Bei Verwendung eines WWW-Browsers durch Eingabe der Adresse (URL)
ftp://ftp.dante.de/tex-archive/macros/latex/base.tar.gz
oder
ftp://ftp.dante.de/tex-archive/macros/latex/base.zip
1.2.3 Wie suche ich auf CTAN nach der Datei `XYZ'? Ich kann ein Paket
mit Endung `.sty' nicht finden.
Um nach einer Datei zu suchen, die im Namen beispielsweise `multicol'
enthält, kann man bei den ftp-Servern des CTAN (und einigen
Spiegel-ftp-Server) in der ftp-Sitzung die Anweisung
ftp> quote site index multicol
eingeben. Der Suchbegriff ist dabei ein regulärer Ausdruck, d.h. alle
besonderen Zeichen, wie das Zeichen `.', müssen mit einem doppelten
Backslash gequotet werden. Will man beispielsweise nach der Datei
``caption.sty'' suchen, so sollte man
ftp> quote site index /caption\\.
eingeben. Der führende Slash `/' und abschließende gequotete Punkt `.'
schränkt die Ergebnisliste stark ein. Außerdem führt die Suche nach
LaTeX-Paketen mit `.sty' nicht immer zum Ziel, da neuere Pakete meist in
docstrip-Archivdateien mit der Dateiendung `.dtx' eingepackt vorliegen.
Weitere Informationen findet man auf CTAN in den Dateien
``README.archive-features'' und ``README.site-commands''.
Eine ähnliche Möglichkeit, per WWW-Browser nach Dateien auf CTAN zu
suchen, bieten die Adressen
http://www.dante.de/cgi-bin/ctan-index
und
http://www.ctan.org/find.html
1.2.4 Wie kann ich ohne Internet-Anschluß auf CTAN zugreifen?
Falls Sie keinen Internet-Anschluß haben, können Sie auf den ftp-Server
auch über E-Mail mit Hilfe eines sogenannten `ftp-Mailer' zugreifen.
Beachten Sie bitte, daß bei unachtsamer Nutzung sehr große Datenmengen
verschickt werden können und die dazu notwendigen Ressourcen
(Übertragungszeit, Speicherplatz) zur Verfügung stehen müssen. Außerdem
sollten Sie daran denken, daß eventuell die Betreiber von
`Zwischenknoten', über die Ihre E-Mail weitergeleitet wird, für Ihre
übertragene Datenmenge mitzahlen müssen! Die Nutzung eines ftp-Mailer
ist im Maus-Netz nicht gestattet.
Weitere Informationen über den ftp-Mailer und die zu benutzenden
Anweisungen erhalten Sie mit einer E-Mail an `ftp...@dante.de' mit dem
Inhalt ``help''.
1.3 Newsgroups und Diskussionslisten (*)
1.3.1 Was ist `de.comp.text.tex'? (*)
`de.comp.text.tex' ist die Newsgroup im deutschsprachigen Teil des
Usenet (bitte nicht mit Internet verwechseln!) zur Diskussion über TeX
und verwandte Themen. Die Newsgroup `de.comp.text.tex' wird durch
sogenannten Import auch in anderen Netzen angeboten. Um entsprechende
Rücksichtname (kurze Postings, keine Binärdateien etc.) wird gebeten.
Weiterhin sollte auf folgendes geachtet werden:
* Verwendung einer korrekten Absenderadresse.
* Keinen Text in HTML-Kodierung sondern nur in Textformat versenden
(kann leicht in den üblichen Mail-Programmen so eingestellt werden).
* Keine ``Visitenkarten'' anhängen.
* Signaturangaben auf 4 Zeilen beschränken und mit der Zeile ``-- ''
einleiten.
* Die Verwendung von Umlauten und scharfem s in der Subject-Zeile
vermeiden.
* Bei Antworten sollte man die Subject-Zeile standardgemäß mit `Re: '
einleiten und nicht, wie man es leider immer häufiger sieht, mit
Übersetzungen wie `AW: ' oder durchnumerierten Konstruktionen
`Re[2]: '.
Weitere nützliche Hinweise enthält die Newsgroup `de.newusers.infos'
sowie die WWW-Seite ``Wie zitiere ich im Usenet?''.
Wie zitiere ich im Usenet?: http://learn.to/quote
1.3.2 Was ist TeX-D-L?
TeX-D-L ist eine E-Mail-Diskussionsliste, die zur Kommunikation zwischen
Benutzern des Satzsystems TeX vor über einem Jahrzehnt eingerichtet
wurde. Die Diskussionssprache ist Deutsch.
Man kann sich auf dieser Liste mit einer E-Mail an
`list...@listserv.gmd.de'
eintragen. Diese Mail sollte die Zeile
subscribe tex-d-l <Vorname> <Nachname>
enthalten, wobei man für <Vorname> <Nachname> den eigenen Namen angeben
muß. Die Liste kann man verlassen, indem man in einer E-Mail die Zeile
``unsubscribe tex-d-l'' an die Adresse `list...@listserv.gmd.de'
schickt. Eine kurze Befehlsübersicht über die Bedienmöglichkeiten des
Programms, das die Liste verwaltet, erhält man mit der Zeile ``help'',
eine längere Beschreibung mit ``info''. Die Beiträge zur Liste sind in
Teilen unter CTAN: digests/tex-d-l/ archiviert. Mit der Zeile ``index
TEX-D-L'' erhält man eine Liste von Archiven älterer Beiträge, die mit
``get filename NAME'' angefordert werden können.
Über http://www.listserv.gmd.de/htbin/wa.exe?SUBED1=TEX-D-L&A=1 hat man
die Möglichkeit, sich mittels WWW-Browser in die Liste ein- oder
auszutragen.
Für die Art der versendeten E-Mails gilt ebenso das im vorigen Abschnitt
zur Newsgroup `de.comp.text.tex' gesagte.
1.3.3 Was ist ``#tex''?
``#tex'' ist ein Channel im _Internet Relay Chat_ (IRC), in dem
interaktiv über TeX, LaTeX und Konsorten diskutiert wird. Meist wird
deutsch gesprochen, Diskussionen auf englisch sind jedoch kein Problem.
Der Channel ist im allgemeinen rund um die Uhr besetzt, wenn auch nicht
immer mit der gleichen Aktivität.
1.3.4 Gibt es noch weitere interessante Diskussionslisten zum Satzsystem
TeX?
Ja - solche, die sich nur mit dem Satzsystem TeX beschäftigen oder auf
eine bestimmte Implementierung, Verteilung oder einen bestimmten Teil
konzentrieren. In allen unten genannten Diskussionslisten ist, falls im
Kommentar nichts Gegenteiliges steht, Englisch die gemeinsame Sprache.
In die nachstehenden Diskussionslisten trägt man sich wie folgt ein:
Falls die Verwaltungsadresse vom Typ `listserv@...' ist, so trägt man
sich mit einer Mail mit `subscribe <Listenname> <Vorname> <Nachname>' an
die angegebene Verwaltungsadresse ein. Für Verwaltungsadressen des Typs
`majordomo@...' muß die Angabe des eigenen <Vornamen> und <Nachnamen>
unterbleiben, in Ihrer Mail sollte also nur die Zeile `subscribe
<Listenname>' stehen.
Aus einer Liste kann man sich mit der Mail `unsubscribe <Listenname>' an
die Verwaltungsadresse `listserv@...' bzw. `majordomo@...' austragen.
Achtung: Diese Anweisungen nicht an die Listenadresse selbst schreiben,
da man sich damit nicht austrägt; im Gegenteil würde Ihre Mail dann an
_alle_ Listenteilnehmer weiterverteilt werden!
Allgemeine Listen über das Satzsystem TeX
* CTAN-Ann - Ankündigungen zu Neuerwerbungen und Änderungen auf CTAN
(`list...@urz.uni-heidelberg.de').
* TeX-Euro - europäische TeX-Diskussionsliste
(`list...@urz.uni-heidelberg.de').
* TeXhax - TeX-Diskussionsliste in Digest-Form
(`TeXhax-...@tex.ac.uk' - subscribe texhax); wird u.a. unter
http://www.tex.ac.uk/tex-archive/digests/hyper/ und
CTAN: digests/texhax/ archiviert.
* Ling-TeX - Linguistik und TeX (`Ling-TeX...@ifi.uio.no')
siehe auch: http://www.ifi.uio.no/~dag/ling-tex.html.
Formate und Makropakete
* LaTeX-L - über die Entwicklung von LaTeX3, jedoch _nicht_ für Fragen
zu LaTeX! (`list...@urz.uni-heidelberg.de')
* ntg-context - ConTeXt-Forum: Fragen, Ankündigungen, Fehler
(`majo...@ntg.nl')
* ntg-ppchtex - Chemischer Formelsatz mit PPCHTeX (`majo...@ntg.nl')
* pstricks - über PSTricks, ein TeX-Makro-Paket, welches die Nutzung
vieler Möglichkeiten der PostScript-Sprache in einer TeX-Syntax
anbietet (`pstricks...@mail.tug.org' oder über
http://www.tug.org/cgi-bin/lwgate/pstricks).
* mutex - Notensatz unter TeX mit MuTeX, MusicTeX, MusiXTeX, etc.
(`majo...@gmd.de'); wird unter http://www.gmd.de/Mail/mutex-archive/
archiviert.
* xindy - über Xindy, den Makeindex-Nachfolger
(`xindy-...@iti.informatik.tu-darmstadt.de').
* latex2html - über LaTeX2HTML, einen Konverter nach HTML
(`majo...@tug.org'); wird unter
http://www.xray.mpe.mpg.de/mailing-lists/latex2html/ archiviert.
TeX-Implementierungen und -Verteilungen
* tetex-announce - teTeX Users: nur Ankündigungen, keine Diskussion,
besonders geeignet für diejenigen, die ohnehin schon genug Mail
bekommen, bzw. Fragen und Antworten lieber in Newsgroups wie
`de.comp.text.tex' diskutieren möchten
(`majo...@informatik.uni-hannover.de')
* tetex - Ankündigungen, Fragen und Antworten zu teTeX
(`majo...@informatik.uni-hannover.de')
* tetex-pretest - Fragen und Antworten zur neuesten, noch nicht
offiziellen Version von teTeX (`majo...@informatik.uni-hannover.de')
* fptex - Ankündigungen, Fragen und Antworten zu fpTeX (Win32)
(`majo...@tug.org')
* miktex - Ankündigungen, Fragen und Antworten zu MikTeX (Win32)
(`majo...@dsts.dk')
* 4TeX - 4TeX/4allTeX: eine TeX-Workbench für MS-DOS-Rechner
(`list...@nic.surfnet.nl').
* emtex-user - Diskussionen über emTeX (`Majo...@Physik.TU-Berlin.de')
* oztex-info - über OzTeX, ein TeX-System für Apple Macintosh
(`majo...@maths.adelaide.edu.au').
* oztex-announce - OzTeX: nur Ankündigungen neuer Versionen
(`majo...@maths.adelaide.edu.au').
* ntex - NTeX, a TeX System for Linux and other Unix Systems
(`ntex-r...@machnix.mathematik.uni-stuttgart.de')
* tex-k - Support für web2c/kpathsea/xdvik/dvipsk/dviljk Users
(`majo...@tug.org')
* lyx-users - Support für Nutzer von LyX, einer WYSIWYG-ähnlichen
Oberfläche, das LaTeX als Satzsystem verwendet
`lyx-user...@kde.org')
* lyx-announce - Ankündigungen zu Neuerungen bei LyX
(`majo...@via.ecp.fr')
* lyx - Diskussion zur Weiterentwicklung von LyX
(`majo...@via.ecp.fr')
* klyx - Support für Nutzer von KLyx, einer Lyx-Implementierung, die an
den KDE-Desktop angepaßt ist (`klyx-r...@kde.org')
* ntg-vtex - Diskussionen zum kommerziellen TeX-System `VTeX';
(`majo...@ntg.nl')
Erweiterungen an TeX
* NTS-L - über die Idee eines ``New Typesetting System'', eines
Nachfolgers des TeX-Systems (`list...@urz.uni-heidelberg.de').
* Omega - über Omega, ein weiterer TeX-Nachfolger (`list...@ens.fr').
* pdftex - über die Entwicklung und Benutzung von PDFTeX
(`majo...@tug.org').
* ntg-toekomsttex- Liste der niederländischen `TeX future group', in der
über Erweiterungen am TeX-System diskutiert wird
(`majo...@let.uu.nl').
METAFONT und Schriften
* Metafont - über METAFONT, METAPOST und Meta-Fonts (`list...@ens.fr').
* tex-fonts - (`tex-font...@math.utah.edu', nicht mehr erreichbar)
* fontinst - (`fontinst...@cogs.susx.ac.uk')
* math-font-discuss - (`math-font-di...@cogs.susx.ac.uk')
Umfeld
* typo-l - über Typografie (`list...@irlearn.ucd.ie')
* sgml-l - über SGML (`list...@urz.uni-heidelberg.de')
und vieles mehr.
1.3.5 Gibt es noch weitere interessante Newsgroups zum Satzsystem TeX?
Ja - solche, die sich nur mit dem Satzsystem TeX beschäftigen oder die
auf das engere und weitere Umfeld, wie beispielsweise Schriften,
PostScript, Design, Desktop Publishing (DTP) etc. eingehen. In allen
unten genannten Newsgroups ist, wenn im Kommentar nichts Gegenteiliges
steht, Englisch die gemeinsame Sprache.
Allgemeine Listen über das Satzsystem TeX
* `comp.text.tex' - das Gegenstück zu `de.comp.text.tex' im
internationalen Bereich.
Umfeld
* `comp.fonts'
* `comp.programming.literate'
* `comp.lang.postscript'
* `comp.text.sgml'
* `comp.text.xml'
und vieles mehr.
1.3.6 Gibt es noch weitere FAQ-Listen?
* UK TUG TeX FAQ - ``Your 100+x Questions answered'' (in englisch).
Von der UK TUG wurde die frühere FAQ der Newsgroup `comp.text.tex' zur
Veröffentlichung in `Baskerville' (siehe Frage 2.2.2) neu bearbeitet
und stark ergänzt. Die FAQ ist im dvi-, ps- und pdf-Format, jedoch
nicht immer in der neuesten Version, in CTAN: usergrps/uktug/faq/ zu
finden. Außerdem gibt es eine HTML-Version, die nach Begriffen
durchsucht werden kann.
* LaTeX-FAQ der Newsgroup `fr.comp.text.tex' (in französisch).
Diese FAQ wird monatlich gepostet und ist ca. 150KB groß. Sie wird
(noch) nicht nach `news.answers' gepostet, man kann sie daher nicht in
den FAQ-Archiven finden. Über WWW und CTAN ist jedoch eine Kopie
verfügbar.
* PDFTeX-FAQ (in englisch),
Oft gestellte Fragen zu PDFTeX, einer Modifikation von TeX, welche in
der Lage ist, Dateien im _Portable Document Format_ der Firma Adobe zu
erzeugen.
* Seminar-FAQ (in englisch).
Oft gestellte Fragen zum LaTeX-Paket `seminar', welches eine Vielzahl
von Möglichkeiten zum Erstellen von Folien bietet.
* PPCHTeX-FAQ (in deutsch).
Oft gestellte Fragen zum PPCHTeX-Paket, welches chemischen Formelsatz
mit TeX ermöglicht.
UK TUG TeX http://www.tex.ac.uk/cgi-bin/texfaq2html?introduction=yes
FAQ:
CTAN: usergrps/uktug/faq/
LaTeX-FAQ http://www.loria.fr/tex/divers.html
française:
CTAN: help/LaTeX-FAQ-francaise/
PDFTeX-FAQ: http://www.tug.org/applications/pdftex/
Seminar-FAQ: http://www.tug.org/applications/Seminar/
PPCHTeX-FAQ: http://www.ntg.nl/context/document.htm
1.3.7 Was sollte ich gelesen haben, bevor ich eine Frage in
`de.comp.text.tex' oder der Diskussionsliste TeX-D-L stelle?
Zuerst: Die Kenntnis der `Netiquette' wird vorausgesetzt; sie ist in
`de.newusers.infos', `de.newusers.questions' oder ersatzweise bei Ihrem
Provider zu erhalten (siehe auch
http://www.netservice.ch/german/netiquette_ger.html).
Die Abschnitte `Bücherliste' und `frei verfügbare (La)TeX-Einführungen'
(siehe Abschnitte 2.4.1 und 2.4.2) enthalten einige Empfehlungen für
Bücher und kostenfrei erhältliche Einführungen und Übersichten, die sehr
viele der häufig gestellten Fragen beantworten. Wenn Sie sich vorläufig
keine Bücher zulegen wollen, sollten Sie dieses Angebot der kostenfrei
erhältlichen Artikel nutzen!
Jedes TeX-System enthält einen Satz Dokumentation, in dem meist nur sehr
kurz ein Überblick über das Satzsystem TeX gegeben wird, bevor auf
spezifische Besonderheiten dieses TeX-Systems eingegangen wird. Bevor
Sie Fragen zu Problemen mit diesem speziellen System stellen, sollten
Sie sicherstellen, ob diese nicht schon durch die mitgelieferte
Dokumentation beantwortet werden. Für einige TeX-Systeme, wie
beispielsweise emTeX, 4TeX/4allTeX (beide OS/2, MS-DOS, Windows), teTeX,
NTeX, web2c/kpathsea (Unix/Linux u.a.) gibt es eigene Diskussionslisten.
Haben Sie ein spezielles Problem mit einem dieser Systeme, sollten Sie
Ihre Frage in der zugehörigen Diskussionsliste stellen.
Bei Problemen mit LaTeX sollten Sie vorher auf alle Fälle den `User
Guide' gelesen haben, der als Datei ``usrguide.tex'' jedem LaTeX-Paket
beiliegen muß. Auch die anderen im LaTeX-Paket enthaltenen `Guides'
enthalten wertvolle Informationen über das sogenannte NFSS zur
Schriftauswahl und Einbindung neuer Schriften (`LaTeX2e font selection',
Datei ``fntguide.tex''), die Erstellung und Änderung von Klassen und
Paketen (`LaTeX2e for class and package writers', Datei
``clsguide.tex''), die Konfiguration (`Configuration options for
LaTeX2e', Datei ``cfgguide.tex'') und erlaubten Änderungen und
Anpassungen (`Modifying LaTeX2e', Datei ``modguide.tex''), weitere
Pakete und Neuerungen (`LaTeX News', Dateien ``ltnews*.tex'').
Für LaTeX finden Sie außerdem noch sehr viele Informationen und Hinweise
auf Makro-Pakete im Buch `Der LaTeX-Begleiter' von Goossens, Mittelbach
und Samarin (siehe Frage 2.4.1) bzw. dem englischen Original `The LaTeX
Companion'. Schlagen Sie bitte zuerst dort nach - Sie werden
feststellen, daß sich dadurch sehr viele Fragen beantworten lassen.
Neben dem Buch `The LaTeX Companion' gibt es auch `The LaTeX Graphics
Companion', in dem Sie wertvolle Hinweise zu Graphikeinbindung,
PostScript-Graphiken, Verwendung von Farbe, der Einbindung von
PostScript-Schriften und Paketen wie XY-Pic oder PSTricks nachlesen
können.
Finden Sie in der verfügbaren Literatur keine Antwort, vergessen Sie
nicht, in Ihrer Frage an die Newsgroup bzw. die Diskussionsliste auch
Ihr Rechnersystem, Betriebssystem, Name der TeX-Implementierung bzw.
-Verteilung, Version der verwendeten Programme, Makros u.ä. zu nennen.
Halten Sie Ihre Frage kurz. Geben Sie ein kurzes, aber vollständiges
Eingabebeispiel, das nur auf die notwendigsten Dateien zugreift.
Entfernen Sie beispielsweise in einem LaTeX-Dokument prinzipiell _alle_
Pakete; belassen Sie dabei nur die Pakete, mit denen Ihr Problem
auftritt; verwenden Sie möglichst nur Standard- oder weit verbreitete
Pakete. So kann man Ihr Problem mit möglichst geringem Aufwand
nachvollziehen, und damit erhöht sich die Wahrscheinlichkeit, daß Ihre
Frage auch beantwortet wird!
--- DE-TeX-FAQ Ende Teil 1 ---
--- DE-TeX-FAQ Beginn Teil 3 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
3 Textsatzsystem TeX - Übersicht
3.1 Grundlegendes
3.1.1 Was ist TeX?
TeX ist ein Textsatzsystem, das von Prof. Dr. Donald E. Knuth entwickelt
wurde.
Der Unterschied zu einer Textverarbeitung ist, daß hier Text nicht nur
verarbeitet, sondern auch gesetzt wird. Dies wird beispielsweise durch
das tiefergestellte E in dem Logo von TeX symbolisiert. Diese
Möglichkeit wird in dem vorliegenden Text durch das
kleingeschriebene `e' angedeutet. Außerdem dient die Schreibweise TeX
zur Unterscheidung von TEX.
Aussprache: TeX wird nicht so ausgesprochen, wie es geschrieben wird!
Aufgrund der griechischen Wurzel `tau epsilon chi' spricht man das `X'
in TeX wie ein ch- oder k-Laut, niemals wie ein `x'. Man spricht: `tech'
wie in Technik.
Persönliche Informationen über Donald E. Knuth, über seine Pläne und
wichtige Hinweise für die Benutzer von TeX und Leser seiner Bücher kann
man auf Knuths WWW-Seite
http://www-cs-faculty.stanford.edu/~knuth/
finden.
3.1.2 Was ist METAFONT?
METAFONT ist wie TeX von Prof. Dr. Donald E. Knuth entwickelt worden. Es
erlaubt die Beschreibung einer Schrift oder einer Schriftfamilie durch
ein Programm, den sogenannten Meta-Font. Aus diesem Meta-Font kann
METAFONT nach Wahl verschiedener Parameter Schriften generieren, die TeX
verwenden kann.
Um mit TeX zu arbeiten, ist METAFONT nicht zwingend erforderlich. Es ist
auch möglich, beispielsweise mit PostScript-Schriften zu arbeiten. TeX
benötigt von einer Schrift nur die Maße der einzelnen Zeichen und
weitere schriftabhängige Parameter, wie beispielsweise die Breite eines
Wortzwischenraumes. Diese Informationen entnimmt TeX einer
TeX-Font-Metric-(tfm)-Datei.
METAPOST
ist ein aus METAFONT abgeleitetes Programm zum Erstellen von
PostScript-Zeichnungen (siehe Frage 9.1.4).
3.1.3 Worin besteht der Unterschied zwischen IniTeX und VirTeX bzw.
zwischen IniMF und VirMF? Was ist eine sogenannte Format-, was eine
Base-Datei?
IniTeX und VirTeX sind beides Varianten des Programmes TeX, wobei IniTeX
Code für zusätzliche Initialisierungsroutinen und erweiterte
Datenstrukturen enthält, um beispielsweise Trennmusterdateien zu laden
und in kompakter Form wieder abzuspeichern oder eine Formatdatei zu
erzeugen. IniTeX wird dazu verwendet, die TeX-internen Datenstrukturen
zu initialisieren - daher der Name -, größere Makropakete wie LaTeX,
Schriftdateien und Trennmuster zu laden und in einer kompakten, schnell
wieder ladbaren Form, in der sogenannten Formatdatei, abzuspeichern.
Formatdateien haben die Dateinamensendung `.fmt' und den Vorgang, eine
Formatdatei mit IniTeX zu erzeugen, nennt man auch `ein Format dumpen'.
Die zusätzlichen Routinen und Datenstrukturen sind beim normalen
Gebrauch von TeX nicht notwendig, so daß diese in der VirTeX-Variante
nicht vorhanden sind. Dadurch kann man in VirTeX, dem `virgin' oder
jungfräulichem TeX, Speicherplatz sparen oder diesen für andere Zwecke
einzusetzen. VirTeX wird in den meisten TeX-Implementierungen unter dem
Namen `tex' aufgerufen, IniTeX entweder als ``initex'' oder über eine
spezielle Kommandozeilenoption wie ``tex -i'' oder ``tex -ini''.
Analog zu IniTeX und VirTeX gibt es auch von METAFONT zwei
Programmvarianten namens IniMF und VirMF. Statt Formatdatei heißt die
von IniMF erzeugte Datei Basedatei und besitzt die Dateinamensendung
`.base' (oder `.bas').
Der Aufbau der Format- und Basedateien ist nicht standardisiert! Er ist
sowohl von der Implementierung, von der TeX- und MF-Version als auch für
dieselbe TeX- und MF-Version von verschiedenen Compile-Zeit-Parametern
abhängig. Diese Dateien sollen von TeX bzw. MF möglichst schnell geladen
werden können, so daß Implementierer hier betriebssystem- und
implementierungsabhängige Optimierungen vornehmen können.
3.1.4 Was ist eine dvi-Datei, was ist ein dvi-Treiber, was ist der
DVI-Treiberstandard?
TeX erzeugt als wichtigste Ausgabe eine dvi-Datei. Das Akronym `dvi'
steht für `DeVice-Independent', d.h. der interpretierte Inhalt dieser
Datei kann auf fast jedem möglichen Ausgabegerät ausgegeben werden. Ein
dvi-Treiber, ein spezielles Programm, liest eine dvi-Datei und wandelt
die in ihr enthaltenen Informationen in Steuerinformationen für einen
speziellen Drucker (z.B. in PostScript oder in PCL) oder zur Anzeige am
Bildschirm für ein spezielles Fenstersystem (wie X11) oder
Bildschirmtreiber.
Besonders hervorzuheben ist an TeX, daß _jede_ TeX-Implementierung für
dieselbe Eingabe (also Dokument, verwendete Makros, Schriften,
Trennmuster etc.) _unabhängig_ vom Ausgabegerät und dessen Auflösung
_immer_ dieselbe dvi-Datei erzeugt. TeX wählt also immer denselben
Absatz- und Seitenumbruch und dieselbe Plazierung von Zeichen, Linien
usw. auf der Seite.
dvi-Dateien enthalten alle Informationen, die zum Ausdruck oder zur
Anzeige der erzeugten Seiten notwendig sind. Jedoch sind in einer
dvi-Datei nicht die tatsächlichen Lettern der verwendeten Schriften und
das mit \special-Anweisungen eingebunde Material, wie Grafiken,
enthalten. Diese müssen vom dvi-Treiber aus anderen Quellen, wie z.B.
pk-Dateien bei Schriften, gelesen und an das Ausgabegerät geschickt
werden. dvi-Dateien verwenden die TeX-interne Zeichenkodierung. So liegt
beispielsweise der Argumenttext einer \special-Anweisung in der
dvi-Datei als eine in ASCII kodierte Zeichenkette vor.
Die dokumentierte Source des Programms `dvitype' dient gleichzeitig als
Referenzbeschreibung des dvi-Formats. Eine bessere, weil mit den
Mindestanforderungen an einen dvi-Treiber versehene Referenz ist der
DVI-Treiberstandard, Level 0
den man in CTAN: dviware/driv-standard/level-0/ finden kann. In diesem
Standard findet man im Anhang neben einer Kopie der dvi-Beschreibung aus
`dvitype' noch die entsprechenden Beschreibungen des tfm-, gf- und
pk-Formates. Weitere Papiere, Berichte, Vorschläge etc. findet man in
CTAN: dviware/driv-standard/papers/.
Als ein Projekt der NTG-Future-Group (siehe Diskussionsliste 1.3.4)
laufen unter dem Titel ``DVI3 a new DVI standard'' Arbeiten zur
Vervollkommnung und Weiterentwicklung des DVI-Standards. Nähere
Informationen findet man unter http://dvi3.tiepmiep.dk/ und
http://userpage.fu-berlin.de/~burnus/dviview/.
3.1.5 Wozu dienen Dateien mit der Namensendung `.xyz'?
Die einzelnen Programme und TeX-Formate des Textsatzsystems TeX
verwenden sehr viele Dateien mit unterschiedlichen Namensendungen. Damit
auch ein Anfänger relativ schnell einen Überblick erhält, folgt hier
eine Auflistung der häufigsten bzw. wichtigsten Dateinamensendungen,
sortiert nach Programmen, TeX-Formaten und weitverbreiteten
Implementierungen.
(Plain-)TeX:
.tex
Standarddateinamensendung für alle Arten von
TeX-Eingabedateien, einige Makropakete wie LaTeX verwenden
andere Namensendungen, um zwischen Dokument- und den
notwendigen Makrodefinitionsdateien zu unterscheiden
.fmt
TeX-Formatdatei (siehe Frage 3.1.3)
.dvi
TeX-Ausgabedatei, enthält formatiertes Dokument (siehe Frage
3.1.4)
.pool, .poo
`String-Pool'-Datei, wird von IniTeX oder IniMF benötigt.
.log
Protokolldatei eines TeX- oder MF-Laufs.
.lis
Protokolldatei eines TeX- oder MF-Laufs unter dem
Betriebssystem OpenVMS.
METAFONT, Fonts und Tools:
.mf
MF-Eingabedatei
.base
.bas
MF-Formatdatei (siehe Frage 3.1.3)
.tfm
MF-Ausgabe: TeX Font Metric (siehe Frage 9.1.2)
.*gf
MF-Ausgabe: `generic font' (siehe Frage 9.1.2)
.*pk
`packed raster' (siehe Frage 9.1.2)
.*pxl
`pixel' (siehe Frage 9.1.2): veraltetes, durch
`.*pk'-Dateien abgelöstes Font-Bitmap-Format
.pl
`property list', lesbare Darstellung der in einer tfm-Datei
enthaltenen Informationen
.vf
`virtual font' (siehe Frage 9.1.3)
.vpl
`virtual font property list' (siehe Frage 9.1.3)
METAPOST:
.mp
METAPOST-Eingabedatei
.mem
METAPOST-Formatdatei (analog zu .fmt bzw. .base)
.mps
METAPOST-Ausgabedatei; eine eps-Datei, die aufgrund ihrer
bekannten und einfachen Struktur mit Hilfe von TeX-Makros in
das pdf-Format wandelbar ist.
.mpx
METAPOST-Eingabedatei, entstanden durch Aufruf von
`DVItoMP'.
Omega:
.otp
`Omega translation process', definiert Umkodierungsfilter
.ocp
`Omega compiled process', compilierte Version einer
.otp-Datei
.ofm
`Omega TeX font metric', erweiterte Version des .tfm-Formats
für Omega
.opl
`Omega property list', lesbare Darstellung einer .ofm-Datei
.ovf
`Omega virtual font', erweiterte Version des .vf-Formats
.ovp
`Omega virtual font property list', lesbare Darstellung
einer .ovf-Datei
BibTeX:
.bst
BibTeX-Style, enthält Anweisungen an BibTeX, wie die
Literaturangaben aus der .bib-Datei in die .bbl-Datei
geschrieben werden sollen
.bib
BibTeX-Datenbank
.blg
Protokolldatei eines BibTeX-Laufs
.bbl
BibTeX-Ausgabe, meist in einer Form, die von LaTeX
eingelesen werden kann
MakeIndex:
.ist
MakeIndex-Style, enthält Anweisungen, wie aus den Einträgen
in der .idx/.glo-Datei die .ind/.gls-Datei generiert werden
soll
.idx
Index-Datei, enthält die unsortierten Indexeinträge
.ind
MakeIndex-Ausgabe: fertig erstellter Index
.glo
Glossar-Datei, enthält analog zur .idx-Datei die
unsortierten Glossareinträge
.gls
MakeIndex-Ausgabe: fertig erstelltes
Wörterverzeichnis/Glossar
.ilg
Protokolldatei eines MakeIndex-Laufs
Texinfo (TeX-Format):
.texi
.texinfo
.txi
GNU-Texinfo-Dokumentquelldatei
docstrip-Archive (nicht nur für LaTeX-Makropakete verwendbar):
.dtx
docstrip-Archivdatei (siehe Frage 5.1.3), kann mit dem in
TeX geschriebenem Programm `docstrip' entpackt werden.
(docstrip: CTAN: macros/latex/base/docstrip.dtx und
CTAN: macros/latex/base/docstrip.ins)
Historisch: Diese Archive hatten anfänglich die Namensendung
.doc
.ins
Instruktionsdatei zum Entpacken eines docstrip-Archivs
(siehe Frage 5.1.3); zum Entpacken reicht der Aufruf ``tex
filename.ins'', manchmal auch ``latex filename.ins'';
näheres bitte der mitgelieferten Dokumentation entnehmen!
.drv
`Treiber'-Datei, für einige .dtx-Dateien zur Formatierung
der Dokumentation mit LaTeX verwendet
.fdd
docstrip-Archiv der LaTeX-.fd-Dateien
.mbs
docstrip-Archiv der Master-Bibliography-BibTeX-Styles des
Pakets `custom-bib' (siehe Frage 7.2.2)
LaTeX (TeX-Format):
.aux
Hilfsdatei, enthält Querverweise etc.
.toc
Inhaltsverzeichnis
.lof
Verzeichnis der Abbildungen
.lot
Verzeichnis der Tafeln
.ltx
Dokumentquelldatei, alternativ zur Namensendung .tex (auch
für LaTeX-Kernel-Dateien)
.cls
.clo
TeX-Eingabedatei mit Definitionen für die Dokumentenklasse
und die entsprechenden Klassen-Optionen
.sty
TeX-Eingabedatei mit Definitionen eines LaTeX-Pakets; in
LaTeX 2.09 wurde diese Namensendung sowohl für Styles (in
2e: Klassen) als auch Style-Options (in 2e: Pakete) benutzt
.fd
TeX-Eingabedatei mit Font-Definition, enthält Tabellen, mit
denen die LaTeX-Spezifikation einer Schrift mittels
Encoding, Family, Series und Shape auf den Namen einer
.tfm-Datei abgebildet wird. Der Name der .fd-Datei besteht
aus Encoding und Family.
.def
Runtime-Module des LaTeX-Kernels, die bei Bedarf geladen
werden (``latex209.def'' für Kompatibilitätsmodus,
``slides.def'' für SliTeX), ebenso für einige Pakete, wie
beispielsweise für `inputenc', `fontenc' und `graphics'.
.cfg
TeX-Eingabedatei mit Konfigurationsinformation
.ldf
TeX-Eingabedatei mit der Language-Definition für eine
Sprache mit ihren Dialekten des babel-Pakets. (Historisch:
in älteren Babel-Versionen in .sty-Dateien)
MusiXTeX, PMX, M-Tx:
.mx1
MusiXTeX-Ausgabe der 1. Phase als Eingabe für das Programm
MusiXFLX, das den Zeilenumbruch der Noten herstellt
.mx2
MusiXFLX-Ausgabe als Eingabe für die 2. MusiXTeX-Phase
.mxl
MusiXFLX-Log-Datei
.pmx
PMX-Eingabedaten
.mtx
M-Tx-Eingabedaten
PostScript-Schriften:
.afm
Adobe Font Metric, in lesbarer ASCII-Darstellung
.pfm
Printer Font Metric, in Windows-Darstellung
.pfa
PostScript-Type-1-Schriftschnittprogramm in ASCII-Format,
enthält das Type-1-Programm zum Zeichnen jeder Letter
.pfb
PostScript-Type-1-Schriftschnittprogramm in Binärformat
TeX-Implementierungen und Gerätetreiber:
.tcp
TeX-Code-Page-Definition (emTeX).
.tcx
TeX-Code-Page-Definition (web2c v7.0, noch im Teststadium!)
.enc
Encoding-Dateien für PostScript-Schriften (dvips)
.map
Zuordnungstabellen für Fontnamen
Eine zwangsläufig unvollständige Liste von Dateinamensendungen kann man
auch im Buch `Der LaTeX-Begleiter' bzw. `LaTeX Companion' und im Buch
`Making TeX Work' (siehe Frage 2.4.1) und in `The Components of TeX' von
Joachim Schrod (siehe Frage 2.4.2) finden.
3.1.6 Welche TeX-/METAFONT-/METAPOST-Versionen sind aktuell?
Derzeit sind die folgenden Versionen aktuell:
TeX: 3.14159 (seit März 1995)
plain.tex: 3.1415926 (seit August 1998)
METAFONT: 2.7182 (seit August 1998)
plain.mf: 2.71 (seit Juni 1993)
METAPOST: 0.641 (seit März 1998) (?)
dvitomp.web: 0.64 (seit Januar 1998)
plain.mp: 0.64 (seit Januar 1998)
CM-Fonts: - (wichtige Änderungen 1992,
kleinere Änderungen März 1995,
kleinere Änderungen August 1998)
tangle.web 4.4 (seit Februar 1993)
weave.web 4.4 (seit Januar 1992)
webmac.tex 4.1 (seit Mai 1990)
Neue Versionen von TeX und METAFONT werden von Donald E. Knuth nur noch
in immer größer werdenden zeitlichen Abständen erstellt, so daß man
ältere Versionen auf alle Fälle durch die neueste Version ersetzen
sollte.
Leider hat Knuth für die CM-Fonts keine Versionsnummer vergeben, so daß
es schwieriger ist, die Versionen mit den meist nur geringen Änderungen
auseinanderzuhalten. Da Knuth umfangreichere Änderungen an den CM-Fonts
im Frühjahr 1992 durchgeführt hat, sollte man alle älteren
CM-Font-Versionen auf die neue Version bringen. Erkennbar sind die alten
Versionen beispielweise am horizontalen Querstrich am Fuß des großen
kalligraphischen T `$\mathcal{T}$' (bzw. `${\cal T}$'), der in der neuen
Version fehlt oder an der rundlicheren, s-förmigeren Form des kleinen
Deltas `$\delta$', da in neueren Versionen der obere Bogen nun etwas
winkliger ausgeführt wurde. Die aktuelle Version der CM-Font-Dateien
erkennt man an folgenden Zeilen:
% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr10.mf BY D E
KNUTH.
% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
ACHTUNG: TeX-Pakete, wie emTeX, vergeben meist noch eine eigene
Versionsnummer für TeX und MF. Man sollte die oben angegebene,
offizielle Versionsnummer nicht mit diesen verwechseln.
3.1.7 Was ist TDS, die `TeX Directory Structure'?
Hauptfunktion von TDS ist die Festlegung einer Grundstruktur für ein
TeX-System. In dieser kann TeX samt Hilfswerkzeugen, Makropaketen, Fonts
etc. systematisch geordnet und damit für _alle_ Installationen und
Systeme gleich und einheitlich untergebracht werden. Somit können
implementierungsunabhängige Teile beispielsweise auch über NFS-Mounts
oder von CD-ROM für alle Systeme zur Verfügung gestellt werden. Die von
TDS festgelegte Grundstruktur ist offen, kann also jederzeit für weitere
Applikationen erweitert werden.
Der TDS-Standard richtet sich primär an TeX-Systemadministratoren und
Personen, die TeX-Distributionen zusammenstellen. Wenn Entwickler eines
TeX-Pakets von einer generell gültigen Verzeichnisstruktur ausgehen
können, kann auch die Installation eines Pakets leichter automatisiert
oder zumindest mit sehr präzisen Anweisungen versehen werden. Für
Endbenutzer ist eine solche wohldefinierte Systemstruktur ebenfalls von
Interesse, wenn sie sich mit der Ausstattung des Systems, das sie
benutzen, näher vertraut machen wollen.
Der aktuelle TDS-Vorschlag ist in verschiedenen Dateiformaten (DVI,
PostScript, HTML, Texinfo etc.) in CTAN: tds/ zu finden. Eine
exemplarische Implementierung des Standards stellt die CD-ROM ``TeX
Live'' dar.
TDS: CTAN: tds/draft-standard/tds/
3.2 Welche TeX-Formate gibt es? Was ist LaTeX?
3.2.1 Was ist ein (TeX-)Format?
Das Programm TeX besteht aus einem Teil, mit dem Text und mathematische
Formeln gesetzt, Absätze umbrochen und alles zu Seiten zusammenmontiert
wird, und aus einem Makroprozessor. Dieser Makroprozessor stellt eine
mächtige, wenn auch für die meisten eine eher ungewohnte
Programmiermöglichkeit dar, mit der man den sehr einfachen Befehlssatz
von TeX durch eigene benutzerfreundlichere Makros ergänzen kann. Einen
abgeschlossenen Satz von solchen Makros nennt man Format. Eine
Formatdatei ist eine mit IniTeX durch `Dumpen' erzeugte Datei, die diese
Makros enthält (siehe Frage 3.1.3). Meist wird der Formatname auch für
das Programm VirTeX verwendet, wenn man die zugehörige Formatdatei lädt,
so daß man bei Verwendung des Formatnamens diese Mehrdeutigkeit bedenken
sollte.
Ohne vom Benutzer definierte Makros besitzt TeX nur ca. 300 primitive
`control sequences'. Davon sind ungefähr die Hälfte Anweisungen, die
andere Hälfte Parameter. Für einen Autor sind diese Anweisungen alleine
zu einfach und dürftig, so daß es ratsam ist, als Autor mächtigere und
damit einfacher benutzbare Anweisungen in Form von Makros zu verwenden.
3.2.2 Was ist Plain-TeX?
Donald E. Knuth hat für TeX ein Makropaket namens Plain-TeX erstellt und
diese Makros im Buch `The TeXbook' beschrieben. Dabei stellt Plain-TeX
einen minimalen Satz an Makros dar, um TeX sinnvoll verwenden zu können.
Zusätzlich enthält Plain-TeX einige Makros, wie `\beginsection' oder
`\proclaim', die man als Beispiel für komplexere Anweisungen ansehen
kann.
Wenn jemand sagt, daß er ``TeX programmiert'', so meint er
normalerweise, daß er in TeX und den Plain-TeX-Makros programmiert.
3.2.3 Was ist LaTeX, LaTeX2e und LaTeX 2.09?
LaTeX ist ein in den Jahren 1982-1986 von Leslie Lamport geschriebenes
Makropaket für TeX. Es erlaubt dem Autor eines Dokuments, die einzelnen
Teile gemäß ihrer logischen Bedeutung, wie z.B. `Überschrift',
`Aufzählung', `Aufzählungspunkt' usw., zu markieren. Anhand dieser
Markierungen, dem sogenannten `Markup' oder der Text-Auszeichnung, kann
(La)TeX das Dokument unter Verwendung eines vorgefertigten Layouts in
Buchdruck-Qualität setzen und mittels sogenannter Geräte-Treiber
ausdrucken.
Fast 10 Jahre war LaTeX in der Version 2.09 aktuell, wobei es zuletzt
immer mehr inkompatible Erweiterungen gab. Seit dem Juni 1994 ist
LaTeX2e die aktuelle Version. Diese wurde regelmäßig im Juni und
Dezember jeden Jahres auf den neuesten Stand gebracht. Ab Juni 2000 gibt
es nurmehr einmal jährlich eine neue Version.
Wenn in dieser FAQ von LaTeX die Rede ist, so ist immer LaTeX2e und
nicht LaTeX 2.09 gemeint.
3.2.4 Welche (La)TeX-Makropakete gibt es?
Es gibt mehrere unterschiedlich umfangreiche und gewartete Übersichten
über (La)TeX-Makropakete, die im folgenden ohne Wertung aufgezählt
werden:
* The LaTeX Catalogue
CTAN: help/Catalogue/catalogue.html
* LaTeX Navigator
http://www.loria.fr/tex/german/index.html
* LaTeX-Paketliste von Harald Axel Sommerfeldt
http://www.axel-sommerfeldt.de/latex/
* Liste von Kerstin Schiebel
http://www.gsi.de/computing/TeX/latexsty.html
* Die Bücher ``Der LaTeX-Begleiter'', ``The LaTeX Companion'' und ``The
LaTeX Graphics Companion'' stellen viele Pakete vor. Diese Übersicht
kann jedoch naturgemäß nicht aktuell und vollständig sein.
3.2.5 Was ist AmS-TeX, AmS-LaTeX und LAMSTeX? Was sind die AmS-Fonts?
AmS-TeX ist ein in den Jahren 1983-1985 von Michael D. Spivak für die
American Mathematical Society (AmS) geschriebenes Makropaket, das auf
Plain-TeX basiert. Es erweitert Plain-TeX um sehr viele für den
mathematischen Formelsatz notwendige Konstrukte. Dieses Makropaket wird
im Buch `The Joy of TeX' von Michael Spivak (2. Auflage, AmS, 1990, ISBN
0-821-82997-1) beschrieben.
Mit der weiteren Verbreitung von LaTeX entwickelt die AmS seit 1990
mehrere auf LaTeX basierende Makropakete, die unter dem Namen AmS-LaTeX
zusammemgefaßt werden. Diese LaTeX-Pakete stellen einem Autor einen
Großteil der in AmS-TeX enthaltenen Konstrukte zur Verfügung.
LAMSTeX nennt sich Michael Spivaks Anpassung von AmS-TeX an LaTeX, die
jedoch nur einen sehr kleinen Nutzerkreis hat und nicht weit verbreitet
ist.
Für den mathematischen Formelsatz fehlen den von Donald E. Knuth
erstellten Schriften weitere dringend notwendige Zeichen. Diese werden
durch die AmS-Fonts zur Verfügung gestellt, die u.a. weitere
CM-Schriften, Euler-, `msam'-, `msbm'- und kyrillische Schriften
enthalten.
3.2.6 Was ist Texinfo?
Texinfo ist ein Dokumentationssystem, das zur Dokumentation der
GNU-Sofware verwendet wird. Die Dokumentation wird dabei in einer
Quelldatei mit der Dateinamensendung `.texi' (oder `.txi' bzw.
`.texinfo') abgelegt, aus der einerseits sogenannte `info'-Dateien,
einem on-line mit dem GNU-Emacs oder dem Programm `info' lesbarer
Hypertext, erzeugt werden können. Andererseits stellt die Quelldatei
eine TeX-Datei dar, zu deren Formatierung mit Plain-TeX zu Beginn das
Texinfo-Makropaket ``texinfo.tex'' automatisch hinzugeladen wird. Mit
den Programmen `makeinfo' (aus dem Paket Texinfo seit Version 4.0) und
`texi2html' ist die Konvertierung nach HTML möglich. Texinfo basiert auf
Plain-TeX.
Texinfo: http://www.texinfo.org
CTAN: macros/texinfo
3.2.7 Was ist ConTeXt?
ConTeXt ist ein von Hans Hagen geschriebenes Makropaket für TeX. Es
erlaubt, ähnlich wie LaTeX, das Erstellen von Texten mit Hilfe von
Strukturmakros (Überschrift u.ä.). Bei der Erstellung wurde auf eine
leichte Benutzbarkeit und Flexibilität geachtet, zudem wird die
Erstellung interaktiver Texte unterstützt. Eine Besonderheit ist die
multilinguale Schnittstelle, die z.B. niederländisch, englisch und
deutsch unterstützt, sowie das Setzen von multilingualen Unterschriften
(`Tabelle' statt `Table' u.ä.).
ConTeXt: http://www.pragma-ade.nl/
http://www.ntg.nl/context/
CTAN: macros/context/
3.3 Welche TeX-Weiterentwicklungen gibt es? (*)
3.3.1 Was ist TeX-XeT bzw. TeX--XeT?
Donald E. Knuth und Pierre MacKay entwickelten eine TeX-Erweiterung
namens TeX-XeT, die es erlaubt, Texte, die von links nach rechts
geschrieben werden, mit Texten, die von rechts nach links (Bsp:
arabisch, hebräisch) geschrieben werden, beliebig zu mischen. TeX-XeT
erzeugt jedoch sogenannte ivd-Dateien, d.h. dvi-Dateien mit zusätzlichen
dvi-Codes, die von üblichen dvi-Treibern nicht verstanden werden und
damit zu Fehlern oder zum Abbruch des dvi-Treibers führen. Diese
ivd-Dateien benötigen daher spezielle dvi-Treiber oder sie können mit
dem Programm `ivd2dvi' in gewöhnliche dvi-Dateien konvertiert werden.
Die TeX-Änderungen für TeX-XeT wurden in einem Artikel in TUGboat 8,
1987 (S. 14-15) veröffentlicht.
TeX--XeT ist eine TeX-XeT-Reimplementierung von Peter Breitenlohner. Im
Unterschied zu TeX-XeT erzeugt TeX--XeT gewöhnliche dvi-Dateien, die
somit von jedem dvi-Treiber gelesen werden können. Die neueste
verbesserte Version von TeX--XeT ist seit Version 1 Bestandteil von
e-TeX (siehe Frage 3.3.4).
TeX--XeT: CTAN: systems/knuth/tex--xet/
ivd2dvi: CTAN: dviware/ivd2dvi/
3.3.2 Was ist MLTeX?
MLTeX ist eine TeX-Erweiterung von Michael J. Ferguson, die es
ermöglicht, daß auch mit den üblichen CM-Schriften Trennmuster mit
akzentuierten Zeichen verwendet und damit Wörter mit akzentuierten
Zeichen getrennt werden können. In Standard-TeX ist dies nicht möglich,
da es notwendig ist, daß die verwendete Schriften diese akzentuierten
Zeichen enthalten (siehe Frage 5.3.2). In MLTeX wird vorgegaukelt, daß
die akzentuierten Zeichen in den Schriften existieren, diese aber dann
durch sogenannte `character substitutions', die mit dem neuen Primitiv
\charsubdef definiert werden, durch tatsächlich in der Schrift
vorhandene Zeichen zusammengebaut. Bei Verwendung von T1-kodierten
Schriften, wie z.B. die EC-Schriften, ist MLTeX nicht mehr notwendig.
MLTeX hat sich aus verschiedenen Gründen hauptsächlich im
französischsprachigen Raum verbreitet. Aktuell ist Version 2.2 vom
Dezember 1995 von Bernd Raichle, der die weitere Pflege von MLTeX
übernommen hat. Ältere Versionen haben verschiedene Programmfehler, die
u.a. zu Problemen führen, falls MLTeX mit nichtlateinischen Schriften
(z.B. mit ArabTeX) verwendet wird. Mit ``mltextst.tex'' gibt es eine
Testdatei, um eine MLTeX-Implementierung auf die bekannten Fehler zu
testen.
Zur einfachen Nutzung der Fähigkeiten von MLTeX unter LaTeX gibt es seit
Dezember 1998 das LaTeX-Paket `mltex'.
MLTeX: CTAN: systems/generic/mltex/
mltextst.tex: CTAN: systems/generic/mltex/mltextst.tex
mltex: CTAN: macros/latex/contrib/supported/mltex
3.3.3 Was ist NTS?
TeX, METAFONT und die anderen Programme von Prof. Knuth wurden von ihm
in ihrem jetzigen Zustand eingefroren. Es werden nur noch Fehler
entfernt, jedoch wird es keine grundlegenden Änderungen und
Weiterentwicklungen dieser Programme geben. Momentan gibt es mehrere
Projekte, die die Weiterentwicklung des Textsatzsystems TeX zum Ziel
haben.
`NTS' (oder das `New Typesetting System') wird von der NTS-Gruppe unter
Leitung von Phil Taylor geplant. NTS ist eine radikale Neuentwicklung
eines Textsatzsystems, das jedoch weiterhin einen
TeX-Kompatibilitätsmodus haben wird. Die Realisierung von NTS ist
langfristig über mehrere Jahre angelegt, da hierzu größere Ressourcen
notwendig sind und erst beschafft werden müssen.
Momentan wird eine erste Version von NTS in der Programmiersprache Java
implementiert. Diese Version wird vollständig TeX-kompatibel sein und
noch keine Erweiterungen besitzen, jedoch durch die modularere
Programmierung leichter erweiterbar sein. Dieser erste Prototyp soll bis
Mitte 2000 fertiggestellt sein, im Frühjahr 2000 liefen bereits alle
Teile außer denjenigen, die den Tabellensatz bewerkstelligen.
Weitergehendes existiert momentan nur als Konzept und in Form einer
Liste von Anforderungen und Erweiterungswünschen.
NTS: http://nts.tug.org/
3.3.4 Was ist e-TeX? Was ist Eetex?
Unter dem Namen `e-TeX' (extended/enhanced TeX) wird unter der Leitung
von Peter Breitenlohner TeX um dringend benötigte Erweiterungen ergänzt.
Ein wichtiges Ziel von e-TeX ist dabei, weiterhin 100% kompatibel zu TeX
zu bleiben, solange die Erweiterungen nicht benutzt werden. Die
Entwicklung basiert auf dem aktuellen TeX-Quellcode in einem durch
WEB-Konstrukte erweiterten Standard-Pascal, so daß dies und die genannte
Zielsetzung gewisse Beschränkungen, wie der Verzicht auf eine dynamische
Speicherverwaltung, auferlegt, was grundlegende Neuerungen in e-TeX
anbelangt. Die erste Version von e-TeX wurde im Oktober 1996 auf der
Mitgliederversammlung von DANTE e.V. in Hamburg veröffentlicht. Fertig
benutzbare Implementierungen sind u.a. für VMS, MS-DOS (PublicTeX),
Windows 95/NT (Win32-Web2c), Amiga (AmiWeb2C) und Unix (Web2c v7.x mit
Patches zur Integration von e-TeX) verfügbar.
Eetex ist die ``Spielwiese'' der NTG-Future-Group (siehe
Diskussionsliste 1.3.4). Diese TeX-Erweiterung basiert auf e-TeX,
erweitert dieses jedoch um weitere vorgeschlagene Primitive. Das
Programm ist jedoch weder stabil noch fehlerfrei, sondern dient dazu,
Erweiterungsvorschläge in einem Prototypen auszutesten. Die erste
Version enthält Primitive zur leichteren und schnelleren Verarbeitung
von Listen und einen speziellen SGML-Lesemodus. Das Programm wird
momentan nur fertig für MS-DOS, Windows 95 und Linux verteilt.
e-TeX: CTAN: systems/e-tex/
Eetex: http://www.cybercomm.nl/~bittext/eetex/
(nicht mehr erreichbar)
3.3.5 Was ist Omega?
Omega ist neben NTS/e-TeX das zweite Projekt, das sich mit der
Weiterentwicklung von TeX beschäftigt.
`Omega' wird von John Plaice und Yannis Haralambous entwickelt und ist
Anfang Dezember 1995 in einer zweiten Version veröffentlicht worden. Als
Basis von Omega dient der Quellcode von TeX und METAFONT, wobei beide
Programme um die Möglichkeit erweitert wurden, intern Zeichen in UNICODE
zu repräsentieren (pro Zeichen 16 bit statt 8 bit). Durch die Verwendung
von UNICODE und von sogenannten Ein- und Ausgabe-Filtern wird eine
Anpassung an verschiedene Sprachen sehr einfach. So kann beispielsweise
durch Wahl von entsprechenden Filtern ein Dokument sehr einfach in
arabischer Schrift gesetzt werden, in der ein einzelnes Zeichen abhängig
vom Kontext in bis zu vier möglichen Darstellungen gesetzt wird.
Omega: http://www.gutenberg.eu.org/omega/
CTAN: systems/omega/
3.3.6 Was ist pdfTeX, was ist TeX2PDF? (*)
`pdfTeX', das vormals TeX2PDF hieß, ist eine TeX-Variante, mit der man
sowohl die üblichen DVI-Dateien als auch direkt Dateien in Adobes
Portable-Document-Format, kurz PDF, erzeugen kann. Um die zusätzlichen
Möglichkeiten, wie Hyperlinks, Anmerkungen etc., die PDF bietet, auch
nutzen zu können, wurden weitere PDF-Primitive dem Makroprogrammierer
zur Verfügung gestellt. Das Makropaket `hyperref' unterstützt pdfTeX,
wobei die Benutzung von pdfTeX automatisch erkannt wird, aber auch durch
die Option `pdftex' angegeben werden kann.
pdfTeX wurde von Hàn Thê Thành entwickelt und Ende Februar 1997 in
ersten Testversionen veröffentlicht. Seitdem weist pdfTeX eine gute
Stabilität auf. Es ist allerdings nicht ausgeschlossen, daß sich Details
noch ändern und Fehler im Programm verborgen sind.
pdfTeX: http://www.tug.org/applications/pdftex/
CTAN: systems/pdftex/
(Source für Web2c v7.x, Binaries für einige Systeme)
hyperref: CTAN: macros/latex/contrib/supported/hyperref
hyperref http://www.tug.org/applications/hyperref/
(beta-Version):
thumbpdf: CTAN: support/thumbpdf/
TeX and PDF: Solving Font Problems
http://web.mit.edu/etheses/www/tex/texpdf.html
AcroTeX: Hinweise zu LaTeX und PDF
http://www.math.uakron.edu/~dpstory/acrotex.html
Einführung in ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/unplugged/pdftex.dante99.pdf
pdfTeX:
Timothy van http://zandtwerk.insead.fr/tex2pdf.html
Zandt's notes:
Creating quality
Adobe PDF files http://www.adobe.com/support/techdocs/543e.htm
from TeX with
DVIPS:
PDF Reference
Manual, Version http://partners.adobe.com/asn/developer/PDFS/TN/PDFSPEC.PDF
1.3:
Thomas
Feuerstack:
Acrobat/PDF ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/unplugged/acd97.pdf
...eine
Einführung:
--- DE-TeX-FAQ Ende Teil 3 ---
--- DE-TeX-FAQ Beginn Teil 8 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
8 TeX, LaTeX, Makros etc. (IV)
8.1 Verschiedene Zeichen (+)
8.1.1 Wie bekomme ich ein Gradzeichen?
Das Gradzeichen erhält man am einfachsten mit LaTeX mittels
\newcommand{\grad}{\ensuremath{^\circ}}
Da die Anweisung \ensuremath in LaTeX 2.09 nicht existiert, muß man hier
den konventionellen Weg wählen (der auch in LaTeX2e funktioniert):
\newcommand{\grad}{\mbox{\(\mathsurround=0pt{}^\circ\)}}
Hat man schon die `Text-Companion'-Schrift der EC-Schriftfamilie
installiert, kann man mit dem Paket `textcomp', das seit Dezember 1997
Bestandteil von LaTeX ist, auf ein Gradzeichen mit \textdegree und auf
ein fertig zusammengesetztes Grad-Celsius-Zeichen mit \textcelsius
zugreifen. In der mittlerweile veralteten Testversion von `textcomp'
mußte statt \textcelsius noch \textcentigrade verwendet werden.
ec/tc-fonts: CTAN: fonts/ec/
8.1.2 Wo finde ich ein Promillezeichen? Ich möchte endlich 1,1Promille
statt 0,11\% eingeben können.
Die beste Lösung bietet die in den Text-Companion-(tc)-Schriften der
EC-Schriftfamilie vorhandene Letter für ein Promillezeichen, da sie auch
von der Form zum üblichen Prozentzeichen der Schrift passt:
\usepackage{textcomp}
\textperthousand
Falls man die Text-Companion-Schriften nicht verwenden will, kann man
alternativ die Schrift `wasy' verwenden, in der ebenso eine Letter für
ein Promillezeichen existiert:
\usepackage{wasysym}
\permil
Sind beide Schriften nicht verfügbar, kann man folgende, in ``Die
TeXnische Komödie'' vom Dezember 1993 erschienene Lösung verwenden, die
auf der TeXbook-Lösung zu Übung 11.6, S. 67 und 311, basiert (an LaTeX2e
angepaßt [br]):
\newcommand{\promille}{%
\relax\ifmmode\promillezeichen
\else\leavevmode\(\mathsurround=0pt\promillezeichen\)\fi}
\newcommand{\promillezeichen}{%
\kern-.05em%
\raise.5ex\hbox{\the\scriptfont0 0}%
\kern-.15em/\kern-.15em%
\lower.25ex\hbox{\the\scriptfont0 00}}
Die zusätzliche \(..\)-Umgebung im Makro \promille ist für LaTeX2e
zwingend notwendig, da sonst in einigen Fällen Zeichen fehlen könnten.
(Man könnte auch die Anweisung \ensuremath aus LaTeX2e verwenden.)
Leider paßt das erzeugte Promillezeichen von der Form her nicht zum
Prozentzeichen.
textcomp: CTAN: macros/latex/base/
ec/tc-fonts: CTAN: fonts/ec/
wasysym: CTAN: macros/latex/contrib/supported/wasysym/
wasy: CTAN: fonts/wasy2/
CTAN: fonts/wasy2/ps-type1/hoekwater/
8.1.3 Ich benötige einen liegenden bzw. gedrehten `dagger' oder ein
ähnliches liegendes Zeichen. Wie?
Entweder sucht man nach einem fertigen Font mit einem solchen Symbol
oder ändert die Quelle eines Fonts, falls dieser beispielweise als
METAFONT-Datei vorliegt, und fügt in die Quelle eine Operation zum
Drehen eines Zeichens ein.
Falls der dvi-Gerätetreiber in der Lage ist, Teile der Ausgabe zu drehen
(wie die meisten PostScript-Treiber), kann man unter LaTeX die Anweisung
\rotatebox aus dem `graphicx'-Package verwenden:
\rotatebox[origin=c]{90}{\(\dagger\)}
graphicx: CTAN: macros/latex/required/graphics/
8.1.4 Wie erzeuge ich ein Zeichen für `trademark' (TM), `registered
trademark' (R) oder `copyright' (C)?
Diese Zeichen durch Box-Konstruktionen zusammenzubauen, ergibt in den
meisten Fällen sehr unbefriedigende Ergebnisse. Unter LaTeX hat man mit
der Anweisung \textcircled{<Zeichen>} eine sehr einfache Möglichkeit
dafür, jedoch erhält man nur für einzelne Zeichen, wie für das `c' im
Copyright-Zeichen \copyright, ein einigermaßen gutes Ergebnis. Eine
erste Näherung für das Trademark-Zeichen (TM) ist
\DeclareRobustCommand{\trademark}{\ensuremath{^{\mathrm{TM}}}}.
Sehr viel einfacher und besser sind die fertigen Zeichen, wie
\texttrademark, aus den `Text-Companion'-Fonts `tc...' aus dem
`EC'-Schrift-Paket. Unter LaTeX gibt es zur einfachen Einbindung das
`textcomp'-Package.
Beginnend mit LaTeX von Dezember 1995 gibt es standardmäßig neben der
Definition für das Copyright-Zeichen auch Definitionen für die Zeichen
`trademark' und `registered trademark' (\texttrademark,
\textregistered). Seit LaTeX vom Dezember 1997 ist das Paket `textcomp'
in der LaTeX-Verteilung enthalten.
tc-Fonts: CTAN: fonts/ec/
Liste der tc-Fonts: CTAN: info/textcomp-list/
8.1.5 Wie kann man ein nicht kursives griechisches mu erzeugen?
In den Text-Companion-Fonts befindet sich ein aufrechtes mu, das man
beispielsweise für Mengenangaben benötigt.
\usepackage{textcomp} % seit 1997/12/01 in der Standardverteilung
\textmu
8.1.6 Wie bekomme ich das Währungssymbol für den Euro?
Die `Text-Companion'-Fonts enthalten das Euro-Symbol, wobei dieses nicht
der offiziell festgelegten Version entspricht.
\usepackage{textcomp}
\texteuro
{\sffamily\texteuro}
Ebenso kann man sich notfalls ein eigenes, ebenso nicht konformes
Euro-Symbol zusammensetzen:
\newcommand\euro{{\sffamily C%
\makebox[0pt][l]{\kern-.70em\mbox{--}}%
\makebox[0pt][l]{\kern-.68em\raisebox{.25ex}{--}}}}
Mit dem Paket `eurosym' gibt es einen Satz an Fonts mit dem Euro-Symbol,
das der offiziell festgelegten Form des Symbols entspricht. Mitgeliefert
wird ein LaTeX-Paket zur Einbindung, so daß man mit \euro ein
offizielles zur Schriftgröße passendes Euro-Symbol erhält. Abweichend
von der offiziellen Vorgabe wird es, um ein besseres Schriftbild zu
erreichen, auch fett und schräg gesetzt.
Dieselbe Anweisung \euro unterstützt auch das Paket `europs'. Es
erfordert die bei Adobe verfügbaren PostScript-Fonts mit dem
Euro-Symbol. Daneben existiert mit dem Paket `eurosans' eine weitere
LaTeX-Einbindung, das das Euro-Symbol aus der von Adobe erstellten
PostScript-Font-Familie `EuroSans' verwendet.
Daneben enthält auch die im PostScript-Type-1-Format vorliegende Schrift
`Martin Vogels Symbole (marvosym)' ein Euro-Symbol. In dieser Schrift
ist außerdem jeweils ein Euro-Symbol, das zu den Schriften Times,
Helvetica und Courier paßt, enthalten.
\usepackage{marvosym} % bei der Schrift enthalten
\EUR
\EURtm \EURhv \EURcr
Und auch das Paket `China2e', mit dem chinesische Kalendersymbole
erzeugt werden können, enthält Fonts mit dem Euro-Symbol, das man mit
der Anweisung \Euro bekommt.
Desweiteren kann im Zusammenhang mit der Verwendung von Euro-Symbolen
das Paket `euro' sehr hilfreich sein. Es bietet vielfältige
Möglichkeiten der Umrechnung von Euro in andere Währungen und umgekehrt.
Verwendet man das Paket `mathpazo' bekommt man ein Eurozeichen, welches
auf die Grundschrift `Palatino' abgestimmt ist.
\usepackage{mathpazo}
\ppleuro
eurosym: CTAN: fonts/eurosym/
europs: CTAN: fonts/euro/latex/europs/
http://www.adobe.com/
eurosans: CTAN: macros/latex/contrib/supported/eurosans/
marvosym: CTAN: fonts/psfonts/marvosym/
china2e: CTAN: macros/latex/contrib/supported/china2e/
euro: CTAN: macros/latex/contrib/supported/euro/
mathpazo: CTAN: fonts/mathpazo/
8.1.7 Wie bekomme ich ein Entspricht-Symbol?
Ein Entspricht-Symbol kann man sich entweder mit
\newcommand{\entspricht}{\mathrel{\widehat{=}}}
oder mit
\newcommand{\entspricht}{\stackrel{\scriptscriptstyle\wedge}{=}}
definieren. Die Anweisung \mathrel{}, die in \stackrel implizit bereits
enthalten ist, sorgt dafür, daß korrekte Abstände vor und nach einem so
definierten Symbol verwendet werden.
8.1.8 Wie bekomme ich das Symbol für Durchmesser?
Die einfachste Lösung ist \O{}. Empfehlenswerter ist jedoch ein Symbol
aus den AmS-Schriften:
\usepackage{amssymb}
\(\varnothing\)
AmS-Fonts: CTAN: fonts/amsfonts/
amssymb: CTAN: fonts/amsfonts/latex/
8.1.9 Wie kann ich ``\'', ``<'', ``>'' und weitere Sonderzeichen im Text
benutzen?
Die Zeichen, die in LaTeX eine besondere Bedeutung haben, und andere
Sonderzeichen mußten früher mehr oder weniger kompliziert erzeugt werden
oder man mußte auf den Formelsatz ausweichen. Unter LaTeX2e gibt es nun
einfachere Anweisungen, wobei man eine LaTeX-Version vom Dezember 1995
oder neuer verwenden sollte. Unter anderem sind folgende Symbole
definiert:
Text-Anweisung Formelsatz Symbol oder Symbol-Beschreibung
\textbackslash \backslash \
\textbar \mid |
\textless < <
\textgreater > >
\textasciicircum \hat ^
\textasciitilde \tilde ~
\textbullet \bullet gefüllter Kreis auf halber Höhe
\textperiodcentered \cdot ·
\textvisiblespace (n.v.) sichtbares Leerzeichen
Näheres findet man in der Datei ``usrguide.tex'' (``LaTeX2e for
authors'').
usrguide: CTAN: macros/latex/base/usrguide.tex
8.1.10 Wie bekomme ich die Symbole für Laplace-, Fourier- und
Z-Transformation?
Das LaTeX-Paket `trfsigns' bietet diese Symbole.
trfsigns: CTAN: macros/latex/contrib/supported/trfsigns
8.1.11 Wie kann ich einen _Smiley_ und einen _Frownie_ setzen?
Eine einfache Version erhält man mit
\newcommand{\frownie}{\texttt{:-(}}
\newcommand{\smiley}{\texttt{;-)}}
und mit dem Paket `wasysym' kann man die Symbole aus den Schriften
`wasy' mit den Anweisungen \smiley und \frownie bekommen.
wasysym: CTAN: macros/latex/contrib/supported/wasysym/
wasy: CTAN: fonts/wasy2/
CTAN: fonts/wasy2/ps-type1/hoekwater/
8.1.12 Das Zeichen := sieht schlecht aus, wie kann ich erreichen, daß
der Doppelpunkt in seiner Höhe zum Gleichheitszeichen paßt? (+)
Mit der Konstruktion \mathrel{\mathop{:}} läßt sich der Doppelpunkt auf
der mathematischen Achse zentrieren, die auch die Mitte des
Gleichheitszeichens bestimmt.
Mit dem folgenden Makro von Donald Arseneau wird der Doppelpunkt im
mathematischen Modus generell umgestellt:
\mathchardef\ordinarycolon\mathcode`\:
\mathcode`\:=\string"8000
\begingroup \catcode`\:=\active
\gdef:{\mathrel{\mathop\ordinarycolon}}
\endgroup
8.2 Mathematischer Formelsatz (+)
8.2.1 Für Zahlenbereiche möchte ich die Symbole für N, Z, Q, R, C mit
Doppelstrich verwenden. Wie bekomme ich diese Zeichen?
Ursprünglich wurden diese Symbole mit fetten Buchstaben geschrieben. Da
dies mit Kreide auf einer Tafel (`blackboard') sehr umständlich wäre,
hat man die Schreibweise mit den Doppelstrichen erfunden. Die einfachste
Möglichkeit ist daher, die Symbole einfach fett zu drucken, also
\mathbf{N} (bzw. \verb{\bf N} in Plain-TeX und LaTeX 2.09). So auf die
Schnelle ist auch die `poor man's solution' mit \(\mathsf{I\!\!\:N}\)
ausreichend. Jedoch wird diese Lösung spätestens für die ganzen,
rationalen und komplexen Zahlen (Z, Q, C) schwieriger. Ansonsten könnte
man auch auf \mathcal (\cal in LaTeX 2.09) und bei Verwendung von
AmS-(La)TeX auf \mathbb bzw. \Bbb ausweichen.
Es gibt aber auch folgende Schriften, die Buchstaben mehr oder weniger
so wie `an der Tafel geschrieben' enthalten:
* `bbold' (von Alain Jeffrey)
ohne Serifen, zwei dünne Striche, vollständiger Zeichensatz.
* `mathbbol' (von Jörg Knappen)
definiert AmS-(La)TeXs \mathbb-Anweisung so um, daß statt der
Original-AmS- die `bbold'-Schriften verwendet werden.
* `doublestroke' (von Olaf Kummer)
mit Serifen (ein dicker und ein dünner Strich) und in neuer Version
ohne Serifen (gleichmäßige Dicke), nur Großbuchstaben und 1, k, h.
* `bbm' (von Gilles F. Robert)
sollte allen Wünschen gerecht werden, alle Varianten, wie fett, mit
oder ohne Serifen etc.
* `mathpazo'
enthält die Symbole I, C, N, Q, R und Z, abgestimmt auf die Schrift
`Palatino' (Beispiel in CTAN: fonts/mathpazo/pazotest.pdf.
Die Auswahl einer dieser Schriften ist reine Geschmackssache. Eine Hilfe
dazu bietet die Übersicht in der PostScript-Datei ``blackboard.ps''.
amslatex: CTAN: macros/latex/required/amslatex
bbold: CTAN: fonts/bbold/
mathbbol: CTAN: macros/latex/contrib/supported/jknappen/
doublestroke: CTAN: fonts/doublestroke/
bbm: CTAN: fonts/cm/bbm/
CTAN: fonts/cm/sauter/holin/bbm/
CTAN: macros/latex/contrib/supported/bbm
blackboard.ps: CTAN: documentation/blackboard/blackboard.ps
mathpazo: CTAN: fonts/mathpazo
8.2.2 Für Lagrange-Dichten hätte ich gern ein geschwungenes L;
\mathcal{L} ist nicht das, was ich wünsche!
Schreibschriftbuchstaben für den Mathematiksatz (nur Großbuchstaben)
sind in den `rsfs'-Schriften (Ralph Smith Formal Script) enthalten. Sie
können mit dem Paket `mathrsfs' und dem Befehl \mathscr{L} eingebunden
werden. Das Paket `calrsfs' ergibt Schreibschriftbuchstaben anstelle der
kalligraphischen Buchstaben mit dem Befehl \mathcal{L}.
rsfs: CTAN: fonts/rsfs/
CTAN: fonts/cm/sauter/holin/rsfs/b-rsfs.mf
mathrsfs: CTAN: macros/latex/contrib/supported/jknappen/
calrsfs: CTAN: macros/latex/contrib/other/calrsfs/
8.2.3 Ich suche das Zeichen ... für den Formelsatz, und kann es nicht in
den Standardfonts finden?
Zeichen, die in den CM-Fonts fehlen, sind mit wirklich sehr großer
Wahrscheinlichkeit in den AmS-Fonts `msam' oder `msbm' vorhanden. Die
Einbindung in LaTeX erfolgt mit dem Paket `amsfonts', die Einbindung in
Plain-TeX mit ``\input amssym.tex''. Nähers dazu siehe auch
``amsfndoc.tex''.
amsfonts: CTAN: fonts/amsfonts/
amssym: CTAN: fonts/amsfonts/plaintex/amssym.tex
amsfndoc.tex: CTAN: fonts/amsfonts/doc/amsfndoc.tex
8.2.4 Warum fügt TeX in einer mathematischen Formel hinter einem
Dezimalkomma einen kleinen Zwischenraum ein?
Die meisten TeX-Makropakete und -Formate gehen davon aus, daß man einen
Dezimalpunkt statt eines -kommas verwendet. Für den Dezimalpunkt, der in
einer mathematischen Formel die Bedeutung eines `Ordinary'-Symbols hat,
wird daher zwischen Ziffern kein zusätzlicher Zwischenraum eingefügt.
Das Komma hat in Formeln die Bedeutung eines `Punctuation'-Symbols, man
kann es daher als Trennzeichen in einer Aufzählung verwenden, da TeX mit
einem kleinen Zwischenraum dafür sorgt, daß Formeln wie `f(x, y)' gut
aussehen.
Das Problem des falschen Abstandes für ein Dezimalkomma kann man auf
verschiedene Arten beheben. Für einzelne Fälle mag es reichen, das Komma
einfach mit {...} zu klammern, da geklammerte Formelteile diesselben
Abstände wie ein `Ordinary'-Symbol bekommen:
$\pi = 3{,}1415\ldots$
Eine andere Methode erklärt das Komma zu einem `Ordinary'-Symbol statt
eines Trennzeichens:
%%%% alte Definition:
%% \mathcode`\,="613B
%%%% neue Definition:
\mathcode`\,="013B
und wenn man statt der \mathcode-Zuweisung die Anweisung
\DeclareMathSymbol in LaTeX verwendet:
%%%% alte Definition:
%% \DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
%%%% neue Definition:
\DeclareMathSymbol{,}{\mathord}{letters}{"3B}
Der Preis hierfür ist natürlich, daß in `f(x,y)' der zusätzliche
Zwischenraum fehlt. Aber auch das läßt sich in den Griff bekommen, etwa
mit Definitionen wie
% make ',' an ordinary Symbol in decimal numbers
\mathchardef\CommaOrdinary="013B
\mathchardef\CommaPunct ="613B
\mathcode`,="8000 % , im Math-Mode aktiv ("8000) machen
{\catcode`\,=\active
\gdef ,{\obeyspaces\futurelet\next\CommaCheck}}
\def\CommaCheck{\if\space\next\CommaPunct\else\CommaOrdinary\fi}
Hiermit ist es möglich, zwischen `3,1415' und `f(x, y)' zu
unterscheiden; steht hinter dem Komma ein Leerzeichen, ist das
Trennzeichen gemeint, sonst das Dezimalkomma.
8.2.5 AmS-LaTeX: Was ist der Unterschied zwischen dem Paket `amstex' und
`amsmath'? (*)
Dies wird in der Datei ``diffs-m.tex'' des AmS-LaTeX-Packages erläutert:
In AmS-LaTeX Version 1.0 und 1.1, beide nur für LaTeX 2.09, war `amstex'
das Hauptpaket, das mehr oder weniger direkt aus Michael Spivaks
AmS-TeX-Makros entstanden ist. AmS-LaTeX Version 1.2 für LaTeX2e enthält
nun neben `amstex' ein neues Paket namens `amsmath', das nun unabhängig
von `amstex' weiterentwickelt werden kann. `amstex' kann dadurch
eingefroren werden, so daß alte Dokumente weiterhin unverändert
formatiert werden können. Für neue Dokumente sollte man `amsmath'
verwenden, da nur noch dieses Paket unterstützt und weiterentwickelt
wird. Die Unterschiede zwischen `amsmath' und `amstex' sind der
Dokumentation in der Datei ``diffs-m.tex'' zu entnehmen.
amslatex: CTAN: macros/latex/required/amslatex/
AmS-LaTeX: http://www.ams.org/tex/amslatex.html
The amsmath http://www.ams.org/tex/amsmath.html
package:
diffs-m.tex: CTAN: macros/latex/required/amslatex/math/diffs-m.tex
8.2.6 Wieso bekomme ich mit AmS-LaTeX, wenn ich eigene Umgebungen, die
`equation', `gather' `align', `alignat', `flalignat' oder `split'
verwenden, Fehlermeldungen?
Mit AmS-LaTeX funktionieren Definitionen wie
\newenvironment{myalign}{\begin{align}}{\end{align}}
\newcommand{\ba}{\begin{align}}
\newcommand{\ea}{\end{align}}
nicht mehr, weil diese Umgebungen zuerst die komplette Formel einlesen
müssen, da die Satzalgorithmen so geschrieben sind, daß diese Formel
mehrmals durchlaufen werden muß.
Damit man dennoch eigene Umgebungen definieren kann, ist statt
\begin{align} die Anweisung \align, statt \end{align} die Anweisung
\endalign in der Definition zu verwenden:
\newenvironment{myalign}{\align}{\endalign}
Die Definition von Abkürzungsmakros für diese Umgebungen, wie oben
gezeigt, ist zwar mit einem Trick möglich. Jedoch sollten Umgebungen
grundsätzlich auch als solche im Dokument erkennbar sein, so daß von
solchen Abkürzungsmakros abgeraten und der Trick nicht verraten wird.
Näheres findet man in der Datei ``technote.tex'', das Teil der
Dokumentation von AmS-LaTeX ist.
technote.tex: CTAN: macros/latex/required/amslatex/math/technote.tex
8.2.7 AmS-Fonts: Ein altes Dokument benutzt die Fonts `msxm' und `msym'.
Wo kann ich diese finden?
Die Fonts `msxm' und `msym' sind veraltet und wurden vor einigen Jahren
durch die Fonts namens `msam' und `msbm' ersetzt. Beide Fonts sind im
AmS-Font-Paket enthalten.
Selbst wenn man die Quellprogramme für die beiden veralteten Fonts
`msxm' und `msym' hätte, könnte man aus diesen keine gf- oder pk-Dateien
erzeugen, da die Fonts `msxm' und `msym' mit dem Vorgänger des aktuellen
METAFONT-Programmes namens `MF79' in der Sprache `SAIL' geschrieben
waren. Aus diesem Grund wurden die beiden Fonts auch nur als pxl- oder
pk-Dateien verteilt.
Als Ersatz gibt es mit `msx2mas' einen Satz virtueller Fonts für `msxm'
und `msym', die die Symbole der vorhandenen Schriften `msam' und `msbm'
verfügbar machen.
msxm/msym: CTAN: fonts/vf-files/msx2msa/
8.2.8 Das Integral- und Summationszeichen ist für Dokumente, die in 11pt
oder gar 12pt gesetzt sind, zu klein.
Den Math-Extension-Font `cmex10', aus dem die `großen' Symbole stammen,
sollte man nicht einfach vergrößern, da einige Parameter dieses
besonderen Fonts den mathematischen Formelsatz in TeX bestimmen. Da es
bisher für 11pt und 12pt keine speziellen Math-Extension-Fonts gibt,
verwendet LaTeX für alle Schriftgrößen den 10pt-Font `cmex10'.
Mit dem Paket `exscale' verwendet LaTeXs skalierte `cmex10'-Fonts und
paßt die Anweisungen \big, \bigg etc. entsprechend an.
exscale: CTAN: macros/latex/base/
8.2.9 Wie vermeide ich den Fehler `! Double superscript.', den ich für
$a^b^c$ erhalte?
Der Term a hoch b hoch c ist nicht eindeutig, da er entweder als (a^b)^c
oder als a^(b^c) interpretiert werden kann. Anstatt nun eine
möglicherweise falsche Interpretation des Terms anzunehmen, meldet TeX
obigen Fehler. Diesen muß man durch explizite Klammerung ${a^b}^c$ bzw.
$a^{b^c}$ auflösen, was dann zu Unterschieden in den Schriftgrößen
führt.
Das gleiche Problem stellt sich auch bei mehrfacher Indizierung $a_b_c$,
wo man die Mehrdeutigkeit ebenso durch Klammerung auflösen muß.
8.2.10 Wie setzt man physikalische Einheiten, etwa Längenangaben?
Es gelten einigen Grundregeln, von denen die meisten das Paket `units'
automatisch korrekt erledigt:
* In wissenschaftlichen Werken werden Einheiten aufrecht und vor allem
bei längeren Ausdrücken, etwa $F = 400\,\mathrm{kN}$, im Mathe-Modus
gesetzt.
* Falls die Integration etwa in einen halbfetten Textteil wichtiger als
die physikalische Korrektheit ist, sollte Textmodus, etwa \textbf{...
3\,m ...}, verwendet werden. Hinweis: Der Unterschied zwischen Text-
und Mathemodus wird deutlicher, wenn man mittels
\renewcommand{\familydefault}{cmss} eine Serifenlose verwendet.
* Zwischen Zahl und Dimension findet kein Zeilenumbruch statt.
* Als Abstand zwischen Zahl und Dimension wählt man \,. Dagegen sehen
die Richtlinien des Springer-Verlags ~ als Abstand vor.
* Einheiten werden _nicht_ in eckige Klammern, wie etwa [N], gesetzt.
Die richtige Schreibweise ist $[F] = \mathrm{N}$.
* In Tabellen stehen Einheiten in runden Klammern in einer eigenen Zeile
im Tabellenkopf, nicht etwa in jeder Zelle:
=========================
Erhoehte Reduktion Druck
bei Rolle 44
(mm) (MPa)
-------------------------
5 8
...
units: CTAN: macros/latex/contrib/supported/units
8.2.11 Wie erhalte ich kursive große griechische Buchstaben? (+)
Während im mathematischen Modus für kleine griechische Buchstaben kursiv
als richtige Schreibweise gewählt wird, erscheinen große griechische
Buchstaben senkrecht. Das Paket `fixmath' ändert dies bei den
üblicherweise verwendeten CM-Schriften. Die Pakete zur Benutzung anderer
mathematischer Schriften haben teilweise eine Option, die dazu führt,
daß große griechische Buchstaben ebenfalls kursiv gesetzt werden. Hierzu
bitte die Dokumentation der jeweiligen Pakete durchlesen.
fixmath: CTAN: macros/latex/contrib/supported/fixmath
was/
8.3 Chemischer Struktur- und Formelsatz (*)
8.3.1 Wie kann ich chemische Strukturformeln mit LaTeX setzen? (*)
Die folgenden Pakete sind eine unvollständige Auswahl (Freiwillige?!).
Ob sie unter LaTeX2e, LaTeX 2.09 oder Plain-TeX verwendbar sind, muß,
falls dies nicht vermerkt ist, selbst getestet werden.
* PPCHTeX: Typesetting Chemical Formulas in TeX, von Hans Hagen und A.F.
Otten
Auf PiCTeX oder PSTricks basierendes Paket, mittlerweile das
flexibelste und umfangreichste Paket. PPCHTeX ist für das TeX-Format
ConTeXt entwickelt worden, kann aber auch mit Plain-TeX und LaTeX (2e
und 2.09) eingesetzt werden. Eine ältere Version ist in den
Proceedings of the 9th European TeX Conference EuroTeX'95, Arnhem,
S. 197-222 und TUGboat 17(1), März 1996, S. 54-66 beschrieben. Für
PPCHTeX gibt es eine mail-basierte Diskussionsliste (siehe Frage
1.3.4).
* XymTeX: A Macro Package for Typsetting Chemical Structural Formulas,
von Shinsaku Fujita
Dieses System ist nach PPCHTeX das umfangreichste. Es verwendet
vorgefertigte Molekülklassen, in denen die Atompositionen vom Anwender
belegt werden können. Durch die `Kondensation' solcher Klassen lassen
sich so ziemlich alle denkbaren Moleküle zaubern. Ohne Handbuch, das
127 Seiten besitzt, und Zeit aber eher unbrauchbar, weil sehr
kompliziert. Eine Beschreibung findet sich auch in der TUGboat 16(1),
S. 81-88.
* Chemstruct: Chemische Strukturformeln mit TeX, von Michael Ramek
Hier gibt man im wesentlichen von einem Bezugsatom ausgehend die Art
und die Himmelsrichtung der Bindung an und gelangt so recht schnell zu
brauchbaren Ergebnissen. So hangelt man sich von Atom zu Atom...
(Handbuch mit 18 Seiten).
* ChemTeX: Typesetting Chemical Equations using LaTeX
Scheint auch mit Molekülklassen zu arbeiten, wenn auch längst nicht so
komplex wie XymTeX, damit anwendungsfreundlicher, aber auch nur für
einen begrenzten Satz an Strukturen geeignet... (Handbuch mit
42 Seiten).
* Chemsym: Chemical Symbols, von Mats Dahlgren
Vereinfacht die Eingabe und den Satz von chemischen Summenformeln und
Reaktionsgleichungen, indem Anweisungen für den Satz der Elemente
inklusive Hoch- und Tiefstellung und eine große Menge von chemischen
Symbolen vordefiniert werden. Für LaTeX2e, mit Dokumentation.
* streeTeX: One more Macro Package for typesetting Structural Formulae
with LaTeX
streeTeX, ein Kunstwort aus `structure' und `tree', verwendet
emTeX-Specials zum Zeichnen der Moleküle. Molekülbindungen werden
dabei von einem Atom ausgehend in 12 verschiedene Richtungen
gezeichnet. Außerdem können NMR-Massenspektren gezeichnet werden.
(Handbuch mit 20 Seiten, englisch oder russisch)
* OCHEM
OCHEM ist ein Paket für den Satz chemischer Strukturformeln und
Reaktionsschemata. Es besteht aus einem Perl-Script, das in einer
speziellen Sprache formulierte Reaktionen in LaTeX- oder
PostScript-Graphiken konvertiert, die automatisch in ein Dokument
eingebunden werden können. Elemente eines Schemas sind Formeln, die
lineare, verzweigte oder konvergente Reaktionsketten bilden und
automatisch angeordnet werden. Elemente einer Formel sind Bindungen
(Richtung/Länge), Textsymbole und Ringe bzw. allgemeine Strukturen.
Die Beschreibung erfolgt teilweise nach geometrischen Gesichtspunkten,
teilweise durch abstrakte Befehle. (Handbuch mit vielen Seiten und
Beispielen)
Daneben gibt es noch Programme wie ChemDraw, ChemWindow o.ä., bei denen
man die erstellte Strukturformel als PS-Datei ausgeben und dann in
(La)TeX einbinden kann.
PPCHTeX: http://www.pragma-ade.nl/ppchtex.htm
CTAN: macros/context/cont-ppc.zip
PPCHTeX-Datenbank: http://www.walram.de/ppchtex/
XymTeX: CTAN: macros/latex/contrib/other/xymtex/
chemstruct: CTAN: macros/latex209/contrib/chemstruct/
chemtex: CTAN: macros/latex209/contrib/chemtex/
chemsym: CTAN: macros/latex/contrib/supported/chemsym/
streeTeX: CTAN: macros/latex/contrib/supported/streetex/
OCHEM: CTAN: support/ochem/
8.3.2 Bei der Verwendung des Paketes `chemtex' mit LaTeX2e erhalte ich
bei der Zuweisung \textfont1=\tenrm einen Fehler. Abhilfen?
\tenrm ist ein alter, nur intern in LaTeX 2.09 zu verwendender Name
eines Font (siehe auch Frage 5.2 ``LaTeX2e - Probleme beim Umstieg'').
Mit dem Paket `rawfonts' kann man diese Namen (nach-)definieren:
\usepackage[only,tenrm]{rawfonts}
rawfonts: CTAN: macros/latex/required/
8.3.3 Das Makro \chemical, das u.a. auch in Helmut Kopka, ``LaTeX - eine
Einführung'' beschrieben wird, funktioniert nicht. Was muß man ändern?
Der im Makro (das aus dem TeXbook stammt!) verwendete Name \tensy des
Math-Symbol-Font ist nur in Plain-TeX und LaTeX 2.09 definiert. LaTeX2e
lädt darüber hinaus die für den mathematischen Formelsatz notwendigen
Fonts erst zu Beginn der ersten zu setzenden Formel, so daß man auch
durch Nachdefinition mit Hilfe des Paketes `rawfonts' in bestimmten
Situationen einen Fehler bekommen kann.
Hier ist eine für LaTeX2e verwendbare Definition von \chemical (die man
in eine .sty-Datei schreiben oder mit \makeatletter ... \makeatother
klammern muß):
%% Anpassung an LaTeX(2e) von Bernd Raichle
\DeclareRobustCommand{\chemical}[1]{%
{\(\m@th
\edef\resetfontdimens{\noexpand\)%
\fontdimen16\textfont2=\the\fontdimen16\textfont2
\fontdimen17\textfont2=\the\fontdimen17\textfont2\relax}%
\fontdimen16\textfont2=2.7pt \fontdimen17\textfont2=2.7pt
\mathrm{#1}%
\resetfontdimens}}
8.4 Notensatz (*)
8.4.1 Wie kann ich mit TeX Noten setzen? (*)
Notensatz mit TeX begann vor vielen Jahren mit dem Paket MuTeX, mit dem
einstimmiger Notensatz möglich war. Auf dessen Basis entwickelte Daniel
Taupin MusicTeX, das durch Ergänzungen insbesondere von Ross Mitchell
und Andreas Egler zu MusiXTeX wurde. Von Egler gibt es auch noch eine
Testversion namens OpusTeX. Die MuTeX-Entwicklung wurde schon vor der
endgültigen Fertigstellung eingestellt. MusicTeX wird gewartet, MusiXTeX
wird gewartet und weiterentwickelt.
MuTeX, MusicTeX und MusiXTeX sind auf CTAN verfügbar. Neue Benutzer
sollten ausschließlich MusiXTeX verwenden und möglichst auch einen der
Präprozessoren wie beispielsweise `PMX' oder speziell für Chor- und
Liedsatz `M-Tx'. Zu diesen drei Paketen gibt es in LaTeX geschriebene
Dokumentation: MusiXTeX 116 Seiten, PMX 18 Seiten, M-Tx 34 Seiten.
Ein weiteres Projekt, welches sich mit dem Notensatz befaßt, ist
`LilyPond'.
MusicTeX: CTAN: macros/musictex/
MusiXTeX: CTAN: macros/musixtex
MuTeX, MusicTeX und MusiXTeX: http://www.gmd.de/Misc/Music/
LilyPond: http://www.cs.uu.nl/~hanwen/lilypond/
`GuitarTeX': http://guitartex.sourceforge.net
8.4.2 Wer kann mir bei Fragen zu Notensatz mit TeX helfen?
Hilfe findet man oft in der MuTeX-Mailing-Liste (siehe Frage 1.3.4).
8.5 Verschiedenes (+)
8.5.1 Wie kann ich in einer tabular-Umgebung eine Spalte speziell
setzen, ohne dies in jedem Eintrag zu wiederholen?
Das Paket `array' erweitert die Umgebungen `array' und `tabular' um
weitere Deklarationen, wie >, <, !, m oder p, in der Tabellenpräambel.
So wird bei ``>{text}'' der Teil ``text'' direkt vor die folgende Spalte
eingefügt, so daß beispielsweise nach
\begin{tabular}{c>{\scshape}cc}
die zweite der drei Spalten in Kapitälchen gesetzt wird.
array: CTAN: macros/latex/required/
8.5.2 Wieso kann ich in einer tabular-Umgebung die letzte Spalte nicht
mit \raggedright linksbündig setzen?
\raggedright definiert die Anweisung \\ um, die in den Umgebungen
`tabular' und `array' zur Markierung des Zeilenendes benutzt wird. In
LaTeX2e und den Paketen `array' und `longtable' existiert daher seit
Dezember 1994 die neue Anweisung \tabularnewline, die man für diesen
Zweck anstelle von \\ verwenden kann.
Für andere Pakete und ältere Versionen kann man auch folgenden Trick aus
dem Buch `Der LaTeX-Begleiter' (siehe Abschnitt 2.4.1) anwenden:
\newcommand{\PreserveBackslash}[1]{%
\let\temp=\\#1\let\\=\temp}
Statt einem einfachen \raggedright verwendet man in einer Tabelle dann
\PreserveBackSlash{\raggedright}.
Ebenfalls nützlich ist in diesem Zusammenhang die folgende Zeile
\usepackage[NewCommands]{ragged2e}
zu Beginn des Dokuments. Damit wird eine bessere Trennung innerhalb
eines mittels \raggedright rechtsbündig gesetzten Absatzes bewirkt.
ragged2e: CTAN: macros/latex/contrib/supported/ms/
8.5.3 Wie erreiche ich, daß mit `tabular' erstellte Tabellen bündig mit
dem linken Rand gesetzt werden?
Zwischen den Spalten einer `tabular', aber auch links von der ersten und
rechts von der letzten Spalte, wird üblicherweise ein Zwischenraum der
Breite \tabcolsep eingefügt. Um diesen zu unterdrücken, muß man in die
Tabellenpräambel die Anweisung ``@{}'' einfügen, also beispielsweise
\begin{tabular}{@{}ll@{}}
... % ^^^ ^^^
\end{tabular}
Die Anweisung ``@{text}'' sorgt dafür, daß ``text'' _statt_ eines
Spaltenzwischenraums eingefügt wird. ``@{}'' unterdrückt also, daß
zwischen zwei Spalten Zwischenraum eingefügt wird. Daran sollte man auch
bei \multicolumn-Anweisungen denken, die sich über die erste bzw. letzte
Spalte etwa einer dreispaltigen Tabelle erstrecken:
\multicolumn{2}{@{}l}{Spalten 1 und 2} & bla \\
bzw.
bla & \multicolumn{2}{l@{}}{Spalten 2 und 3} \\
8.5.4 Ich erhalte die Fehlermeldung `! You can't use \spacefactor in
vertical mode.' oder `Command \@ already defined.'. Mache ich etwas
falsch?
In den meisten Fällen liegt die Schuld an der (Re-)Definition eines
internen Makros, also eines Makros mit einem At-Zeichen `@' am Anfang
des Namens. Beispielsweise tritt der erstgenannte Fehler nach der
Definition
\renewcommand{section}{%
\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus-.2ex}%
{2.3ex plus.2ex}{\normalfont\Large\bfseries}}
in der Dokumentpräambel auf. Man beachte, daß sowohl `\@startsection'
neben `\z@' ein At-Zeichen im Namen haben und daher normalerweise als
Folge der Tokens `\@', `s', `t', ... `n' und nicht als ein Token
`\@startsection' gelesen wird.
Vermeiden kann man diesen Fehler, indem man die Definition einfach in
einer .sty-Datei vornimmt oder in der Präambel mit \makeatletter ...
\makeatother klammert.
8.5.5 Wie kann ich erreichen, daß ein Zähler bei Erhöhung eines anderen
Zählers zurückgesetzt bzw. nicht zurückgesetzt wird?
Mit der Deklaration \@addtoreset{equation}{section} kann man erreichen,
daß der Gleichungszähler immer dann auf Null zurückgesetzt wird, wenn
der Abschnittszähler erhöht wird. Diese Deklaration wird implizit
aufgerufen, wenn man in der Deklaration des Gleichungszählers das
optionale Argument verwendet, also \newcounter{equation}[section]. Soll
das Gegenteil erreicht werden, so wird das Paket `remreset' benötigt,
das die Deklaration \@removefromreset implementiert, mit der man durch
\@removefromreset{equation}{section} obiges nachträglich wieder
rückgängig machen kann.
remreset: CTAN: macros/latex/contrib/supported/carlisle/remreset.sty
8.5.6 Kann ich auch auf meinem System Umlaute und andere Sonderzeichen
direkt mit der Tastatur in mein LaTeX-Dokument eingeben?
Ja. Zu diesem Zweck dient das Standard-LaTeX-Paket `inputenc'. Es setzt
die leider nicht standardisierten Zeichen mit einem Code>127 in eine
einheitliche für TeX verständliche Kodierung um. Damit dies so wie
gewünscht erfolgt, muß als Paketoption die zutreffende Kodierung des
jeweiligen Betriebssystems angegeben werden:
\usepackage[Kodierung]{inputenc}
Die folgenden Angaben und weitere sind für `Kodierung' möglich:
latin1 - Die meisten Unix-Systeme und VMS.
ansinew - Windows 3.x, 9x, NT. Geringe Abweichungen zu `latin1'.
cp437de - MSDOS.
cp850 OS/2, auch mit MSDOS, falls explizit
- die Codepage IBM-850 benutzt wird.
applemac - Apple-Macintosh.
Dokumente, die unter Verwendung von `inputenc' geschrieben sind, können
trotz unterschiedlicher Zeichenkodierung in den meisten Fällen auch auf
fremden Systemen übersetzt werden. Eine Mischung unterschiedlicher
Kodierungen ist allerdings nicht möglich. Siehe dazu auch
8.5.7 Wie kann ich Umlaute in Texinfo-Dokumenten verwenden? Gibt es eine
deutsche/internationalisierte Version von Texinfo?
Mit der aktuellen Version 4.0 können Umlaute mit dem Makro @" (Bsp:
@"A), Akzente mit @' (Bsp: @'e) usw. eingegeben werden. Darüberhinaus
existieren auch die Lettern wie @ss{}, die Ligaturen @AE{}, @ae{}, @OE{}
und @oe{}, die Lettern mit Ring @AA{} und @aa{}, die durchgestrichenen
Lettern @O{} und @o{} und einige mehr.
Die Unterstützung auch der deutschen Sprache ist in neueren Versionen
bereits enthalten.
8.5.8 Wie kann ich die Fehlermeldung `Text line contains an invalid
character' abstellen, die ich unter emTeX bekomme, sobald ich Umlaute
verwende?
Um Umlaute verwenden zu können, muß man unter emTeX eine Formatdatei
``8-bit clean'' erzeugen, da sonst alle Zeichen mit Code>127 auf das
Zeichen 127 (= ^^?) abgebildet werden, das in TeX normalerweise als
`invalid' deklariert ist. ``8-bit clean'' werden Formatdateien mit
makefmt 8bit ...
(bzw. `tex -i -8 ...') erstellt.
8.5.9 Wie kann man mit LaTeX Serienbriefe erstellen?
Die Klasse `scrlettr' des KOMA-Script-Paketes und die Klasse `akletter',
beide zur Erstellung von Briefen gedacht, unterstützen die Erstellung
von Serienbriefen. Neben diesen gibt es mit den LaTeX-Paketen `mailing',
`textmerg', `finder', `formletter' und `tk_Brief' noch weitere Pakete
für Serienbriefe.
Für eine kleinere Anzahl von Serienbriefen kann man den Text des Briefes
auch in einem Makro mit \newcommand definieren, wobei man die für jeden
Empfänger unterschiedlichen Textteile diesem Makro als Parameter
übergibt. Anschließend wird dieses Makro dann mehrmals mit jeweiliger
Anrede, Name, Straße, Ort usw. aufgerufen.
koma: CTAN: macros/latex/contrib/supported/koma-script/
akletter: CTAN: macros/latex/contrib/supported/akletter/
mailing: CTAN: macros/latex/contrib/supported/mailing/
textmerg: CTAN: macros/latex/contrib/supported/textmerg/
finder: CTAN: macros/latex209/contrib/letters/finder/
formletter: CTAN: macros/generic/formlett.sty
tk_Brief: http://krisralf.physik.uni-karlsruhe.de/tk_Brief/
8.5.10 Wie kann ich in LaTeX mehrere `enumerate'-Umgebungen verwenden,
ohne daß der Zähler immer wieder zurückgesetzt wird?
Mit dem im Paket `mdwlist' enthaltenen Anweisungen \suspend{enumerate}
und \resume{enumerate} kann der Zähler für die Aufzählungspunkte
entsprechend gesetzt werden.
mdwlist: CTAN: macros/latex/contrib/supported/mdwtools
8.5.11 Wie kann ich den Dateinamen meines LaTeX-Dokuments innerhalb des
Dokuments ausgeben?
Man verwende
\jobname.tex
für diesen Zweck. Eine portable Lösung, um auch das Verzeichnis, in dem
sich die Datei befindet, zu erhalten, existiert nicht.
8.5.12 Meine Versuche, \figurename, \tablename o.ä. bei Verwendung des
Pakets `babel' umzudefinieren, mißlingen. Was kann ich tun?
Die naheliegende Lösung
\renewcommand{\figurename}{Abb.}
\renewcommand{\tablename}{Tab.}
funktioniert so mit dem Paket `german'. Das Paket `babel' schaltet
jedoch erst zu Beginn des Dokuments auf die gewählte Sprache um. In
diesem Fall werden dann \figurename und \tablename auf die in `babel'
definierten Standardwerte `Abbildung' bzw. `Tabelle' gesetzt. Mit
folgender Definition kann das Problem gelöst werden:
\usepackage[german]{babel}
\addto\captionsgerman{%
\renewcommand{\figurename}{Abb.}%
\renewcommand{\tablename}{Tab.}%
}
8.5.13 Ich habe neue Dateien zu dem TeX-Baum hinzugefügt, wieso werden
sie von TeX bzw. LaTeX nicht gefunden?
Um die Suche nach Dateien zu beschleunigen, verwenden einige TeX-Systeme
eine Datenbank mit den Dateinamen im TeX-Baum. Werden neue Dateien
hinzugefügt oder Dateien entfernt, so muß man bei diesen System die
Datenbank auf den aktuellen Stand bringen. Unter teTeX oder fpTeX geht
das durch Aufruf von ``mktexlsr'' oder ``texconfig rehash''; in älteren
Versionen muß man ``texhash'' verwenden. Unter MikTeX klickt man auf
`Start', `Programme', `MikTeX', `Maintenance', `Refresh Filename
Database' oder man ruft in der MS-DOS-Eingabeaufforderung ``initexmf
-u'' auf.
8.5.14 Wenn ich versuche, mit der Anweisung \tracingall Fehler in meinem
LaTeX-Dokument zu finden, erhalte ich viele unnütze Informationen. Kann
man das ändern?
Bei Verwendung des LaTeX-Pakets `trace' werden viele dieser oft unnützen
Informationen unterdrückt. Mit den enthaltenen Anweisungen \traceon und
\traceoff lassen sich die zu untersuchenden Bereiche weiter
einschränken. Besonders günstige Ergebnisse werden mit eLaTeX erzielt.
Näheres ist in der Paketbeschreibung nachzulesen.
trace: http://www.latex-project.org/code/experimental/trace/
8.5.15 Wieso bekomme ich bei einem Acute-Akzentzeichen oder einem
Anführungszeichen eine Fehlermeldung statt des gewünschten Zeichens?
Bei der Eingabe eines Apostrophzeichens für \'e, "' oder '' kommt es bei
Benutzung einer entsprechenden Tastaturbelegung immer wieder vor, daß
man statt des Apostrophs (Code 29 in ASCII) auf der Tastatur das ähnlich
aussehende Akzentzeichen (Code 180 in ISO Latin-1) verwendet.
8.5.16 Wie kann ich den üblichen Absatzeinzug auch innerhalb von
`minipage' bzw. `\parbox' erhalten?
Die üblichen Einstellungen von LaTeX sind derart, daß innerhalb einer
`minipage' oder einer `\parbox' Absätze ohne Einzug und mit vertikalem
Abstand gesetzt werden. Will man dies ändern, so kann man für
Einzelfälle die entsprechenden Längenregister anpassen:
\begin{minipage}{...}
\setlength{\parindent}{1em}
\setlength{\parskip}{0pt}
...
\end{minipage}
Soll diese Änderung für alle Umgebungen einheitlich erfolgen, so ist
eine der beiden internen Anweisungen `\@minipagerestore' oder
`\@parboxrestore' zu ändern. `\@minipagerestore' wirkt nur auf
`minipage'-Umgebungen, während `\@parboxrestore' neben `minipage' auch
auf `\parbox' als auch auf andere Umgebungen und Anweisungen (wie
Fließumgebungen, `\caption', `\marginpar', Fußnoten) wirkt. Folgendes
Beispiel zeigt die Änderung von `\@minipagerestore', wobei man diese
Zeilen in eine .sty-Datei oder mit \makeatletter ... \makeatother
geklammert in die Dokumentpräambel schreiben muß:
\newcommand{\orig@minipagerestore}{}
\let\orig@minipagerestore=\@minipagerestore
\renewcommand{\@minipagerestore}{%
\orig@minipagerestore
\setlength{\parindent}{1em}%
\setlength{\parskip}{0pt}%
}
8.5.17 Wie kann ich die Schriftgröße relativ zur aktuell verwendeten
eine Stufe kleiner oder größer wählen?
Mit dem Paket `relsize' kann man die Schriftgröße um einige Stufen
kleiner oder größer als die aktuell verwendete wählen. Hierzu dienen die
Anweisungen \smaller, \larger oder \relsize{n} bzw. \textsmaller{text},
\textlarger{text} und \mathsmaller{formel}, \mathlarger{formel}.
Will man die Schriftgröße aller Fußnoten, Bildunterschriften oder
Überschriften um eine Stufe kleiner oder größer wählen, so ist es besser
die Makros für Fußnoten, Unterschriften bzw. Überschriften entsprechend
abzuändern. Dies kann sehr einfach mit Paketen wie `footmisc',
`caption2', `titlesec' oder `sectsty', die an anderer Stelle erwähnt
werden, erfolgen.
relsize: CTAN: macros/latex/contrib/other/misc/relsize.sty
8.5.18 Wie verwende ich (La)TeX zusammen mit METAPOST?
Der Artikel ``Some Experiences in Running METAFONT and METAPOST'' von
Peter Wilson beschreibt die Verwendung von METAPOST in LaTeX.
Peter Wilson: Some Experiences...: CTAN: info/metafp.pdf
CTAN: info/metafp.ps
8.5.19 Wie kann ich ein LaTeX-Makro umdefinieren und dabei auf dessen
bisherige Bedeutung zugreifen? (+)
Die einfache Vorgehensweise eine vorhandene Anweisung \foo durch
beispielsweise
\renewcommand{\foo}[1]{%
... tue was ... \foo{#1} ... nochmal was ...}
funktioniert nicht, da sich \foo immer wieder selbst aufrufen würde, man
also eine Endlosschleife hätte. Um diese zu vermeiden, muß man das Makro
\foo vorher umbenennen und dann das umbenannte Makro in der neuen
Definition verwenden:
% Die Originaldefinition des Makros unter einem neuen Namen retten.
% Sicherstellen, dass der neue Name bislang undefiniert ist:
\newcommand{\origfoo}{}
% Originaldefinition unter neuem Namen merken:
\let\orgfoo=\foo
%
% Makro nun neu definieren:
\renewcommand{\foo}[1]{%
... tue was ...
\origfoo{#1}%
... nochmal was ...}
8.5.20 Wie kann ich ein Zeichen hoch- oder tiefstellen, ohne den
Mathematikmodus zu benutzen? (+)
Für das Hochstellen von Zeichen ohne Einschaltung des Mathematikmodus
bietet LaTeX die Anweisung \textsuperscript{} an.
Mit den folgenden Definitionen, die analog der Definiton von
\textsuperscript sind, erhält man eine entsprechende Anweisung
\textsubscript{} zum Tiefstellen von Zeichen:
\DeclareRobustCommand*\textsubscript[1]{%
\@textsubscript{\selectfont#1}}
\newcommand{\@textsubscript}[1]{%
{\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
Das Paket `lhelp' enthält bereits diese Definition.
lhelp: CTAN: macros/latex/contrib/supported/lhelp
--- DE-TeX-FAQ Ende Teil 8 ---
--- DE-TeX-FAQ Beginn Teil 7 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
7 TeX, LaTeX, Makros etc. (III)
7.1 Gliederung, Inhalts-, Abbildungs- und andere Verzeichnisse (+)
7.1.1 Beim Formatieren von \tableofcontents erhalte ich sehr viele
Meldungen mit ``overfull \hbox''. Woran liegt das?
Die Seitennummer wird in eine Box der Breite \@pnumwidth gesetzt. Der in
den Standardklassen hierfür verwendete Wert von 1.55em kann in manchen
Situationen (Seitennummer>=1000, breiterer Font) zu klein sein. Abhilfe:
\renewcommand{\@pnumwidth}{2em}% statt `2em' evtl. groesserer Wert
Eventuell muß man dann auch den Wert im Makro \@tocrmarg anpassen. Da
man ein internes Makro ändert, ist diese Anweisung in eine .sty-Datei
oder mit \makeatletter ... \makeatother geklammert in die
Dokumentpräambel zu schreiben.
Längere Abschnittsnummern können eine andere Ursache dieses Fehlers
sein. Hier muß man in den Definitionen der Makros \l@<type>, wie z.B.
\l@section, im Aufruf des Makros \@dottedtocline das dritte Argument
entsprechend vergrößern. Näheres hierzu im Buch ``Der LaTeX-Begleiter''
(siehe Frage 2.4.1).
7.1.2 Bei einem Artikel mit sehr vielen Abschnitten und Unterabschnitten
``klebt'' die Überschrift im `toc' direkt hinter der Abschnittsnummer.
Kann man den Platz verbreitern?
In der Datei der verwendeten Klasse wird das Aussehen einer Zeile in den
Verzeichnissen durch ein Makro namens `\l@<typ>' festgelegt. Für eine
\subsection ist dies das Makro \l@subsection, das z.B. in
``article.cls'' durch
\newcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}
definiert ist. Die Länge 1.5em gibt an, wie breit der Einschub vom
linken Rand ist, die Länge 2.3em, wie breit der Platz für die
Abschnittsnummer sein soll. Will man diese vergrößern, kann man dies
beispielsweise mit
\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{3.3em}}
in einer .sty-Datei oder mit \makeatletter ... \makeatother geklammert
in der Dokumentpräambel. Mehr dazu findet man im Buch ``Der
LaTeX-Begleiter'' (siehe Frage 2.4.1).
Sehr viel einfacher geht dies mit dem Paket `tocloft', das einem die
volle Kontrolle über die Formatierung der einzelnen Verzeichnisse
erlaubt. Es benötigt noch das Paket `stdclsdv'.
tocloft: CTAN: macros/latex/contrib/supported/tocloft
stdclsdv: CTAN: macros/latex/contrib/supported/stdclsdv
7.1.3 Warum werden die durch \subsubsection angegebenen Abschnitte nicht
mehr numeriert?
Jeder Gliederungsebene ist in LaTeX eine Nummer zugeordnet:
-1 part 1 section 3 subsubsection 5 subparagraph
0 chapter 2 subsection 4 paragraph
Bei der Klasse `article' existiert der Befehl \chapter nicht, und \part
erhält die Nummer 0 zugeordnet.
Die Gliederungsebene, bis zu der numeriert wird, legt der Zähler
`secnumdepth' fest. Die Standardklassen setzen diesen Zähler auf den
Wert 2, also bis \subsection. Um auch für tieferliegende Ebenen eine
Numerierung zu erhalten, muß der Zähler entsprechend erhöht werden. Mit
\setcounter{secnumdepth}{4} werden die Überschriften der Ebenen bis
\paragraph mit einer Nummer versehen, auch wenn dies nur in den
allerwenigsten Fällen sinnvoll ist.
7.1.4 Wie erreiche ich, daß Abschnittsüberschriften ein anderes Aussehen
bekommen?
Die LaTeX-Anweisungen \section, \subsection etc. werden in den
Klassendateien wie z.B. ``article.cls'' definiert. (In LaTeX 2.09 wurden
sie dagegen in den Hilfsdateien wie z.B. ``art10.sty'' definiert.) Die
Definitionen verwenden dabei die allgemeinere Anweisung \@startsection,
in deren sechstem Argument man Formatieranweisungen angeben kann. Zur
Änderung kopiert man sich die Definition aus ``article.cls'' bzw. die
entsprechende Klassendatei in eine .sty-Datei, ändert \newcommand (bzw.
\def) zu \renewcommand und fügt die Anweisung \centering zu den
bestehenden Formatieranweisungen hinzu:
\renewcommand{\section}{%
\@startsection {section}{1}{\z@}%
{-3.5ex plus -1ex minus -.2ex}%
{2.3ex plus.2ex}%
{\normalfont\Large\bfseries \centering}}
Man vergesse nicht, diese Definition mit \makeatletter ... \makeatother
zu klammern oder in eine .sty-Datei zu schreiben!
Mit dem Paket `titlesec' können Abschnittsüberschriften noch einfacher
angepaßt werden. Beispielsweise erhält man mit
\usepackage{titlesec}
\titleformat{\section}%
{\normalfont\Large\bfseries \filcenter}%
{\thesection}%
{1em}%
{}%
eine Zentrierung der \section-Überschriften. Hierbei wurde \filcenter,
eine spezielle Anweisung des Pakets verwendet, jedoch kann auch
\centering verwendet werden. Die Anweisung \titleformat hat ein
optionales Argument, mit dem man beispielsweise wie bei \paragraph
eingebettete oder in den Rand ragende Überschriften erhalten kann.
Abstände zwischen Überschrift und Text werden mit der Anweisung
\titlespacing vorgegeben.
Ebenso erleichtert das Paket `sectsty' die Änderung der
Abschnittsüberschriften in den LaTeX-Standardklassen.
titlesec: CTAN: macros/latex/contrib/supported/titlesec
sectsty: CTAN: macros/latex/contrib/supported/sectsty
7.1.5 Warum werden die durch \subsubsection angegebenen Abschnitte nicht
mehr ins Inhaltsverzeichnis aufgenommen?
Ebenso wie der Zähler `secnumdepth' die Gliederungsebene festlegt, bis
zu der Abschnitte numeriert werden, legt der Zähler `tocdepth' die
Gliederungsebene fest, bis zu der Abschnitte in das Inhaltsverzeichnis
aufgenommen werden. Beispielsweise werden nach der Anweisung
\setcounter{tocdepth}{4} alle Abschnitte einschließlich der
\paragraph-Ebene in das Inhaltsverzeichnis aufgenommen (siehe dazu Frage
7.1.3). Diese Anweisung muß in der Präambel, auf jeden Fall vor
\tableofcontents verwendet werden.
7.1.6 Wie kann ich verhindern, daß z.B. \subsection usw. im Anhang in
das Inhaltsverzeichnis aufgenommen werden?
Der Zähler `tocdepth' wird nur beim \tableofcontents ausgewertet, also
nur beim Satz und nicht bei der Erstellung der .toc-Datei. Daher hat
eine Änderung von `tocdepth' nach dem Befehl \appendix keine Wirkung.
Stattdessen muß man dafür sorgen, daß die Änderung von `tocdepth' mit
\addtocontents in die .toc-Datei gelangt:
\documentclass{article}
%
\newcommand{\settocdepth}[1]{%
\addtocontents{toc}{\protect\setcounter{tocdepth}{#1}}}
%
\begin{document}
\tableofcontents
\section{Abschnitt}
\subsection{Unterabschnitt}
blabla
%
\appendix
\settocdepth{1}
%
\section{Abschnitt}
\subsection{Unterabschnitt}
\subsubsection{Unterunterabschnitt}
blabla
\end{document}
7.1.7 Wie kann ich erreichen, daß Literatur-, Abbildungs-, Tabellen- und
sonstige Verzeichnisse in das Inhaltsverzeichnis mit aufgenommen werden?
Diese Verzeichnisse werden normalerweise nicht in das Inhaltsverzeichnis
aufgenommen. Wenn dies dennoch notwendig ist oder erwünscht wird, kann
man es am einfachsten mit den Dokumentklassen des KOMA-Script-Paketes
erreichen, da diese Klassen die hierfür gedachten Optionen `liststotoc',
`bibtotoc' bzw. `bibtotocnumbered' und `idxtotoc' kennen.
Bei Verwendung anderer Klassen kann eventuell das Paket `tocbibind'
weiterhelfen. Ansonsten könnte man als letzte Lösung unmittelbar vor die
Anweisungen \bibliography, \listoftables, \listoffigures und \printindex
die Anweisungen
\clearpage
\addcontentsline{toc}{section}{\refname}
schreiben. Statt \refname ist evtl. \bibname bzw. \listtablename,
\listfigurename oder \indexname einzusetzen; `section' kann bei
Verwendung der Dokumentklassen `report' und `book' durch `chapter'
ersetzt werden. Außerdem muß bei Verwendung der Klassenoption `twoside',
die bei `book' voreingestellt ist, \clearpage durch \cleardoublepage
ersetzt werden.
koma-script: CTAN: macros/latex/contrib/supported/koma-script/
tocbibind: CTAN: macros/latex/contrib/supported/tocbibind/
7.1.8 Wie kann ich die Formatierung des automatisch erzeugten
Inhaltsverzeichnisses ändern?
Mit dem Paket `titletoc', das zusammen mit dem Paket `titlesec' verteilt
und dokumentiert wird, kann man sehr frei die Formatierung der
Inhaltsverzeichniseinträge ändern. Daneben gibt es noch das Paket
`tocloft', mit dem man ebenso die Formatierung des Inhalts-, Abbildungs-
und Tabellenverzeichnisses anpassen kann.
titletoc/titlesec: CTAN: macros/latex/contrib/supported/titlesec/
tocloft: CTAN: macros/latex/contrib/supported/tocloft/
7.1.9 Wie kann ich mit \ref nicht nur die Abschnittsnummer, sondern auch
den Text einer Abschnittsüberschrift erhalten?
Das Paket `titleref' stellt hierzu die Anweisung \titleref, der analog
zu \ref und \pageref den Text einer Abschnittsüberschrift oder
Abbildungsunterschrift liefert. Hierzu muß die Anweisung \label _nach_
den Abschnittsanweisungen und \caption erfolgen und darf _nicht_ im
Argument angegeben werden.
Im `hyperref'-Bündel existiert mit `nameref' ein weiteres Paket, das
diese Funktionalität anbietet. Dieses definiert die Anweisung \nameref.
Insbesondere im Zusammenhang mit der Erzeugung von pdf-Dateien sollte
diese Lösung bevorzugt werden.
titleref: CTAN: macros/latex/contrib/other/misc/titleref.sty
nameref: CTAN: macros/latex/contrib/supported/hyperref/
7.1.10 Wie kann ich in einem Stichwortverzeichnis oder einem
Literaturverzeichnis noch Text zwischen die Überschrift und die
Verzeichnisliste bekommen?
Hierfür muß man die Umgebung `thebibliography' bzw. `theindex'
umdefinieren. Man kopiert sich dazu die Definition dieser Umgebungen aus
der Klassendatei in eine eigene Paketdatei, ersetzt die Anweisung
\newenvironment durch \renewenvironment. Anschließend fügt man zwischen
der Überschrift, die mit \section oder \chapter erzeugt wird und der
Listen-Umgebung die Anweisungen
\renewenvironment{\thebibliography}[1]{%
\section*{\refname
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
% vvvv--- neu
\thebibliographyhook
\renewcommand{\thebibliographyhook}{}% Hook ruecksetzen
% ^^^^--- neu
\list{\@biblabel{\arabic{enumiv}}}%
...
wie hier für `thebibliography' gezeigt, ein.
Für das Stichwortverzeichnis werden diese Zeilen, diesmal mit
\theindexhook, in die entsprechend zu ändernde Definition der Umgebung
`theindex' eingefügt. Bei dieser muß man darauf achten, die beiden
Zeilen _in_ das optionale Argument der Anweisung \twocolumn einzufügen,
wenn der Text über beide Spalten gehen soll.
Schließlich werden diese ``Haken'' mit der neuen Definition
\newcommand{\thebibliographyhook}{} % Standard-Wert: kein Text
\newcommand{\theindexhook}{} % Standard-Wert: kein Text
auf einen Wert gesetzt, der das bisherige Verhalten nicht verändert.
Will man nun zusätzlichen Text einfügen, so wird der jeweilige Hook
direkt vor dem entsprechenden Verzeichnis per \renewcommand auf den
gewünschten Text gesetzt.
Von Version 2.6c an bieten die Dokumentklassen des KOMA-Script-Paketes
einen noch einfacheren Weg mit den Anweisungen `\setbibpreamble' und
`\setindexpreamble'.
koma-script: CTAN: macros/latex/contrib/supported/koma-script/
7.1.11 Wie kann ich mehrere Verzeichnisse in der Art des
Sichwortverzeichnisses, z.B. ein zusätzliches Autorenverzeichnis,
anlegen?
Zu diesem Zweck geeignet sind die LaTeX-Pakete `camel' und `multind'.
camel: CTAN: macros/latex/contrib/supported/camel/
multind: CTAN: macros/latex209/contrib/misc/multind.sty
7.1.12 In meinem LaTeX-Dokument fehlen die Einträge im Inhalts-,
Tabellen- und Abbildungsverzeichnis, obwohl die Dateien .toc, .lot
bzw..lof vorhanden sind. Ich benutze das Paket `fancybox'. (+)
Diese Besonderheit verschwindet mit einer aktuelleren Version des
Paketes `fanycbox', mindestens Version 1.3. Um sicherzustellen, daß man
eine einigermaßen aktuelle Version benützt, kann man beim Laden des
Pakets das Datum angeben:
\usepackage{fancybox}[2000/09/19]
fancybox: CTAN: macros/latex/contrib/supported/fancybox/
7.2 Literaturzitate, Literaturverzeichnis, BibTeX
7.2.1 Wie kann ich im Text mit dem Autor/Jahreszahl o.ä. zitieren?
Hierfür gibt es eine größere Anzahl von Paketen, wie `natbib', `theapa'
oder `cite', die dies erlauben.
natbib: CTAN: macros/latex/contrib/supported/natbib/
theapa: CTAN: macros/latex209/contrib/theapa/
cite: CTAN: macros/latex/contrib/supported/cite/
7.2.2 Wie kann ich das BibTeX-Stylefile xyz.bst so abändern, daß an
Stelle X ein/kein Komma/Punkt erscheint, daß der Eintrag Y anders
formatiert wird etc.?
Die Programmiersprache von BibTeX, in der die .bst-Dateien geschrieben
sind, ist in der Datei ``btxhak.tex'' beschrieben, die jedem
BibTeX-Paket beiliegen sollte. Bevor man diese für die meisten
ungewohnte Sprache lernt, sollte man zuerst überprüfen, ob die eigenen
Wünsche schon durch das Paket `custom-bib' abgedeckt werden können.
Dieses Paket enthält ein menügesteuertes, in TeX selbst geschriebenes
Erzeugungsprogramm, das aus einer Master-bst-Datei eine bst-Datei mit
den ausgewählten Eigenschaften erzeugt.
custom-bib: CTAN: macros/latex/contrib/supported/custom-bib/
btxdoc/btxhak: CTAN: biblio/bibtex/distribs/doc/
7.2.3 Gibt es ans Deutsche angepaßte .bst-Dateien?
Ja, zum Beispiel kann man mit dem in Frage 7.2.2 genannten Paket
`custom-bib' .bst-Dateien für verschiedene Sprachen, darunter auch
Deutsch, generieren.
Unter http://www.fh-hamburg.de/pers/Lorenzen/bibtex/ findet man in
``abbrvdin.zip'', ``alphadin.zip'', ``plaindin.zip'', ``unsrtdin.zip''
und ``natdin.zip'' an DIN angepaßte BibTeX-Style-Dateien. ``natdin.bst''
ermöglicht Verfasser-Jahr-Zitierweisen zusammen mit DIN-Zitierstandard.
Der BibTeX-Style ``dinat.bst'' ist eine verbesserte Versionen von
``natdin.bst''.
Online-Tutorial: http://www.bui.fh-hamburg.de/projekt/din1505/
dinat: CTAN: biblio/bibtex/contrib/german/dinat/
Außerdem gibt es folgende angepaßte .bst-Dateien und -Pakete (ohne
Gewähr, unvollständig, Reihenfolge ist _keine_ Wertung):
abstyles: CTAN: biblio/bibtex/contrib/abstyles/
dinalpha: CTAN: biblio/bibtex/contrib/dinalpha.bst
geralpha: CTAN: biblio/bibtex/contrib/geralpha/
germbib: CTAN: biblio/bibtex/contrib/germbib/
7.2.4 Wie kann ich statt der eckigen Klammern [1] im Text bzw. im
Literaturverzeichnis hochgestellte Ziffern, runde Klammern (1) oder
Schrägstriche /1/ verwenden?
Für die Form der Labels im Text ist die interne Anweisung \@cite, für
die Form im Literaturverzeichnis die interne Anweisung \@biblabel
anzupassen. Deren Standarddefinitionen lauten:
\newcommand{\@cite}[2]{[{#1\if@tempswa , #2\fi}]}
\newcommand{\@biblabel}[1]{[#1]}
Will man statt der eckigen Klammern Schrägstriche, so lauten die
Redefinitionen
\renewcommand{\@cite}[2]{/{#1\if@tempswa , #2\fi}/}
\renewcommand{\@biblabel}[1]{/#1/}
Nicht vergessen: Redefinitionen von internen Anweisungen (= enthalten
ein `@' im Namen) müssen entweder in ein .sty-File geschrieben oder in
der Präambel des Dokuments durch \makeatletter ... \makeatother
geklammert werden!
Die Pakete `cite' und `overcite' definieren Befehle, wie \citeleft und
\citeright, die die Klammern erzeugen und die der Benutzer mit
\renewcommand sehr einfach umdefinieren kann. Nach
\usepackage{cite}
\renewcommand{\citeleft}{(}
\renewcommand{\citeright}{)}
bekommt man statt eckiger Klammern [1] runde Klammern (1).
Das Paket `overcite' erlaubt es außerdem, Zitatstellen im Text mit
hochgestellten Ziffern zu markieren.
cite, overcite: CTAN: macros/latex/contrib/supported/cite/
7.2.5 Wie erreiche ich, daß innerhalb eines \cite im Dokumenttext
umbrochen werden darf?
Das Paket `cite' definiert die Zitieranweisung von LaTeX so um, daß ein
Zeilenumbruch möglich ist.
cite: CTAN: macros/latex/contrib/supported/cite/
7.2.6 Wie kann ich verhindern, daß die Wörter im Titel eines
.bib-Eintrages kleingeschrieben werden?
Entweder den Titel komplett oder alle groß zu schreibenden Wörter
einzeln noch einmal klammern, also in der .bib-Datei statt
title = {Fragen und Antworten}
einfach
title = {{Fragen und Antworten}}
oder
title = {{Fragen} und {Antworten}}
eingeben.
Eine alternative Lösung (oder besser: Ergänzung der Klammerung) ist die
Änderung oder Verwendung einer entsprechend geänderten bst-Datei, in der
bei der Formatierung des Titels und anderer Teile eines Eintrages die
BibTeX-Anweisung `change.case$' _nicht_ ausgeführt wird. Dies sollte bei
den an das Deutsche angepaßten bst-Dateien (siehe Frage 7.2.3) bereits
der Fall sein, im Paket `custom-bib' (siehe Frage 7.2.2) kann die
Umwandlung über einen Menüpunkt ausgewählt werden.
7.2.7 Bei Labels wie [Rai95], die aus Teilen des Autorennamens gebildet
werden, treten Fehler bei Autorennamen mit Umlauten auf; wie kann ich
das verhindern?
Damit BibTeX die Konstruktion `\"a' für Umlaute als ein einzelnes
Zeichen korrekt erkennen kann, muß der Umlaut mit einer zusätzlichen
Klammerung im Eintrag in der .bib-Datei eingegeben werden, also als
`{\"a}' oder `{\ss}'. Tip: BibTeX-Dokumentation in ``btxdoc'' lesen!
btxdoc: CTAN: biblio/bibtex/distribs/doc/
7.2.8 Kann ich Umlaute direkt in einer .bib-Datei verwenden?
Jein. Einige neuere BibTeX-Implementierungen erlauben die Ein- und
Ausgabe von Umlauten und anderen akzentuierten Zeichen. Will man diese
Dateien jedoch an Personen auf anderen Rechnersystemen und anderen
BibTeX-Implementierungen weitergeben, sollte man sich auf die
Standard-Kodierung mit `{\"a}' etc. beschränken.
Im Schlüssel eines Verweises, also dem Argument von \cite bzw. und dem
ersten Wort, dem Schlüssel eines .bib-Eintrages, darf man _keine
Umlaute_ verwenden. Hier sollte man sich auf die 26 Klein- und
26 Großbuchstaben, die 10 Ziffern und die Satzzeichen beschränken. Der
Grund liegt darin, daß dieser Schlüssel von (La)TeX an BibTeX übergeben
werden muß und ein Schlüssel mit Umlauten auf diesem Wege eventuell zu
einer anderen Zeichenkette expandiert werden kann, die im BibTeX-Lauf
mit keinem Schlüssel in der .bib-Datei übereinstimmt. Dadurch kann dann
der Eintrag von BibTeX bzw. von (La)TeX nicht gefunden werden.
7.2.9 Wie kann ich erreichen, daß mehrere Zitate [5,3,1,7,6] zu
[1,3,5-7] sortiert und zusammengefaßt werden?
Je nach Art der bevorzugten Darstellung der Zitate im Text erreicht man
dies mit dem Paket `cite' oder `overcite'.
cite, overcite: CTAN: macros/latex/contrib/supported/cite/
7.2.10 Wie kann man in einem Dokument verschiedene Abschnitte mit
eigenen Literaturverzeichnissen versehen?
Die Pakete `chapterbib' und `bibunits' erlauben es, mehrere
Literaturverzeichnisse in einem Dokument zu verwenden, solange diese in
eigenen Abschnitten stehen. Bei `chapterbib' muß jeder der Abschnitte in
einer getrennt mit \include{...} einzubindenden Datei stehen. Beide
Pakete (`bibunits' ab Version 2.1) arbeiten problemlos mit anderen
Paketen wie `natbib' zusammenarbeitet.
chapterbib: CTAN: macros/latex/contrib/supported/cite/
bibunits: CTAN: macros/latex/contrib/supported/bibunits/
7.2.11 Wie kann man ein thematisch untergliedertes Literaturverzeichnis
erstellen?
Das Paket `bibtopic', vormals `bibtopics', ermöglicht die
Untergliederung eines Literaturverzeichnisses, wobei allerdings die
.bib-Datenbankdatei entsprechend der Gliederung in mehrere Dateien
aufgeteilt werden muß. Ein alternatives Paket ist `multibib', bei dem
die Aufteilung der .bib-Datenbankdatei nicht nötig ist.
bibtopic: CTAN: macros/latex/contrib/supported/bibtopic/
multibib: CTAN: macros/latex/contrib/supported/multibib/
7.2.12 Wie kann ich in einer BibTeX-Datenbank WWW- oder ftp-Quellen, die
als URL vorliegen, zitieren?
Die Quellen können mit den üblichen BibTeX-Styles auf unterschiedliche
Art und Weise zitiert werden. Eine Variante ist
@manual{KEITH,
author = "Keith Reckdahl",
title = "Using Imported Graphics in \LaTeXe\ Documents",
year = "1997",
month = dec,
note = "CTAN: \url{tex-archive/info/epslatex.ps}"}
und eine weitere
@misc{GRANT,
author = "Michael C. Grant and David Carlisle",
title = "The PSFrag system, version~3",
year = "1996",
month = nov,
howpublished = "CTAN: \url{tex-archive/macros/latex/contrib/%
supported/psfrag/pfgguide.tex}"}
In beiden Fällen wird das LaTeX-Paket `url' verwendet, um den Umbruch
der Adressen zu erreichen (siehe Frage 7.3.8).
7.2.13 Gibt es einen Weg, daß \cite gleich die komplette Literaturstelle
liefert?
Dies geht zwar nicht direkt mit der Anweisung \cite, aber im Paket
`bibentry', das `natbib' beiliegt, gibt es die Anweisung \bibentry, die
die vollständige Literaturangabe liefert. Näheres ist der mitgelieferten
Dokumentation zu entnehmen. Eine Alternative bietet das Paket
`inlinebib', das man allerdings nur mit dem beigefügten
``inlinebib.bst'' verwenden kann. Auch das Paket `jurabib' ist in der
Lage, z.B. mittels \fullcite oder der Option ``citefull=all'' bzw.
``citefull=first'' eine vollständige Literaturstelle zu liefern. Es kann
jedoch nur mit den `jurabib'-eigenen BibTeX-Stil ``jurabib'' verwendet
werden.
bibentry: CTAN: macros/latex/contrib/supported/natbib/
inlinebib: CTAN: biblio/bibtex/contrib/inlinebib/
jurabib: CTAN: macros/latex/contrib/supported/jurabib/
7.2.14 Wie kann ich mit Kurzformen von Autor und Titel zitieren oder
zwischen Kurz- und Langformen wechseln?
Das Paket `jurabib' bietet dazu die Eintragsfelder juraauthor und
juratitle an, in die man die zu verwendende Kurzform des Autors bzw. des
Titels einträgt. Es bietet auch die Option ``citefull=first'', mit dem
bei Erstnennung eines Werkes eine vollständige Literaturstelle
erscheint, bei den weiteren Zitaten erscheinen jedoch nur noch die
angegebenen Kurzformen. Werden keine Kurzformen angegeben, werden sie
(größtenteils) von `jurabib' generiert. Auch `inlinebib' bietet Felder
für Kurzformen an.
inlinebib: CTAN: biblio/bibtex/contrib/inlinebib/
jurabib: CTAN: macros/latex/contrib/supported/jurabib/
7.2.15 Wie kann ich die Einträge in @phdthesis mit ``Diplomarbeit'' oder
ähnlicher Klassifikation auszeichnen?
Im einfachsten Fall kann man die Art der These durch die Eigenschaft
type üeberschreiben, also mit type="Dissertation". Soll als
Standard-Wert etwas anderes verwendet werden, so muß man die .bst-Datei
anpassen.
7.3 \verb-Anweisung, verbatim- und Kommentar-Umgebungen
7.3.1 Wieso kann ich \verb nicht im Argument einer anderen Anweisung wie
\footnote, \parbox u.ä. verwenden? Wieso geht dies mit LaTeX2e nicht
mehr, obwohl es mit LaTeX 2.09 ging?
Dies ging in LaTeX 2.09 auch nur, solange innerhalb des Arguments von
\verb keine Zeichen mit besonderer Bedeutung verwendet wurden. Für diese
Fälle hätte ein einfaches {\tt ...} auch ausgereicht. Die Eingabe
``\footnote{\verb+\cite+}'' liefert auch mit LaTeX 2.09 Fehler mit einer
sehr kryptischen Fehlermeldung, deshalb wird diese falsche Benutzung in
LaTeX2e mit der aussagekräftigeren Fehlermeldung `! LaTeX Error: \verb
illegal in command argument.' verhindert.
Benutzt man das Paket `fancyvrb' und verwendet man in der Präambel des
Dokuments die von diesem Paket definierte Anweisung \VerbatimFootnotes,
so können, anders als in Standard-LaTeX, innerhalb von Fußnoten
\verb-Anweisungen verwendet werden.
fancyvrb: CTAN: macros/latex/contrib/supported/fancyvrb
7.3.2 Wieso bekomme ich die Fehlermeldung `! LaTeX Error: \verb ended by
end of line.', wenn ich im Argument von \verb in der Eingabe ein
Zeilenende habe?
LaTeX 2.09 war bei \verb sehr viel toleranter und hat den Zeilenwechsel
innerhalb des Arguments von \verb erlaubt, obwohl dies keinen Sinn
macht, da \verb nur für kurze Textstücke gedacht ist und im formatierten
Ergebnis kein Zeilenumbruch sichtbar wurde.
Aus diesen Gründen wird nun in LaTeX2e ein eventuell vorhandenes
Zeilenende im Argument von \verb als Fehler gemeldet. Dies hat den
Vorteil, daß ein versehentlich vergessenes Argumentendezeichen sehr früh
erkannt und mit einer sinnvoller Fehlermeldung angezeigt werden kann.
Als Seiteneffekt kann hierdurch auch die Verwendung von \verb im
Argument einer anderen Anweisung erkannt und angezeigt werden.
Eine Abhilfe ist sehr einfach möglich, indem man in der Eingabe einen
Zeilenwechsel im Argument von \verb vermeidet.
7.3.3 Wie kann ich eine eigene `verbatim'-Umgebung definieren?
Die intuitive Definition
\newenvironment{myverbatim}{%
\begin{verbatim}%
}{%
\end{verbatim}%
}
einer solchen Umgebung ist nicht möglich, da `verbatim' `festverdrahtet'
nach der Zeichenkette `\end{verbatim}' sucht, so daß die neue Umgebung
das `\end{myverbatim}' nicht als Ende erkennen kann.
Um dennoch `verbatim'-ähnliche Umgebungen definieren zu können, gibt es
mehrere Pakete:
* `alltt' beläßt die drei Zeichen \, { und } in ihrer besonderen
Bedeutung, ist daher keine vollständige verbatim-Umgebung.
* `verbatim' (von Rainer Schöpf et al.) erlaubt die Definition eigener
`verbatim'-Umgebungen, wie z.B.
\newenvironment{myverbatim}{%
\verbatim % <== nicht \begin{verbatim} !
}{%
\endverbatim % <== nicht \end{verbatim} !
}
* `moreverb' und `fancyvrb' enthalten weitere Umgebungen, die
unterschiedliche `verbatim'-ähnliche Umgebungen vordefiniert enthalten
oder mit denen man solche definieren kann.
alltt: CTAN: macros/latex/base/
CTAN: macros/latex/unpacked/
CTAN: macros/latex209/contrib/misc/alltt.sty
verbatim: CTAN: macros/latex/required/tools/
moreverb: CTAN: macros/latex/contrib/supported/moreverb
fancyvrb: CTAN: macros/latex/contrib/supported/fancyvrb
7.3.4 Wie kann ich Programm-Code in mein LaTeX-Dokument einbinden?
Neben der Möglichkeit, kurze Abschnitte `verbatim' einzubinden, gibt es
verschiedene Tools, die automatisch LaTeX-Code mit den entsprechenden
Syntaxhervorhebungen erzeugen:
* `listings'
Reine LaTeX-Lösung; unterstützt viele Programmiersprachen; in neueren
Versionen kann `listings' zusätzlich einige der Möglichkeiten des
Pakets `fancyvrb' nutzen.
* `lgrind'
C-Programm und LaTeX-Style, für LaTeX2e; unterstützt sehr viele
Programmiersprachen.
* `tiny_c2l'
lex-Programm und LaTeX-Style; unterstützt neben C auch C++ und Java;
kann überlange Zeilen umbrechen.
listings: CTAN: macros/latex/contrib/supported/listings/
lgrind: CTAN: support/lgrind/
tiny_C2l: CTAN: support/tiny_c2l/
7.3.5 Wie kann ich den Inhalt einer Datei innerhalb einer
`verbatim'-Umgebung darstellen?
`verbatim' (von Rainer Schöpf et al.) stellt für diese Zwecke die
Anweisung \verbatiminput{Dateiname} zur Verfügung. Die Pakete `moreverb'
und `fancyvrb' stellen weitere Anweisungen und Umgebungen zur Verfügung.
verbatim: CTAN: macros/latex/required/tools/
moreverb: CTAN: macros/latex/contrib/supported/moreverb
fancyvrb: CTAN: macros/latex/contrib/supported/fancyvrb
7.3.6 Wie kann ich Zeilennummern zu meinem Text hinzufügen?
Zu diesem Zweck gibt es die beiden LaTeX-Pakete `lineno' und `numline'.
Handelt es sich um Programmcode, der numeriert werden soll, sind jedoch
die in Frage 7.3.4 genannten Lösungen zu bevorzugen.
lineno: CTAN: macros/latex/contrib/supported/lineno
numline: CTAN: macros/latex/contrib/supported/numline
7.3.7 Gibt es eine Kommentarumgebung, mit der ich größere Textteile
auskommentieren kann?
Um Teile eines Textes auszukommentieren, kann man entweder zwei sehr
einfache TeX-Konstrukte verwenden, oder man bedient sich spezieller
Pakete, die unterschiedlich mächtige Kommentar-Umgebungen anbieten.
Zu den einfachen Konstrukten, die TeX selbst anbietet, zählt zum einen
die Einklammerung des zu ignorierenden Textes mit den TeX-Primitiven
\iffalse ... \fi:
\iffalse
Kommentartext, wird sehr schnell ueberlesen
\fi
Hier sollten im Kommentartext keine \if...-, \else- und \fi-Tokens (bzw.
diese müssen korrekt geschachtelt sein), keine `outer'-Makros oder
unerlaubte Zeichen auftauchen, da diese zu einem Fehler oder vielleicht
zu doch nicht auskommentierten Textteilen führen können.
Ein anderes, einfaches Verfahren ist die Verwendung eines Makros, wobei
der auszukommentierende Text in dessen Argument geschrieben wird:
\newcommand{\kommentar}[1]{}
% ...
\kommentar{%
Kommentartext, wird als Argument gelesen und ignoriert
}%
Auch hier sollten die oben genannten Tokens nicht im Kommentartext
auftauchen, außerdem darf der Kommentartext nicht zu lang sein, da sonst
TeXs `main memory' überlaufen könnte.
Spezielle Kommentarumgebungen beseitigen diese Einschränkungen - und
haben meist selbst eigene Einschränkungen. `verbatim' aus dem
`tools'-Bundle definiert eine sehr einfache Umgebung namens `comment',
die man jedoch nicht schachteln kann. Weiterhin gibt es noch `xcomment'
(von Timothy van Zandt), eine speziell an die Erfordernisse des Paketes
`seminar' angepaßte und abgespeckte Version des `verbatim'. Mit
`comment' (von Victor Eijkhout) kann man neue Kommentarumgebungen
definieren, die mit \includecomment- und \excludecomment-Deklarationen
aus- und eingeblendet werden können.
verbatim: CTAN: macros/latex/required/tools/
xcomment: CTAN: macros/latex/contrib/other/seminar/inputs/xcomment.sty
comment: CTAN: macros/latex/contrib/other/comment/
7.3.8 Ich will \verb z.B. für Dateinamen, E-Mail-Adressen und URL
verwenden. Wie schaffe ich es, daß innerhalb von \verb an geeigneten
Stellen getrennt wird?
Für einige Anwendungen, wo man evtl. \verb benutzen könnte, gibt es auch
spezielle Lösungen, die für den Anwendungszweck besser geeignet sind. So
gibt es beispielsweise die Pakete `url' und `path' für Dateinamen,
E-Mail- und WWW-Adressen, bei denen nur an bestimmten Stellen umbrochen
werden darf.
url: CTAN: macros/latex/contrib/other/misc/url.sty
path: CTAN: macros/latex/contrib/other/misc/path.sty
7.4 Zerbrechliche Anweisungen in `moving arguments'
7.4.1 Was sind `fragile commands'/zerbrechliche Anweisungen, was sind
`moving arguments'?
Der Text, den ein Autor im Argument von Anweisungen wie \caption,
\section etc. angibt, kann an mehreren Stellen in einem Dokument gesetzt
werden. Der Argumenttext von \section wird z.B. als Kapitelüberschrift
gesetzt und taucht evtl. nochmals im Inhaltsverzeichnis oder im
Seitenkopf bzw. -fuß auf. Diese Argumente nennt man `moving arguments',
da sie vom Platz, wo ein Autor sie angibt, auch zu anderen Stellen
verschoben werden.
Die korrekte Ausführung von `zerbrechlichen Anweisungen' hängt intern
von Zuweisungen ab. Innerhalb eines `moving argument' werden diese
Zuweisungen jedoch nicht durchgeführt, so daß solche Anweisungen
`zerbrechen'. Zu den zerbrechlichen Anweisungen zählen unter anderem
\cite, \ref, \pageref für Literatur- und Querverweise, \footnote,
\footnotemark, die Anweisungen \small, \large etc. zur Wahl der
Schriftgröße, mathematische Formelzeichen wie \sqrt, \notin, \overbrace
und viele mehr (siehe Frage 7.4.2, Bemerkung am Ende).
7.4.2 Wie kann ich innerhalb des Arguments von \caption, \section etc.
Anweisungen wie \cite, \ref und \pageref verwenden, ohne Fehler wie
`! Argument of \@sect has an extra }.' zu erhalten?
Zerbrechliche Befehle wie \cite müssen im `moving argument' der
Anweisung \caption mit \protect geschützt werden, d.h. statt
\caption{Bildunterschrift~\cite{PartlKnappen95}}
ist ein \protect direkt und _ohne_ geschweifte Klammern vor die zu
schützende Anweisung zu setzen:
\caption{Bildunterschrift~\protect\cite{PartlKnappen95}}
Anweisungen wie \caption, \section etc. haben außerdem noch die
Möglichkeit, in einem optionalen Argument den zu `verschiebenden
Argumenttext' anzugeben. Das heißt, obiges könnte auch in
\caption[Bildunterschrift]%
{Bildunterschrift~\cite{PartlKnappen95}}
umformuliert werden. Jetzt ist das optionale Argument in []-Klammern das
`moving argument', in dem Sie zerbrechliche Anweisungen mit \protect
schützen müssen!
Beginnend mit LaTeX von Dezember 1995 sind Anweisungen wie \cite und
Anweisungen mit optionalem Argument, wie \sqrt, nicht mehr zerbrechlich
und benötigen damit kein \protect mehr. Dennoch sollten Sie diese
Anweisungen weiterhin mit \protect schützen, wenn Sie Ihre Dokumente
anderen zukommen lassen wollen.
--- DE-TeX-FAQ Ende Teil 7 ---
--- DE-TeX-FAQ Beginn Teil 5 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
5 TeX, LaTeX, Makros etc. (I)
5.1 LaTeX - Grundlegendes
5.1.1 Was benötige ich, wenn ich von LaTeX 2.09 auf LaTeX2e umsteigen
bzw. eine neuere LaTeX-Version installieren will?
Grundsätzlich sollte man sich beim Umstieg von 2.09 oder beim Update
einer älteren 2e-Version immer die komplette LaTeX-Distribution im
Verzeichnis ``base'' besorgen und installieren, nie einzelne Dateien
oder nur einzelne Class-Dateien. Nach dem Entpacken der Distribution und
Installation der einzelnen Dateien ist ein neues Format zu generieren.
Die Anleitung ``install.txt'' enthält genauere Informationen und
wichtige Hinweise - bitte durchlesen!
Notwendig:
* alle Dateien im Verzeichnis ``base''.
* alle Zusatzpakete wie `graphics' und damit alle Dateien in den
Verzeichnissen unter dem Verzeichnis ``required''.
* die zusätzlichen CM-Schriften `cmmib' und `cmbsy' in den
Designgrößen 5, 6, 7, 8 und 9 Punkt.
Optional, da schon in ``base'' enthalten:
* Will man sich, insbesondere auf langsameren Rechnern, das
Entpacken der dtx-Dateien in ``base'' sparen, benötigt man noch
zusätzlich die Dateien im Verzeichnis ``unpacked''.
* Ebenso befindet sich im Verzeichnis ``doc'' die schon
formatierte Dokumentation, also die Dateien
``base/???guide.tex''.
base: CTAN: macros/latex/base/
CTAN: macros/latex/required/
line/lcircle/lasy: CTAN: fonts/latex/mf/
CTAN: fonts/latex/tfm/
cmmib/cmbsy: CTAN: fonts/amsfonts/sources/extracm/
CTAN: fonts/amsfonts/tfm/
oder
CTAN: fonts/cm/sauter/
optional: CTAN: macros/latex/unpacked/
CTAN: macros/latex/doc/
5.1.2 Ich habe gehört, daß es für meine LaTeX-Versionen Patches gibt.
Welche Dateien benötige ich, was muß ich tun?
Für jeden LaTeX-Patch benötigt man immer zumindest die Datei
``patches.txt''
. Sie beschreibt genau, welche weitere Dateien man noch zu einem
_kompletten_ Patch benötigt. In vielen Fällen gibt es neben der Datei
``ltpatch.ltx''
, die LaTeX-Kernel-Patches enthält, noch neue Versionen weiterer
Dateien! Näheres in
``patches.txt''
.
Nachdem man die Dateien geholt und installiert hat, muß ein neues Format
erstellt und installiert werden, damit die Patches in ``ltpatch.ltx''
aktiv werden. Zur Kontrolle: Danach sollte beim Formatieren eines
Dokuments nach der Meldung `LaTeX2e <1999/06/01>' noch der Zusatz `patch
level X' erscheinen, wobei `X' mit dem installierten Patch
übereinstimmen muß.
patches.txt: CTAN: macros/latex/base/patches.txt
5.1.3 Was kann ich mit einer Datei mit Endung `.dtx' anfangen? Benötige
ich dazu auf alle Fälle LaTeX?
Dateien mit `.dtx' sind sogenannte `docstrip archive files', also ein
Archiv, aus dem man mit dem Programm `docstrip' verschiedene Dateien
entpacken kann. Zum Entpacken benötigen Sie nur die Datei
``docstrip.tex''
oder
``docstrip.dtx''
und das Programm TeX. ``docstrip.tex'' können Sie mit LaTeX 2.09,
LaTeX2e und auch mit Plain-TeX verwenden.
Wie Sie eine `.dtx'-Datei entpacken müssen, sollten Sie aus einer
Beschreibung zu Beginn der `.dtx'-Datei oder einer separaten
README-Datei entnehmen können. Existiert eine gleichnamige Datei mit
Endung `.ins', so können Sie in den meisten Fällen das `.dtx'-Archiv
``file.dtx'' mit ``tex file.ins'' entpacken. In der Regel erzeugt dieser
Aufruf eine oder mehrere `.sty'-Dateien sowie weitere Hilfs- und
Beispieldateien. Näheres entnehmen Sie bitte der Beschreibung des
Archivs.
Die Dokumentation eines Pakets und der Makros sind ebenso in einem
`.dtx'-Archiv enthalten. Zum Formatieren dieser Dokumentation benötigen
Sie jedoch ein installiertes LaTeX2e - für einige ältere Archive reicht
auch noch das alte LaTeX 2.09. Üblicherweise kann die Dokumentation
(`.dvi'-Datei) durch ``latex file.dtx'' oder ``latex file.drv'' erzeugt
werden.
Ein Befehlsindex eines Paketes kann i.d.R. durch
makeindex -s gind.ist file
und einen anschließenden erneuten LaTeX-Lauf erzeugt werden.
Bei der Erzeugung der Dokumentation wird der dokumentierte Quellcode
meist nicht aufgenommen; um ihn einzuschließen, kann vor dem LaTeX-Lauf
im aktuellen Verzeichnis eine Datei ``ltxdoc.cfg'' angelegt werden, die
die folgende Zeile enthält:
\AtBeginDocument{\AlsoImplementation}
Näheres ist, falls vorhanden, der mitgelieferten Beschreibung des
Archivs zu entnehmen.
Hinweis: Mit LaTeX ab Dezember 1995 wurde eine Version des Tool
``docstrip.dtx'' verteilt, das gleichzeitig mehrere Dateien aus einem
Archiv entpacken kann und damit um einiges schneller ist. Deshalb lohnt
es sich, wenn Sie eine ältere Version benutzen, diese durch die neue
Version zu ersetzen.
docstrip: CTAN: macros/latex/base/docstrip.dtx
CTAN: macros/latex/base/docstrip.ins
(Bestandteil von LaTeX, kann aber auch mit Plain-TeX
verwendet
werden!)
5.1.4 Wie gehe ich am besten vor, wenn ich eine bestehende LaTeX-Klasse
ändern bzw. an meine eigenen Vorgaben anpassen will?
Statt von einer bestehenden Klasse wie ``article.cls'' eine Kopie unter
eigenem Namen, hier ``detexfaq.cls'', anzulegen, empfiehlt es sich, eine
schon bestehende Klasse zu laden und anschließend alle notwendigen
Änderungen durchzuführen. Hierzu bietet LaTeX eine Reihe neuer
Möglichkeiten, die in der Dokumentation für Klassen-Autoren
``clsguide.tex'' beschrieben sind. Als einfaches Beispiel hätte damit
die neue Klasse ``detexfaq.cls'', in der als Standard-Optionen
`11pt,a4paper' verwendet werden und die beiden Pakete `german' und
`remreset' bereits implizit geladen werden, folgendes Aussehen:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE
%% detexfaq.cls -- DE-TeX-FAQ's modified ``article.cls''
\NeedsTeXFormat{LaTeX2e}\relax
\ProvidesClass{detexfaq}[2000/05/11 Article Class from DE-TeX-FAQ]
%% Lade nun ``article.cls'', wobei als Default-Optionen ``11pt'' und
%% A4-Papierformat als Default gesetzt werden (fuer diese muss
explizit
%% eine Deklaration hier vorhanden sein) und alle weiteren vom Autor
%% gegebenen Optionen einfach `durchgereicht' werden:
\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{11pt}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ExecuteOptions{a4paper,11pt}
\ProcessOptions\relax
\LoadClass{article}
%% Ab hier kann man Aenderungen an den Makros der geladenen Klasse
%% durchfuehren (bitte mit \renewenvironment oder \renewcommand!),
%% Pakete hinzuladen und/oder eigene Anweisungen und Umgebungen
%% definieren:
\RequirePackage{german}
\RequirePackage{remreset}
%% Schliesslich wird die Klassendatei `sauber' beendet':
\endinput
%% End of ``detexfaq.cls''
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE
Diese Vorgehensweise hat einige Vorteile. So bleibt die eigene
Klassendatei relativ klein und enthält nur die notwendigen Änderungen
und Ergänzungen. Ändert sich an der verwendeten Klasse etwas, z.B.
werden Fehler korrigiert, so sind in den meisten Fällen keinerlei
Änderung an der eigenen Klassendatei zum Nachvollziehen dieser
Änderungen notwendig. Daneben dokumentiert man explizit, von welcher
Klasse und Versionsnummer man als Basis ausgegangen ist, zumal diese
Klasse und alle geladenen Pakete mit ihren Versionsnummern bei einem zu
Anfang eingefügten \listfiles auftauchen.
clsguide.tex: CTAN: macros/latex/base/
5.1.5 Wie kann ich unter LaTeX eine Anweisung mit optionalem Parameter
definieren?
In LaTeX kann man mit den Anweisungen \newcommand, \renewcommand,
\newenvironment und \renewenvironment eigene Anweisungen und Umgebungen
definieren, die einen optionalen Parameter als erstes Argument besitzen.
Nähere Informationen finden sich in der Dokumentation für Autoren
``usrguide.tex''.
usrguide.tex: CTAN: macros/latex/base/
5.1.6 Wie erkenne ich bei einer Anweisung mit optionalem Parameter, ob
dieser vom Autor angegeben wurde?
Mit Hilfe des im Paket `ifthen' definierten Vergleichs \equal kann man
das optionale Argument mit dem voreingestellten Wert vergleichen. Das
folgende Beispiel geht davon aus, daß der voreingestellte Wert leer sein
soll:
\usepackage{ifthen}
\newcommand{\meineanweisung}[2][]{% #1 = optional, #2 = notwendig
\ifthenelse{\equal{#1}{}}{%
% Autor hat kein oder leeres optionales Argument angegeben
}{%
% Autor hat optionales Argument angegeben
}}
ifthen: CTAN: macros/latex/base/
5.1.7 Wie kann ich in LaTeX eine Anweisung mit mehr als einem optionalen
Parameter definieren?
Mit \newcommand kann man nur ein Makro mit einem einzigen optionalen
Parameter definieren. Will man ein Makro mit mehr als einem optionalen
Parameter definieren, so muß man hierzu mehrere Makros mit jeweils einem
optionalen Parameter definieren, die den Wert des Parameters
zwischenspeichern und das nächste Makro aufrufen.
Hier ist ein Beispiel für ein Makro \cubic[a][b][c]{d} mit drei
optionalen Argumenten:
\newcommand{\erstesargument}{}
\newcommand{\zweitesargument}{}
\newcommand{\cubic}[1][a]{% erstes optionales Argument
\begingroup % Definitionen von \...argument lokal halten
\renewcommand{\erstesargument}{#1}% opt. Argument speichern
\cubicZwei}
\newcommand{\cubicZwei}[1][b]{% zweites optionales Argument
\renewcommand{\zweitesargument}{#1}% opt. Argument speichern
\cubicDrei}
\newcommand{\cubicDrei}[2][c]{% drittes opt. + notwendiges Argument
\({\erstesargument}x^3+{\zweitesargument}x^2+#1x+#2\)%
\endgroup}
Eine weitere Möglichkeit bietet das Paket `twoopt':
\newcommandtwoopt{\Cmd}[3][DefaultA][DefaultB]{Args: #1, #2, #3}
In Anlehnung an die Standard-LaTeX-Definitionen existieren auch die
Anweisungen \renewcommandtwoopt und \providecommandtwoopt.
twoopt: CTAN: macros/latex/contrib/supported/oberdiek/
5.1.8 Wie kann ich innerhalb des optionalen Arguments einer Anweisung
zusätzliche eckige Klammern, beispielsweise die eines optionalen
Arguments einer anderen Anweisung, verwenden?
Im Unterschied zu den geschwungenen Klammern {...}, die immer paarweise
und korrekt geschachtelt werden müssen, sucht LaTeX bei eckigen Klammern
einfach nach der nächsten schließenden eckigen Klammer ], ohne auf
korrekte Schachtelung dieser Klammern zu achten. Um dies zu verhindern,
muß man einfach innerhalb der eckigen Klammern [...] ein geschweiftes
Klammerpaar einfügen, wie dies hier als Beispiel für \twocolumn gezeigt
wird:
\twocolumn[{ ... \sqrt[3]{x^2} ... }]
5.2 LaTeX - Probleme beim Umstieg von LaTeX 2.09
5.2.1 Anweisungen wie \tenrm, \twlrm, \fivrm etc., die von einigen
Paketen wie PiCTeX verwendet werden, sind nicht mehr definiert. Was muß
ich da ändern?
Diese Namen für Schriften wurden nie dokumentiert und sollten im alten
LaTeX 2.09 nur LaTeX-intern verwendet werden. Da das Fontauswahlschema
namens NFSS2 in LaTeX2e komplett neu geschrieben wurde, sind diese
ehemals internen Namen nicht mehr vorhanden. Es ist daher am besten,
diese alten Pakete so umzuschreiben, daß diese internen Schriftnamen
nicht mehr verwendet werden. In der Zwischenzeit kann man mit Hilfe des
Paketes `rawfonts' diese Namen nachdefinieren, wie z.B. mit
\usepackage[only,fivrm]{rawfonts}
für PiCTeX.
rawfonts.sty: CTAN: macros/latex/required/
5.2.2 Beim Umstieg von LaTeX 2.09 mit NFSS (Version 1) auf LaTeX2e
ändert sich auch das Verhalten der Anweisungen \rm, \bf, \it etc. auf
das Verhalten des Original-LaTeX 2.09. Wie bekomme ich das alte
inkompatible Verhalten von NFSS Version 1?
Mit dem Paket `newlfont' erhält man das Verhalten von NFSS v1, ohne daß
man in den meisten Fällen das Dokument ändern muß:
\usepackage{newlfont}
Für neue Dokumente sollte man jedoch besser gleich die neuen Anweisungen
\textrm{...}, \textbf{...}, \textit{...} etc. verwenden. Diese
Anweisungen haben darüber hinaus den Vorteil, daß eine eventuell
notwendige `italic correction' automatisch eingefügt wird.
newlfont.sty: CTAN: macros/latex/required/
5.2.3 Einige mathematische Symbole (\Box, \lhd, \leadsto, \Join, \mho,
\sqsubset etc.) sind nicht mehr definiert - wieso?
Die LaTeX-Symbolschriften `lasy10' und `lasyb10' enthalten nur sehr
wenige relativ selten benutzte Symbole. Daher werden diese Schriften in
LaTeX2e nicht mehr standardmäßig geladen, sondern müssen vom Benutzer
durch Laden von `latexsym' aktiviert werden:
\usepackage{latexsym}
5.2.4 Kann es sein, daß es in LaTeX2e den Parameter \footheight und die
internen Parameter \@maxsep und \@dblmaxsep nicht mehr gibt? Gibt es
einen Ersatz?
Der Parameter \footheight und die internen Parameter \@maxsep und
\@dblmaxsep wurden in LaTeX 2.09 nie ausgewertet. Deshalb wurden sie in
LaTeX2e entfernt, um die dadurch gesparten Längenregister für andere
Zwecke einsetzen zu können. Zur Anpassung von alten Dokumentstilen an
LaTeX2e kann man daher eine Zuweisung an diese Parameter einfach
ersatzlos streichen.
5.2.5 Mit älteren Dokumentklassen bekomme ich den Fehler `! Undefined
control sequence.' oder `! LaTeX Error: \mit undefined.' für die
Schriften \mit und \cal. Wieso?
Bis LaTeX2e <1994/12/01> wurden \cal und \mit im Kernel definiert. Weil
diese Definitionen aber in jeder Standard-Dokumentklasse durch robustere
Varianten ersetzt werden, hat das LaTeX-Team beschlossen, \cal und \mit
nicht mehr im Kernel vorzudefinieren. Damit ist es aber erforderlich,
daß alle Dokumentklassen, die \cal und \mit nicht definieren oder mit
\renewcommand umdefinieren, angepaßt werden müssen. Bei den
Standard-Dokumentklassen hat das niemand bemerkt, da die notwendigen
Anpassungen dieser Dateien automatisch mit einer neuen LaTeX-Version
mitinstalliert werden.
5.3 (Silben-)Trennung, Absatz-, Seitenumbruch
5.3.1 Wie kann ich LaTeX an die neue deutsche Rechtschreibung anpassen?
Gibt es Trennmuster für die neuen Trennregeln?
Die ``alten'' Trennmuster wurden von Hand so angepaßt, daß die neuen
Trennregeln beachtet werden, wobei die Trennung weiterhin eher nach
Wortherkunft und nicht nach strikter Silbentrennung, die ebenfalls
erlaubt ist, erfolgt. Diese Trennmuster sind in der Datei
``dehyphn.tex'' (vormals ``gnhyph01.tex'') verfügbar. Um diese
Trennmuster nutzen zu können, benötigt man ``german.sty'' ab
Version 2.5e.
dehyphn: CTAN: language/hyphenation/dehyphn.tex
german.sty: CTAN: language/german/
5.3.2 Warum trennt (La)TeX Worte mit Umlauten nicht oder nicht korrekt?
Wie TeX Worte mit Umlauten trennt, hängt davon ab, ob die verwendete
Schrift Umlaute als eigene Lettern enthält und ob man auf diese Lettern
durch entsprechende Paket-Deklarationen beim Setzen eines Textes auch
zugreift.
Bei den alten CM-Schriften muß TeX Umlaute aus einem Buchstaben und
einem Akzent zusammenbasteln, da diese keine Lettern für Umlaute
enthalten. Diese Akzent-Konstruktion irritiert TeXs Trennalgorithmus,
und so trennt TeX nur den Wortteil bis zum ersten Umlaut. Im Paket
`german' und _einigen_ Babel-Versionen wird durch einen aus dem TeXbook
(Anhang D, S. 394, \allowhyphens) entnommenen Trick erreicht, daß alle
Wortteile zwischen den Umlauten einzeln getrennt werden. Bei dieser
Vorgehensweise werden nicht alle Trennstellen gefunden oder es treten
teilweise falsche Trennungen (Bsp.: "ubert-ragen statt "uber-tra-gen)
auf.
Abhilfe schaffen nur Schriften, die die Umlaute und andere akzentuierte
Zeichen als einzelne Lettern enthalten. Ein Beispiel hierfür sind alle
T1-kodierten Schriften, darunter die EC-Schriftfamilie (siehe Frage
10.1) und die T1-kodierten PostScript-Schriften. Unter neueren Versionen
von LaTeX und `german.sty' bzw. Babel lassen sich T1-kodierte Schriften
recht einfach durch die Deklaration
\usepackage[T1]{fontenc}
in der Präambel des Dokuments verwenden.
5.3.3 Wie kann ich Trennungsausnahmen mit Umlauten in \hyphenation
verwenden?
Auch hier gilt, daß man in \hyphenation in den Trennungsausnahmen nur
Zeichen verwenden kann, für die auch Lettern in der momentan benutzten
Schrift existieren (siehe Frage 5.3.2). Da mit CM-Schriften die Umlaute
aus zwei Lettern zusammengesetzt werden müssen, kann man für Wörter mit
Umlauten keine Trennungsausnahmen angeben. Erst bei Verwendung von
T1-kodierten Schriften, wie der EC-Schriftfamilie, oder auch von
Schriften in einer entsprechenden anderen Kodierung, die eigene Lettern
für Umlaute enthalten, kann man Trennungsausnahmen angeben.
Hier ist ein einfaches Beispiel (`german.sty' ist hier nur zum
Umschalten auf die deutschen Trennmuster ``dehypht.tex'' notwendig):
\documentclass{article}
\usepackage{german}
\usepackage[T1]{fontenc}
\hyphenation{Ver-st\"ar-ker-aus-gang}
\begin{document}
\showhyphens{Verst\"arkerausgang}
% ohne Trennausnahme: Ver-st^^e4r-ke-r-aus-gang
% mit Trennausnahme: Ver-st^^e4r-ker-aus-gang
\end{document}
5.3.4 Wie kann ich `Hurenkinder' (engl. widows), also einzelne Zeilen
eines Absatzes am Kopf von Buchseiten, bzw.
`Schusterjungen/Waisenkinder' (engl. clubs), einzelne Absatzzeilen auf
der Seite unten, verhindern?
TeX kennt die Parameter \widowpenalty und \clubpenalty, mit denen man
die `Strafpunkte' festlegen kann, falls ein Hurenkind bzw. ein
Schusterjunge beim Seitenumbruch entstehen sollte. Außerdem gibt es noch
den Parameter \displaywidowpenalty für Hurenkinder nach einer
abgesetzten mathematischen Formel. Da TeX den Wert 10000 als unendlich
große Strafe interpretiert, kann man mit den Zeilen
\clubpenalty = 10000
\widowpenalty = 10000 \displaywidowpenalty = 10000
Hurenkinder und Schusterjungen komplett unterdrücken. (Das Paket
`schuster' enthält genau diese Zeilen.)
Man sollte jedoch bedenken, daß man bei einem Satzspiegel mit fester
Höhe (\flushbottom) und registerhaltigem Satz Hurenkinder und
Schusterjungen nur schwerlich verhindern kann - insbesondere wenn man
dies bei zweiseitigem Druck für jede Doppelseite beachten muß. Hier ist
es oft besser, die einzelne Zeile zuzulassen oder zu versuchen, einen
Absatz durch geringfügige Umformulierung eine Zeile länger oder kürzer
zu machen.
Weiterhin gibt es die Möglichkeit, Absätze, die schon sehr voll sind,
mit \looseness=1 um eine Zeile zu dehnen oder Absätze, die recht leer
sind, mit \looseness=-1 um eine Zeile zu kürzen. Manchmal führt dies
jedoch zu merklichen Änderungen des Grauwerts des Absatzes. (Achtung:
Der Wert von \looseness gilt außerhalb von Listen-Umgebungen nur für den
aktuellen Absatz. Innerhalb einer Listen-Umgebung muß die Zuweisung
zusammen mit \par durch eine Gruppe lokal gehalten werden {\loosenes=1
\par}, wenn die Änderung nur für einen Absatz gelten soll.)
5.3.5 Wie muß in LaTeX die Datei ``hyphen.cfg'' aussehen, um die
deutschen Trennmuster ``dehypht.tex'' (vormals ``ghyph31.tex'') in das
LaTeX-Format einzubinden?
Eine Anleitung zur Installation der deutschen Trennmuster enthält
``gerdoc'', die Kurzbeschreibung des German-Styles vom Mai 1997. Diese
Anleitung beschreibt auch die Installation der Trennmuster in Plain-TeX
und LaTeX 2.09. Beispiel von ``hyphen.cfg'' für LaTeX:
%% Konfigurationsdatei -- Trennmuster: `hyphen.cfg'
\message{== Loading hyphenation patterns:}
\chardef\l@USenglish=\language
\chardef\l@english=\l@USenglish %% british english als `Dialekt'
\input hyphen
\newlanguage\l@german \language=\l@german
\chardef\l@austrian=\l@german
\input dehypht
\newlanguage\l@ngerman \language=\l@ngerman
\input dehyphn
%% weitere Sprachen nach folgendem Schema:
% \newlanguage\l@SPRACHE \language=\l@SPRACHE
% \chardef\l@DIALEKT=\l@SPRACHE
% \input SPRACHhyphen
%% Default-Trennmuster: USenglish
\language=\l@USenglish \lefthyphenmin=2 \righthyphenmin=3
\endinput
_Hinweis:_ Einige Distributionen benutzen stillschweigend die Datei
``hyphen.cfg'' aus dem Babel-Paket. Außerdem wurde meist ``hyphen.tex''
in ``ushyph1.tex'' umbenannt, um unter dem Namen ``hyphen.tex'' die
Datei ``hyphen.cfg'' aus Babel auch für Plain-TeX einbinden zu können.
In diesem Fall führt ein ``\input hyphen'', wie im obigen Beispiel
beschrieben, zu einer Endlosschleife!
gerdoc: CTAN: language/german/gerdoc.tex
5.3.6 Wieso werden Texte in `typewriter'-Schriften nicht getrennt? Gibt
es eine Möglichkeit, daß doch getrennt werden kann?
TeX trennt nur, wenn die aktuell verwendete Schrift einen Divis
(Trennungsstrich) besitzt. Dazu ist jeder Schrift ein Divis durch den
Parameter \hyphenchar<font> zugeordnet, der bei den meisten Schriften
auf den Wert `\-, also auf das Zeichen ``-'', gesetzt ist. Bei den
`typewriter'-Schriften ist dieser Wert aber auf -1 gesetzt, d.h. auf ein
nicht vorhandenes Zeichen. Damit ist die Trennung für diese Schriften
unterdrückt, was in den meisten Fällen auch sinnvoll ist.
Will man dennoch, daß TeX einen in `typewriter' gesetzten Textteil
automatisch trennt, so muß man den \hyphenchar für diese Schriften auf
`\- setzen. Dies geht in LaTeX am einfachsten, wenn man die Anweisung
\ttfamily umdefiniert:
\newcommand{\origttfamily}{}% sollte noch nicht definiert sein!
\let\origttfamily=\ttfamily % alte Definition von \ttfamily sichern
\renewcommand{\ttfamily}{\origttfamily \hyphenchar\font=`\-}
Man könnte alternativ dazu auch die Dateien ``*cmtt*.fd'' ändern und die
Anweisung \hyphenchar\font\m@ne in \DeclareFontFamily entfernen. Dies
ist jedoch nicht ratsam, wenn man Texte an andere weitergeben will, da
man dann nicht vergessen darf, die so geänderten `*.fd'-Dateien
mitzugeben.
Für LaTeX 2.09 (oder analog auch für Plain-TeX) muß das Makro \tt
umdefiniert werden:
\newcommand{\origtt}{}
\let\origtt=\tt
\renewcommand{\tt}{\origtt \hyphenchar\font=`\-}
Wichtiger Hinweis: TeX kann eine Schrift unter unterschiedlichen Namen
laden, wobei TeX alle diese Schriften nur ein einziges Mal lädt und für
die anderen Schriften nur `Aliases' anlegt. Daher gibt es
\hyphenchar<font> nur einmal pro `echten' Font und \hyphenchar<font> ist
wie auch \fontdimen<font> ein besonderer Parameter: Alle Zuweisungen an
\hyphenchar<font> werden _immer_ global ausgeführt. Außerdem sieht sich
TeX diesen Parameter erst am Absatzende beim Umbruch dieses Absatzes an,
so daß mit obiger Änderung nicht möglich ist, die Trennung für einen in
`typewriter' gesetzten Textteil zu ermöglichen, für einen anderen im
selben Absatz zu verbieten.
Eine weitere Methode, Trennungen für `typewriter'-Schriften zu erlauben,
bietet das Paket `hyphenat':
\usepackage[htt]{hyphenat}
Darüber hinaus kann es auch benutzt werden, um Trennung selektiv zu
erlauben oder zu verbieten.
hyphenat: CTAN: macros/latex/contrib/supported/hyphenat/
5.3.7 Warum trennt LaTeX Wörter mit Bindestrich nicht bzw. nur am
Bindestrich, auch wenn die Trennausnahmeliste diese enthält?
TeX fügt nach dem aktuellen Trennzeichen implizit (fast) immer einen
sogenannten \discretionary ein, der wie \- eine explizite Trennstelle
angibt. Da sowohl \- als auch \discretionary dazu führen, daß die
Trennung in den übrigen Wortteilen unterdrückt wird, werden solche
Wörter außer am Trennstrich nicht mehr getrennt. Dieses eigenwillige
Verhalten von TeX ist für Sprachen, in denen wenige Bindestriche
verwendet werden, günstig und sinnvoll, da zusätzliche Trennungen in
solchen Wörtern meist die Lesbarkeit erschweren.
Um Wörter mit Bindestrichen dennoch zu trennen, existieren zwei
Möglichkeiten: Man gibt im Dokumenttext bei diesen Wörtern, insbesondere
wo schlecht getrennt werden kann, mit \- oder "- weitere mögliche
Trennstellen vor oder man verwendet "= anstelle des Bindestrichs.
Näheres ist hierzu der Dokumentation des Paketes `german' zu entnehmen.
Die andere Möglichkeit, die bislang nur von Experten umgesetzt werden
kann, besteht bei Schriften, die eine zweite Letter für einen
Bindestrich besitzen. Für diese Schriften kann man diese zweite Letter
als Trennstrich deklarieren. Zusammen mit den zusätzlichen Trennmustern
in ``hypht1.tex'' ist damit eine automatische Trennung von Wörtern mit
Bindestrichen und deren Aufnahme in die Trennausnahmeliste möglich.
german.sty: CTAN: language/german/
hypht1.tex: CTAN: language/hyphenation/hypht1.tex
5.4 Seitenlayout, Layout allgemein, Kopf- und Fußzeilen (*)
5.4.1 Gibt es neben den Standard-LaTeX-Klassen auch Klassen mit einem
`europäischeren' Design?
Die NTG hat verschiedene Klassen entwickelt, die im Vergleich zum Layout
der Standard-LaTeX-Klassen kleinere Überschriften und eine
einheitlichere Einrückung der Absätze und Listen definieren.
Das KOMA-Script-Paket enthält ebenfalls Klassen, die die Standardklassen
ersetzen. Es wurden dort eine Vielzahl von Änderungen eingeführt, die
ein güstigeres Aussehen bewirken. So wird z.B. der Satzspiegel besser an
das Papierformat angeglichen. Nähere Einzelheiten enthält die
ausführliche Beschreibung in der beigefügten Datei ``scrguide.dvi''.
KOMA: CTAN: macros/latex/contrib/supported/koma-script/
NTG-Klassen: CTAN: macros/latex/contrib/supported/ntgclass/
5.4.2 Ich suche eine Klasse für Briefe, die weitgehend die verschiedenen
DIN-Normen und deutschen Gepflogenheiten berücksichtigt.
Unter LaTeX 2.09 ist `dinbrief' weit verbreitet, der von anderen Autoren
auch für LaTeX2e verfügbar gemacht wurde. Darüber hinaus findet man im
KOMA-Script-Paket die Klasse `scrlettr' und es gibt mit `g-brief' und
`akletter' noch weitere Beispiele für angepaßte Klassen.
dinbrief: CTAN: macros/latex/contrib/supported/dinbrief/
koma: CTAN: macros/latex/contrib/supported/koma-script/
g-brief: CTAN: macros/latex/contrib/supported/g-brief/
akletter: CTAN: macros/latex/contrib/supported/akletter/
(Anm.: `akletter' hieß in früheren Version `myletter', ein
schlechter,
weil häufig gewählter Name.)
5.4.3 Gibt es eine bequemere Möglichkeit, ein Seitenlayout anzugeben,
als dadurch, Parameter, wie \textheight, einzeln zu verändern? (*)
Mit dem Paket `typearea' aus dem KOMA-Script-Paket kann man den Anteil
des Textbereichs an der Gesamtseite abhängig von der Schriftgröße nach
Tschicholds (siehe Frage 2.4.2) n-Teilung der Seite berechnen lassen
\documentclass[a4paper,11pt]{...} % Ausgangspapiergroesse
% BCOR1cm: zusaetzlich 1cm Rand fuer die Bindung.
% DIV10: fuer 11pt-Schrift wird 10-Teilung verwendet, bei `oneside'
% nimmt der Text 7/10 der Restseite ein.
\usepackage[BCOR1cm]{typearea}
Die Verteilung der Ränder erfolgt dabei automatisch nach typographischen
Gesichtspunkten. Diverse Papiergrößen sowie Hoch- und Querformat werden
unterstützt, zusätzliche Formate können definiert werden, und auch die
Option `twoside' wird korrekt behandelt. Ausführliche Informationen dazu
findet man in der beigefügten Datei ``scrguide.dvi''.
Mit diesem Paket, das einem die Berechnung eines wohldefinierten
Satzspiegels abnehmen kann, kann man auch die LaTeX-Parameter für den
Textbereich durch eine einfache Schnittstelle setzen:
\documentclass[a4paper]{...} % Ausgangspapiergroesse
\usepackage{typearea}
\areaset[1cm]% % Zusaetzlicher Rand fuer die Bindung
{18cm}{25cm} % Textbreite und Hoehe
Neben `typearea' gibt es mit `vmargin' und `geometry' drei weitere
Pakete, mit denen man die LaTeX-Parameter leichter setzen kann. Bei
`vmargin' haben die Makroaufrufe eine festgelegte Parameterreihenfolge,
`geometry' dagegen benutzt das Paket `keyval', mit dem die Parameter in
beliebiger Reihenfolge angegeben werden können:
\usepackage{geometry}
\geometry{left=1.5cm,textwidth=18cm,top=1.5cm,textheight=25cm}
\usepackage{vmargin}
\setpapersize{A4}
\setmargins{1.5cm}{1.5cm}% % linker & oberer Rand
{18cm}{25cm}% % Textbreite und -hoehe
{12pt}{25pt}% % Kopfzeilenhoehe und -abstand
{0pt}{30pt}% % \footheight (egal) und Fusszeilenabstand
Eine gute Möglichkeit der visuellen Kontrolle des Ergebnisses bietet das
Paket `layouts'.
koma: CTAN: macros/latex/contrib/supported/koma-script/
script: CTAN: macros/latex209/contrib/script/
geometry: CTAN: macros/latex/contrib/supported/geometry/
vmargin: CTAN: macros/latex/contrib/supported/vmargin/
layouts: CTAN: macros/latex/contrib/supported/layouts
5.4.4 Wieso ist mit der Klasse `book' oder mit der Klassenoption
`twoside' der innere Rand kleiner als der äußere?
Bei doppelseitiger Formatierung werden die Seitenränder so gewählt, daß
sie nicht für eine einzelne Seite sondern für eine aufgeschlagene
Doppelseite passen. Bei dieser bilden die Ränder der beiden Seiten drei
vertikale weiße Streifen (links außen, mittig, rechts außen), die gleich
breit sein sollen. Da der mittlere Streifen aus den Rändern zweier
Seiten gebildet wird, sind diese auch nur halb so breit. Aus diesem
Grund legt man unter LaTeX die Werte für \evensidemargin und
\oddsidemargin, also für den linken Rand der geraden (linken) und den
der ungeraden (rechten) Seite, entsprechend fest. Näheres findet sich
u.a. in der Dokumentation der KOMA-Script-Klassen.
koma: CTAN: macros/latex/contrib/supported/koma-script/
5.4.5 Gibt es einen einfachen Weg, die Seitennummer als `Seite 1 von 16'
anzugeben?
Mit dem Paket `lastpage' erhält man durch ``\pageref{LastPage}'' eine
Referenz auf die Nummer der letzten Seite. Das Paket `count1to' bietet
mit ``\pageref{TotalPages}'' eine Referenz auf die Gesamtzahl der
Seiten. Diese `pageref'-Anweisungen können unter Zuhilfenahme von
`fancyhdr' oder `scrpage' aus dem KOMA-Script-Paket in der Form
`\thepage{} von \pageref{Lastpage}' in die Kopf- oder Fußzeilen
eingefügt werden.
lastpage: CTAN: macros/latex/contrib/other/lastpage/
fancyhdr: CTAN: macros/latex/contrib/supported/fancyhdr/
count1to: CTAN: macros/latex/contrib/supported/ms/
koma: CTAN: macros/latex/contrib/supported/koma-script/
5.4.6 Wie kann ich den Kolumnentitel, die Kopfzeile der Seite, oder die
Fußzeile nach meinen Wünschen gestalten, z.B. mit einem Strich versehen?
Mit dem Paket `scrpage' und den Klassen aus dem KOMA-Script-Paket oder
mit dem Paket `fancyhdr' kann man die Kopf- und Fußzeile einer Seite
fast beliebig festlegen. Beide Pakete enthalten eine ausführliche
Dokumentation, die auch auf andere Probleme eingeht und dafür Lösungen
und Tips hat.
koma: CTAN: macros/latex/contrib/supported/koma-script/
fancyhdr: CTAN: macros/latex/contrib/supported/fancyhdr/
Kurzbeschreibung: http://www.tu-chemnitz.de/~hfst/tex/fancyhdr.html
5.4.7 Wie kann ich einem zweispaltig gesetzten Text (Klassenoption
`twocolumn') eine beide Spalten übergreifende Überschrift und
Zusammenfassung voransetzen?
Will man nur mit \maketitle eine Überschrift mit den Autorenangaben
einspaltig in voller Breite über beide Spalten setzen, so verwendet man
die Klassenoption `twocolumn' und ändert sonst nichts, da dies bei den
Standard-Klassen und den meisten anderen Klassen automatisch vorgesehen
ist.
Soll jedoch zusätzlich zur Überschrift noch weiterer Text wie eine
Zusammenfassung einspaltig gesetzt werden, muß man auf die Klassenoption
`twocolumn' verzichten und stattdessen die Anweisung \twocolumn
verwenden. Diese hat ein optionales Argument, in der man diejenigen
Textteile angibt, die einspaltig über die gesamte Breite gesetzt werden
sollen. Da die Anweisung \maketitle und die Umgebung `abstract' jedoch
nicht einfach im optionalen Argument von \twocolumn verwendet werden
kann, muß man zu einem kleinen, leider nicht ganz sauberen Trick mit
\csname@twocolumnfalse\endcsname greifen.
\documentclass[...]{article}
...
\begin{document}
\twocolumn[{\csname @twocolumnfalse\endcsname
\maketitle
\begin{abstract}
...
\end{abstract}
}]
...
\end{document}
Innerhalb des optionalen Arguments von \twocolumn funktionieren leider
keine Fußnoten und damit tauchen auch für die Anweisung \thanks in der
Autorenliste keine Fußnoten auf. Werden diese benötigt, muß man sie von
Hand mit \footnotetext nach dem optionalen Argument setzen.
5.4.8 Wie kann ich verhindern, daß der Beginn eines Absatzes eingezogen
wird? Ich will Absätze stattdessen mit zusätzlichem Durchschuß
markieren.
Meist kommt auf diese Frage
\setlength{\parskip}{\baselineskip} \setlength{\parindent}{0pt}
als Antwort, jedoch fügt LaTeX \parskip auch an verschiedenen anderen
Plätzen ein, u.a. auch zu Beginn und am Ende einer Liste und zwischen
den Listenelementen. Dies kann man mit dem Paket `parskip' von Hubert
Partl zum Teil verhindern, wenn auch nicht komplett.
Außerdem enthalten die NTG-Klassen Varianten mit verschiedenen Layouts,
darunter eine Variante (`artikel3', `rapport3', `boek3') mit
zusätzlichem Durchschuß und ohne Einzug. In diesen Varianten wird wie
mit dem Paket `parskip' zusätzlicher Abstand verhindert.
Ob man nun den Beginn eines neuen Absatzes mit einem Einzug oder mit
einem zusätzlichen Durchschuß markiert, ist immer wieder Anlaß zu mehr
oder weniger ausgiebigen Diskussionen. Um einen weitverbreiteten Irrtum
auszuräumen: Der einzuglose Satz hat im ``deutschen Buchsatz'' keine
Tradition. Einzugloser Satz, ob nun mit oder ohne zusätzlichen
Durchschuß, ist im Zeitungs- und Zeitschriftensatz weit verbreitet, so
daß er manchen vertrauter erscheint als der traditionelle Buchsatz mit
Einzug. Letztendlich sollte man bei der Wahl, ob mit oder ohne Einzug,
an den Leser denken; wie einfach dieser einen neuen Absatz, den Beginn
eines neuen Teils der niedergeschriebenen Gedankenfolge, immer klar und
deutlich erkennen kann.
parskip.sty: CTAN: macros/latex209/contrib/misc/parskip.sty
NTG-Klassen: CTAN: macros/latex/contrib/supported/ntgclass/
5.4.9 Wie kann ich den Durchschuß meines Dokuments vergrößern, wenn ich
beispielsweise ein Dokument mit 1,5- oder 2-fachem Zeilenabstand
abliefern soll?
Abgesehen davon, daß man eine solch starke Vergrößerung des
Zeilenabstand vermeiden sollte, hilft das Paket `setspace':
\usepackage{setspace}
\doublespace % doppelzeilig oder
%\onehalfspacing % anderthalbzeilig
setspace: CTAN: macros/latex/contrib/supported/setspace/
--- DE-TeX-FAQ Ende Teil 5 ---
--- DE-TeX-FAQ Beginn Teil 11 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
11 Tools und Utilities
11.1 Tools zur Manipulation von dvi-Dateien
11.1.1 Ich möchte durch doppelseitigen Druck und entsprechende Faltung
eine Broschüre in DIN A5 mit Hilfe von DIN A4-Bögen erstellen.
Mit `dvidvi' oder `dvibook' lassen sich die Seiten in einer dvi-Datei so
umordnen, daß auf einem Papierbogen die entsprechenden Seiten
doppelseitig gedruckt werden können. Neben diesen
dvi-Manipulationsprogrammen können auch einige dvi-Gerätetreiber die
Seiten so gedreht und sortiert ausgeben, daß man diese zu einer
Broschüre bzw. die einzelnen Bogenpäckchen zu einem dickeren Buch binden
kann. Beispiele für solche Treiber sind `dvidrv' (emTeX-Paket, OS/2 und
MS-DOS) `dvi_dot' (MultiTeX-Paket, Atari ST), DVI 3.xx (Atari ST).
Hilfreich ist hierbei neben der Fähigkeit, die Seiten entsprechend
anzuordnen, daß man die Signaturgröße, d.h. die Größe eines Heftchens,
über einen Parameter angeben kann (Bsp: `section-count' bei den
emTeX-Treibern). Verwendet man PostScript, so kann man mit `psbook' (aus
den PostScript-Utilities) statt der Seiten in der dvi-Datei auch die
Seiten in der aus der dvi-Datei erzeugten PostScript-Datei umordnen.
Dabei sollte man darauf achten, daß die PostScript-Dateien sogenannte
`strukturierte Kommentare' enthalten, da `psbook', andere
PostScript-Utilities und beispielsweise auch `ghostview' diese
Kommentare benötigen, um den Vorspann und die einzelnen Seiten
voneinander trennen zu können. In `dvips' darf man die Option -N (`No
structured comments') daher _nicht_ verwenden!
Lösungsbeispiel mit `dvidvi' und `dvips':
# Vorderseiten:
dvidvi -m '4:-1,2(148.5mm,0mm)' datei.dvi tmp1.dvi
dvips -t landscape tmp1.dvi
#
# Rueckseiten:
dvidvi -m '4:-3,0(148.5mm,0mm)' datei.dvi tmp2.dvi
dvips -t landscape tmp2.dvi
#
# danach zuerst die Vorderseiten in `tmp1.ps' ausdrucken, diese in
# den Drucker so einlegen, dass die letzte Vorderseite zuerst
# eingezogen wird, und dann die Rueckseiten in `tmp2.ps' ausdrucken.
Lösungsbeispiel mit `psbook', `pstops' und `dvips':
Damit `dvips' auch weiterverarbeitbare PostScript-Seiten im
DIN A5-Format erzeugen kann, muß in die `dvips'-Konfigurationsdatei
``config.ps'' noch folgender Eintrag hinzugefügt werden:
@ A5 148.5mm 210mm
@+ %%PaperSize: A5
@+ ! %%DocumentPaperSizes: A5
Anschließend können die folgenden Anweisungen abgesetzt werden:
# Ausgabe im Hochformat in DIN A5
dvips -t a5 -o tmp.ps datei.dvi
und nach dem Erzeugen der A5-großen Seiten anschließend
# Sortieren der Seiten der PS-Datei, Signaturgroesse: je 16 Seiten
# ergibt 4 Boegen (doppelseitig und gefaltet)
psbook -s16 tmp.ps tmp-sorted.ps
# Zusammenfassen von 4 Seiten auf ein DIN A4-Blatt
pstops '4:0L(21cm,0)+1L(21cm,14.85cm),2R(0,29.7cm)+3R(0,14.85cm)' \
tmp-sorted.ps datei.ps
Die Veränderung von ``config.ps'' und die Option -t a5 beim Aufruf von
`dvips' kann entfallen, wenn das Programm `psresize' verwendet wird:
# Ausgabe im Hochformat (in DIN A5)
dvips -o tmp-in.ps datei.dvi
# Korrigiere Papiergroessenangabe von A4 auf A5
psresize -Pa4 -pa5 tmp-in.ps tmp.ps
Man beachte, daß unter manchen Betriebssystemen die Hochkommata
entfallen oder durch doppelte Hochkommata ersetzt werden müssen. Der
Backslash am Ende der letzten Anweisung zeigt an, daß diese und die
nachfolgende Zeile zusammengehören!
dvidvi: CTAN: dviware/dvidvi/
dvibook: CTAN: dviware/dvibook/
psbook: CTAN: support/psutils/
psresize: CTAN: support/psutils/
(unterhalb von CTAN: systems findet man Binaries dieser Programme für
verschiedene Systeme)
11.1.2 Ich möchte aus einer bereits fertigen, jedoch für DIN A4
formatierte Broschüre durch Verkleinerung, doppelseitigen Druck und
entsprechende Faltung eine Broschüre in DIN A5 erstellen.
In Frage 11.1.1 wurden bereits entsprechende Programme vorgestellt, mit
denen die Manipulationen durchgeführt werden können. Im Unterschied zu
der dort vorgestellten Lösung sind nun die Seiten zusätzlich von DIN A4
auf DIN A5 zu verkleinern. Diese Skalierung ist typographisch nicht
empfehlenswert; eine Layout-Änderung und Neuformatierung der Vorlage auf
DIN A5, um eine Skalierung zu vermeiden, wäre besser.
Lösungsbeispiel mit `dvidvi' und `dvips':
# Vorderseiten:
dvidvi -m '4:-1,2(148.5mm,0mm)' datei.dvi tmp1.dvi
dvips -t landscape -x 707 tmp1.dvi
#
# Rueckseiten:
dvidvi -m '4:-3,0(148.5mm,0mm)' datei.dvi tmp2.dvi
dvips -t landscape -x 707 tmp2.dvi
#
# danach zuerst die Vorderseiten in `tmp1.ps' ausdrucken, diese in
# den Drucker so einlegen, dass die letzte Vorderseite zuerst
# eingezogen wird, und dann die Rueckseiten in `tmp2.ps' ausdrucken.
Lösungsbeispiel mit `psbook', `pstops' und `dvips':
# Ausgabe im Querformat und auf DIN A5 (= 1/sqrt{2}) verkleinert
dvips -t landscape -x 707 -o tmp.ps datei.dvi
# Sortieren der Seiten der PS-Datei, Signaturgroesse: je 16 Seiten
# ergibt 4 Boegen (doppelseitig und gefaltet)
psbook -s16 tmp.ps tmp-sorted.ps
# Zusammenfassen auf eine DIN A4-Seite
pstops '2:0(.744cm,.744cm)+1(.744cm,-14.106cm)' tmp-sorted.ps datei.ps
Man beachte, daß unter manchen Betriebssystemen die Hochkommata
entfallen oder durch doppelte Hochkommata ersetzt werden müssen.
11.1.3 Wie kann ich bei doppelseitigem Druck jede zweite Seite umgedreht
drucken lassen?
Doppelseitige Drucker geben die zweite Seite meist über die längere
Kante gewendet aus, so daß hintere Seite eines Papierblattes ``falsch
herum'' gedruckt wird. Mit einem PostScript-fähigen Drucker und dem
Programm `pstops' (aus den PostScript-Utilities) kann dies problemlos
korrigiert werden, indem jede zweite Seite mit der Option `U'
(upside-down) auf den Kopf gestellt wird:
pstops '2:0,1U(21cm,29.7cm)' datei.ps datei-2r.ps
Will man wie in Frage 11.1.1 oder Frage 11.1.2 Broschüren erstellen,
sind die dort gezeigten Verfahren durchzuführen. Anschließend ist dann
obige Zeile auf das Ergebnis anzuwenden.
pstops: CTAN: support/psutils/
11.1.4 Ist es möglich, zwei dvi-Dateien zu einer zusammenzumontieren?
Kann ich einzelne Seiten aus einer dvi-Datei in eine dvi-Datei
schreiben?
`dviconcat', das im `dvibook'-Paket enthalten ist, hängt dvi-Dateien
aneinander. Mit `dviselect' aus demselben Paket kann man einzelne Seiten
bzw. Folgen von Seiten aus einer dvi-Datei extrahieren.
dvibook: CTAN: dviware/dvibook/
11.1.5 Eine vorhandene PostScript-Datei enthält Grafiken, die ich für
einen anderen Zweck wiederverwenden will. Was kann ich tun?
Das Programm `psrip' kann in vielen Fällen enthaltene EPS-Grafiken aus
einer PostScript-Datei extrahieren.
psrip: CTAN: support/psrip/
11.2 Syntax-Checker
11.2.1 Ich möchte ein LaTeX-Dokument möglichst schnell auf Fehler
überprüfen.
In LaTeX gibt es das Paket `syntonly', das durch die Anweisung
`\syntaxonly' in der Dokumentpräambel einige LaTeX-Interna so
umdefiniert, daß kein oder nur spärlich dvi-Code erzeugt und so der
Übersetzungslauf beschleunigt wird. Dabei werden weiterhin die meisten
Fehler, insbesonders syntaktische, von TeX gemeldet. Jedoch können auch
weitere Fehler gemeldet werden, wenn Makros von den intern jetzt nicht
mehr erzeugten Strukturen abhängen. `syntonly' benötigt die tfm-Datei
für den Font `dummy'.
syntonly: CTAN: macros/latex/base/
dummy: CTAN: fonts/amsfonts/sources/dummy.mf
CTAN: fonts/amsfonts/tfm/dummy.tfm
11.2.2 Gibt es auch noch Syntax-Checker, die schneller sind?
Externe Syntax-Checker, wie `lacheck', `ChkTeX' oder `texchk', sind
schneller, jedoch kann es vorkommen, daß sie z.B. bei
`verbatim'-ähnlichen Umgebungen sehr viele Fehler melden, obwohl keine
existieren. Meist ignorieren diese Programme auch \input- und
\include-Anweisungen, so daß die einzelnen Dokumentdateien separat
getestet werden müssen. Sie sind jedoch schnell und ideal zum Finden von
Fehlern durch inkorrekte Schachtelung von Gruppen/Umgebungen.
lacheck: CTAN: support/lacheck/
C/lex-Source von `lacheck' (war früher im AucTeX-Paket
enthalten).
ChkTeX: CTAN: support/chktex/
Sources und Binaries für verschiedene Architekturen.
texchk: CTAN: obsolete/systems/msdos/4alltex/disk05/texcheck.zip
Binary ist im emTeX- und damit auch im 4allTeX-Paket
enthalten.
11.3 Dokument-Konverter von bzw. in das (La)TeX-Markup-Format (*)
11.3.1 Ich habe ein Dokument für XYZ vorliegen und möchte es in (La)TeX
umwandeln. Gibt es ein Konvertierungsprogramm?
Für relativ viele Dokumentformate gibt es Programme, die diese in eine
(La)TeX-Eingabedatei mit entsprechendem Markup umwandeln. Leider können
die meisten dieser Programme nur eine a) unvollständige Konvertierung
durchführen, b) ein (La)TeX-Dokument mit schlechtem Markup erzeugen oder
c) brechen mit Fehlern ab oder stürzen im schlimmsten Fall ab. Dies
liegt an unterschiedlichen Gründen, wie z.B. daran, daß die
Markup-Möglichkeiten des anderen Programms nicht mächtig genug sind oder
daß das Dateiformat nicht offiziell dokumentiert vorliegt und daher nur
unvollständig und fehlerhaft `re-engineered' wurde. Es ist daher besser,
wenn Sie nicht allzu viel von diesen Konvertierungsprogrammen erwarten
und sich darauf einstellen, daß Sie noch nacharbeiten müssen.
Konvertierungsprogramme, die (La)TeX-Dokumente erzeugen, existieren für
Word, WordPerfect, RTF, SGML, HTML, troff, Scribe u.v.m.
11.3.2 Ich habe ein (La)TeX-Dokument vorliegen und möchte es in eine
Form für XYZ umwandeln. Gibt es ein Konvertierungsprogramm?
Es existieren relativ viele Konvertierungsprogramme, um ein
LaTeX-Dokument in eine Form zu wandeln, um das Dokument oder Teile
daraus in anderen Programmen weiterzuverwenden. Auch hier muß man mehr
oder weniger Abstriche machen, wenn ein Dokument a) nicht strukturiert
eingegeben und konsistent mit LaTeX-Markup versehen wurde, b) spezielle
LaTeX-Pakete und -Erweiterungen verwendet, c) mathematische Formeln,
Tabellen und Grafiken mit der `picture'-Umgebung enthält oder d) das
Konvertierungsprogramm spezielle Markup-Deklarationen benötigt. Sie
müssen daher auch hier entweder das entstandene Ergebnis nachbearbeiten
oder ihr LaTeX-Dokument vorher entsprechend anpassen.
Konvertierungsprogramme, die aus (La)TeX-Dokumenten ein anderes Format
erzeugen, existieren für RTF (Word/WordPerfect), gewöhnlichen
ASCII-Text, HTML, Portable Document Format (PDF) von Adobe u.v.m..
11.3.3 Konvertierungsprogramme für MS Word (for Windows), WordPerfect
(for Windows), allgemein für `Rich Text Format' (RTF) sowie für weitere
Formate? (*)
LaTeX zwingt den Autor, sein Dokument in strukturierter Form einzugeben,
während Textverarbeitungsprogramme wie Word und WordPerfect auch die
unstrukturierte Eingabe eines Dokuments erlauben, was leider auch die
meisten Autoren tun. Daher ist es nur sehr schwer und mit viel Aufwand
möglich, ein unstrukturiertes Dokument automatisch in eine strukturierte
LaTeX-Eingabe umzusetzen. Für die Textverarbeitungsprogramme existieren
jedoch auch sogenannte Style-Sheets. Werden vom Autor eines Dokuments
die zusätzlichen Strukturierungsmöglichkeiten eines solchen Style-Sheet
`sauber' und konsistent verwendet, ist eine automatische Umsetzung in
eine klar strukturierte LaTeX-Eingabedatei über einen `internen'
Konverter (z.B. durch Makros des Textverarbeitungsprogrammes) möglich.
Die nachfolgenden Informationen sind u.a. diesen Quellen entnommen:
* Marion Neubauer, Conversion from Word/WordPerfect to LaTeX,
Proceedings of the Eighth European TeX Conference, EuroTeX'94,
September 1994, Gdansk/Polen, S. 115-119.
* `Liste von Konvertern zwischen RTF/Word/WordPerfect und LaTeX' von
Wilfried Hennings; regelmäßig gepostet in die Newsgroup
`comp.text.tex'.
Eine Übersicht über eine Vielzahl von Konvertierungsprogrammen zwischen
(La)TeX-Dokumenten und RTF-/Word/WP-Dokumenten hat Wilfried Hennings in
seiner FAQ unter
http://www.kfa-juelich.de/isr/1/texconv/texcnv.html
veröffentlicht, die man auch unter
CTAN: help/wp-conv/
finden kann. Diese FAQ wird regelmäßig nach `comp.text.tex' gepostet. Im
folgenden sind diese Programme daher nur knapp aufgezählt.
RTF/Word/WordPerfect => LaTeX (nichtkommerziell):
* RTF (Word/WordPerfect) => LaTeX:
o rtf2TeX CTAN: support/rtf2tex/
o rtf2LaTeX http://members.home.net/setlur/rtf2latex2e/,
CTAN: support/rtf2latex/
o rtfLaTeX CTAN: support/rtflatex/
o w2latex CTAN: support/w2latex/
* WinWord 2.0 und 6.0 => LaTeX:
o WINW2LTX CTAN: support/winw2ltx/ (Style-Sheets, interner
Konverter!)
* WordPerfect => LaTeX:
o WP2LaTeX CTAN: support/wp2latex/
o TeXPerfect CTAN: support/texperf/
o WP2x
* Word => LaTeX:
o word_tex CTAN: support/word_tex/ (Style-Sheets, interner
Konverter!)
o WORD2TeX http://www.word2tex.com/, CTAN: support/word2tex/
o WD2LaTeX
o CATDOC CTAN: support/catdoc/
o Word2x CTAN: tools/word2x
o W2T http://www.fi.muni.cz/~nygryn/w2t/
o LEQ http://pantheon.yale.edu/~pmm34/leq.html
* Word => HTML:
o MSWordView http://www.csn.ul.ie/~caolan/docs/MSWordView.html
* Word => Text/PostScript:
o AntiWord http://www.winfield.demon.nl/index.html
* (Word =>) HTML => LaTeX:
o typehtml CTAN: macros/latex/contrib/supported/carlisle/
RTF/Word/WordPerfect => LaTeX (kommerziell):
* Word/WordPerfect => (La)TeX:
o ``Publishing Companion'' von K-Talk Communications Inc.
URL: http://www.ktalk.com
* RTF => LaTeX:
o Scientific Word/Scientific WorkPlace (enthält RTF inkl. math
=> LaTeX) von TCI Software Research
* Math => Plain-TeX:
o MathType Formeleditor von Design Science
URL: http://www.mathtype.com/mathtype/
Excel-Tabellen => LaTeX (nichtkommerziell):
* Excel2Latex
http://www.jam-software.com/software.html
* Tabular
http://www.hsh.no/~ag/tabular/ (nicht mehr erreichbar)
LaTeX => RTF/Word/WordPerfect (nichtkommerziell):
* LaTeX => RTF, Windows Help RTF, HTML, wxHelp
o TeX2RTF 1.47 CTAN: support/tex2rtf/
URL: ftp://ftp.aiai.ed.ac.uk/pub/packages/tex2rtf/
http://web.ukonline.co.uk/julian.smart/tex2rtf/
* LaTeX => RTF
o latex2rtf
CTAN: support/latex2rtf/
LaTeX => RTF/Word/WordPerfect (kommerziell):
* TeX/LaTeX => WordPerfect/Word
o TexPort
URL: http://www.ktalk.com
11.3.4 Konvertierungsprogramme zwischen HTML und LaTeX?
Eine Übersicht über eine Vielzahl von Konvertierungsprogrammen zwischen
(La)TeX- und HTML-Dokumenten hat Günter Partosch in seiner Liste
```Gleichzeitiges' Publizieren in HTML und LaTeX'' unter
http://www.uni-giessen.de/~g029/TeX/converters.html veröffentlicht.
11.3.5 Konvertierungsprogramme von (La)TeX in einfaches Textformat?
Da das Ergebnis eines TeX-Laufs ein druckreifes Dokument darstellt, bei
dem ein gefälliges Aussehen durch unterschiedliche Schriftarten und
-kodierungen u.a. ereicht wird, ist die Reduktion auf das einfache
Textformat nicht so einfach, wie man vielleicht glaubt. Die folgenden
Wege führen zu einem Endergebnis, welches mehr oder weniger die zugrunde
liegende Formatierung erahnen läßt:
* `dvi2tty'
Ein dvi-Treiber, der das Ergebnis auf alphanumerischen Terminals
darstellen oder in eine Datei ausgeben kann.
* `catdvi'
Ein dvi-Treiber, der wie `dvi2tty' Text liefert. Baut auf der
kpathsea-Bibliothek von Web2C auf und läuft damit nur auf
Betriebssystemen, auf denen diese existiert.
* `ps2ascii'
Bestandteil des Programmpaketes `Ghostscript'. Erfordert die vorherige
Wandlung der dvi-Datei nach PostScript.
* `pstotext'
Benutzt ebenfalls Ghostscript zur Wandlung, wobei bessere Ergebnisse
als mit `ps2ascii' erzielt werden.
* `pdftotext'
Bestandteil des Programmpaketes `Xpdf'. Erfordert die vorherige
Erzeugung einer pdf-Datei. Es werden recht gute Ergebnisse erzielt.
* LaTeX => HTML => txt
Vorherige Wandlung der LaTeX-Datei nach HTML (siehe Frage 11.3.4). Die
Wandlung vom HTML- in das Textformat kann mit Hilfe eines Web-Browsers
(z.B. `lynx') oder mit anderen speziellen Konvertierungsprogrammen
geschehen.
dvi2tty: CTAN: dviware/dvi2tty/
catdvi: http://www.iki.fi/gaia/programs/catdvi/
ps2ascii: CTAN: support/ghostscript/
pstotext: http://www.research.digital.com/SRC/virtualpaper/
pdftotext: CTAN: support/xpdf/
pdftotext/Xpdf: http://www.foolabs.com/xpdf/
11.3.6 Wie kann ich Excel-Diagramme, Powerpoint-Zeichnungen oder andere
Windows-Bilder mit LaTeX verwenden?
Adobe stellt für Windows PostScript-Druckertreiber zur Verfügung. Damit
hat man die Möglichkeit, ein Dokument als EPS abzuspeichern, auch wenn
das Windows-Programm keinen EPS-Export vorsieht. Frage 6.4.1 führt aus,
wie man EPS-Bilder in LaTeX-Dokumente einbindet. Sollten die wie oben
angegeben erzeugten EPS-Bilder fehlerhafte Abmessungen aufweisen, so
kann der Tip in Frage 6.4.8 helfen. Weitere Informationen zum
Drucker-Treiber für Windows 95/98 und NT gibt es unter:
http://www.adobe.com/support/downloads/pdrvwin.htm
11.4 TeX-Benutzungsoberflächen und Editoren
11.4.1 Emacs: Wie kann ich erreichen, daß für deutsche Texte das
Doublequote nicht durch `` bzw.'' ersetzt wird?
In vielen, wenn auch nicht allen Fällen erkennt AucTeX, eine
empfehlenswerte Erweiterung des Emacs-TeX-Mode, durch die Verwendung des
Pakets `german' in der Dokumentpräambel, daß dieses Verhalten
ausgeschaltet werden soll. Falls nicht, kann man zwei Doublequotes
eingeben, um einen einzelnen Doublequote zu erhalten.
Einfacher ist es, wenn man dieses Verhalten abschaltet oder ändert.
Beispielsweise in dem man in die Startup-Datei ``.emacs'' die Zeilen
(add-hook 'TeX-mode-hook
(function (lambda ()
;;
;; 1. besondere Behandlung fuer dt. Texte (u.a. fuer ")
(TeX-run-style-hooks "german") ;; nur AucTeX
;;
;; 2. gesonderte Behandlung von " ganz abschalten
; (local-set-key "\"" 'self-insert-command)
;;
;; 3. je ein " statt ``...'' einfuegen:
; (setq TeX-open-quote "\"")
; (setq TeX-close-quote "\"")
;;
;; 4. "`..."' statt ``...'' einfuegen:
; (setq TeX-open-quote "\"`")
; (setq TeX-close-quote "\"'")
)))
einfügt und je nach Wunsch eine der vier Varianten auskommentiert läßt.
Ab AucTeX v9.x kann man auch in der Datei ``.emacs'' einfach
(setq TeX-quote-after-quote t)
schreiben, um dieses Verhalten abzuschalten.
Achtung: Für den TeX-Mode der Standard-Emacs-Verteilung muß der Teil
`TeX-' in den Symbolen als `tex-' kleingeschrieben werden. Einige
Erweiterungen funktionieren nur mit AucTeX.
11.4.2 Emacs: Ich will direkt Umlaute verwenden können, jedoch sollten
diese in `\"a' oder `"a' umgewandelt werden, damit ich sie problemlos
weitergeben kann.
Die Emacs-Library-Datei `iso-cvt' wandelt automatisch beim Laden und
Speichern eines Textes die Umlaute von bzw. in die entsprechenden TeX-
bzw. German-Style-Makro-Notation. Folgendes Code-Schnipsel funktioniert
nur mit AucTeX und einer neueren Version der Library-Datei `iso-cvt'.
(require 'iso-cvt)
(add-hook 'LaTeX-mode-hook
(function (lambda ()
;; Setze Anfuehrungszeichen etc. fuer Style german
(TeX-run-style-hooks "german")
;;
;; Lade Buffer und wandle nach ISO Latin-1:
(format-encode-buffer 'plain)
;; Speichere Buffer in "gtex" = german.sty-Notation ("a etc.):
(format-decode-buffer 'gtex))))
Will man das entgegengesetzte Verhalten, soll also Emacs bei Eingabe
eines Umlauts statt des einzelnen Umlautzeichens direkt die aus mehreren
Zeichen bestehende TeX-Makro-Notation erzeugen, so kann man dies durch
Änderung der entsprechenden `Key-Map' erreichen. Beispielsweise durch
folgenden unvollständig gezeigten Code:
(add-hook 'TeX-mode-hook
(function (lambda ()
(local-set-key [228]
(function (lambda () (interactive)
(insert "\"a")
;; oder
; (insert "\\\"a")
)))
;; weitere Zuweisungen mit analogem Aufbau
;; fuer die anderen Umlaute und das scharfe s
)))
Wenn man dies verwendet, wäre es noch ratsam, mit etwas zusätzlichem
Emacs-Lisp-Code beim Löschen eines so erzeugten `Umlautes' nicht nur ein
Zeichen, sondern alle Zeichen des kompletten Makros zu entfernen.
Achtung: Für den TeX-Mode der Standard-Emacs-Verteilung muß statt des
Symbols `TeX-mode-hook' das kleingeschriebene Symbol `tex-mode-hook'
verwendet werden. Einige Erweiterungen funktionieren nur mit AucTeX.
11.5 dvi-Treiber - Druckertreiber und Previewer
11.5.1 Wieso zeigt Xdvi das polnische L oder für \sqrt[n]{2} das `n'
nicht an, obwohl es beim Ausdruck auf einem Drucker korrekt vorhanden
ist?
Xdvi sollte in diesem Fall die Warnung ``Note: overstrike characters may
be incorrect.'' ausgeben. Bei Zeichen, die aus mehreren, übereinander
gesetzten Einzelzeichen erzeugt werden, löscht Xdvi zur schnelleren
Ausgabe Teile des bzw. der darunterliegenden Einzelzeichen. In den
Manual-Seiten zu Xdvi findet man dazu mehr im Abschnitt zu den Optionen
`-thorough/-copy'. (Nicht vergessen: Xdvi ist nur ein Previewer für
niedrigstauflösende Ausgabegeräte mit ca. 90-100dpi!)
Mit `xdvi +copy file.dvi' (oder mit `-thorough -nogrey') sollte man das
`n' in obiger Wurzel erhalten, ohne diese Optionen erscheint nur die
Wurzel. Die gleiche Wirkung erreicht man mit dem Eintrag `XDvi*thorough:
true' in der Datei `XDvi' (X-Resource-Datei). Diese Datei befindet sich
bei der teTeX-Distribution im Verzeichnis ``.../texmf/xdvi/'' bzw. sonst
in ``.../lib/X11/app-defaults/''.
11.5.2 Benutze ich Ghostscript 4.0 zur Anzeige von PostScript-Grafiken
in Xdvi erhalte ich den Fehler `/undefinedfilename in --file--'.
Abhilfe?
Dies ist ein inzwischen gut bekannter Fehler. Die momentan einfachste
Abhilfe besteht darin, mindestens Version 4.03 oder neuer zu benutzen.
Ist dies nicht möglich, kann man in der Zwischenzeit an die
Ghostscript-Datei `gs_init.ps' die Zeile
$error /newerror false put
anhängen. In kurzer Zeit dürfte auch eine neue xdvi-Version erscheinen
(bzw. ist schon erschienen), die diesen Fehler beseitigt.
11.5.3 Wieso weisen Satzbelichter meine mit `dvips' oder den `psutils'
erzeugten PostScript-Dateien mit der Meldung zurück, daß diese kein
korrektes PostScript konform zu DSC 3.0 wären?
Kommentare in einer PostScript-Datei sollen den Konventionen für
`Structured Comments', den sogenannten `Document Structuring
Conventions' (DSC), genügen. Ältere Versionen von `dvips' und den
Programmen `pstops', `psbook', `psselect' etc. der PostScript-Utilities
erzeugen jedoch beispielsweise einen nicht ganz korrekten Kommentar für
`%%Pages:'. Hier darf nur _eine_ einzige Zahl folgen, die die Seitenzahl
angibt. Ältere Versionen von `dvips' und der PostScript-Utilities geben
jedoch noch eine zweite Zahl aus, so daß Software, die den `Document
Structuring Conventions' Version 3.0 strikt folgt, solche
PostScript-Dateien, die mit
%!PS-Adobe-3.0
beginnen, als fehlerhaft zurückweist.
11.5.4 Wie kann ich mein Dokument so nach PostScript wandeln, daß alle
Seiten gespiegelt erzeugt werden?
Durch die Option -h kann man mit `dvips' noch zusätzlichen
PostScript-Code in einer sogenannten Header-Datei hinzuladen. Zum
Spiegeln sämtlicher Seiten existiert die Header-Datei ``mirr.hd'', die
man durch
dvips -h mirr.hd document.dvi
hinzuladen kann. Eine weitere in größerem Maße treiberunabhängige
Möglichkeit, da auf den Paketen `graphics' und `color' basierend, bietet
das LaTeX-Paket `crop'. Neben der Spiegelung von Seiten mit der
Paketoption `mirror' können diese mit der Option `invert' auch
invertiert, also weiß auf schwarz, ausgegeben werden.
mirr.hd: CTAN: macros/generic/TeX-PS/mirr.hd
crop: CTAN: macros/latex/contrib/supported/crop/
11.5.5 Was kann ich tun, wenn mein Drucker Teile meines Dokuments, die
sich weit am unteren Blattrand befinden, nicht druckt?
Zuerst ist zu prüfen, ob möglicherweise ein falsches Papierformat
eingestellt ist. Der Druck vom Ergebnis des folgenden LaTeX-Aufrufs
latex testpage
ist ein guter Test, um falsche Druckereinstellungen herauszufinden.
Fällt dieser Test zufriedenstellend aus, kann versucht werden, das
Problem dadurch zu lösen, daß die betreffenden Seiten kopfstehend an den
Drucker geschickt werden. Mit den beiden folgenden Verfahren kann man
kopfstehende Seiten unter Verwendung von PostScript erzeugen.
pstops "U(210mm,297mm)" original.ps kopfstehend.ps
oder im LaTeX-Dokument
\usepackage[rotate]{crop}[2000/02/02]
pstops: CTAN: support/psutils
crop: CTAN: macros/latex/contrib/supported/crop/
11.6 Zeichenprogramme
11.6.1 Wie bringe ich `XFig' dazu, beim Exportieren von Graphiken nach
(La)TeX Formeln nicht auszukommentieren, sondern so zu übernehmen?
Über das Menü `Text Flags' (ab `XFig' Version 3) muß man für diese Texte
das sogenannte Special-Flag setzen, damit diese ohne jede Änderung in
die (La)TeX-Datei exportiert werden. Dies kann man bei schon
gezeichneten Textobjekten auch nachträglich über den Menüpunkt `Edit'
ändern.
Das Special-Flag kann man auch beim Aufruf von `XFig' über die Option
`-spec[ialtext]' oder über die X11-Resource `Fig*specialtext' setzen.
Dies bewirkt, daß für _neue_ Textobjekte standardmäßig das Special-Flag
gesetzt wird.
11.6.2 Warum funktioniert das DOS-Programm `TeXCad' nicht mehr auf
meinem neuen Rechner?
Es kann an einem Fehler in der Unit CRT des zum Kompilieren verwendeten
`Borland Pascal 7' liegen, der sich bei schnellen Prozessoren im Abbruch
mit der Fehlermeldung
Runtime error 200 at XXX:YYYY
äußert. Nähere Informationen dazu und Wege zur Abhilfe finden sich unter
dem Stichwort ``tppatch''.
tppatch: http://www.brain.uni-freiburg.de/~klaus/pascal/runerr200/download.html
ftp://ftp.heise.de/ct/ctsi/bppatch.zip
ftp://ftp.heise.de/ct/ctsi/ctbppat.zip
--- DE-TeX-FAQ Ende Teil 11 ---
--- DE-TeX-FAQ Beginn Teil 10 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 68 vom Dezember 2000
------------------------------------------------------------------------
10 METAFONT und Schriften (Fortsetzung)
10.1 Die `EC'-Schriftfamilie und andere T1-kodierte Schriften
10.1.1 Wozu benötige ich neben der Computer-Modern-Schriftfamilie noch
eine weitere Familie, die fast dasselbe Aussehen hat?
Die Schriften der `Computer-Modern'-(CM)-Familie enthalten nur jeweils
128 verschiedene Zeichen. Es fehlen daher beispielsweise Umlaute und
alle akzentuierten Zeichen anderer europäischer Sprachen. Diese Zeichen
müssen bei Verwendung der CM-Schriften durch eine Box-Konstruktion aus
Einzelzeichen zusammengebaut werden. Da TeX zur Trennung von Wörtern die
Codes der Zeichen in der jeweiligen Schrift verwendet, werden Wörter mit
Umlauten nur unvollständig, fehlerhaft oder überhaupt nicht getrennt.
Diese Nachteile vermeiden die EC-Schriften, indem sie in die bisher
ungenutzten 128 Zeichenpositionen akzentuierte Zeichen legen. Außerdem
wurden die Positionen der `unteren' 128 Zeichen im Vergleich zu den
CM-Schriften klarer strukturiert. So wurden die Positionen, die in den
CM-Schriften mit den griechischen Großbuchstaben belegt sind, die für
den mathematischen Formelsatz genutzt werden, in den EC-Schriften mit
Lettern für gewöhnlichen Text belegt. So werden die Zeichen für Text-
und mathematischen Formelsatz sauber in entsprechende Fonts voneinander
getrennt, um die dadurch auftretenden Seiteneffekte zu vermeiden und um
Schriften einfacher kombinieren zu können.
Ein weiterer Vorteil der EC-Schriften ist beispielsweise das
Vorhandensein von Lettern für Anführungszeichen und auch die bei einigen
Lettern korrigierte Unterschneidung, wie bei ,,Av''. Hierdurch ergibt
sich beim Wechsel von CM- zu EC-Schriften jedoch in den meisten Fällen
ein geänderter Umbruch.
10.1.2 Was ist die Kodierung `T1'?
Die Kodierung der `EC'-Schriften, die auf der TeX-Tagung TUG'90 in
Cork/Irland festgelegt wurde, wird in LaTeX als `T1'-Kodierung
bezeichnet. Diese Kodierung entspricht im wesentlichen dem Code ISO
8859-1 (Latin-1) mit dem Unterschied, daß das scharfe s zu den anderen
akzentuierten Kleinbuchstaben auf Position 255 gesetzt wurde und daß die
in ISO Latin-1 mit Control-Zeichen belegten Bereiche 0-31 mit Akzenten,
Anführungszeichen und Ligaturen bzw. 128-159 mit Lettern aus ISO Latin-2
(für die osteuropäischen Sprachen) belegt wurden. Eine Kodierungstabelle
findet man beispielsweise in ``dcdoc.tex'', der Dokumentation der
T1-kodierten EC-Schriftfamilie.
Hinweis: Mit LaTeX kann man mit Hilfe des standardmäßig enthaltenen
Pakets `fontenc' sehr einfach mit
\usepackage[T1]{fontenc}
T1-kodierte Schriften verwenden, falls wie bei den EC-Schriften die
zugehörigen .fd-Dateien vorhanden sind. (Mit dem Paket `inputenc' kann
man die verwendete Kodierung der (La)TeX-Eingabedatei festlegen; diese
hat jedoch mit der Kodierung der Schrift _nichts_ zu tun!)
dcdoc.tex: CTAN: fonts/ec/src/dcdoc.tex
10.1.3 Was sind die `EC'-Schriften? Was sind die `DC'-Schriften? Wo
liegt der Unterschied zwischen DC- und EC-Schriften?
Bis Mitte Januar 1997 gab es die DC-Schriften `nur' als Testversion, von
denen die Versionen 1.0, 1.1, 1.2 und 1.3, teilweise in mehreren
Patchleveln, veröffentlicht wurden. Diese Testversionen hatten noch den
einen oder anderen Fehler und die Schriftdefinitionen wurden verändert
und weiterentwickelt, so daß die tfm-Dateien der einzelnen Versionen
untereinander inkompatibel sind. Es kann also sein, daß ein Dokument,
das DC-Schriften verwendet, mit einer neuen Version der DC-Schriften
bzw. den EC-Schriften einen anderen Umbruch haben wird. Die endgültige,
ausgetestete, stabile Version der DC-Schriften heißt
European/Extended-Computer-Modern-(EC)-Schriften. Sie ist ab Mitte
Januar 1997 verfügbar und wird ab dem LaTeX-Release vom Dezember 1996
unterstützt (siehe Frage 10.1.4). Die EC-Schriften sollen ebenso stabil
wie die CM-Schriften sein, d.h. die tfm-Dateien dieser Schriftfamilien
sollten sich nicht mehr ändern.
10.1.4 Wie kann ich mit LaTeX die neuen EC-Schriften verwenden? ...oder
muß ich dazu gar alle .fd-Dateien selbst ändern?
Um mit LaTeX die EC-Schriften ohne viel Aufwand benutzen zu können,
benötigt man die LaTeX-Version vom Dezember 1996 oder neuer. Mit dieser
muß nurmehr in der Präambel die Zeile \usepackage[T1]{fontenc} eingefügt
werden.
Ab LaTeX vom Juni 1997 werden die EC-Schriften automatisch als die
T1-kodierten CM-Schriften deklariert, so daß keine weiteren
Installationsschritte notwendig sind. Mit der älteren Version vom
Dezember 1996 werden die .fd-Dateien so konfiguriert, daß die
DC-Schriften v1.2/1.3 verwendet werden. Damit stattdessen die
EC-Schriften verwendet werden, müssen zusätzlich mit Hilfe der Datei
``ec.ins'' die entsprechenden .fd-Dateien ausgepackt werden. Näheres
dazu findet man in der Datei ``install.txt'' im LaTeX-Paket.
10.1.5 Wozu dienen die `tc'-Schriften? Was ist die Kodierung `TS1'?
Es gibt mehr als 256 Zeichen, die man in einem Text verwenden will.
Deshalb werden selten benötigte, jedoch nützliche Zeichen, die nicht
mehr in der T1-Kodierung Platz fanden, in einer sogenannten `text
companion'-Schrift in der Kodierung `TS1' zusammengefaßt. Diese
Schriften sind passend zur Hauptschrift entworfen und können daher
problemlos mit dieser verwendet werden. Die endgültige Menge von Lettern
einer Text-Companion-Schrift und deren Kodierung `TS1' ist z.Z. noch
nicht vollständig festgelegt und kann sich in späteren Versionen ändern.
Dabei können nur Zeichen hinzukommen; die schon in der TS1-Kodierung
vorhandenen Zeichen werden ihre Position nicht mehr ändern.
Die Text-Companion-(tc)-Schriften sind im EC-Schrift-Paket enthalten.
Seit dem LaTeX-Release vom Dezember 1997 ist das Paket `textcomp' fester
Bestandteil von LaTeX. Gegenüber früheren Versionen dieses Pakets haben
sich jedoch einige Anweisungen geändert: `\textcentigrade' wurde z.B. zu
`\textcelsius'. Durch das Paket `tccompat' sind die alten Anweisungen
wieder verfügbar.
Eine Kodierungstabelle der Text-Companion-Schriften findet man in
``dcdoc.tex'', der Dokumentation der EC-Schriftfamilie. Das Paket
`mathcomp' stellt einige ausgewählte Zeichen aus den TC-Schriften zur
Benutzung im Math-Modus zur Verfügung, darunter `\tcohm',
`\tccentigrade', `\tcmu' (mu), `\tcperthousend', `\tcpertenthousend',
`\tcdigitoldstyle'{0-9}.
Will man PostScript-Schriften in TS1-Kodierung benutzen, so sollte man
sich die aktuellsten PostScript-Anpassungen besorgen. Seit Februar 1997
gibt es zumindest für die Standard-PostScript-Schriften entsprechende
virtuelle Fonts und .fd-Dateien für LaTeX.
tc-Fonts: CTAN: fonts/ec/
dcdoc.tex: CTAN: fonts/ec/src/dcdoc.tex
textcomp: CTAN: macros/latex/base/
tccompat: CTAN: macros/latex/contrib/supported/jknappen/
Liste der tc-Fonts: CTAN: info/textcomp-list/
mathcomp: CTAN: macros/latex/contrib/supported/mathcomp
psfonts: CTAN: fonts/psfonts/adobe/
(Standard-PS-Schriftanpassungen)
10.1.6 LaTeX verlangt `ecrm1000', ich kann diesen Font aber nicht finden
und habe nur Fonts wie `dcr10' oder `dcr1000'. Was mache ich falsch?
Die DC-Schriften sind seit Januar 1997 durch die EC-Schriften abgelöst
worden. Man sollte daher auf diese neue Schriftfamilie umsteigen und nur
noch diese einsetzen, zumal die DC-Schriften immer nur als Test
veröffentlicht wurden und einige Fehler enthielten. Ebenso wurden sehr
viele Dinge im Aussehen der einzelnen Zeichen, den Ligaturen und den
Unterschneidungen (`Kerning') geändert, so daß ein sofortiger Umstieg
auf die EC-Schriften angeraten ist.
Die unterschiedliche Zahlen in den Schriftennamen rührt von einer
Nomenklatur-Änderung ab Version 1.2 der DC-Schriften her, die im
September 1995 veröffentlicht wurden. Folgten die alten Version noch dem
CM-Vorbild, in dem dem Basisnamen der Schrift noch die Entwurfsgröße in
Punkt hinzugefügt wurde, also z.B. `dcr' + 10 => `dcr10', so wird die
Entwurfsgröße nun in 1/100 Punkt und immer vierstellig angegeben, wie
z.B. `dcr' + 10*100 => `dcr1000'. Dadurch können nun auch nicht
ganzzahlige Entwurfsgrößen unproblematisch erfaßt werden. Beispielsweise
hat `ecrm' in der Entwurfsgröße 17.28 pt den Namen `ecrm1728'.
10.1.7 Ich habe bisher die DC-Schriften Version 1.1, 1.2 oder 1.3
verwendet und habe sehr viele Dokumente. Wie kann ich jetzt am
einfachsten auf die EC-Schriften umsteigen?
LaTeX unterstützt seit der Version vom Dezember 1996 die neuen
EC-Schriften (siehe Frage 10.1.4), daher sollte diese oder eine neuere
LaTeX-Version installiert werden. Ist ein Dokument als
LaTeX-Eingabedatei vorhanden, übersetzt man dieses einfach mit der neuen
LaTeX-Version nochmals.
Für andere (La)TeX-Dokumente oder dvi-Dateien, von denen man den
Quelltext nicht besitzt, gibt es momentan folgende Möglichkeiten:
* Für die Version 1.3pl4 der DC-Schriften gibt es virtuelle Fonts, die
alle Zugriffe auf die DC-Schriften auf die entsprechenden
EC-Schriften, die installiert sein müssen, abbilden. Die virtuellen
Fonts stellen einen vollwertigen Ersatz dar, sind klein, können für
alle Ausgabegeräte verwendet werden und man kann daher die pk-Dateien
der DC-Schriften für alle Ausgabegeräte löschen. Das Druckergebnis ist
nicht unterscheidbar.
Für Version 1.2 und 1.3 kleiner Patchlevel 4 können die virtuellen
Fonts für Version 1.3pl4 verwendet werden. Die dabei auftretenden
Prüfsummenfehler (`checksum error') der dvi-Treiber kann ignoriert
werden. Die Unterschiede im Druckergebnis ist minimal. Alte Dokumente,
die als dvi-Datei vorliegen, kann man mit dem Tool `dvicopy' und
diesen virtuellen Fonts in dvi-Dateien wandeln, die nur die
EC-Schriften referenzieren.
* Für die Version 1.1 der DC-Schriften gibt es momentan noch keinen
einfachen Weg. Ein einfaches Umbenennen (oder Setzen eines `Links'
unter Unix) von beispielsweise ``ecrm1000.tfm'' nach ``dcr10.tfm''
ergibt andere Druckergebnisse durch die stärkeren Unterschiede in den
Maßen der Lettern und deren Positionierung zwischen der EC- und dieser
sehr alten DC-Version, sollte aber für Korrekturausdrucke ausreichen.
Eventuell wird es auch für die Version 1.1 der DC-Schriften virtuelle
Fonts geben, die diese auf die EC-Schriften abbilden.
vf-dc13: CTAN: fonts/dc/
10.1.8 Gibt es die zu den EC-Schriften gehörenden Schriften für den
mathematischen Formelsatz?
Nein, leider noch nicht. Zur Zeit existiert ein gemeinsames
LaTeX3-/TUG-Technical-Working-Group-(TWG)-Projekt; Barbara Beeton,
Herausgeberin des TUGboat und Mitarbeiterin bei der American
Mathematical Society (AmS), ist Vorsitzende dieser TWG. Die
Arbeitsgruppe hat die nicht-triviale Aufgabe, alle benötigten
mathematischen Zeichen zusammenzutragen und entsprechende
Schriftkodierungen festzulegen. Informationen über die bisher
erarbeiteten Konzepte kann man in http://www.tug.org/twg/mfg finden.
10.1.9 Wieso werden bei Verwendung von EC-Schriften noch die alten
CM-Schriften geladen? Ich dachte, daß die EC- die CM-Schriften
vollständig ersetzen können?
Da noch keine mathematischen Schriften speziell für die EC-Schriften
existieren, werden die der CM-Schriften verwendet. Die CM-Textschriften
enthalten jedoch die großen griechischen Buchstaben für den
mathematischen Formelsatz, so daß auch weiterhin diese Textschriften
zusätzlich zu den EC-Textschriften geladen werden müssen.
10.1.10 Gibt es eine Schrift mit Mediävalziffern/Minuskelziffern und wie
kann ich alle Zahlen in einem Dokument in Mediävalziffern ausgeben?
Mediävalziffern erhält man in Plain-TeX durch `\oldstyle'{1234567890},
in LaTeX mit `\oldstylenums'{1234567890}, da TeXs Math-Italic-Schriften
diese Ziffernform bereits enthalten.
Will man alle Zahlen in einem Dokument in Mediävalziffern ausgeben, ohne
diese explizit mit `\oldstyle' bzw. `\oldstylenums' auszeichnen zu
müssen, so benötigt man spezielle Text-Fonts, in denen die meist
üblichen Versalziffern durch Mediävalziffern ersetzt wurden. Dies ist in
den ECO-Schriften der Fall, die auf den EC-Schriften basieren und die
als `virtuelle Schriften' die Ziffernformen ersetzen.
ECO-Fonts: CTAN: fonts/eco/
10.2 PostScript-Type-1-Schriften (*)
10.2.1 Gibt es die CM-Fonts auch als PostScript-(Type-1)-Schriften?
Die Knuth'sche Computer-Modern-(CM)-Familie, die zusätzlichen
LaTeX-CM-Fonts und die AmS-Fonts zum mathematischen Formelsatz wurden
von Bluesky und Y&Y in Type-1-Format umgesetzt und vor einiger Zeit der
Öffentlichkeit frei verwendbar zur Verfügung gestellt, wobei die Rechte
und die Weiterentwicklung weiterhin bei einem Konsortium verbleiben, in
dem auch die AmS mitwirkt. Einige der in den `Bluesky'-Schriften
fehlenden Schriften, wie einige AmS-Schriften, die Logo- und
Manual-Fonts sind seit Ende 1997, Anfang 1998 ebenso im Type-1-Format
verfügbar.
Das Schriftpaket `Bakoma' enthält diese Schriften sowohl im Type-1- als
auch im True-Type-Format. Da diese jedoch Nutzungbeschränkungen
unterliegen, sollte man die `Bluesky'-Schriften vorziehen.
Das Paket `type1cm' von David Carlisle enthält außerdem geänderte
LaTeX-fd-Dateien für die PostScript-CM-Schriften, in denen die üblichen
festen Größenabstufungen durch Bereiche abgedeckt werden, da die
PostScript-Schriften skalierbar sind. Die mit diesen fd-Dateien
erzeugten dvi-Dateien können daher unübliche Schriftgrößen verwenden, so
daß die Weitergabe an andere problematischer sein kann.
Bluesky: CTAN: fonts/cm/ps-type1/bluesky/
AmS-Fonts: CTAN: fonts/amsfonts/ps-type1/
Logo: CTAN: fonts/mflogo/ps-type1/hoekwater/
Manual: CTAN: fonts/manual/ps-type1/hoekwater/
Bakoma: CTAN: fonts/cm/ps-type1/bakoma/
type1cm: CTAN: macros/latex/contrib/supported/type1cm/
10.2.2 Gibt es die EC-Schriftfamilie auch als
PostScript-(Type-1)-Schriften?
Bis vor einiger Zeit gab es die EC-Schriften nicht im Type-1-Format.
Inzwischen wird eine kommerzielle Version der EC- und TC-Schriften von
Micropress Inc. angeboten. Diese enthalten 555 vorkompilierte Schriften.
Die ebenfalls nur gegen eine Lizenzgebühr benutzbare Schriftfamilie EM
von Y&Y enthält zwar alle Lettern der EC-Schriften, jedoch unterscheiden
sich die tfm-Informationen der in T1-Kodierung verwendeten EM- von den
Original-EC-Schriften. Man erhält daher einen anderen Umbruch, so daß
sie keinen Ersatz darstellen.
Unter dem Namen `Bakoma-DC' ist die Version 1.1 der DC-Fonts, die total
veraltete Testversion der EC-Fonts, in Type-1-Format verfügbar. Da sich
die tfm-Informationen der DC-Fonts ebenso von denen der EC-Fonts
unterscheiden und man die DC-Fonts nicht mehr verwenden sollte, wird von
deren Gebrauch abgeraten.
Ein nicht ganz vollwertiger Ersatz von EC-Schriften im Type-1-Format,
mit denen man denselben Umbruch wie mit den EC-Schriften erhält, besteht
darin, T1-kodierte virtuelle Fonts zu benutzen, die die Schriften der
Computer-Modern-(CM)-Familie verwenden, da die CM-Schriftfamilie in
Type-1-Format vorliegt. Solche virtuelle Schriften sind unter dem Namen
Almost-European-(AE)-Schriften und unter dem Namen ZE verfügbar.
EC-Type-1: http://www.micropress-inc.com/samples/ecfonts.htm
ae: CTAN: fonts/ae/
ze: CTAN: fonts/zefonts/
DC-1.1-Type-1: CTAN: fonts/dc1.1-obsolete/
10.2.3 Wie installiere ich mit `dvips' eine neue PostScript-Schrift, so
daß ich diese unter (La)TeX verwenden kann? (*)
Schritt 0 - Dokumentation lesen:
Zuerst sollte man sich die Dokumentation zum `dvips' durchlesen. Diese
beschreibt die wichtigsten Schritte, auch wenn die dort beschriebenen
Dateinamen und die Kodierungen für die PS-Schriften veraltet sind (gilt
zumindest für die Dokumentation bis `dvips' Version 5.58). Außerdem
sollte man `Filenames for TeX fonts' von Karl Berry in der Version 2.0
(oder neuer) durchlesen, in dem ein für alle TeX-Systeme verwendbares,
einheitliches Namensschema beschrieben wird.
Schritt 1 - TeX-Anpassungen besorgen oder selbst generieren:
Gibt es auf CTAN im `psfonts'-Verzeichnis bereits fertige Anpassungen?
Wenn ja, sollte man diese verwenden. Wenn nein, sollte man sich das Tool
`fontinst' besorgen, mit dem man relativ einfach aus der mit dem
PostScript-Font mitgelieferten afm-Datei die notwendigen virtuellen
Fonts (vf-Dateien) mit den entsprechenden Fontkodierungen und
Font-Definitions-(fd)-Dateien für LaTeX erzeugen lassen kann. Für
Textschriften sollten zumindest vf-Dateien für OT1-Kodierung, besser
auch noch für T1-Kodierung erzeugt werden.
Schritt 2 - PS- und TeX-Font-Dateien installieren:
Nach Schritt 1 sollten beispielsweise für die Schrift `URW Antiqua
Regular Roman Condensed' bzw. nach Berrys Namenschema `uaqr...c...'
folgende Dateien vorhanden sein:
* PS-Schrift und zugehörige Font-Metrik: uaqr8ac.{pfb,afm}
* virtueller Font, zugehörige TeX-Font-Metriken und PS-Reencoding:
uaqr8rc.{vpl,vf,tfm} TeX Base-1 Encoding (unkodiert,
Adobe-Std.-Encoding)
uaqr7tc.{vpl,vf,tfm} TeX-Text-/OT1-/CM-Encoding (`7-bit')
uaqr8tc.{vpl,vf,tfm} Cork-TeX-Text-/T1-/EC-Encoding (`8-bit')
8r.enc PS-Reencoding, in `fontname' enthalten
* LaTeX-Font-Definition-Files:
ot1uaq.fd (vormals: OT1uaq.fd)
t1uaq.fd (vormals: T1uaq.fd)
ts1uaq.fd
antiqua.sty
und noch einige weitere Dateien für die `slanted'- und `small
caps'-Varianten, die man mit `fontinst' erzeugen kann.
Diese Dateien werden nun in folgende Verzeichnisse gelegt:
*.fd, *.sty => TEXINPUTS (TeX)
*.tfm => TEXFONTS bzw. `T'-Eintrag (TeX + dvips)
*.vf => `V'-Eintrag oder VFFONTS (dvips)
*.pfb/pfa => `H'-Eintrag oder DVIPSHEADERS (dvips)
Schritt 3 - Map-Datei des PS-Fonts für `dvips' erzeugen:
Map-Datei für `dvips' erzeugen, in der die Zuordnung des Font-Namens in
TeX zu dem in PS verwendeten festgelegt wird und evtl. die zu ladenden
pfb-/pfa- und PS-Reencoding-Dateien angegeben werden. In unserem
Beispiel enthält die Map-Datei `uaq.map' die Zeile
uaqr8rc URWAntiquaT-RegularCondensed "TeXBase1Encoding ReEncodeFont"
<8r.enc <uaqr8ac.pfb
(dies muß eine einzige Zeile sein, sie wurde hier nur umbrochen, um eine
zu lange Zeile zu vermeiden!) und evtl. noch Zeilen für weitere
Schriften und Varianten.
Diese Map-Datei in ein Verzeichnis legen, in dem `dvips' nach
PS-Header-Dateien sucht (Umgebungsvariable DVIPSHEADERS bzw. `H'-Eintrag
in ``config.ps'').
Schritt 4 - `dvips'-Konfigurationsdatei anpassen:
Konfigurationsdatei ``config.ps'' des `dvips' ändern: Die in Schritt 3
erstellte Map-Datei durch die in ``config.ps'' neu einzutragende Zeile
p +uaq.map
zusätzlich zur Standard-Map-Datei ``psfonts.map'' laden. (Ältere
`dvips'-Versionen verstehen das `+' nicht; bei diesen muß man den Inhalt
der Map-Datei ``uaq.map'' an die Datei ``psfonts.map'' anhängen und die
obige Zeile in ``config.ps'' ist wegzulassen.) Außerdem sollte man noch
überprüfen, ob das Verzeichnis, in dem die Map-Datei und die
pfb-/pfa-Dateien zu finden sind, im Suchpfad nach PS-Header-Dateien
enthalten ist (DVIPSHEADERS bzw. `H'-Eintrag in ``config.ps'').
Schritt 5 - Anpassungen testen und verwenden:
Mit LaTeX kann man unsere Beispielschrift einfach mittels des Pakets
`antiqua' verwenden, da diese Schrift damit als `\rmdefault'-Schrift
verwendet wird. Ohne dieses Package kann man auch durch die Anweisung
`\usefont'{OT1}{uaq}{m}{n} diese Schrift kurz austesten. LaTeX müßte
dazu die fd- und tfm-Dateien finden und einlesen können. `dvips' benutzt
dann die angepaßte Konfigurationsdatei, die virtuellen Schriften
``uaqr*.vf'', die Map-Datei ``uaq.map'', die eigentliche PS-Schrift
``uaqr8ac.pfb'' und schließlich noch ``8r.enc''.
Für die PostScript-Schriften, die standardmäßig mit den meisten
PostScript-fähigen Druckern mitgeliefert werden, als auch für einige
freie Schriften und die Lucida-Schriftfamilie existiert in Form von
`psnfss' eine Menge von LaTeX-Paketen.
Unter Plain-TeX kann man diese Schrift relativ einfach z.B. durch die
Anweisung \font\rmantiqua=uaqr7tc laden und anschließend verwenden. Zur
Verwendung der T1-kodierten Variante ``uaqr8tc'' sind, wie bei der
Verwendung der EC-Schriften unter Plain-TeX, noch einige Anpassungen
notwendig.
Unter LaTeX 2.09 gilt dasselbe wie für Plain-TeX, nur sollte man hier
besser \newfont{\rmantiqua}{uaqr7tc} verwenden. Will man diese Schrift
und deren Varianten statt den CM-Schriften in einem Dokument verwenden,
so sind größere Änderungen notwendig, die den Rahmen dieser FAQ sprengen
würden. Am einfachsten ist ein Umstieg auf eine aktuelle LaTeX-Version!
dvips.tex: CTAN: dviware/dvips/
fontname: CTAN: info/fontname/
8r.enc: CTAN: info/fontname/8r.enc
psfonts: CTAN: fonts/psfonts/
CTAN: fonts/psfonts/urw/antiqua/
(unsere Beispielschrift)
fontinst: CTAN: fonts/utilities/fontinst/
http://www.tug.org/applications/fontinst/
psnfss: CTAN: macros/latex/required/psnfss
CTAN: info/installing_psnfss_on_emtex.pdf
PostScript Type 1 fonts (Nelson Beebe): http://www.math.utah.edu/~beebe/fonts/postscript-type-1-fonts.html
Walter Schmidt: Schriften für TeX: http://home.vr-web.de/was/fonts.html
PostScript-Fonts in LaTeX2e: Item,
www.regenbrecht.net/psfonts/psfonts_tetex.html:
WWW-Link PostScript-Fonts in LaTeX2e: Item, http://www.regenbrecht.net/psfonts/psfonts_tetex.html
http://www.regenbrecht.net/psfonts/psfonts_tetex.html:
link) Tobias Regenbrecht: Integration von
PostScript-Fonts in LaTeX2e:
10.2.4 Warum sind die Buchstaben in meiner pdf-Datei von schlechter
Qualität?
Eine gute Qualität der Schriften einer pdf-Datei erreicht man nur, wenn
man PostScript-Type-1-Schriften verwendet. Dazu sollten die
Type-1-Versionen der `Computer-Modern'-Schriften installiert und in den
Konfigurationsdateien von pdfTeX (u.a. ``pdftex.map'') aufgeführt sein.
Bei aktuellen TeX-Distributionen, die pdfTeX enthalten, ist dies bereits
der Fall. Eine Erneuerung des verwendeten TeX-Systems ist oft einfacher
als die Konfigurationsdateien von `pdfTeX' selbst anzupassen. Im
LaTeX-Dokument empfiehlt sich die Angabe
\usepackage{ae}
um die Vorteile der Fontkodierung T1 nutzen zu können (siehe Frage
5.3.2). Eine andere Möglichkeit ist die Verwendung der standardmäßig vom
Programm `Acrobat Reader' unterstützten Schriften `Times', `Helvetica',
`Courier', `Symbol' und `ZapfDingbats', was z.B. mit
\usepackage{times}
erreicht werden kann (siehe auch Frage 9.2.7).
Wird die pdf-Datei durch Wandlung mit Hilfe des Programms `ps2pdf'
erzeugt, so ist darauf zu achten, daß `Ghostscript' in der Version 6.0
oder neuer installiert ist.
pdfTeX: http://www.tug.org/applications/pdftex/
Ghostscript: CTAN: support/ghostscript/aladdin/current/
10.2.5 Warum werden mit der Suchfunktion des Programms `Acrobat Reader'
keine Worte gefunden, die Umlaute enthalten?
Ein Voraussetzung dafür ist die Verwendung von T1-kodierten Schriften
(siehe Abschnitt 10.1.2). Die oftmals günstige Lösung mit dem Paket `ae'
\usepackage{ae}
um auf die `Computer-Modern'-Schriften in T1-Kodierung zugreifen zu
können, versagt leider hinsichtlich der Umlaute und anderer
akzentuierter Buchstaben, da diese auch bei Verwendung dieses Paketes
intern aus mehreren Lettern zusammengesetzt werden. Um das Problem zu
umgehen, kann man die standardmäßig im `Acrobat Reader' verfügbaren oder
andere kommerziell erhältliche Schriften verwenden.
ae: CTAN: fonts/ae/
10.3 TrueType-Schriften
10.3.1 Wie kann ich TrueType-Schriften in LaTeX verwenden?
Es gibt prinzipiell drei Möglichkeiten:
* `ttf2pk':
Dieses Programm konvertiert beliebige TrueType-Schriften (auch
asiatische!) in PK-Dateien. Quellcode, Dokumentation etc. findet man
im FreeType-Paket: http://www.freetype.org/projects.html
MikTeX und fpTeX enthalten bereits Binaries; die neuesten
teTeX-Distributionen ab Version 1.0 haben Unterstützung für `ttf2pk'
in den Skripten (man muß also nur `ttf2pk' kompilieren).
* TTF => PS-Fonts:
Auch hier gibt es mehrere Ansätze.
o `ttf2pfb':
Konvertiert TrueType-Fonts (auch asiatische!) in Type-1
PostScript-Schriften. Nachteile: Unterstützung von Komposit-TTFs
derzeit nur beschränkt möglich; außerdem geht das Hinting (d.h. die
Anpassung an kleine Schriftgrößen) verloren.
http://www.freetype.org/projects.html
o `ttf2pt1':
`ttf2pt1' kann asiatische Fonts bzw. Fonts mit mehr als 256 Glyphen
behandeln, wobei die allgemeine Beschränkung, daß ein
Encoding-Vektor nur 256 Elemente haben kann, jedoch davon unabhängig
besteht; kann auch Metriken im .afm-Format erzeugen, so daß
Kerning-Informationen nicht verlorengehen.
http://www.netspace.net.au/~mheath/ttf2pt1/
o TTF => PS-Fonts im Type-42-Format:
Erzeugt eine `Wrapper-Datei' um den TrueType-Font. `Ghostscript' und
neuere PS-Interpreter haben ein eingebautes TrueType-Modul, welches
das Type-42-Format verstehen kann - allerdings ist der
TrueType-Rasterer von älteren Ghostscript-Versionen eher schlecht.
[nie verwendet; kann vermutlich asiatische Fonts bzw. Fonts mit mehr
als 256 Glyphen nicht behandeln.]
* `ttf2mf':
[nie verwendet; kann vermutlich asiatische Fonts bzw. Fonts mit mehr
als 256 Glyphen nicht behandeln.]
CTAN: support/ttf2mf/
Mehr Informationen dazu findet man in ,,Using TrueType fonts with TeX
(LaTeX) and pdfTeX (pdfLaTeX)'' von Damir Rakityansky:
http://www.radamir.com/tex/ttf-tex.htm
und ,,Using TrueType fonts with teTeX and dvips'' von Harald Harders:
CTAN: info/TrueType/index.html
Weiterführende Informationen und Links gibt es auch von
http://www.freetype.org
--- DE-TeX-FAQ Ende Teil 10 ---