
Me resulta un poco difícil mantener las mesas donde las quería. Tampoco se me ve para hacer un MWE. Pero el documento está subido.aquí.
Básicamente, dice el
el texto (~\ref{}) está en la página 70 y la tabla real está en la 84;
el texto (~\ref{}) está en la página 71 y la tabla real está en la 85;
el texto (~\ref{}) está en la página 72 y la tabla real está en la 86;
dónde
\begin{table}[!hp]
se ha utilizado al principio de todas las tablas.
En todos los casos, los textos están en \subsection{}
el s. Las tablas parecen haber sido limpiadas hasta el final de toda la sección.
Lo que espero obtener es que las tablas estén cerca del texto, si no, tal vez en la next
página. Pero un simple !hp
no funciona en absoluto.
Respuesta1
Hay consejos generales (principalmente en la respuesta de Will) enuna pregunta anterior
Sin embargo, tiene un requisito específico (por alguna razón) para evitar que la página de texto flote y solo permita h y p.
Eso dificulta el posicionamiento. Si un flotante no puede ir "aquí" (y ese suele ser el caso ya que ese punto está demasiado bajo en la página para caber en un flotante), entonces LaTeX lo retendrá para crear una página flotante. Para evitar páginas muy vacías, espera hasta tener al menos \floatpagefraction
una página (esta fracción no se ignora si usas !
). Por defecto, article
esto es 0,5, por lo que se debe llenar al menos la mitad de la página.
Esto significa que si tiene dos figuras con la primera de poco menos de media página de altura, en aproximadamente la mitad de los casos no encajarán "aquí", ya que ese punto estará en la mitad inferior de la página. El primer flotador no puede formar una página flotante porque la página será demasiado corta, pero las dos figuras no caben en una página flotante si la segunda es más grande, o incluso si es más pequeña pero no hay espacio para dos figuras y la \floatsep
brecha entre. Esto significa que una configuración de [hp]
hace que sea muy fácil conseguir flotadores que no se pueden colocar y, como todas las figuras se mantienen en orden, una vez que uno no se puede colocar, todas son imposibles de colocar. Luego se retendrán hasta que se eliminen con un \clearpage
al final del documento o sección.
Entonces, con la opción de, [hp]
debe configurarlo \floatpagefraction
lo suficientemente bajo como para que se pueda colocar cualquier secuencia de flotadores.
Lo más sencillo es establecerlo muy bajo, digamos a 0,01. Entonces ningún flotador debería flotar en más de una página; Siempre se enviará inmediatamente. Sin embargo, debido a que los flotadores no se retienen, las páginas flotantes solo tendrán un flotador por página ya que el látex no esperará para ver si el siguiente encaja.
Respuesta2
Hay varias formas de mantener los objetos flotantes más cerca de su posición.
Vea esta gran respuesta sobre cómo funcionan los objetos flotantes:
https://tex.stackexchange.com/a/39020/59716
Con las instrucciones de colocación opcionales [!hp]
no ganarás mucho. Le quita algunas opciones a LaTeX para colocar los objetos flotantes, a saber, b
y t
, y agregar !
y h
.
La ubicación estándar, si no da ninguna opción btp
, puede cambiar este valor predeterminado con el paquete flotante:
\usepackage{float} \floatplacement{table}{htbp}
para agregarlo h
como predeterminado.
Otro paquete que ayuda es placeins
, que ofrece el comando \FloatBarrier
, que obliga a que todos los flotantes actuales se coloquen delante de él.
Si lo cargas así:
\usepackage[section, below]{placeins}
un flotante nunca se ejecutará en una página que no pertenezca a su sección.