Eliminar lista de [newfloat] del TOC

Eliminar lista de [newfloat] del TOC

Estoy usando el paquete newfloat y agregué una nueva figura:

\DeclareFloatingEnvironment{dirfigure}

Ahora, cuando uso \listofdirfigures, la lista se agrega a la tabla de contenido.

Con cifras normales, puedo usar \listoffigures*(con *) para no incluirlo en TOC, pero \listofdirfigures*no funciona.

¿Cómo no incluir la lista de Dirfigures en TOC?

Ejemplo mínimo:

\documentclass[a4paper,twoside]{memoir}
\usepackage{newfloat}
\DeclareFloatingEnvironment{dirfigure}

\begin{document}
\tableofcontents*
\listoffigures*
\listofdirfigures

\chapter{bah}
\begin{dirfigure}
bah
\caption{bah}
\end{dirfigure}
\begin{figure}
bah
\caption{bah}
\end{figure}
\end{document}

Gracias

Respuesta1

Como referencia, la memoirúnica forma:

\documentclass[a4paper,twoside]{memoir}
\newfloat[chapter]{dirfigure}{dirf}{Dirfigure}
\newlistof{listofdirfigures}{dirf}{List of Dirfigures}
\newlistentry[chapter]{dirfigure}{dirf}{0}
\cftsetindents{dirfigure}{0em}{2.3em}

\begin{document}
\tableofcontents*
\listoffigures*
\listofdirfigures*

\chapter{bah}
\begin{dirfigure}
bah
\caption{bah}
\end{dirfigure}
\begin{figure}
bah
\caption{bah}
\end{figure}
\end{document}

Respuesta2

Si desea hacerlo con \newfloat, aquí tiene una manera de obtener la misma funcionalidad de las macros de impresión de listas de memoir:

\documentclass[a4paper,twoside]{memoir}
\usepackage{etoolbox}
\usepackage{newfloat}

\makeatletter
%% we define a helper macro for adjusting lists of new floats to
%% accept a * behind them for not being shown in the TOC, like
%% the other list printing commands in memoir
\newcommand{\AdjustForMemoir}[1]{%
  \csletcs{kept@listof#1}{listof#1}%
  \csdef{listof#1}{%
    \@ifstar
     {\csappto{newfloat@listof#1@hook}{\append@star}%
      \csuse{kept@listof#1}}%
     {\csuse{kept@listof#1}}%
  }
}
\def\append@star#1{#1*}
\makeatother

\DeclareFloatingEnvironment{dirfigure}
\AdjustForMemoir{dirfigure} % prepare `\listofdirfigures` so it accepts a *


\begin{document}
\tableofcontents*
\listoffigures*
\listofdirfigures*

\chapter{bah}
\begin{dirfigure}
bah
\caption{bah}
\end{dirfigure}
\begin{figure}
bah
\caption{bah}
\end{figure}
\end{document}

Si lo usa \listofdirfiguressin *, la lista irá en el TOC.

Esto funciona aprovechando el hecho de que los últimos comandos ejecutados cuando \listofdirfiguresse llama son (en un grupo)

\newfloat@listofdirfigure@hook\listoffigures

pero el newfloatpaquete se encarga de redefinir las cosas para que \listoffigureshaga lo correcto. El gancho suele estar vacío, pero es irrelevante. Redefino \listofdirfigures(o mejor, la versión alternativa que se llama \listofdirfigure) para buscar seguidores *; en este caso lo agrego \append@staral gancho, para que TeX eventualmente vea

\append@star\listoffigures

en caso \listofdirfigures*de que se llame; esto quedará \listoffigures*como se desea. En caso de que no *aparezca, no se cambia nada.

Proporcioné una \AdjustForMemoirmacro para que cada nuevo comando de creación de listas flotantes pueda modificarse de esa manera.

Respuesta3

Corregido con compromisohttps://gitlab.com/axelsommerfeldt/caption/commit/5584091f13a4d63c5245b4d8b0e9ac0171c85436

Hoy enviaré una nueva versión del "paquete de subtítulos" a CTAN; mientras tanto por favor usahttps://gitlab.com/axelsommerfeldt/caption/raw/master/tex/newfloat.stycomo reemplazo del antiguo newfloat.sty.

Por cierto: infórmame de dichos problemas/códigos para que tenga la oportunidad de solucionarlos a tiempo. (Me tomó 5 años encontrar este problema por accidente).

información relacionada