我想使用包显示代码列表listings
。一切都很好,除非我有 fontenc T2A。当我这样做时,列表不再使用\ttfamily
字体显示,而是使用常规字体显示。
一位 MWE 表示:
\documentclass{article}
\usepackage[T1,T2A]{fontenc} %T2A causes a problem...
\usepackage[utf8]{inputenc}
\usepackage{courier}
\usepackage{listings}
%\renewcommand*{\ttdefault}{pcr}
\lstset{
basicstyle=\ttfamily,breaklines=true,keepspaces=true,columns=flexible,
aboveskip=6pt,belowskip=6pt
}
\begin{document}
\begin{lstlisting}
GRD
/SUBJECTSPERGROUP equal = 1000
/WSFACTORS X (2)
/SCORES population = "RV.MVN({0,0}, {5**2,.99*5*5;.99*5*5,5**2})"
/CONTAMINANTS population = "RV.MVN({-5,5}, {1**2,-.01*1*1;-.01*1*1,1**2})" PROPORTION = .5.
\end{lstlisting}
\end{document}
在 fontenc 包调用中删除 T2A,一切正常。将它放进去,字体就不再是了\ttfamily
。我尝试更新命令\ttdefault
(参见注释行),但无济于事。有什么想法吗?
答案1
T2A
该字体不支持编码courier
,因此 LaTeX 将回退到 Computer Modern Roman。如果您不想使用其他打字机字体,并且代码清单不包含任何西里尔文,您可以切换到T1
清单的编码:
\lstset{basicstyle=\fontencoding{T1}\ttfamily,
...
}