![enotez 使用 endfloats 时丢失了放置在图形标题中的尾注](https://linux22.com/image/400776/enotez%20%E4%BD%BF%E7%94%A8%20endfloats%20%E6%97%B6%E4%B8%A2%E5%A4%B1%E4%BA%86%E6%94%BE%E7%BD%AE%E5%9C%A8%E5%9B%BE%E5%BD%A2%E6%A0%87%E9%A2%98%E4%B8%AD%E7%9A%84%E5%B0%BE%E6%B3%A8.png)
我的 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}