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 **N**ew **F**ont **S**election **S**cheme 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*. Allerdings ist mir in der Praxis noch kein Fall untergekommen, wo das der Fall war. 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 einer KOMA-Script-Klasse (>= v3.12 2013/12/19) oder mit `memoir`, dann erhält man eine Warnung. Im Falle von KOMA-Script ist das beispielsweise
erhält man gar eine Fehlermeldung:
./test.tex:3: Class scrartcl Warning: Usage of deprecated Error: undefined old font command `\tt'!
(scrartcl) `\bf'.
See the scrartcl class documentation for explanation.
Type H <return> for immediate help.
...
l.3 \bf
You should note, note that in since 1994 LaTeX2e provides a new font command `\tt' has
(scrartcl) been selection scheme
called NFSS2 with several new, combinable font commands. KOMA-Script
classes had defined the old font commands like `\bf' only for compatiblitiy to compatibility
with old LaTeX 2.09 document styles of Script 2.0 only.
(scrartcl) 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, you
(scrartcl) shouldn't use such these commands any longer will not work any
more. If loading a package results in this error message, you should contact
the author of that package and within
(scrartcl) KOMA-Script usage of `\tt' is definitely deprecated.
(scrartcl) See `fntguide.pdf' for more information about
(scrartcl) recommended ask him to replace the deprecated font commands.
(scrartcl) Note also, that KOMA-Script will remove command
`\bf', e.g., by `\normalfont \bfseries `. Otherwise you should reconfigure
or replace the definition
(scrartcl) of `\tt' anytime until release of about version 3.20.
(scrartcl) But 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, KOMA-Script will replace you can use the already also deprecated `\tt'
(scrartcl) by `\normalfont \ttfamily ' on input line 5.class option
`enabledeprecatedfontcommands'.