问题
是否可以配置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}