
Я хотел бы отобразить листинг кода с помощью пакета listings
. Все работает хорошо, за исключением того, если у меня есть fontenc T2A. Когда я это делаю, листинг перестает отображаться с использованием \ttfamily
шрифта и отображается с использованием обычного шрифта.
МВЭ:
\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}
Удалите T2A в вызове пакета fontenc, и все заработает нормально. Поставьте его, и шрифта больше нет \ttfamily
. Я пробовал обновить команду \ttdefault
(см. закомментированную строку), но безрезультатно. Есть идеи?
решение1
Шрифт не поддерживает кодировку T2A
, courier
поэтому LaTeX вернется к Computer Modern Roman. Если вы не хотите использовать другой шрифт пишущей машинки и при условии, что листинги кода не содержат кириллицы, вы можете переключиться на T1
кодировку для листингов:
\lstset{basicstyle=\fontencoding{T1}\ttfamily,
...
}