数字枚举顺序错误

数字枚举顺序错误


有没有办法按照图形在文档中实际出现的顺序来枚举图形,而不是按照它们在源文件中声明的顺序来枚举图形?

我有以下来源:

\documentclass{article}
\usepackage{float}
\begin{document}
TEXT1
\begin{figure}[p]
\caption{Figur A}
\end{figure}
TEXT2
\begin{figure}[H]
\caption{Figur B}
\end{figure}
TEXT3
\end{document}

生成以下两个页面:

TEXT1
TEXT2

+++++++++++++++
+             +
+   FIGUR B   +
+             +
+++++++++++++++
Fig 2: Figur B

TEXT3

---new page---

+++++++++++++++
+             +
+   FIGUR A   +
+             +
+++++++++++++++
Fig 1: Figur A

所以,这两个图的显示方式正是我想要的,但在输出文档中,图 2 出现在图 1 之前,这确实很糟糕。图表中的这种情况也很丑陋:

Fig 2 "Figur B" page 1
Fig 1 "Figur A" page 2

我想要的是,当且仅当 tex 决定将图 B 放在图 A 之后,那么它应该给图 B 数字 1,给图 A 数字 2。
我知道有一些肮脏的黑客行为(setcounter;在源中移动图形),但显然我想要一个优雅的解决方案。

谢谢!

答案1

在正常情况下,LaTeX总是输出给定类型的浮点数(例如,figure按照在文档中遇到的顺序)。但是,H位置说明符超出了“正常”情况。为了实现其目标,H故意超出了正常范围。

可能的补救措施只有两种:

  • 不要使用[H]位置说明符。请考虑使用[ht!]

  • 或者,正如@Zarko 已经评论的那样,如果你坚持使用[H],请准备插入\clearpage 打字\begin{figure}[H]

相关内容