我正在尝试编写一些代码清单,但我使用的语言指的是以 4 为增量的行号。这类似于 BASIC 中的行号每行增加 10。
我尝试使用选项
stepnumber=4
但我显然误解了这个选项的用途。
它会跳过指定数量的行,只打印间隔行上的行号。我希望每一行都有一个行号,但每次计数器都会增加一个非一 (1) 的值。使用 Listings 包可以实现这一点吗?或者还有其他解决方案吗?我对 Tex 还比较陌生(即今天才开始使用它),所以请提出任何建议。
答案1
答案2
你可以试试
\renewcommand*\thelstnumber{\the\numexpr(\value{lstnumber}-1)*4+1\relax}
数学家协会
\documentclass{article}
\usepackage{listings}
\renewcommand*\thelstnumber{\the\numexpr(\value{lstnumber}-1)*4+1\relax}
\begin{document}
\begin{lstlisting}[numbers=left]
One
Two
Three
Four
\end{lstlisting}
\end{document}
然后给出
1 一
5 二
9 三
十三 四
答案3
如果您只需要简单的逐字样式输出(无语法突出显示),这种verbatimbox
方法可能会有效。
编辑为不自动重置块之间的行号(使用xpatch
)。
\documentclass{article}
\usepackage{verbatimbox,xpatch}
\xpatchcmd{\verbnobox}{\setcounter}{\addtocounter}{}{}
\begin{document}
\def\vbmode{\makebox[0pt][r]{\scriptsize\the\numexpr4*\value{VerbboxLineNo}\relax\ }}
\begin{verbnobox}[\vbmode]
This
is
a
test
\end{verbnobox}
More text.
\begin{verbnobox}[\vbmode]
This
is
a
test
\end{verbnobox}
\setcounter{VerbboxLineNo}{0}Reset
\begin{verbnobox}[\vbmode]
This
is
a
test
\end{verbnobox}
\end{document}