![在 \texttt 内逐字使用](https://linux22.com/image/262482/%E5%9C%A8%20%5Ctexttt%20%E5%86%85%E9%80%90%E5%AD%97%E4%BD%BF%E7%94%A8.png)
为什么我不能使用\begin{verbatim}
inside \texttt
?
\texttt{ \small \begin{verbatim}
iab <key> <expansion>
<key> is the string which should be expanded to <expansion>
\end{verbatim}}
这将引发一个错误。
我可以毫无问题地做到这一点,
{\tt \small \begin{verbatim}
iab <key> <expansion>
<key> is the string which should be expanded to <expansion>
\end{verbatim}}
但我读过,\tt
现在已经消失了。
答案1
环境verbatim
和宏\verb
会改变 catcode。当 TeX 从输入字符生成标记时,会使用 catcode。如果标记化已经完成,则 catcode 更改不会产生效果。如果逐字内容放在另一个宏的参数中(此处:),就会发生这种情况\texttt
。可以使用带有 的组\ttfamily
而不是 来避免这种情况\texttt
:
{% start group
\par % see below
\ttfamily\small % font changes
text bla bla ...
\begin{verbatim}
verbatim text ...
\end{verbatim}
text bla bla ...
\par % see below
}% end group
\small
还会改变行距。TeX 在从段落生成行时使用段落末尾的行距值。因此,我\par
在组的开始和结尾处明确添加了。