为列表指定精确的字体

为列表指定精确的字体

我正在用 Latex (pdflatex) 编写文档,必须使用预定义的自定义样式。现在,我想要/需要使用 打印代码列表\lstlisting,我需要使用等宽无衬线字体。

我现在的问题是,我创建的列表是等宽的,但不是无衬线的。无论我怎么尝试,我的列表最终都是衬线的。我需要改变这一点。

该风格非常广泛(超过 1500 行)并且不能更改,因此我认为将其全部粘贴是没有帮助的。

无论如何,我仔细检查了一下,并认为我发现了有趣的部分:

\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern,textcomp}
\RequirePackage{microtype}
\RequirePackage[ngerman]{babel}
\RequirePackage{ae,pifont}              
\Requirepackage{courier}

% ...

\usepackage{listings}
\lstloadlanguages{
    [Visual]Basic,
    Pascal,
    C,
    [ISO]C++,
    XML,
    HTML,
    Java,
    bash
}
\lstset{
    breakatwhitespace=false,
    upquote=true,
    keepspaces=true,
    language=Java,
    numbers=none,
    numbersep=5pt,
    tabsize=2,
    extendedchars=true,
    breaklines=true,
    basicstyle=\scriptsize\ttfamily\color{basicStyleColor},
    identifierstyle=\color{identifierStyleColor},
    keywordstyle=[1]\color{keywordStyle1Color},
    keywordstyle=[2]\color{keywordStyle2Color},
    keywordstyle=[3]\color{keywordStyle3Color},
    stringstyle=\color{stringStyleColor},
    commentstyle=\itshape\color{commentStyleColor},
    numberstyle=\tiny\color{commentStyleColor},
    rulecolor=\color{black},
    showspaces=false,
    showtabs=false,
    xleftmargin=17pt,
    frame=none,
    framexleftmargin=17pt,
    %framexrightmargin=5pt,
    framexbottommargin=4pt,
    %backgroundcolor=\color{lightgray},
    showstringspaces=false,
      {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
      {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
      {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
      {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
      {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
      {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
      {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
      {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
      {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
      {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
      {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
      {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
      {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
      {€}{{\texteuro}}1
}

文件序言如下

\documentclass[12pt]{mystyle}

\usepackage{ulem}
\usepackage{enumerate}

\begin{document}
    \sloppy

现在,我想要打印类似这样的内容,并且希望它采用无衬线字体:

\begin{lstlisting}
import akka.actor.{ActorSystem, Props}

object Main extends App {
}
\end{lstlisting}

但无论我做什么,列表的字体始终保持不变。

我如何更改列表的字体(含义:不仅仅是字体系列(\tttype),而是整个字体?)同时不更改文档其余部分的字体?

相关内容