Posted-By: auto-faq 3.2.1.3
Archive-name: de-tex-faq/part5
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/dante/dante-faq.html


		Fragen und Antworten (FAQ) ber

		   das Textsatzsystem TeX und
		       ~~~~~~~~~~~~~~~~~~
	DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    === Teil 5: TeX, LaTeX, Makros, etc. (I) ===


5.1) LaTeX2e -- Grundlegendes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.1.1) Was bentige ich, wenn ich von LaTeX 2.09 auf LaTeX2e umsteigen
       bzw. eine neuere LaTeX2e-Version installieren will?

Grundstzlich sollte man sich beim Umstieg von 2.09 oder beim Update
einer lteren 2e-Version immer die komplette LaTeX2e-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 ``base/install.txt'' enthlt genauere
Informationen und wichtige Hinweise -- bitte durchlesen!

Notwendig:
 - alle Dateien im Verzeichnis ``base''.
 - die zustzlichen CM-Schriften `cmmib' und `cmbsy' in den
   Designgren 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, bentigt man noch zustzlich
   die Dateien im Verzeichnis ``unpacked''.
 - Ebenso befindet sich im Verzeichnis ``doc'' die schon formatierte
   Dokumentation, also die Dateien ``base/???guide.tex''.

Empfohlen:
 - Standard-Zusatzpakete, in ``packages/tools''
 - Graphics-Paket zur Einbindung von externen Grafiken, in
   ``packages/graphics''
 - weitere Pakete im Verzeichnis ``packages''

base:      CTAN:  macros/latex/base/
           CTAN:  macros/latex/unpacked/  (optional)
           CTAN:  macros/latex/doc/       (optional)
packages:  CTAN:  macros/latex/packages/
line/lcircle/lasy:  CTAN: fonts/latex/{mf,tfm}/
cmmib/cmbsy:  CTAN: fonts/ams/amsfonts/{sources/extracm,tfm}/
              CTAN: fonts/cm/sauter23/


5.1.2) Ich habe gehrt, da es fr meine LaTeX2e-Versionen Patches
       gibt.  Welche Dateien bentige ich, was mu ich tun?

Fr jeden LaTeX2e-Patch bentigt man immer zumindest die Datei
`patches.txt'.  Sie beschreibt genau, welche weitere Dateien man noch
zu einem _kompletten_ Patch bentigt.  In vielen Fllen gibt es neben
der Datei `ltpatch.ltx', die LaTeX2e-Kernel-Patches enthlt, noch neue
Versionen weiterer Dateien!  Nheres 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 <1996/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?
       Bentige ich dazu auf alle Flle LaTeX2e?

Dateien mit `.dtx' sind sogenannte `docstrip archive files', also ein
Archiv, aus dem man mit dem Tool `docstrip' verschiedene Dateien
entpacken kann.  Zum Entpacken bentigen Sie nur die Datei
`docstrip.tex' oder `docstrip.dtx' und ein TeX-Binary.  `docstrip.tex'
knnen Sie mit LaTeX 2.09, LaTeX2e und auch mit plain-TeX verwenden.
  Wie Sie eine `.dtx'-Datei entpacken mssen, sollten Sie aus einer
Beschreibung zu Beginn der `.dtx'-Datei oder einer separaten
README-Datei entnehmen knnen.  Existiert eine gleichnamige Datei mit
Endung `.ins', so knnen Sie in den meisten Fllen das `.dtx'-Archiv
``file.dtx'' mit ``tex file.ins'' entpacken.  Nheres 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
bentigen Sie jedoch ein installiertes LaTeX2e -- fr einige ltere
Archive reicht auch noch das alte LaTeX 2.09.  Was Sie genau tun
mssen (Formatieren, Indexerstellung, etc.), um eine Dokumentation zu
erhalten, entnehmen Sie bitte auch der mitgelieferten Beschreibung des
Archivs.

