Caracteres escapados na fonte da máquina de escrever

Caracteres escapados na fonte da máquina de escrever

Conheço várias maneiras de corrigir isso (por exemplo \usepackage[T1]{fontenc}), mas quero entender o que está acontecendo no exemplo a seguir.

\documentclass{article}
\begin{document}
\noindent
\$ \% \& \{ \} \_ \# \textbackslash \\
\ttfamily \$ \% \& \{ \} \_ \# \textbackslash \\
\verb+$ % & { } _ # \ +
\end{document}

caracteres escapados

  • Por que a tentativa de obter uma \ttfamilychave, um sublinhado ou uma barra invertida resulta na substituição do símbolo romano comum? Os glifos claramente não estão faltando, porque o modo literal pode acessá-los.

  • Como exatamente o modo literal está acessando esses glifos?

  • Excluir as chaves e a barra invertida, de modo que o sublinhado seja o único caractere de 'problema' restante, elimina os avisos de fonte, apesar do fato de que uma substituição ainda está ocorrendo. Por que é isso?

Responder1

\verbe verbatimsuponha que a fonte tenha esses caracteres em suas posições ASCII e localmente faça com que os caracteres sejam catcode 12 (como pontuação) sem nenhuma definição especial.

\textbackslash(e amigos) é definido como um comando específico de codificação e (para fingir um ar de sanidade sobre as codificações originais do TeX) o LaTeX assume que OT1a codificação é a codificação cmr10que não possui uma barra invertida. Portanto, na OTdefinição padrão é usada (que usa as fontes matemáticas). \ttfamilymuda a família, mas não a codificação e, nesse caso, você obtém a definição OT1, mesmo que a cmttfonte seja codificada de maneira diferente.

As coisas funcionam melhor T1porque as fontes rotuladas como codificadas em T1 têm, na verdade, a mesma codificação.

\_é diferente porque \textunderscoretem uma definição padrão que não usa fonte, mas uma regra horizontal.

informação relacionada