![Remover lista de [newfloat] do sumário](https://rvso.com/image/290208/Remover%20lista%20de%20%5Bnewfloat%5D%20do%20sum%C3%A1rio.png)
Estou usando o pacote newfloat e adicionei uma nova figura:
\DeclareFloatingEnvironment{dirfigure}
Agora, quando eu uso \listofdirfigures
- a lista é adicionada ao Índice.
Com números normais, posso usar \listoffigures*
(with *
) para não listá-lo no TOC, porém \listofdirfigures*
não funciona.
Como não listar a lista de Dirfigures no TOC?
Exemplo 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}
Obrigado
Responder1
Para referência, a memoir
única maneira:
\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}
Responder2
Se você quiser fazer isso \newfloat
, aqui está uma maneira de obter a mesma funcionalidade das macros de impressão de lista 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}
Se você usar \listofdirfigures
sem o *
, a lista irá para o TOC.
Isso funciona explorando o fato de que os últimos comandos executados quando \listofdirfigures
é chamado são (em um grupo)
\newfloat@listofdirfigure@hook\listoffigures
mas o newfloat
pacote tem o cuidado de redefinir as coisas para que \listoffigures
faça a coisa certa. O gancho geralmente está vazio, mas é irrelevante. Eu redefino \listofdirfigures
(ou melhor, a versão alternativa que é chamada \listofdirfigure
) para procurar o seguinte *
; neste caso eu acrescento \append@star
ao gancho, então o TeX eventualmente verá
\append@star\listoffigures
caso \listofdirfigures*
seja chamado; isso ficará \listoffigures*
como desejado. Caso não *
apareça, nada é alterado.
Forneci uma \AdjustForMemoir
macro para que cada novo comando de criação de lista flutuante possa ser modificado dessa forma.
Responder3
Corrigido com commithttps://gitlab.com/axelsommerfeldt/caption/commit/5584091f13a4d63c5245b4d8b0e9ac0171c85436
Enviarei uma nova versão do "pacote de pacotes de legendas" para o CTAN hoje; enquanto isso, por favor usehttps://gitlab.com/axelsommerfeldt/caption/raw/master/tex/newfloat.stycomo substituto do antigo newfloat.sty.
BTW: Por favor, relate esses problemas/código para mim para que eu tenha a chance de corrigi-lo a tempo. (Levei 5 anos para encontrar esse problema por acidente.)