使用“listings”包时在行号后附加字符吗?

使用“listings”包时在行号后附加字符吗?

在包中显示行号时,是否可以添加一些字符,如冒号listings?有这个numberstyle选项,但似乎只会影响一些东西行号。

答案1

行号放置宏的定义\lst@PlaceNumber如下:每一个键的设置numbers。因此,下面我更新了numbers键以插入一个宏\lst@numbersymbol,现在由新键设置numbersymbol。对于numbers=leftright),符号的位置位于行号的右侧(左侧)。

在此处输入图片描述

\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}

相关内容