在列表框中指示代码更改的正确方法

在列表框中指示代码更改的正确方法

[由于问题不清楚] 我有一段程序代码想在论文中描述。我的问题是,我想解释的部分被不值得描述的简单代码片段包围着。现在我想问,行号是否有可能出现跳转。此外,我想问一下,是否有人有过指出我遗漏了部分代码的经验,因为它们不相关。

\noindent
\begin{minipage}{\linewidth}
\begin{lstlisting}[caption=Function, label={lst:example}, firstnumber=1]
int complicated_function(int b){
    //I do a lot here..

    if(a < b){
       return a;
    }else{
       return b;
    }
    if(b == 0){ 
        printf("Error");  //Not really relevant, just error handling. How can I leave it out? 
    }
return EXIT_SUCCESS;
}
\end{lstlisting}
\end{minipage}`

谢谢!

答案1

如果您只想在论文中讨论某些行,则可以轻松地将列表分成三个部分,例如使用linerange={1-3}前 3 行选项。如果您希望列表中有实际行号,请使用例如firstnumber=10从行号 10 开始的选项。

以下是 MWE:

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.c}
int complicated_function(int b){
    //I do a lot here..

    if(a < b){
       return a;
    }else{
       return b;
    }
    if(b == 0){ 
        printf("Error");  //Not really relevant, just error handling. How can I leave it out? 
    }
return EXIT_SUCCESS;
}
\end{filecontents*}


\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}               
\usepackage[utf8]{inputenc}             
\usepackage{listings}

\lstset{
  language=c,
  basicstyle=\footnotesize\ttfamily,
  tabsize=2,
  frame=single,
  numbers=left,
  numberstyle=\tiny
}


\begin{document}

We start with 
\lstinputlisting[%
  caption={Function}
 ,label={lst:example}
 ,linerange={1-1}
]{\jobname.c}

Then you will find
\lstinputlisting[%
  caption={Function, Part 2}
 ,label={lst:example2}
 ,linerange={4-8}
]{\jobname.c}

And closing
\lstinputlisting[%
  caption={Function, Part 3}
 ,label={lst:example3}
 ,linerange={10-12}
 ,firstnumber=10
]{\jobname.c}

\end{document}

我使用包来filecontents将要讨论的程序代码放在一个文件中。

相关内容