仅更改文档逐字部分的字体

仅更改文档逐字部分的字体

我需要为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}

newtxtt 动词

为了进行比较,默认的逐字字体(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}

相关内容