浮动体的位置直到 output routine 时才会确定,(浮动的)浮动环境只是把它的内容保存到盒子里,此时,LaTeX 默认的实现是不会保存当前设置的各种间距的,这些间距直到 output routine 时才会使用,因此,局部设置地设置这些间距一般都无效。既然说了是 LaTeX 的默认实现,那自然可以自定义,不过,麻烦、工作量大、与其它宏包兼容性不好(比如涉及到 output routine 的 longtable
multicol
paracol
lineno
,还有和浮动体有关的宏包 caption
float
placeins
newfloat
,等等),而且 LaTeX 也没有提供方便的方法修改 output routine 以及排布浮动体的算法。
很多时候并不需要让内容浮动,只需要一个 center
环境、一个和浮动体共享计数器的命令(直接 \let\c@myfigure\c@figure
,就能够让 myfigure
和 figure
共享计数器了,不过这样并不共享格式),以及 caption
宏包的 type
键。
问 浮动体参数设置在编组内失效的原因?