![Eliminar lista de [newfloat] del TOC](https://rvso.com/image/290208/Eliminar%20lista%20de%20%5Bnewfloat%5D%20del%20TOC.png)
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 \listofdirfigures
sin *
, la lista irá en el TOC.
Esto funciona aprovechando el hecho de que los últimos comandos ejecutados cuando \listofdirfigures
se llama son (en un grupo)
\newfloat@listofdirfigure@hook\listoffigures
pero el newfloat
paquete se encarga de redefinir las cosas para que \listoffigures
haga 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@star
al 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 \AdjustForMemoir
macro 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).