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, 20:22

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 15 Jul '14, 10:50

gast3's gravatar image

gast3
(ausgesetzt)


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, 22:12

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 23 Dez '16, 16:11

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, 22:07

bernd's gravatar image

bernd
21614
Akzeptiert-Rate: 33%

bearbeitet 28 Jun '13, 22:10

cgnieder's gravatar image

cgnieder
22.1k253463

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, 22:12) cgnieder

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, 21:18

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×78
×49
×49
×38

gestellte Frage: 10 Jun '13, 20:22

Frage wurde gesehen: 25,309 Mal

zuletzt geändert: 23 Dez '16, 16:11