通过 \input 添加的子图在 LoF 中的页码错误

通过 \input 添加的子图在 LoF 中的页码错误

在撰写论文时,我发现通过 \input 添加的章节中的子图在图表列表中显示的页码错误。我已添加 MWE。

一些重要的注意事项可能是:

  1. 正常数字显示正确
  2. 我正在使用 subcaption 包
  3. 我遇到了与词汇表条目类似的问题(为简单起见,未包含在此 MWE 中)

\documentclass{book}

\usepackage[utf8]{inputenc}%    characters 
\usepackage[T1]{fontenc} 
\usepackage[demo]{graphicx}
\usepackage[list=true,listformat=simple]{subcaption}

\begin{document}

\input{mwe_chap1} % The input file

\chapter{Two}\label{ch:two} % Example that does work without \input

\begin{figure}[hbtp]
\begin{subfigure}[t]{0.32\textwidth}    \includegraphics[height=3cm]{x}
    \caption{4\label{fig:d}}    \end{subfigure} %
    \begin{subfigure}[t]{0.32\textwidth}    \includegraphics[height=3cm]{x}
    \caption{5\label{fig:e}}    \end{subfigure} %
    \begin{subfigure}[t]{0.32\textwidth}    \includegraphics[height=3cm]{x}
    \caption{6\label{fig:f}}    \end{subfigure} \end{figure}

\chapter{Three}\label{ch:three}

\listoffigures % Prints the list of figures

\end{document}

这是输入文件:

\chapter{One}\label{ch:one}
some text \clearpage
\begin{figure}[hbtp]    \begin{subfigure}[t]{0.32\textwidth}
    \includegraphics[height=3cm]{x}     \caption{1\label{fig:a}}
\end{subfigure} %   


\begin{subfigure}[t]{0.32\textwidth}
        \includegraphics[height=3cm]{x}     \caption{2\label{fig:b}}
        \end{subfigure} %   
    \begin{subfigure}[t]{0.32\textwidth}
        \includegraphics[height=3cm]{x}     \caption{3\label{fig:c}}
        \end{subfigure} \end{figure}
\clearpage some text

\clearpage some text

\begin{figure}[hbtp] \includegraphics[height=3cm]{x}  \caption{normalfig\label{fig:normal}} 
\end{figure}

任何帮助将不胜感激!

编辑:

当我在外部章节中向 \figure 环境添加标题时,问题似乎消失了,如下所示:

\begin{figure}[hbtp]
    \begin{subfigure}[t]{0.32\textwidth}
        \includegraphics[height=3cm]{x}     \caption{1\label{fig:a}}
        \end{subfigure} %   
    \begin{subfigure}[t]{0.32\textwidth}
        \includegraphics[height=3cm]{x}     \caption{2\label{fig:b}}
        \end{subfigure} %   
    \begin{subfigure}[t]{0.32\textwidth}
        \includegraphics[height=3cm]{x}     \caption{3\label{fig:c}}
        \end{subfigure}
\caption{added caption\label{fig:extracap}} % This caption is added
\end{figure}

似乎计数器在有额外标题的情况下计数方式不同...我不明白为什么。但是,有没有办法只列出子图而不为整个图形环境添加额外标题?

答案1

这是一个可能的解决方案,可以在 LoF 中为子图提供正确的页码,而无需在图形环境的主文本中添加标题:

  1. 声明空白字幕格式
  2. 使用上面提到的标题设置为 \figure 添加标题

}

\usepackage{caption}
\DeclareCaptionLabelFormat{blank}{}

\begin{figure}[hbtp]
    \begin{subfigure}[t]{0.32\textwidth}
      \includegraphics[height=3cm]{x} 
      \caption{1\label{fig:a}}
      \end{subfigure}
    \begin{subfigure}[t]{0.32\textwidth}
      \includegraphics[height=3cm]{x} 
      \caption{2\label{fig:b}}
      \end{subfigure}
    \begin{subfigure}[t]{0.32\textwidth}
      \includegraphics[height=3cm]{x} 
      \caption{3\label{fig:c}}
      \end{subfigure}
\captionsetup{textformat=empty,labelformat=blank}
\caption{ACaptionThatDoesNotShowInMainText\label{fig:hiddencap}}    
\end{figure}

答案2

在包含子标题但没有主标题的图形中添加一个\phantomcaption。(不幸的是,由于文档滞后,这个还没有记录下来。)

附录:

我刚刚开了一张票,因此将尽快记录下来:https://sourceforge.net/p/latex-caption/tickets/48/

相关内容