Hinweis: Mit LaTeX2e vom 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,ins}
           (Bestandteil von LaTeX2e, kann aber auch mit plain-TeX
           verwendet werden!)



5.2) LaTeX2e -- Probleme beim Umstieg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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 fr Schriften wurden nie dokumentiert und sollten im alten
LaTeX 2.09 nur LaTeX-intern verwendet werden.  Da das
Fontauswahlschema (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}

fr PiCTeX.

rawfonts.sty:  CTAN: macros/latex/packages/tools/


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' erhlt man das Verhalten von NFSS v1, ohne
da man in den meisten Fllen das Dokument ndern mu:

	\usepackage{newlfont}

Fr neue Dokumente sollte man jedoch besser gleich die neuen
Anweisungen \textrm{...}, \textbf{...}, \textit{...}, etc. verwenden.
Diese Anweisungen haben darberhinaus den Vorteil, da eine eventuell
notwendige `italic correction' automatisch eingefgt wird.

newlfont.sty:  CTAN: macros/latex/packages/tools/


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 per Default mitgeladen, sondern mssen vom
Benutzer explizit mit

	\usepackage{latexsym}

dazugeladen werden.


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 Lngenregister fr
andere Zwecke einsetzen zu knnen.  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.' fr
       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 LaTeX2e-Team sich
entschlossen, \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,
angepat werden mssen.  Bei den Standard-Dokumentklassen hat das
niemand bemerkt, da die notwendigen Anpassungen dieser Dateien
automatisch mit einer neuen LaTeX2e-Version mitinstalliert werden.



5.3) (Silben-)Trennung, Absatz-, Seitenumbruch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.3.1) Warum trennt (La)TeX Worte mit Umlauten nicht/nicht korrekt?

Wie TeX Worte mit Umlauten trennt, hngt davon ab, ob die verwendete
Schrift Umlaute als eigene Lettern enthlt 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 fr Umlaute
enthalten.  Diese Akzent-Konstruktion irritiert TeXs Trennalgorithmus,
und so trennt TeX nur den Wortteil bis zum ersten Umlaut.  In
`german.sty' 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 wie die DC-Fonts, da in diesen die
Umlaute als einzelne Lettern enthalten sind.  Unter neueren Versionen
von LaTeX2e und `german.sty' bzw. Babel lassen sich die DC-Fonts recht
einfach durch die Deklaration

      \usepackage[T1]{fontenc}

(in der Prambel des Dokuments) verwenden.


5.3.2) Wie kann ich Trennungsausnahmen mit Umlauten in \hyphenation
       verwenden?

Auch hier gilt, da man in \hyphenation in den Trennungsausnahmen nur
Zeichen verwenden kann, fr die auch Lettern in der momentan benutzten
Schrift existieren (siehe Abschnitt 5.3.1).  Da mit CM-Schriften die
Umlaute aus zwei Lettern zusammengesetzt werden mssen, kann man fr
Wrter mit Umlauten keine Trennungsausnahmen angeben.  Erst bei
Verwendung von T1-kodierten Schriften, wie den DC-Fonts, oder auch von
Schriften in einer entsprechenden anderen Kodierung, die eigene
Lettern fr Umlaute enthalten, kann man Trennungsausnahmen angeben.

Hier ist ein einfaches Beispiel (`german.sty' ist hier nur zum
Umschalten auf die deutschen Trennmuster `ghyph31.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.3) 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.  Auerdem gibt es
noch den Parameter \displaywidowpenalty fr Hurenkinder nach einer
abgesetzten mathematischen Formel.  Da TeX den Wert 10000 als
unendlich groe Strafe interpretiert, kann man mit den Zeilen

\clubpenalty = 10000
\widowpenalty = 10000 \displaywidowpenalty = 10000

Hurenkinder und Schusterjungen komplett unterdrcken.  (Das Paket
`schuster' enthlt genau diese Zeilen.)
  Man sollte jedoch bedenken, da man bei einem Satzspiegel mit fester
