列表浮动,带有子列表

列表浮动,带有子列表

我想在浮动环境中并排显示 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用于将列表本身设置到子浮点中。根据您已有的内容,这可能足以解决您的问题。

我还扩充了示例以显示引用和清单列表。在这个更大的示例中,仍然存在两个问题:

  1. 子引用上的计数器设置不正确;我添加了一个\refstepcounter来暂时将计数加 1 来纠正这个问题。

  2. \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}

相关内容