enotez 使用 endfloats 时丢失了放置在图形标题中的尾注

enotez 使用 endfloats 时丢失了放置在图形标题中的尾注

我的 MWE 是这样的:

\documentclass{article}
\usepackage{endfloat}
\usepackage{enotez}
\begin{document}
\endnote{First endnote}
\begin{figure}
    \caption{Hi! \endnote{Second endnote}}
\end{figure}
\endnote{Third endnote}
\printendnotes
\end{document}

正如您在注释列表中看到的,第二个尾注丢失了,没有任何警告或错误消息。我当然可以接受这种极端情况下的功能减少,但我想知道这种情况在没有通知用户的情况下发生是故意的/已知的还是被认为是错误。

编辑:降低 MWE 以使其独立于endfloat

\documentclass{article}
\usepackage{enotez}
\begin{document}
  \endnote{Good endnote}
  \printendnotes
  \endnote{Missing endnote}
\end{document}

答案1

如果您指定\printendnotes,它会关闭自动打印\AtEndDocument。因此\endnote标题中的 执行得太晚了。此外,如果您不指定短标题,您将得到两个尾注(3 和 4)。

\documentclass{article}
\usepackage{endfloat}
\usepackage{enotez}
\begin{document}
\endnote{First endnote}
\begin{figure}
    \caption[Hi!]{Hi! \endnote{Second endnote}}
\end{figure}
\endnote{Third endnote}
\processdelayedfloats
\printendnotes
\end{document}

如果您希望尾注出现在尾浮动之前,则可以使用保存框(每个包含尾注的图形一个)。

\documentclass{article}
\usepackage{endfloat}
\usepackage{enotez}

\makeatletter
\newcommand{\setcaptype}[1]% #1 = figure or table
{\def\@captype{#1}}
\makeatother

\newsavebox{\figureA}

\begin{document}
\endnote{First endnote}

\savebox{\figureA}{\begin{minipage}{\columnwidth}
  \setcaptype{figure}% or use \captionof from caption or capt-of packages
  \caption[Hi!]{Hi! \endnote{Second endnote}}
\end{minipage}}%
\begin{figure}
  \usebox\figureA
\end{figure}

\endnote{Third endnote}

\printendnotes
\end{document}

相关内容