Com o seguinte código:
\documentclass[a4paper]{report}
\usepackage{lipsum}
\begin{document}
a
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Ord & Esplicito (Adam-Bashforth) & Implicito (Adam-Moulton) \\\hline
0 & & $y_{n+1}=y_n+hf_{n+1}$ Eulero implicito \\\hline
1 & $y_{n+1}=y_n+hf_n$, Eulero esplicito & $y_{n+1}=y_n+\frac{h}{2}(f_{n+1}+f_n)$ Greg-Nickolson \\\hline
2 & $y_{n+1}=y_n+\frac{h}{2}(2f_n-f_{n-1})$ & $y_{n+1}=y_n+\frac{h}{12}(5f_{n+1}+8f_n-f_{n-1})$ \\\hline
3 & $y_{n+1}=y_n+\frac{h}{12}(23f_n-16f_{n-1}+5f_{n-2})$ & \\\hline
\end{tabular}
\end{center}
\lipsum[1]
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Ord & Esplicito (Adam-Bashforth) & Implicito (Adam-Moulton) \\\hline
0 & & $y_{n+1}=y_n+hf_{n+1}$ Eulero implicito \\\hline
2 & $y_{n+1}=y_n+\frac{h}{2}(2f_n-f_{n-1})$ & $y_{n+1}=y_n+\frac{h}{12}(5f_{n+1}+8f_n-f_{n-1})$ \\\hline
3 & $y_{n+1}=y_n+\frac{h}{12}(23f_n-16f_{n-1}+5f_{n-2})$ & \\\hline
\end{tabular}
\end{center}
b
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Ord & Esplicito (Adam-Bashforth) & Implicito (Adam-Moulton) \\\hline
0 & & $y_{n+1}=y_n+hf_{n+1}$ Eulero implicito \\\hline
2 & $y_{n+1}=y_n+\frac{h}{2}(2f_n-f_{n-1})$ & $y_{n+1}=y_n+\frac{h}{12}(5f_{n+1}+8f_n-f_{n-1})$ \\\hline
\end{tabular}
\end{center}
c
\end{document}
Eu recebo:
Os exemplos me fazem suspeitar que o maior espaço vertical, que é o que me preocupa, se deve ao excesso \hbox
gerado pelas tabelas com maior espaço vertical (que fica entre o texto acima da tabela e a tabela). Por que isso acontece? Minha suspeita está certa?
Responder1
O espaço é obviamente causado pela mesa cheia demais e pode ser proveitoso entender o motivo. O que você vê como um excesso de espaço vertical é uma linha vazia.
Quando você faz \\
dentro center
você está fechando um parágrafo, então o efeito é reproduzível apenas
\documentclass{article}
\begin{document}
a
\begin{center}\tracingparagraphs=1
\vrule height 1pt depth 0pt width 1.2\textwidth % an overlong indivisible object
\end{center}
b
\end{document}
O \tracingparagraph=1
TeX reportará no .log
arquivo seus cálculos, que são
@firstpass
[]
@\penalty via @@0 b=0 p=0 d=100
@@1: line 1.2 t=100 -> @@0
@secondpass
[]
@\penalty via @@0 b=0 p=0 d=100
@@1: line 1.2 t=100 -> @@0
|
@\par via @@1 b=* p=-10000 d=*
@@2: line 2.3- t=100 -> @@1
A primeira passagem pelo parágrafo, que consiste apenas na caixa representada por, |
obviamente não é bem-sucedida. O []
bit representa a caixa de recuo (que tem 0pt de largura).
A segunda passagem mostra uma quebra viável no início do parágrafo ( @@0
, sempre presente, porque um novo parágrafo começa em uma nova linha) e depois uma penalidade (que é inserida pelo \item
comando inserido implicitamente por \begin{center}
). Esta penalidade fornece um ponto de quebra de linha, que é então usado porque permite que uma linha não muito cheia seja composta. No entanto, a regra excessivamente longa faz com que o TeX jogue a toalha.
Uma situação muito diferente é quando just \centering
é usado:
\documentclass{article}
\begin{document}
a
\begingroup\centering \tracingparagraphs=1
\vrule height 1pt depth 0pt width 1.2\textwidth
\par\endgroup
b
\end{document}
que relata
@firstpass
[]\OT1/cmr/m/n/10 a
@ via @@0 b=0 p=0 d=100
@@1: line 1.2 t=100 -> @@0
@secondpass
[]\OT1/cmr/m/n/10 a
@ via @@0 b=0 p=0 d=100
@@1: line 1.2 t=100 -> @@0
|
@\par via @@1 b=* p=-10000 d=*
@@2: line 2.3- t=100 -> @@1
Aqui nenhuma penalidade é adicionada ao parágrafo, então o único ponto de interrupção viável está no final. Nenhum “espaço vertical” (na verdade, uma linha vazia) é adicionado.
No entanto, para começar, você não deveria escrever linhas muito completas, então a discussão é apenas acadêmica.
Responder2
Presumo que o problema realmente decorra do center
meio ambiente, que se baseia trivlist
em uma abertura \item
. Quando a primeira “letra” do item é muito larga para caber na linha, o TeX insere uma quebra de linha. Solução sugerida:
\newenvironment{senter}{\par\centering\medskip}{\par\medskip}
Então use senter
em vez de center
. Altere \medskip
s para algo maior ou menor, se desejar.