这代码片段提供了一种在列表环境中突出显示行的方法。但是,如果您考虑以下行:
\emphline{1-6} {7} {8-15} {potencia.f95}
您会注意到,#1 和 #3 参数可以从 #2 中推导出来。为此,需要:
- 知道文件的总行数
potencia.f95
; - 在 LaTeX 中执行减法和加法
是否可以执行上述操作,将命令转换为可以用作以下命令的命令:
\emphline{7}{potencia.f95}
或者,如果有人想突出显示整个部分:
\emphline{7-12}{potencia.f95}
答案1
好的,我想出了以下简单的解决方案。基本上,我使用计数器来跟踪行号:
\newcounter{linenumber}
...
\setcounter{linenumber}{#1}
\addtocounter{linenumber}{-1}
\lstinputlisting[linerange={1-\value{linenumber}}]{#2}
\lstinputlisting[linerange={#1-#1},style=highlight,firstnumber=last]{#2}
\addtocounter{linenumber}{2}
\lstinputlisting[firstline=\the\value{linenumber},firstnumber=last]{#2}
\the
在指定时请注意如何使用firstline
。在这种情况下不需要这样做linerange
。