我需要为verbatim
文档的某些部分设置特定的等宽字体。该怎么做?
例如,我理解命令
\usepackage{lmodern}
\renewcommand*\familydefault{\ttdefault} %% Only if the base font of the document is to be typewriter style
\usepackage[T1]{fontenc}
将为整个文档设置字体,而不是仅为其verbatim
部分设置字体。
答案1
不要重新定义\familydefault
但\ttfamily
,即:
\renewcommand*\ttdefault{txtt} % or ...
\renewcommand\ttfamily{\sffamily}
但您只需加载等宽字体即可做到这一点:
\usepackage{nimbusmono} % for instance
或者使用xelatex
(或lualatex
):
\usepackage{fontspec}
\setmonofont{Bitstream Vera Sans}
LaTeX 字体目录解释每种等宽打字机字体的具体设置。
答案2
据我所知,这就是它\verbatim@font
的用途。例如,将此字体设置为编码newtxtt
中的系列T1
、中等系列和直立形状:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\let\normalttdefault\ttdefault
\usepackage{newtxtt}
\let\ttdefault\normalttdefault % restore normal \ttdefault
\makeatletter
\renewcommand{\verbatim@font}{\usefont{T1}{newtxtt}{m}{n}}
\makeatother
\begin{document}
\texttt{This is typeset with cmtt. Look for instance at the *, \textdollar\ and
@ characters. What follows is verbatim and uses a different font:}
\begin{verbatim}
The quick brown fox jumps over the lazy dog.
a += 2*(1 + l[44])
l = {1,...5}
#~&\^@_|3/%$÷`'"
\end{verbatim}
\end{document}
为了进行比较,默认的逐字字体(cmtt
使用 pdfTeX 时)提供:
这是通过以下方式获得的:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\begin{document}
\texttt{This is typeset with cmtt. Look for instance at the *, \textdollar\ and
@ characters. What follows is verbatim and uses the same font:}
\begin{verbatim}
The quick brown fox jumps over the lazy dog.
a += 2*(1 + l[44])
l = {1,...5}
#~&\^@_|3/%$÷`'"
\end{verbatim}
\end{document}