Для отображения только нескольких строк исходного кода в 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 пустых строки.
Ограничения:
Исходный код не следует изменять, он фактически находится в отдельном файлекоторый нельзя изменить
Фактический исходный код, который у меня есть, довольно велик, поэтому использование нескольких списков для разных частей исходного кода является громоздким.
[Обновить]: Мое требование вкратце: "строки в исходном коде, которые исключены из заданного диапазона (-ов), должны быть напечатаны как пустые строки (даже если они не пусты в исходном коде)"