Hhe (\flushbottom) und registerhaltigem Satz Hurenkinder und
Schusterjungen nur schwerlich verhindern kann -- insbesondere wenn man
dies bei zweiseitigem Druck fr jede Doppelseite beachten mu.  Hier
ist es oft besser, die einzelne Zeile zuzulassen oder zu versuchen,
einen Absatz durch geringfgige Umformulierung eine Zeile lnger oder
krzer zu machen.


5.3.4) Wie mu in LaTeX2e die Datei `hyphen.cfg' aussehen, um die
       deutschen Trennmuster `ghyph31.tex' in das LaTeX-Format
       einzubinden?

Eine Anleitung zur Installation der deutschen Trennmuster enthlt
`germdoc', die Kurzbeschreibung des German-Styles vom Januar 1995.
Diese Anleitung beschreibt auch die Installation der Trennmuster in
plain-TeX und LaTeX 2.09.  Beispiel von `hyphen.cfg' fr LaTeX2e:

%% 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 ghyph31
 
%% 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


germdoc:  CTAN: language/german/germdoc.tex


5.3.5) Wieso werden Texte in `typewriter'-Schriften nicht getrennt?
       Gibt es eine Mglichkeit, 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 fr diese
Schriften unterdrckt, was in den meisten Fllen auch sinnvoll ist.
  Will man dennoch, da TeX einen in `typewriter' gesetzten Textteil
automatisch trennt, so mu man den \hyphenchar fr diese Schriften auf
`\- setzen.  Dies geht in LaTeX2e 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 knnte 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 genderten `*.fd'-Dateien
mitzugeben.
  Fr LaTeX 2.09 (oder analog auch fr plain-TeX) mu das \tt-Makro
umdefiniert werden:

  \newcommand{\origtt}{}
  \let\origtt=\tt
  \renewcommand{\tt}{\tt \hyphenchar\font=`\-}

  Wichtiger Hinweis: TeX kann eine Schrift unter unterschiedlichen
Namen laden, wobei TeX alle diese Schriften nur ein einziges Mal ldt
und fr 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 ausgefhrt.
Auerdem sieht sich TeX diesen Parameter erst am Absatzende beim
Umbruch dieses Absatzes an, so da mit obiger nderung nicht mglich
ist, die Trennung fr einen in `typewriter' gesetzten Textteil zu
ermglichen, fr einen anderen im selben Absatz zu verbieten.



5.4) Seitenlayout, Layout allgemein, Kopf-/Fuzeilen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.4.1) Gibt es neben den Standard-LaTeX-Classes Classes mit einem
       `europischeren' Design?

Die NTG hat verschiedene Classes entwickelt, die im Vergleich zum
Layout der Standard-LaTeX-Classes kleinere berschriften und eine
einheitlichere Einrckung der Abstze und Listen definieren.
  Das KOMA-Script-Paket fr LaTeX2e ist eine Weiterentwicklung des
Script-Paketes.  Letzteres wird nicht mehr gepflegt und kann nur unter
LaTeX 2.09 verwendet werden (es existiert eine LaTeX2e-`Anpassung').

ntgclass:  CTAN:  macros/latex/contrib/supported/ntgclass/
koma:      CTAN:  macros/latex/contrib/supported/koma-script/
script:    CTAN:  macros/latex209/contrib/script/
                  macros/latex/contrib/other/script/

5.4.2) Ich suche eine Class fr Briefe, die weitgehend die
       unterschiedlichen DIN-Normen und deutschen Gepflogenheiten
       bercksichtigt.

Unter LaTeX 2.09 ist `dinbrief' weit verbreitet, der von anderen
Autoren auch fr LaTeX2e verfgbar gemacht wurde.  Darberhinaus
findet man im KOMA-Script-Paket die Class `scrlettr' und es gibt mit
`g-brief' und `myletter' noch weitere Beispiele fr angepate Classes.

