O que \rmfamily faz ou como desfaço uma declaração como \em e \bfseries?

O que \rmfamily faz ou como desfaço uma declaração como \em e \bfseries?

O pequeno exemplo abaixo mostra que isso \bfseriestem seu efeito, mas está sobreposto ao \emefeito de . Se \rmfamilysignifica apenas "não adicione nada", isso também explica por que fundamentalmente não tem efeito. Porém, estou curioso para saber se existe uma declaração \un-em/ \remove-previous-declarationsou algo assim

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

Sei que posso limitar o texto enfatizado usando o \emphcomando em vez da \emdeclaração, mas estou curioso para saber.

Responder1

Você pode usar \emresetpara cancelar o efeito de \eme normalfontou \mdseriespara cancelar o efeito de \bfseries.

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

insira a descrição da imagem aqui

Ou você pode usar {}para limitar o escopo efetivo.

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

insira a descrição da imagem aqui

Ou apenas use TextFontCommand com parâmetro.

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

insira a descrição da imagem aqui

Responder2

A ação \rmfamilynão é “não fazer nada”.

No modelo NFSS, adotado pelo LaTeX por volta de 1994, as fontes são caracterizadas por quatro atributos independentes:

  1. codificação
  2. família
  3. forma
  4. Series

ao qual podemos adicionar o tamanho. Esses atributos são independentes um do outro. A codificação é um pouco peculiar e não vou tratar disso.

Existem alguns comandos predefinidos que alteram um atributo por vez:

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

Pacotes de fontes que suportam fontes mais ricas podem definir outros comandos para formas e séries.

Há também outra declaração “abstrata”, a saber \em, que costumava ser definida como “se a fonte atual não estiver inclinada, faça \itshape, caso contrário, faça \upshape. O significado foi recentemente alterado para suportar uma série de comandos, no sentido de poder especificar de forma diferente que “ênfase dentro de ênfase” é realizada. Não vamos complicar as coisas, pois o seu exemplo é fácil.

Supondo que você comece com \normalfont, você obtém

Olá, <rmfamily/itshape/mdseries>meu nome <rmfamily/itshape/bfseries>é Enrico. <rmfamily/itshape/bfseries>E agora?

O último \rmfamilycomando não faz nada, porque a família já estava \rmfamily: você nunca mudou a família, não é?

Não existe nenhum comando que “desfaça a última alteração”, porque isso não faz sentido no modelo NFSS: os comandos listados acima nunca devem ser usados ​​no documento, a menos que sejamdentro de um grupo. Pela regra geral do TeX, um grupo limita o escopo de uma seleção de fontes, então quando você faz algo como

{\em text}

a escolha da fonte realizada por \emdesaparece e a fonte volta a ser a que estava em vigor quando o grupo foi iniciado.

Geralmente, eu prefiro \itshape textitálico em uma célula de alinhamento, porque \textit{text}faria o LaTeX girar mais algumas rodas sem ganho.

Sim! Os comandos listados acima têm uma contraparte de comando com argumento:

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

O último é “abstrato” e a fonte escolhida depende do contexto, assim como \em. Tais comandosdevem ser preferidospara alterar a fonte no texto corrido: use \emph{my name is Enrico}em vez de {\em my ...}, porque \emphtambém cuida da correção de itálico que pode ser necessária antes ou depois da alteração da fonte.

O que você faz se quiser que a ênfase dentro da ênfase seja percebida como negrito? Você declara no preâmbulo do documento algo como

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

Exemplo.

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

insira a descrição da imagem aqui

No segundo exemplo (artificial), você vê que os atributos são revertidos um por um à medida que os vários grupos aninhados terminam.

informação relacionada