我正在尝试将浮动设置为我的 lstlisting(这意味着 lstlisting 没有分页符)。我找到了 2 种方法,但对我来说不起作用:
浮点属性在 lstlisting 中。只有当 lstlisting 的行数小于半页时才可以(例如,最多 18 行)。如果行数大于半页,则 lstlisting 单独出现在页面上。
\documentclass[12pt]{article} \usepackage{listings} \usepackage{color} \definecolor{backcolour}{rgb}{0.9,0.9,0.9} \lstset{ backgroundcolor=\color{backcolour}, numbers=left, } \begin{document} \par Paragraph 1 \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ \par Paragraph 2 \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ \par Paragraph 3 \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ \begin{lstlisting}[float] Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code Code \end{lstlisting} \par Paragraph 4 \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ \par Paragraph 5 \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ Text \\ \end{document}
小页面是错误的,因为我无法使用 100% 的代码宽度进行列表显示。当我不使用 minipage 时,核心区域和文本区域都会启动。(在 minipage 中,它会向右移动。)
\documentclass[12pt]{article} \usepackage{listings} \usepackage{color} \definecolor{backcolour}{rgb}{0.9,0.9,0.9} \lstset{ backgroundcolor=\color{backcolour}, } \begin{document} A a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a. \begin{minipage}{\linewidth} \begin{lstlisting} Code \end{lstlisting} \end{minipage} \end{document}
谢谢您的建议。
答案1
我会考虑float
使用包定义你自己的浮动环境,做这样的事情:
\usepackage{float}
\usepackage{listings}
\newfloat{lstfloat}{htbp}{lop}
\floatname{lstfloat}{Listing}
\def\lstfloatautorefname{Listing} % needed for hyperref/auroref
现在,您可以使用以下语法创建浮动列表:
\begin{lstfloat}
\begin{lstlisting}
% code here
\end{lstlisting}
\end{lstfloat}
这也适用于分页符,至少和和一样好figure
。table
例如,假设以下代码在floatlist.tex
:
\documentclass{article}
\usepackage{float}
\usepackage{listings}
\usepackage{lipsum}
\lstset{
basicstyle=\ttfamily\footnotesize,
}
\newfloat{lstfloat}{htbp}{lop}
\floatname{lstfloat}{Listing}
\begin{document}
\lipsum[2]
\begin{lstfloat}
\lstinputlisting{floatlist.tex}
\lstinputlisting[firstline=1,lastline=10]{floatlist.tex}
\caption{The source of this document, one and a half times.}
\end{lstfloat}
\lipsum[3]
\end{document}
这是输出的第一页;请注意,浮动不必位于新页面上。