根据指定的语言,列表包可能会或可能不会将变量名内的关键字加粗。
Python 很好
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=Python]
sum_of_the_values = sum(vals)
\end{lstlisting}
\end{document}
但 R 并不好
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=R]
sum.of.the.values = sum(vals)
sum_of_the_values = sum(vals)
\end{lstlisting}
\end{document}
您能指定单词分隔符吗?我可以使用 R 的点分隔变量 ( sum.of.the.values
) 吗?
答案1
该listings
包按三种方式对字符进行分类:信,数字, 和其他.R
的语言listings
,其定义可以在lstdvrs.dtx
,其定义是将周期视为其他:
\lst@definelanguage{R}%
%...
alsoother={._$},%
%...
}%
然而,据我所知,在 R 中,句点 ( .
)可用于标识符其使用方式类似于许多其他语言中的下划线:作为名称分隔符。
在这种情况下,listings
应该被告知要将句点字符视为其他,但作为信. 诸如这样的字符串sum.of.letter.values
将被视为单个标识符,并且sum
该特定字符串中的子字符串将不再(错误地)突出显示为 R 关键字。
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=R,alsoletter=.]
sum.of.the.values = sum(vals)
sum_of_the_values = sum(vals)
\end{lstlisting}
\end{document}