自定义浮点数(newfloat):listoflistings 中的条目未缩进

自定义浮点数(newfloat):listoflistings 中的条目未缩进

我想为lstlistings 使用自定义浮动环境,以便能够使用 在列表周围绘制框架mdframed

我的 float 使用与 lstlisting 相同的计数器,也出现在列表列表中。但是,列表列表中的相应行没有像其他行一样缩进。

我的问题:

  1. 这是为什么?
  2. 我该怎么做才能使自定义浮点数的条目看起来一样?

最小示例:

\documentclass[a4paper,oneside,article,final]{memoir}
\usepackage{listings}

\newfloat[chapter]{myfloat}{lol}{Listing}
\newlistentry{myfloat}{lol}{0}

\begin{document}
\lstlistoflistings
\chapter{Content}

\begin{lstlisting}[caption={A}]
  A!
\end{lstlisting}

\begin{lstlisting}[caption={B}]
  B!
\end{lstlisting}

\begin{myfloat}[b]
  \begin{lstlisting}
    C!
  \end{lstlisting}
  \caption{C}
\end{myfloat}

\end{document}

我会发布它的样子(已经截屏了),但显然需要 10 点声誉才能发布图像 :/

答案1

memoir 中 listof... 条目的缩进由命令指定\cftsetindents。这需要三个参数:

  • 此列表条目类型:在这种情况下myfloat
  • 内容行的缩进
  • 为条目编号留出的宽度

对于后两者,使用回忆录部分内容行中的值

\cftsetindents{section}{1.5em}{2.3em}

正是你想要的:

示例输出

\documentclass[a4paper,oneside,article,final]{memoir}
\usepackage{listings}

\newfloat[chapter]{myfloat}{lol}{Listing}
\newlistentry{myfloat}{lol}{0}
\cftsetindents{myfloat}{1.5em}{2.3em}

\begin{document}
\lstlistoflistings
\chapter{Content}

\begin{lstlisting}[caption={A}]
  A!
\end{lstlisting}

\begin{lstlisting}[caption={B}]
  B!
\end{lstlisting}

\begin{myfloat}[b]
  \begin{lstlisting}
    C!
  \end{lstlisting}
  \caption{C}
\end{myfloat}

\end{document}

请参阅回忆录手册第 9.2 节,以获得更好的解释以及更多可以调整的内容。

相关内容