计数行并进行计算

计数行并进行计算

代码片段提供了一种在列表环境中突出显示行的方法。但是,如果您考虑以下行:

\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

相关内容