Für kursiven Text gibt es \it und \itshape (außerdem \textit{}). Ähnlich \bf/\bfseries und \tt/\ttfamily. Macht es einen Unterschied, welches ich verwende? Sollte eine Version bevorzugt verwendet werden? Und wenn ja, welche und warum?

gefragt 10 Jun '13, 14:22

Clemens's gravatar image

Clemens
19.9k113360
Akzeptiert: 73%

bearbeitet 15 Jul '14, 04:50

Ijon%20Tichy's gravatar image

Ijon Tichy
5.3k718


Um Henris Antwort etwas zu ergänzen: \bf, \it, \tt und Konsorten gelten für LaTeX2e (also seit 1994!) als obsolet. Sowohl in plain TeX als auch in ConTeXt sind diese Befehle aber keineswegs obsolet! In LaTeX2e wurde das NFSS, das New Font Selection Scheme einführt, das die folgenden Makros definiert:

Schriftfamilien

  • \rmfamily und \textrm{} (Antiqua, roman)
  • \sffamily und \textsf{} (Groteske, sans serif)
  • \ttfamily und \texttt{} (Dicktengleich, teletype)

Schriftserien

  • \bfseries und \textbf{} (fett, bold face)
  • \mdseries und \textmd{} (medium)

Schriftformen

  • \upshape und \textup{} (aufrecht, upright)
  • \itshape und \textit{} (kursiv, italic)
  • \slshape und \textsl{} (geneigt, slanted)
  • \scshape und \textsc{} (Kapitälchen, small caps)

Wie schon von Henri erwähnt, funktionieren sie (solange sie sich nicht widersprechen) additiv, d.h. \textbf{\textit{text}} gibt fetten kursiven Text (so die Schrift diese Glyphen denn besitzt). Das gilt nicht für die plainTeX-Befehle!

Die \text...-befehle fügen außerdem eine eventuelle Kursivkorrektur am Ende des gesetzten Texts hinzu, die man mit den plainTeX-Befehlen von Hand mit \/ einfügen müsste.


Die Befehle \bf, \it, \sl, \sc,... werden übrigens vom LaTeX2e-Kernel überhaupt nicht definiert, sondern von der verwendeten Klasse. Das heißt, es kann sein, dass sie je nach verwendeter Klasse gar nicht zur Verfügung stehen. Wenn sie definiert sind, dann in der Regel so, dass sie auf die NFSS-Befehle zurückfallen, in article etwa mit \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}.

Verwendet man übrigens einen dieser Befehle mit memoir, dann erhält man eine Warnung. Im Falle einer KOMA-Script-Klasse erhält man gar eine Fehlermeldung:

Open in Online-Editor
./test.tex:3: Class scrartcl Error: undefined old font command `\bf'.

See the scrartcl class documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.3 \bf

You should note that since 1994 LaTeX2e provides a new font selection scheme
called NFSS2 with several new, combinable font commands. KOMA-Script
classes had defined the old font commands like `\bf' only for compatibility
with old LaTeX 2.09 document styles of Script 2.0. Nevertheless, these
commands are deprecated and undocumented at least since 2003. Since 2013
KOMA-Script classes warned about soon removement of these deprecated commands.
Now, after two decades of LaTeX2e and NFSS2, these commands will not work any
more. If loading a package results in this error message, you should contact
the author of that package and ask him to replace the deprecated font command
`\bf', e.g., by `\normalfont \bfseries `. Otherwise you should reconfigure
or replace the package. If you have used the old font command `\bf' yourself,
you should replace it, e.g., by `\normalfont \bfseries '.
To make it work for now, you can use the already also deprecated class option
`enabledeprecatedfontcommands'.
Permanenter link

beantwortet 11 Jun '13, 16:12

Clemens's gravatar image

Clemens
19.9k113360

bearbeitet 23 Dez '16, 10:11

Das LaTeX2e Sündenregister l2tabu gibt dazu in Abschnitt 2.1.1 sehr ausführliche Auskunft.

Warum sollte man die alten Befehle nicht verwenden? Die alten Befehle unterstützen nicht die Schriftverwaltung von LATEX2e. {\bf foo} zum Beispiel setzt alle schon vorhandenen Schriftattribute zurück, bevor es »foo« fett druckt. Das führt dazu, dass man nicht einfach einen fett-kursiven Stil durch {\it \bf Test} definieren kann. (Die angegebene Definition erzeugt: Test.). Die aktuellen Befehle \textbf{\textit{Test}} hingegen verhalten sich wie erwartet und erzeugen: Test. Ferner gibt es bei den alten Befehlen keine »Italic-Korrektur«.

Im genannten Abschnitt findet sich auch eine Tabelle mit einer Übersicht, welcher neue Befehl welchem alten entspricht.

Permanenter link

beantwortet 11 Jun '13, 15:18

Henri's gravatar image

Henri
11.4k42232

Als Ergänzung zu den Antworten noch eine Antwort aus dem Vortrag "LaTeX für Puristen":

Es sollte keine dieser LaTeX-Low-Level-Befehle im Dokumenttext verwendet werden.

Wieso? Im Dokumenttext sollte man den Text von seiner Bedeutung her auszeichnen. Befehle wie \itshape, \slshape, \bfseries, \ttfamily sind keine Auszeichnungsbefehle, sondern Schriftauswahlbefehle.

Es ist besser, sich eigene Auszeichnungen zu überlegen, diese im Dokumentkopf oder einem Paket zu definieren - hierzu kann man dann die Schriftauswahlbefehle verwenden - und dann die Textstellen im Dokument mit diesen Ausreichnungen zu versehen.

Permanenter link

beantwortet 28 Jun '13, 16:07

bernd's gravatar image

bernd
21614

bearbeitet 28 Jun '13, 16:10

Clemens's gravatar image

Clemens
19.9k113360

Sehe ich genauso (in http://texwelt.de/wissen/fragen/31/was-ist-der-unterschied-zwischen-emph-und-textit hab ich's erwähnt, hier vergessen...)

(28 Jun '13, 16:12) Clemens
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×69
×35
×32
×28

Frage gestellt: 10 Jun '13, 14:22

Frage wurde angeschaut: 10,184 Mal

Zuletzt aktualisiert: 23 Dez '16, 10:11