为了只显示几行源代码,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个空行。
约束:
不应更改源代码 实际上是在一个单独的文件中 无法更改
我的实际源代码是 相当大,所以使用多个 列出不同的部分 来源很麻烦。
[更新]: 我的要求简短: “在给定范围内排除的源代码中的行应打印为空行(即使它们在源代码中非空)”
答案 0 :(得分:1)
在序言中插入以下代码似乎可以解决问题。
\makeatletter
\let\oldMSkipToFirst=\lst@MSkipToFirst
\gdef\lst@MSkipToFirst{\lst@formfeed\oldMSkipToFirst}
\makeatother