默认情况下,listings 包会抑制文件末尾的空行,您可以使用选项关闭此行为showlines
。
但是,listings 还会抑制 中每个范围末尾的空行linerange
。请考虑以下 Java 源文件:
public class Example implements StringHandler {
/**
* Prints the given string.
*
* @param s the given string
*/
@Override
public void handle(String s) {
System.out.println(s);
}
}
这是 LaTeX 源文件test.tex
:
\documentclass[a4paper,landscape]{slides}
\usepackage{color,listings,courier}
\lstset{language=Java,%
basicstyle=\ttfamily,%
numbers=left,%
numberstyle=\tiny,%
commentstyle=\color{blue}\itshape}
\begin{document}
% Suppress complete javadoc and @Override (to avoid cluttering the slide)
\begin{slide}
\lstinputlisting[linerange={1-2,9-13}]{Example.java}
\end{slide}
\end{document}
预期输出为:
public class Example implements StringHandler {
public void handle(String s) {
System.out.println(s);
}
}
但相反,我得到了
public class Example implements StringHandler {
public void handle(String s) {
System.out.println(s);
}
}
第 2 行(为空)未包含在输出中,因为它位于行范围的末尾。(我使用的是清单 v1.5;但 v1.3 的行为类似。)
结果是开始行范围(由多行组成)的行都包括在内。但在这种情况下这毫无帮助。
我如何强制包含这些嵌入的空行?这有助于使列表更具可读性。
这些选项showlines
不会emptylines
影响此行为。