Eu tenho um documento LaTeX que contém um parágrafo seguido por 4 tabelas seguidas por um segundo parágrafo. Quero que as 4 tabelas apareçam entre os dois parágrafos, o que, pelo que li, significa que devo usar a opção [h] após iniciar o ambiente da tabela (por exemplo \begin{table}[h]
).
Usando isso, as duas primeiras tabelas aparecem após o parágrafo 1 conforme o esperado; no entanto, o parágrafo 2 é exibido com as duas últimas tabelas aparecendo na página seguinte. Como faço para que as tabelas apareçam no local correto?
Tentei várias coisas para corrigir o posicionamento, como usar, [h!]
mas isso não parece ter surtido efeito. Usar \clearpage
depois das tabelas tem o efeito desejado de fazer as tabelas aparecerem antes do segundo parágrafo, mas depois deixa as duas últimas tabelas em suas próprias páginas com muito espaço em branco, quando eu preferiria que o segundo parágrafo começasse imediatamente após o tabelas.
Paragraph 1...
\begin{table}[h]
table1...
\end{table}
\begin{table}[h]
table2...
\end{table}[h]
...
Paragraph 2...
[h!]
é a versão correta. É o equivalente a[H]
. Ambos requerem ofloat
pacote.Respostas:
Depois de fazer mais pesquisas no Google, me deparei com o pacote float que permite evitar que o LaTeX reposicione as tabelas.
No preâmbulo:
Então, para cada mesa, você pode usar a
H
opção de posicionamento (por exemplo\begin{table}[H]
) para garantir que não seja reposicionada.fonte
H
é equivalente ah!
(para mais informações sobre parâmetros, verifique minha resposta aqui )#+LATEX_HEADER: \usepackage{float} #+LATEX_HEADER: \restylefloat{table}
E então,#+CAPTION: A table #+NAME: tab:table-label #+ATTR_LATEX: :placement [H] :center t <<actual table content>>
desculpe a má formatação de nova linha nos comentários.Isso funcionou para mim:
No início, as
usepackage
definições incluem:E antes e depois de adicionar:
Isso coloca a tabela exatamente onde você deseja no texto.
fonte
Posicionamento da mesa
Parâmetros Disponíveis
Uma mesa pode ser facilmente colocada com os seguintes parâmetros:
h
Coloque o flutuador aqui , ou seja, aproximadamente no mesmo ponto em que ocorre no texto de origem (no entanto, não exatamente no local)t
Posicione no topo da página.b
Posicione na parte inferior da página.p
Coloque em uma página especial apenas para carros alegóricos.!
Substitua os parâmetros internos que o LaTeX usa para determinar as "boas" posições de flutuação.H
Coloca o flutuador precisamente no local do código LATEX. Requer o pacote float. Isso é um pouco equivalente ah!
.Se você quiser fazer uso de
H
(ouh!
) para um posicionamento exato, certifique-se de ter ofloat
pacote configurado corretamente no preâmbulo:Exemplo
Se você deseja colocar a tabela na mesma página, seja no local exato ou pelo menos no topo da página (o que se encaixa melhor no mecanismo de látex), use os parâmetros
h
et
assim:Fontes: Overleaf.com
fonte
O que acontece se o texto mais tabelas mais texto não couberem em uma única página? Ao tentar forçar a composição dessa forma, é muito provável que você termine com páginas muito curtas; ou seja, como uma tabela não pode quebrar por padrão em uma página, ela será enviada para a próxima e deixará uma lacuna na página anterior. Você perceberá que nunca verá isso em um livro publicado.
O comportamento flutuante é uma coisa boa! Eu recomendo usar
[htbp]
como configuração padrão para todas as tabelas e figuras até que o documento esteja completo; só então deve pensar em ajustar seu posicionamento preciso.PS Leia o FAQ ; a maioria das outras respostas aqui são combinações parciais de conselhos dados lá.
fonte
[htbp]
em oposição a nada?[ht]
ao invés de[htbp]
Aqui está uma solução fácil, do Wikibooks :
Acabei de colocar
\FloatBarrier
antes e depois de cada mesa.fonte
Se você deseja ter duas tabelas próximas uma da outra, você pode usar: (com
float
pacote carregado)Cada um terá sua própria legenda e número. Outra opção é o
subfigure
pacote.fonte
Você pode adicionar isso ao seu preâmbulo e ajustar os valores conforme necessário:
Particularmente, a \ floatpagefraction pode ser de interesse.
fonte