Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kodak.com!news-nysernet-16.sprintlink.net!news-east1.sprintlink.net!-program!news-peer1.sprintlink.net!news-backup-west.sprintlink.net!news.sprintlink.net!newsfeed00.btx.dtag.de!newsfeed01.btx.dtag.de!news.fh-hannover.de!news.uni-stuttgart.de!news.urz.uni-heidelberg.de!german
From: dantefaq@dante.de (DE-TeX-FAQ-Maintainer)
Newsgroups: de.comp.text.tex,de.answers,news.answers
Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 5 of 11)
Supersedes: <de-tex-faq-5-916136761@dante.de>
Followup-To: de.comp.text.tex
Date: 9 Feb 1999 10:15:56 GMT
Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
Lines: 630
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: 26 Mar 99 11:15:47
Message-ID: <de-tex-faq-5-918555347@dante.de>
References: <de-tex-faq-1-918555347@dante.de>
Reply-To: dantefaq@dante.de (DE-TeX-FAQ-Maintainer)
NNTP-Posting-Host: sun.dante.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Summary: This posting contains a list of Frequently Asked Questions
         (and their answers) about the typesetting system TeX and
         about DANTE e.V., the german-speaking TeX users group.
         It is in German and uses the ISO Latin-1 character set.
Keywords: FAQ TYPESETTING TeX USERGROUP DANTE
Originator: german@sun.dante.de
Xref: senator-bedfellow.mit.edu de.comp.text.tex:13497 de.answers:2970 news.answers:150924

Posted-By: auto-faq 3.3 (Perl 5.003)
Archive-name: de-tex-faq/part5
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/faq/de-tex-faq/

		Fragen und Antworten (FAQ) über

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

		 (Version 48 vom Februar 1999)

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


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

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

Grundsätzlich 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'' enthält genauere
Informationen und wichtige Hinweise -- bitte durchlesen!

Notwendig:
 + alle Dateien im Verzeichnis ``base''.
 + 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''.

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/
                    CTAN: fonts/latex/tfm/
cmmib/cmbsy:  CTAN: fonts/amsfonts/sources/extracm/
              CTAN: fonts/amsfonts/tfm/ oder
              CTAN: fonts/cm/sauter/


5.1.2) Ich habe gehört, daß es für meine LaTeX2e-Versionen Patches
       gibt.  Welche Dateien benötige ich, was muß ich tun?

Für jeden LaTeX2e-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 LaTeX2e-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 <1997/12/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 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 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.  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.  Was Sie genau tun
müssen (Formatieren, Indexerstellung etc.), um eine Dokumentation zu
erhalten, entnehmen Sie bitte auch der mitgelieferten Beschreibung des
Archivs.

Hinweis: Mit LaTeX2e 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 und
           CTAN:  macros/latex/base/docstrip.ins
           (Bestandteil von LaTeX2e, kann aber auch mit Plain-TeX
           verwendet werden!)


+5.1.4) Wie gehe ich am besten vor, wenn ich eine bestehende
       LaTeX-Klasse an meine eigenen Vorgaben ändern bzw. 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 LaTeX2e 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}[1999/01/19 Article Class fromDE-TeX-FAQ]
%% Lade nun ``article.cls'', wobei als Default-Optionen ``11pt'' und
%% A4-Papierformat gesetzt werden und alle weiteren vom Autor
%% gegebenen Optionen einfach `durchgereicht' werden:
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ExecuteOptions{a4paper,11pt}
\ProcessOptions
\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
\listfiles auftauchen.

clsguide.tex:  CTAN: macros/latex/base/


+5.1.5) Wie kann ich unter LaTeX eine Anweisung mit optionalem
       Parameter definieren?

In LaTeX2e 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.  Im
folgenden Beispiel habe ich den voreingestellten Wert leer gelassen:

\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
  }}



5.2) LaTeX2e -- 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/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' 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/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 müssen 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 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 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,
angepaßt werden müssen.  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) 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
``gnhyph01.tex'' verfügbar.  Um diese Trennmuster nutzen zu können,
benötigt man ``german.sty'' ab Version 2.5e.

gnhyph01:    CTAN: language/hyphenation/gnhyph01.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 Abschnitt 10.1) und die T1-kodierten
PostScript-Schriften.  Unter neueren Versionen von LaTeX2e 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 Abschnitt 5.3.1).  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 ``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.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 nur für den aktuellen Absatz.)


5.3.5) 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 enthält
``germdoc'', 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 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

Hinweis: Einige Distributionen (z.B. teTeX) 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!

germdoc:  CTAN: language/german/germdoc.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 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 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.



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 für 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/
           CTAN:  macros/latex/contrib/other/script/

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/ (für LaTeX2e)
           CTAN: macros/latex209/contrib/letters/dinbrief/ (für 2.09)
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, die Parameter wie \textheight alle 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 n-Teilung der Seite berechnen lassen

  \documentclass[a4paper,11pt]{...}   % Ausgangspapiergröße
  % BCOR1cm: zusätzlich 1cm Rand fuer die Bindung.
  % DIV10: für 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. Das
Paket funktioniert mit LaTeX2e, im alten Script-2.0-Paket gibt es
eine Version, die mit LaTeX 2.09 funktioniert.
  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]{...} % Ausgangspapiergröße
  \usepackage{typearea}
  \areaset[1cm]%               % Zusätzlicher Rand für die Bindung
          {18cm}{25cm}         % Textbreite und Höhe

Neben `typearea' gibt es mit `vmargin', `anysize' und `geometry' drei
weitere Pakete, mit denen man die LaTeX-Parameter leichter setzen
kann.  Bei `vmargin' und `anysize' haben die Makroaufrufe eine
festgelegte Parameterreihenfolge, `geometry' dagegen benutzt das Paket
`keyval', mit dem die Parameter in beliebiger Reihenfolge angegeben
werden können:

  \usepackage{vmargin}
  \setpapersize{A4}
  \setmargins{1.5cm}{1.5cm}% % linker & oberer Rand
             {18cm}{25cm}%   % Textbreite und -höhe
             {12pt}{25pt}%   % Kopfzeilenhöhe und -abstand
             {0pt}{30pt}%    % \footheight (egal) und Fußzeilenabstand

  \usepackage{geometry}
  \geometry{left=1.5cm,textwidth=18cm,top=1.5cm,textheight=25cm}

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


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 Fußzeile einer Seite
mit der Angabe `1 von 16' ohne große Mühen umdefinieren.

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


5.4.5) Wie kann ich den Kolumnentitel, die Kopfzeile der Seite, nach
       meinen Wünschen, 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.  Das Paket `fancyhdr' ist die neueste Version des
Paketes `fancyheadings' für LaTeX2e, das auf CTAN nurmehr für LaTeX
2.09 verfügbar ist.

koma:      CTAN: macros/latex/contrib/supported/koma-script/
fancyhdr:  CTAN: macros/latex/contrib/supported/fancyhdr/    (LaTeX2e)
fancyheadings:  CTAN: macros/latex209/contrib/fancyheadings/ (LaTeX 2.09)


5.4.6) Innerhalb des optionalen Arguments von \twocolumn[...] führen
       eckige Klammern [...], beispielsweise eines optionalen
       Arguments einer anderen Anweisung, zu Fehlern.  Wie kann ich
       das verhindern?

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 erreichen, muß man einfach innerhalb der eckigen Klammern
[...] ein geschweiftes Klammerpaar einfügen:

    \twocolumn[{  ... \sqrt[3]{x^2} ...  }]


5.4.7) 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
H. 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/

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