我想创建一个包含所有列表的列表。列表本身允许添加标题并使用 将它们列在列表中\lstlistoflistings
,但它们不能浮动。如果我使用 设置这样的浮动环境,floatrow
它们属于不同的列表,并且标题的编号是错误的。我希望在一个编号方案中正确显示数字,并将两者添加到列表列表中。
第一个标题是“清单 1:”
第二个的标题是“代码 0.0.1:”
\documentclass{scrbook}
\usepackage{listings}
\usepackage{floatrow}
\DeclareNewFloatType{Code}%
{placement=tbhp,within=section,fileext=loc}
\begin{document}
\begin{lstlisting}[caption={LaTeX Listings}]
\begin{document}
\chapter{Introduction}
Some text ...
\chapter{Theory}
\end{document}
\end{lstlisting}
\begin{Code}[H]
\begin{lstlisting}[language={[Visual]Basic}]
Sub Main()
MsgBox "Hallo Welt!"
End Sub
\end{lstlisting}
\caption{Hello World in Visual Basic 6}
\label{lstLaTeXLinesOfCode2}
\end{Code}
\lstlistoflistings
\listof{Code}{List of Code listings}
\end{document}
答案1
listings
允许您指定一个float=<spec>
键值以允许lstlisting
浮动,这样您就无需创建自己的浮动环境。在这里,<spec>
可以从中进行任意组合htbp
。
\documentclass{scrbook}
\usepackage{listings}% http://ctan.org/pkg/listings
%\usepackage{floatrow}
%\DeclareNewFloatType{Code}%
%{placement=tbhp,within=section,fileext=loc}
\begin{document}
Here is some text.
\begin{lstlisting}[caption={LaTeX Listings},float=t]
\begin{document}
\chapter{Introduction}
Some text ...
\chapter{Theory}
\end{document}
\end{lstlisting}
Here is some more text.
%\begin{Code}[H]
\begin{lstlisting}[caption={Hello World in Visual Basic 6},label=lstLaTeXLinesOfCode2,language={[Visual]Basic},float=t]
Sub Main()
MsgBox "Hallo Welt!"
End Sub
\end{lstlisting}
% \caption{Hello World in Visual Basic 6}
% \label{lstLaTeXLinesOfCode2}
%\end{Code}
Here is some more text, yet again.
\lstlistoflistings
%\listof{Code}{List of Code listings}
\end{document}
请参阅第 6 页listings
文档。