
나는 이 문제를 해결하는 여러 가지 방법(예: \usepackage[T1]{fontenc}
)을 알고 있지만 다음 예에서 무슨 일이 일어나고 있는지 이해하고 싶습니다.
\documentclass{article}
\begin{document}
\noindent
\$ \% \& \{ \} \_ \# \textbackslash \\
\ttfamily \$ \% \& \{ \} \_ \# \textbackslash \\
\verb+$ % & { } _ # \ +
\end{document}
중괄호, 밑줄 또는 백슬래시를 얻으려고 하면 왜
\ttfamily
일반 로마 기호가 대체됩니까? 축어 모드에서 액세스할 수 있으므로 문자 모양이 누락된 것은 아닙니다.축어 모드는 이러한 문자 모양에 정확히 어떻게 액세스합니까?
밑줄이 유일하게 남아 있는 '문제' 문자가 되도록 중괄호와 백슬래시를 삭제하면 대체가 여전히 발생하고 있음에도 불구하고 글꼴 경고가 제거됩니다. 왜 이런거야?
답변1
\verb
verbatim
글꼴의 ASCII 위치에 이러한 문자가 있고 로컬에서 문자를 특별한 정의 없이 catcode 12(구두점과 같은)로 만든다고 가정합니다 .
\textbackslash
(그리고 친구들)은 인코딩 관련 명령으로 정의되며 (원래 TeX 인코딩에 대해 온전한 척하기 위해) LaTeX는 인코딩이 백슬래시 문자가 없는 OT1
인코딩이라고 가정합니다. cmr10
따라서 OT
기본 정의에서는 (수학 글꼴을 사용하는)이 사용됩니다. \ttfamily
패밀리는 변경되지만 인코딩은 변경되지 않으므로 이 경우 글꼴이 cmtt
실제로 다르게 인코딩되더라도 OT1 정의를 얻게 됩니다.
T1
T1 인코딩으로 표시된 글꼴은 실제로 동일한 인코딩을 갖기 때문에 상황이 더 잘 작동합니다 .
\_
\textunderscore
글꼴을 전혀 사용하지 않고 수평선을 사용하는 기본 정의가 있기 때문에 다릅니다 .