我想在浮动环境中并排显示 2 个列表,并带有自己的名称(即列表 1 而不是图 1)和计数器(这样我就可以有一个单独的列表列表,而不是图列表)。我还希望子标题对齐,不是列表本身。
这大概就是我想象的情况:
我不知道如何使标题与 subfigure 包对齐,但它可以与 subcaption 包配合使用:
\begin{figure}
\centering
\subcaptionbox{Subcaption a.}%
[.47\textwidth]{\includegraphics[width=.45\textwidth]{imga}}
\subcaptionbox*{}[.03\textwidth]{}
\subcaptionbox{Subcaption b.}
[.47\textwidth]{\includegraphics[width=.45\textwidth]{imgb}}
\caption{Main caption.}
\end{figure}
问题是我无法在子标题中包含列表,而且我仍然不知道如何从图中包含单独的计数器和名称。
相关问题关于将两个列表并排放置,这不是我想要的。
答案1
我把它们放在一起是为了演示如何做到这一点。由于您没有给出完整的示例,因此我无法保证它适合您正在做的事情。
我曾经newfloat
创建过一种新的浮点类型listing
,就像你似乎有的一样。 minipage
用于将列表本身设置到子浮点中。根据您已有的内容,这可能足以解决您的问题。
我还扩充了示例以显示引用和清单列表。在这个更大的示例中,仍然存在两个问题:
子引用上的计数器设置不正确;我添加了一个
\refstepcounter
来暂时将计数加 1 来纠正这个问题。将
\listoflistings
两个子列表标题放在主标题上方。我还不确定为什么会发生这种情况,或者是否可以纠正。修复/破解方法是将主标题放在浮动顶部,但这也会在最终排版中将其移动到顶部,这可能不是我们想要的。
即使存在这些不规则现象,仍然可以获得非常好的结果:
MWE 代码:
\documentclass{article}
\usepackage{listings}
\usepackage{newfloat,caption}
\usepackage{subcaption}
\usepackage[demo]{graphicx}
\DeclareFloatingEnvironment[fileext=frm,placement={!ht},name=Listing,within=section]{listing}
\begin{document}
\tableofcontents
\listoflistings
\section{One}
\section{Two}
\begin{listing}
\refstepcounter{listing}
\noindent\begin{minipage}[b]{.45\textwidth}
\begin{lstlisting}
add x1, x1, 5
stp fp, lr, [sp, #-16]!
add x5, x6, x7
\end{lstlisting}
\captionof{sublisting}{Some caption.}
\label{lst:codeblockA}
\end{minipage}%
\hfill
\begin{minipage}[b]{.45\textwidth}
\begin{lstlisting}
ldr x5, [x5]
\end{lstlisting}
\captionof{sublisting}{Some other caption.}
\label{lst:codeblockB}
\end{minipage}
\addtocounter{listing}{-1}
\caption{Some text. The quick brown fox\ldots}
\label{lst:codeblocks}
\end{listing}
Figure~\ref{lst:codeblocks} includes block \ref{lst:codeblockA} and \ref{lst:codeblockB}
\end{document}