可浮动、居中且不可分割的列表

可浮动、居中且不可分割的列表

我一直在寻找并尝试了各种设置,但尚未找到解决方案。

我正在尝试定义一个lstlisting浮动的环境,该环境位于页面中央,并且不能跨页面拆分,而无需使用captionof。使用figurecentervarwidth环境来封装环境是可行的。但是,它需要从之外的包中lstlisting使用,这会改变captionofcaptionlstlisting(大小)和行为(标题框的宽度,可能由于varwidth标题本身的)。我想使用环境的label和。captionlstlisting

任何想法?

注意:我可能会稍后发布更多详细信息。

编辑:好吧,我刚刚找到了部分解决方案:

\begin{figure}[t]
\begin{center}
\begin{minipage}{0.7\linewidth}
\begin{lstlisting}[label={lst:stuff},
caption={Very large Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption.}]
Stuff
\end{lstlisting}
\end{minipage}
\end{center}
\end{figure}

\ref{lst:stuff}

现在的问题是,大标题会开始断行并且不会填满整个页面,\linewidth因为只有 70% ( 0.7\linewidth) 可用(这是为了让列表居中显示所必需的)。

有任何想法吗?

编辑2:我想\captionof{lstlisting}{Caption}这必须得办到。

编辑3:完整的解决方案:

\documentclass{article}
\usepackage{caption}
\usepackage{listings}

\begin{document}
\begin{figure}[t]
\begin{center}
\begin{minipage}{0.7\linewidth}
\begin{lstlisting}
Stuff
\end{lstlisting}
\end{minipage}
\end{center}
\captionof{lstlisting}{Caption.}
\label={lst:stuff}
\end{figure}

\ref{lst:stuff}
\end{document}

答案1

您可以使用xleftmarginxrightmargin为您的列表提供“居中”的外观。

例如:

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[%
  float=htbp,
  caption={Very large Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption.},
  label={lst:stuff},
  xleftmargin=2cm,
  xrightmargin=2cm
  ]
Stuff
\end{lstlisting}

This is my listing no. \ref{lst:stuff}
\end{document} 

输出:

在此处输入图片描述

进行调整2cm以更好地满足您的需求。

相关内容