![TOC에서 [newfloat] 목록 제거](https://rvso.com/image/290208/TOC%EC%97%90%EC%84%9C%20%5Bnewfloat%5D%20%EB%AA%A9%EB%A1%9D%20%EC%A0%9C%EA%B1%B0.png)
newfloat 패키지를 사용하고 있으며 새 그림을 추가했습니다.
\DeclareFloatingEnvironment{dirfigure}
이제 사용하면 \listofdirfigures
목록이 목차에 추가됩니다.
일반 수치에서는 \listoffigures*
(with *
)를 사용하여 TOC에 나열하지 않을 수 있지만 \listofdirfigures*
작동하지 않습니다.
TOC에 DirFigure 목록을 나열하지 않는 방법은 무엇입니까?
최소한의 예:
\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}
감사해요
답변1
참고로 memoir
유일한 방법은 다음과 같습니다.
\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}
답변2
를 사용하여 수행하려는 경우 \newfloat
목록 인쇄 매크로와 동일한 기능을 얻는 방법은 다음과 같습니다 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}
\listofdirfigures
없이 사용하면 *
목록이 목차에 포함됩니다.
\listofdirfigures
이는 호출될 때 실행된 마지막 명령이 (그룹 내) 있다는 사실을 활용하여 작동합니다.
\newfloat@listofdirfigure@hook\listoffigures
하지만 패키지는 올바른 작업을 수행할 수 newfloat
있도록 항목을 재정의하는 데 주의를 기울입니다 . \listoffigures
후크는 일반적으로 비어 있지만 관련이 없습니다. 나는 다음을 찾기 위해 \listofdirfigures
(또는 이라는 대체 버전을 재정의하는 것이 더 좋습니다 ) ; 이 경우에는 후크에 추가하므로 TeX는 결국 다음을 보게 될 것입니다.\listofdirfigure
*
\append@star
\append@star\listoffigures
경우에 \listofdirfigures*
호출됩니다; \listoffigures*
원하는대로 될 것입니다 . no가 *
나타나면 아무 것도 변경되지 않습니다.
나는 \AdjustForMemoir
모든 새로운 부동 목록 작성 명령이 그런 방식으로 수정될 수 있도록 매크로를 제공했습니다.
답변3
커밋으로 수정됨https://gitlab.com/axelsommerfeldt/caption/commit/5584091f13a4d63c5245b4d8b0e9ac0171c85436
오늘 "캡션 패키지 번들"의 새 버전을 CTAN에 푸시하겠습니다. 그동안 이용해주세요https://gitlab.com/axelsommerfeldt/caption/raw/master/tex/newfloat.sty이전 newfloat.sty를 대체합니다.
참고: 이러한 문제/코드를 제게 보고해 주시면 제가 제 시간에 문제를 해결할 수 있도록 하겠습니다. (우연히 이 문제를 발견하는데 5년이 걸렸습니다.)