dinbrief:  CTAN: macros/latex/contrib/supported/dinbrief/ (fr LaTeX2e)
                 macros/latex209/contrib/letters/dinbrief/ (fr 2.09)
koma:      CTAN: macros/latex/contrib/supported/koma-script/
g-brief:   CTAN: macros/latex/contrib/supported/g-brief/
myletter:  CTAN: macros/latex/contrib/supported/myletter/
	   (Anm.: `myletter' ist ein schlecht gewhlter Name.  Falls
	   jemand eigene Makros verffentlichen will, bitte Namen wie
	   `myXYZ' oder `newXYZ' vermeiden!)


5.4.3) Gibt es eine bequemere Mglichkeit, ein Seitenlayout anzugeben,
       als dadurch, die Parameter wie \textheight alle einzeln zu
       verndern?
 
Das Paket `vmargin' erlaubt die Spezifikation des Papierformats sowie
der gewnschten Rnder in der Form
 
  \usepackage{vmargin}
  \setpapersize{A4}
  \setmargins{1.5cm}{1.5cm}% % linker & oberer Rand
             {18cm}{25cm}%   % Textbreite und -hhe
             {12pt}{25pt}%   % Kopfzeilenhhe und -abstand
             {0pt}{30pt}%    % \footheight (egal) und Fuzeilenabstand
 
Diverse Papiergren sowie Hoch- und Querformat werden untersttzt,
und auch die `twoside'-Option wird richtig behandelt.  Das Paket
funktioniert mit LaTeX(2e) und LaTeX 2.09.
  Mit dem Paket `typearea' aus dem KOMA-Script-Paket kann man den
Textbereich fr eine vorgegebene Papiergre frei bestimmen

  \usepackage[a4paper]{typearea} % Ausgangspapiergre
  \areaset[1cm]%                 % Zustzlicher Rand fuer die Bindung
          {18cm}{25cm}           % Textbreite und Hhe

oder den Anteil des Textbereichs an der Gesamtseite festlegen

  % 1cm zustzlicher Rand fuer die Bindung,
  % 9/12 der Restseite fr Text:
  \usepackage[a4paper,BCOR1cm,DIV12]{typearea}

Die Verteilung der Rnder erfolgt dabei automatisch nach
typographischen Gesichtspunkten.  Diverse Papiergren sowie Hoch- und
Querformat werden untersttzt, zustzliche Formate knnen definiert
werden, und auch die Option `twoside' wird korrekt behandelt. Das
Paket funktioniert mit LaTeX(2e), im alten Script-2.0-Paket gibt es
eine Version, die mit LaTeX 2.09 funktioniert.

vmargin:  CTAN: macros/latex/contrib/other/misc/vmargin.sty
koma:     CTAN: macros/latex/contrib/supported/koma-script/
script:   CTAN:  macros/latex209/contrib/script/


5.4.4) Gibt es einen einfachen Weg, die Seitennummer als `Seite 1 von
       16' anzugeben?

Dies geht mit dem Paket `lastpage' am einfachsten, man bekommt dann
mit ``\pageref{LastPage}'' die Nummer der letzten Seite.  Eine noch
mit LaTeX 2.09 laufenden Version ist im Paket `fancyheadings'
enthalten.  Mit diesem Paket oder mit `scrpage' aus dem KOMA-Script-
Paket kann man dann die Kopf- oder Fuzeile einer Seite mit der Angabe
`1 von 16' ohne groe Mhen umdefinieren.

lastpage:  CTAN: macros/latex/contrib/other/lastpage/    (LaTeX2e)
fancyheadings:  CTAN: macros/latex209/contrib/fancyheadings/
koma:      CTAN: macros/latex/contrib/supported/koma-script/


--- DE-TeX-FAQ Ende Teil 5 ---
