![Liste von [newfloat] aus dem Inhaltsverzeichnis entfernen](https://rvso.com/image/290208/Liste%20von%20%5Bnewfloat%5D%20aus%20dem%20Inhaltsverzeichnis%20entfernen.png)
Ich verwende das Paket newfloat und habe eine neue Abbildung hinzugefügt:
\DeclareFloatingEnvironment{dirfigure}
Wenn ich jetzt \listofdirfigures
- verwende, wird die Liste zum Inhaltsverzeichnis hinzugefügt.
Bei normalen Abbildungen kann ich \listoffigures*
(mit *
) verwenden, um sie nicht im Inhaltsverzeichnis aufzuführen. \listofdirfigures*
Das funktioniert jedoch nicht.
Wie kann ich die Liste der Verzeichnisfiguren nicht im Inhaltsverzeichnis auflisten?
Minimalbeispiel:
\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}
Danke
Antwort1
Als Referenz, der memoir
einzige Weg:
\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}
Antwort2
Wenn Sie dies mit tun möchten \newfloat
, gibt es hier eine Möglichkeit, die gleiche Funktionalität wie die Listendruckmakros von zu erhalten 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}
Wenn Sie \listofdirfigures
es ohne verwenden *
, wird die Liste in das Inhaltsverzeichnis aufgenommen.
Dies funktioniert, indem die Tatsache ausgenutzt wird, dass die letzten Befehle, die ausgeführt werden, wenn \listofdirfigures
aufgerufen wird, (in einer Gruppe) sind.
\newfloat@listofdirfigure@hook\listoffigures
aber das newfloat
Paket achtet darauf, die Dinge neu zu definieren, damit \listoffigures
das Richtige passiert. Der Hook ist normalerweise leer, aber das ist irrelevant. Ich definiere \listofdirfigures
(oder besser die alternative Version, die aufgerufen wird \listofdirfigure
) neu, um nach einem folgenden zu suchen *
; in diesem Fall füge ich \append@star
an den Hook an, damit TeX schließlich sieht
\append@star\listoffigures
Falls \listofdirfigures*
aufgerufen wird, wird dies \listoffigures*
wie gewünscht durchgeführt. Falls kein *
angezeigt wird, wird nichts geändert.
Ich habe ein \AdjustForMemoir
Makro bereitgestellt, sodass jeder neue Befehl zum Erstellen einer Float-Liste auf diese Weise geändert werden kann.
Antwort3
Mit Commit behobenhttps://gitlab.com/axelsommerfeldt/caption/commit/5584091f13a4d63c5245b4d8b0e9ac0171c85436
Ich werde heute eine neue Version des "Caption Package Bundle" auf CTAN hochladen. In der Zwischenzeit verwenden Sie bittehttps://gitlab.com/axelsommerfeldt/caption/raw/master/tex/newfloat.styals Ersatz für das alte newfloat.sty.
Übrigens: Bitte melden Sie mir solche Probleme/Codes, damit ich die Chance habe, sie rechtzeitig zu beheben. (Ich habe 5 Jahre gebraucht, um dieses Problem zufällig zu entdecken.)