列出包并强制在行范围末尾包含空行?

列出包并强制在行范围末尾包含空行?

默认情况下,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影响此行为。

相关内容