我一直在寻找并尝试了各种设置,但尚未找到解决方案。
我正在尝试定义一个lstlisting
浮动的环境,该环境位于页面中央,并且不能跨页面拆分,而无需使用captionof
。使用figure
、center
和varwidth
环境来封装环境是可行的。但是,它需要从之外的包中lstlisting
使用,这会改变captionof
caption
lstlisting
看(大小)和行为(标题框的宽度,可能由于varwidth
标题本身的)。我想使用环境的label
和。caption
lstlisting
任何想法?
注意:我可能会稍后发布更多详细信息。
编辑:好吧,我刚刚找到了部分解决方案:
\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
您可以使用xleftmargin
和xrightmargin
为您的列表提供“居中”的外观。
例如:
\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
以更好地满足您的需求。