即使设置了类别选项“草稿”,我怎样才能显示列表?

即使设置了类别选项“草稿”,我怎样才能显示列表?

问题

是否可以配置listings包以显示内容lstlisting即使draft设置了全局选项,在环境中呢?

语境

在处理较大的文档时,该draft选项很有用,可以避免每次编译目录、词汇表甚至较大图形的占位符图像等内容,从而可以更快地对文档进行迭代。

但是,似乎这个选项还会提示listings包避免显示列表的“内容” - 虽然标题排版正确(尝试使用带有和不带有草稿选项的 MWE,其中包括我的实际文档使用的所有其他包)。

我已经检查过软件包文档,但在我看来这不是软件包特有的问题,而是我对 \LaTeX 约定的无知阻碍了我。

最小工作示例

%\documentclass[]{book}
\documentclass[draft]{book}

\usepackage[numbers,sort&compress]{natbib}
\usepackage[protrusion=true,expansion,babel=true]{microtype}
\usepackage{mathtools} % This includes "amsmath" and the dcases environment among other things
\usepackage{dsfont}
\usepackage{tikz}
\usepackage{listings}
\usepackage{hyperref}
%\usepackage[toc]{glossaries}
%% ---------------- end of usepackages -------------
\begin{document}[caption=This will always be visible]
    \lstset{language=Java}
    // This is only visible when compiling without the draft option
    \begin{lstlisting}

        public class MyTest{
            int foo;
        }
    \end{lstlisting}

\end{document}

答案1

listings软件包提供了一个名为的选项final,您可以使用它来实现这一点。请参阅文档的第 2.2 节listings

final

覆盖全局draft选项。

在加载包时只需传递final选项即可:listings

\documentclass[draft]{book}

\usepackage[numbers,sort&compress]{natbib}
\usepackage[protrusion=true,expansion,babel=true]{microtype}
\usepackage{mathtools} % This includes "amsmath" and the dcases environment among other things
\usepackage{dsfont}
\usepackage{tikz}
\usepackage[final]{listings}% <=====
\usepackage{hyperref}
%\usepackage[toc]{glossaries}
%% ---------------- end of usepackages -------------
\begin{document}[caption=This will always be visible]
    \lstset{language=Java}

    \begin{lstlisting}
        public class MyTest{
            int foo;
        }
    \end{lstlisting}

\end{document}

答案2

我试过Arash 的回答但当! LaTeX Error: Option clash for package listings我调用时得到了一个\lstdefinestyle。相反,我将print选项添加到我的样式中:

\lstdefinestyle{py}{
  language=Python,
  print   <============
}

style=py这样会导致包含任何带有 的列表,即使draft设置了 也是如此。文档,第 5.2 节中说print“尽管使用了草稿选项,仍可用于排版特定列表。”

相关内容