使用自定义字体在代码列表中显示减号时出现问题

使用自定义字体在代码列表中显示减号时出现问题

我只是想将源代码插入带有listings包的 LaTeX 文件中。TeX 代码如下:

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\usepackage{fontspec}
\newfontfamily\Monaco{Monaco}
\lstset{ 
  basicstyle=\footnotesize\Monaco
}

\begin{document}
\lstinputlisting[language=C++]{filename.cpp}
\end{document}

但是-代码中的符号并没有Monaco用我使用的字体显示出来,而是用了 Math-Type 减号。(如下图所示) 展示

我在 Google 上搜索并找到了几个修复方法,例如column=texcl,但都不起作用。提前感谢您的帮助。

顺便说一下,环境是 Windows 10 上的 TeXLive 2017

答案1

您可以像这样更改定义:

\documentclass{article}
\usepackage{listings}

\usepackage{fontspec}
\newfontfamily\Arial{Arial}
\lstset{
basicstyle=\footnotesize\Arial
}
\begin{document}
\begin{lstlisting}
a-b
\end{lstlisting}
\makeatletter
\lst@CCPutMacro
    \lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{-}}
    \@empty\z@\@empty
\makeatother

\begin{lstlisting}
a-b
\end{lstlisting}

\end{document}

在此处输入图片描述

相关内容