Was macht \rmfamily, bzw. wie mache ich eine Deklaration wie \em und \bfseries rückgängig?

Was macht \rmfamily, bzw. wie mache ich eine Deklaration wie \em und \bfseries rückgängig?

Das kurze Beispiel unten zeigt, dass dies \bfseriesseine Wirkung hat, aber dass dies \emdie Wirkung von überlagert. Wenn \rmfamilyes einfach „nichts hinzufügen“ bedeutet, erklärt das auch, warum es grundsätzlich keine Wirkung hat. Ich bin jedoch neugierig, ob es ein \un-em/ gibt.\remove-previous-declarations -Deklaration oder so etwas

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Hello, \em my name \bfseries is Enrico. \rmfamily And now what?
\end{document}

Ich weiß, dass ich den hervorgehobenen Text einschränken kann, indem ich den \emphBefehl anstelle von verwende.\em Deklaration verwende, aber ich bin neugierig.

Antwort1

Sie können verwenden, \emresetum die Wirkung von aufzuheben \em, und normalfontoder , \mdseriesum die Wirkung von aufzuheben \bfseries.

\documentclass{article}
\begin{document}
Hello, \em my name \emreset\bfseries is Enrico. \normalfont And now what?
\end{document}

Bildbeschreibung hier eingeben

Oder Sie können {}den Wirkungsbereich einschränken.

\documentclass{article}
\begin{document}
Hello, {\em my name} {\bfseries is Enrico.} And now what?
\end{document}

Bildbeschreibung hier eingeben

Oder verwenden Sie einfach TextFontCommand mit Parameter.

\documentclass{article}
\begin{document}
Hello, \emph{my name} \textbf{is Enrico.} And now what?
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Die Aktion \rmfamilybesteht nicht darin, „nichts zu tun“.

Im NFSS-Modell, das um 1994 von LaTeX übernommen wurde, werden Schriftarten durch vier unabhängige Attribute charakterisiert:

  1. Codierung
  2. Familie
  3. Form
  4. Serie

zu dem wir die Größe hinzufügen könnten. Diese Attribute sind voneinander unabhängig. Die Kodierung ist etwas eigenartig und ich werde nicht näher darauf eingehen.

Es gibt einige vordefinierte Befehle, die jeweils ein Attribut ändern:

  • \rmfamily, \sffamily,\ttfamily
  • \upshape, \itshape, \scshape,\slshape
  • \mdseries,\bfseries

Schriftpakete, die umfangreichere Schriftarten unterstützen, definieren möglicherweise andere Befehle für Formen und Serien.

Es gibt auch eine andere „abstrakte“ Deklaration, nämlich \em, die früher wie folgt definiert wurde: „Wenn die aktuelle Schriftart nicht schräg ist, führen Sie aus \itshape, andernfalls führen Sie aus.“\upshape .“ Die Bedeutung wurde kürzlich geändert, um eine Reihe von Befehlen zu unterstützen, mit der Folge, dass man anders angeben kann, welche „Hervorhebung innerhalb der Hervorhebung“ realisiert wird. Machen wir es nicht komplizierter, denn Ihr Beispiel ist einfach.

Angenommen, Sie beginnen mit \normalfont, erhalten Sie

Hallo, <rmfamily/itshape/mdseries>mein Name <rmfamily/itshape/bfseries>ist Enrico. <rmfamily/itshape/bfseries>Und was jetzt?

Der letzte \rmfamilyBefehl bewirkt nichts, da die Familie bereits\rmfamily : Sie haben die Familie nie geändert, oder?

Es gibt keinen Befehl, der „die letzte Änderung rückgängig macht“, da dies im NFSS-Modell keinen Sinn ergibt: Die oben aufgeführten Befehle sollten niemals im Dokument verwendet werden, es sei denn, sie sindinnerhalb einer Gruppe. Als allgemeine Regel von TeX begrenzt eine Gruppe den Umfang einer Schriftauswahl. Wenn Sie also etwas tun wie

{\em text}

Die von vorgenommene Schriftartauswahl \emwird gelöscht und die Schriftart wird auf die beim Starten der Gruppe gültige Schriftart zurückgesetzt.

Im Allgemeinen bevorzuge ich \itshape textKursivschrift in einer Ausrichtungszelle, da \textit{text}LaTeX sonst ohne Nutzen noch mehr Zeit in Anspruch nehmen würde.

Ja! Die oben aufgeführten Befehle haben ein Gegenstück mit Befehl und Argument:

  • \textrm, \textsf,\texttt
  • \textup, \textit, \textsc,\textsl
  • \textmd,\textbf
  • \emph

Die letzte ist „abstrakt“ und die gewählte Schriftart hängt vom Kontext ab, genau wie\em . Solche Befehlesind zu bevorzugenzum Ändern der Schriftart im Fließtext: Verwenden Sie \emph{my name is Enrico}anstelle von {\em my ...}, weil \emphauch die Kursivkorrektur berücksichtigt wird, die möglicherweise vor oder nach der Schriftartänderung erforderlich ist.

Was tun Sie, wenn Sie möchten, dass Hervorhebungen innerhalb von Hervorhebungen als Aufwärtsform fett dargestellt werden? Sie deklarieren in der Dokumentpräambel etwas wie

\DeclareEmphSequence{\itshape,\upshape\bfseries,\itshape\bfseries}

Beispiel.

\documentclass{article}

\DeclareEmphSequence{\itshape,\upshape\bfseries,\itshape\bfseries}

\begin{document}

Hello, \emph{my name \emph{is Enrico.}} And now what?

\emph{Hello, \emph{my name \emph{is Enrico.} And} now} what?

\end{document}

Bildbeschreibung hier eingeben

Im zweiten (erfundenen) Beispiel sehen Sie, dass die Attribute beim Ende der verschiedenen verschachtelten Gruppen nacheinander zurückgesetzt werden.

verwandte Informationen