乳胶:在lstlisting中只显示几行

时间:2010-07-20 20:50:50

标签: latex lstlisting

为了只显示几行源代码,lstlisting有一个linerange键,只打印那些范围。

\documentclass[slidestop]{beamer}
\usepackage{listings}
\begin{document}


\begin{frame}[fragile]
  \begin{lstlisting}[language=C,linerange={1-2,5-6}]
    #include<stdio.h>
    int void main(int argc, char **argv)
    {
      printf("hello world\n");
      return 0;
    }
  \end{lstlisting}
\end{frame}

\end{document}

上面的清单显示了以下代码行,两行之间没有任何空格。 :

    #include<stdio.h>
    int void main(int argc, char **argv)
      return 0;
    }

我真正想要的是

    #include<stdio.h>
    int void main(int argc, char **argv)


      return 0;
    }

我希望不显示第3-4行,但我需要该范围的空白行。因此,前两个和最后两个显示的行之间应该有2个空行。

约束:

  • 不应更改源代码 实际上是在一个单独的文件中 无法更改

  • 我的实际源代码是 相当大,所以使用多个 列出不同的部分 来源很麻烦。

[更新]: 我的要求简短: “在给定范围内排除的源代码中的行应打印为空行(即使它们在源代码中非空)”

1 个答案:

答案 0 :(得分:1)

在序言中插入以下代码似乎可以解决问题。

\makeatletter
\let\oldMSkipToFirst=\lst@MSkipToFirst
\gdef\lst@MSkipToFirst{\lst@formfeed\oldMSkipToFirst}
\makeatother