我正在使用 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}
...