![数字枚举顺序错误](https://linux22.com/image/370840/%E6%95%B0%E5%AD%97%E6%9E%9A%E4%B8%BE%E9%A1%BA%E5%BA%8F%E9%94%99%E8%AF%AF.png)
有没有办法按照图形在文档中实际出现的顺序来枚举图形,而不是按照它们在源文件中声明的顺序来枚举图形?
我有以下来源:
\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]
。