\lstinputlisting 不遵守 \lstset 'float' 选项

\lstinputlisting 不遵守 \lstset 'float' 选项

我怎样才能强迫\lstinputlisting[...]{filename}服从全部由 ? 设置的参数\lstset(请注意,这float是给 TeX 示例的选项,而不是给 LaTeX 示例的选项。)

\begin{filecontents*}{helloworld.tex.example}
Hello, World!
\bye
\end{filecontents*}

\begin{filecontents*}{helloworld.ltx.example}
\documentclass{article}
\usepackage[margin=1in]{geometry}

\begin{document}
  Hello, World!
\end{document}
\end{filecontents*}

%%%%%%%%%%%%%%%%%%%%%%%

\documentclass{article}

\usepackage{listings}
\lstset{float,frame=lines}

\usepackage{mwe}
\begin{document}
\lipsum[1]
\lstinputlisting[language = TeX, float, caption=A \TeX\ example]
                {helloworld.tex.example}
\lipsum[2]
\lstinputlisting[language = {[LaTeX]TeX}, caption=A \LaTeX\ example]
                {helloworld.ltx.example}
\lipsum[3]
\end{document}

输出

答案1

文档说明了float

仅对单独显示的列表有意义并让它们浮动。

因此它可能是一个功能,该选项float不能全局设置。

尽管如此,以下解决方法似乎有效:

\usepackage{listings}
\lstset{float}
\makeatletter
\let\lst@floatdefault\lst@float
\makeatother

相关内容