在包中显示行号时,是否可以添加一些字符,如冒号listings
?有这个numberstyle
选项,但似乎只会影响一些东西前行号。
答案1
行号放置宏的定义\lst@PlaceNumber
如下:每一个键的设置numbers
。因此,下面我更新了numbers
键以插入一个宏\lst@numbersymbol
,现在由新键设置numbersymbol
。对于numbers=left
(right
),符号的位置位于行号的右侧(左侧)。
\documentclass{article}
\usepackage{listings}
\makeatletter
\def\lst@numbersymbol{}
\lst@Key{numbersymbol}{}{\def\lst@numbersymbol{#1}}
\lst@Key{numbers}{none}{%
\let\lst@PlaceNumber\@empty
\lstKV@SwitchCases{#1}%
{none:\\%
left:\def\lst@PlaceNumber{\llap{\normalfont
\lst@numberstyle{\thelstnumber\lst@numbersymbol}\kern\lst@numbersep}}\\%
right:\def\lst@PlaceNumber{\rlap{\normalfont
\kern\linewidth \kern\lst@numbersep
\lst@numberstyle{\lst@numbersymbol\thelstnumber}}}%
}{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
\makeatother
\begin{document}
\begin{lstlisting}[numbers=left, numberstyle=\tiny, numbersymbol=$\heartsuit$, firstnumber=100]
for i:=maxint to 0 do
begin
{ do nothing }
end;
\end{lstlisting}
\end{document}