Latex 列表 R:需要带有粗体关键字和正确插入符号(^)的等宽字体

Latex 列表 R:需要带有粗体关键字和正确插入符号(^)的等宽字体

我正在使用 listings 包来显示 R 代码。我想要一个等宽字体、粗体关键字,并且我希望当用户从 pdf 文件剪切并粘贴到 rstudio 中时代码能够正常工作。默认 listings 字体在粘贴时可以正常工作,但不显示粗体关键字。有些字体显示粗体关键字,但粘贴时插入符号不正确。

下面是说明该问题的示例代码(剪切并粘贴清单中的第五行以查看会发生什么---插入符号是错误的,即,它显示此字符:ˆ,R 无法识别,而不是这个:^)

\documentclass{article}
\usepackage{graphicx,textcomp}
\usepackage{comment,lscape}
\usepackage{fancyvrb,listings}
\usepackage{listings,makeidx}
\usepackage{marginnote}
%\usepackage{pxfonts} % bold but wrong caret
\usepackage{courier} % bold but wrong caret
%\usepackage{ascii} % no bold
\lstloadlanguages{R}
\usepackage{hyperref}

\lstloadlanguages{R}
\lstdefinelanguage{Renhanced}[]{R}{%
  morekeywords={acf,ar,arima,arima.sim,colMeans,colSums,is.na,is.null,
    mapply,ms,na.rm,nlmin,replicate,row.names,rowMeans,rowSums,seasonal,
    sys.time,system.time,ts.plot,which.max,which.min},
  deletekeywords={Call},
  alsoletter={.\%},
  alsoother={:_\$}}
\lstset{language=Renhanced,extendedchars=false,
basicstyle=\small\ttfamily,
commentstyle=\textsl,
showstringspaces=false,
index=[1][keywords]}

\begin{document}

\begin{lstlisting}[float,frame=single,caption={A first example},label=list:ex1]
r <- 0.06
g <- 0.02
tt <- 1:5
cf0 <- 100
pv <- sum(cf0*(1+g)^(tt-1)/(1+r)^tt) 
print(pv, digits = 8)
[1] 437.41649
\end{lstlisting}

\end{document}

答案1

而不是courier使用

\documentclass{article}
\usepackage[T1]{fontenc}
    
\usepackage{beramono}
    
...

相关内容