Erro de borda de tabela com \ toprule \ midrule \ vspace [fechado]
Tenho uma tabela com fórmulas matemáticas e precisei usar comandos para aumentar as dimensões das células. No entanto, isso dificulta a formação de uma borda externa para as mesas. Como posso obter bordas perfeitas nessas tabelas?
TABELA 1
\begin{table}[h!]
\centering
\rowcolors{2}{white}{gray!20}
\resizebox{\textwidth}{!}{
\begin{tabular}{|cccc|}
\toprule
\rowcolor{white}
\textbf{AAAA} & \makecell{ \textbf{BBB} \\ \textbf{BBBB}} & \makecell{\textbf{CCCC} \\ \textbf{CCCCCC}} & \textbf{DDDDD} \\
\midrule
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\makecell{CCCCC \\ CCCCCC} & 380 & 1400 ou 2100 & \makecell{DDDDDDDDDD} \\
\midrule
\end{tabular}
}
\end{table}
MESA 2
\bgroup
\def\arraystretch{2.7}%
\begin{table}[!h]
\centering
\caption{Har}
\rowcolors{2}{white}{gray!20}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|ll|}
%\toprule
\hline
\multicolumn{1}{|l}{\textbf{BBBBBBBBBB}} &
\multicolumn{1}{l|}{\textbf{AAAAAAAAAA}} \\
\toprule
AAAAAAA
& $ f_1 = \sum_{i}\sum_{j} \left\{p(i,j)\right\}^2 $ \\
AAAAAAAA
& \vspace{.5ex}\makecell[|l]{$f_2 = \sum\limits_{n=0}^{N_g - 1} n^2 \left\{ \sum\limits_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\}$, where
$n = |i-j| $.}\\
AAAAAAAA
& \makecell[l]{$f_3 = \dfrac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}} $, where $\mu_{x}$, $\mu_{y}$, $\sigma_{x}$ \\ $\sigma_{y}$.}\\
AAAAAAAA
& $f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j)$\\
AAAAAAAA
& \vspace{.5ex} $f_5 = \sum_{i}\sum_{j}\dfrac{p(i,j)}{1+(i-j)^2}$\\
AAAAAAAAA
& $f_6 = \sum\limits_{i=2}^{2N_g}ip_{x+y}(i)$\\
AAAAAAAAA
& \vspace{.5ex} $f_7 = \sum\limits_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i)$\\
AAAAAAAAA
& \vspace{.5ex} $f_8 = -\sum\limits_{i=2}^{2N_g}p_{x+y}(i)log\left\{p_{x+y}(i)\right\}$ \\
AAAAAAAAA
& $f_9 = -\sum_{i}\sum_{j}p(i,j)log\left\{p(i,j)\right\}$\\
AAAAAAAAA
& \vspace{.5ex} $f_{10} = - \sum\limits_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i)$ \\
AAAAAAAAA
& \vspace{.5ex} $f_{11} = -\sum\limits_{i=0}^{N_g-1}p_{x-y}(i)log\left\{p_{x-y}(i)\right\}$\\
AAAAAAAAA
& \makecell[l]{$f_{14} = \sqrt{\text{...}}$\\
$Q(i,j)=\sum_{k}\dfrac{p(i,k)p(j,k)}{p_x(i)p_y(k)}$}\\
\midrule
\end{tabular}
}
\end{table}
\egroup
ATUALIZAÇÃO: Usando tabularx, estou tendo esse problema. Preciso de uma tabela mais compacta, não quero muitas linhas na última coluna. Não me importo se preciso diminuir o tamanho da fonte. Preciso de um efeito semelhante ao de quando uso \resizebox
Há muito espaço entre as colunas. Este espaço pode ser reduzido para não quebrar o texto da última coluna em tantas linhas.
\usepackage[table]{xcolor}
\usepackage{boldline, cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\addparagraphcolumntypes{C}
\begin{table}[h!]
\centering
\caption{Características dos conjuntos de dados formados.}
\label{quadro:conjuntosdados}
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|*{4}{SC}|}
\hlineB{2}
\rowcolor{white}
\textbf{Método} & \makecell{ \textbf{N. de} \\ \textbf{variáveis}} & \makecell{\textbf{N. de} \\ \textbf{amostras}} & \textbf{Descrição} \\
\hlineB{2}
Valores dos pixels s/ equalização & 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Valores dos pixels c/ equalização & 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Segmentação & 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Segmentação (maior região) & 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Máscara elíptica & 126 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Histograma & 64 & 1400 ou 2100 & Quant. de pixels em cada nível de cinza\\
Haralick & 56 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick reduzido & 14 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick duplo & 112 & 1400 ou 2100 & Valores dos descritores de textura \\
\makecell{Haralick e valores dos pixels \\com equalização} & 380 & 1400 ou 2100 & \makecell{Valores dos descritores de textura \\e nível de intensidade de cada pixel} \\
\hlineB{2}
\end{tabularx}
\end{table}
Eu gostaria de ter esse aspecto (em relação à quebra de linhas nas células). No entanto, preciso disso com as linhas das bordas externas.
Respostas
Edit: você não fornece MWE (Minimal Working Example), um documento pequeno, mas completo, com o qual podemos testar seus fragmentos de código. A pergunta não é muito clara, então o design da mesa é principalmente do meu gosto. Então, por favor, edite sua pergunta e esclareça o que são todos os problemas em suas mesas.
Agora eu adicionei a explicação de como é tratado o espaço vertical em torno do conteúdo das células, remova o espúrio \limits
deixado de seu código para a segunda tabela e adicione \nolimits (which you can remove, if you liked such form of
\ sum`)
- As regras definidas no
booktabs
pacote não se destinam ao uso em tabelas com linhas verticais. Em vez disso, você deve usar essas regras\hline
ou quando quiser ter regras de tabela com espessuras diferenteshlineB{<factor>}
definidas nosboldline
pacotes (usadas na primeira tabela) ouXhline{<thicknes>}
definidas nomakecell
pacote (usadas na segunda tabela). - Para obter mais espaço vertical em torno do conteúdo das células, você pode usar o pacote
cellspace
. Este espaço é definido por
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
- Se você achar que
5pt
é muito, você pode reduzi-lo para a quantidade desejada (em MWE agora é reduzido para 2pt) - O uso de
\resizebox
em tabelas não é recomendado porque com ele o tamanho da fonte usado na tabela é perdido. Melhor é usar o ambiente de mesa, embora você possa prescrever largura, por exemplo,tabular*
outabularx
conforme usado em ambos os MWEs abaixo.
A primeira mesa:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage{boldline, cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\addparagraphcolumntypes{C}
\begin{document}
\begin{table}[ht]
\centering
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|*{4}{SC}|}
\hlineB{2}
\textbf{AAAA}
& \makecell{\textbf{BBB} \\ \textbf{BBBB}}
& \makecell{\textbf{CCCC} \\ \textbf{CCCCCC}}
& \textbf{DDDDD} \\
\hlineB{1.5}
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\makecell{CCCCC \\ CCCCCC}
& 380 & 1400 or 2100 & DDDDDDDDDD \\
\hlineB{2}
\end{tabularx}
\end{table}
\end{document}
A segunda mesa:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage{cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\addparagraphcolumntypes{L}
\begin{document}
\begin{table}[ht]
\centering
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|Sl >{$\displaystyle}SL<{$}|}
\Xhline{1.2pt}
\textbf{BBBBBBBB}
& \textbf{AAAAAAAAAA} \\
\Xhline{0.8pt}
AAAAAAA & f_1 = \sum\nolimits_{i}\sum\nolimits_{j} \{p(i,j)\}^2 \\
AAAAAA & f_2 = \sum_{n=0}^{N_g - 1} n^2
\left\{\sum_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\},
\text{ where }
n = |i-j|. \\
AAAAAA & f_3 = \frac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}},
\text{ where }
\mu_{x}, \mu_{y}, \sigma_{x}, \sigma_{y} ? \\
AAAAAA & f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j) \\
AAAAAA & f_5 = \sum\nolimits_{i}\sum\nolimits_{j}\frac{p(i,j)}{1+(i-j)^2} \\
AAAAAA & f_6 = \sum_{i=2}^{2N_g}ip_{x+y}(i) \\
AAAAAA & f_7 = \sum_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i) \\
AAAAAA & f_8 = -\sum_{i=2}^{2N_g}p_{x+y}(i)\log\{p_{x+y}(i)\} \\
AAAAAA & f_9 = -\sum\nolimits_{i}\sum\nolimits_{j}p(i,j)\log\{p(i,j)\} \\
AAAAAA & f_{10} = - \sum_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i) \\
AAAAAA & f_{11} = - \sum_{i=0}^{N_g-1}p_{x-y}(i)\log\{p_{x-y}(i)\} \\
AAAAAA & \begin{aligned} f_{14} & = \sqrt{\text{...}} \\ Q(i,j) & =\sum_{k}\frac{p(i,k)p(j,k)}{p_x(i)p_y(k)} \end{aligned} \\
\Xhline{1.2pt}
\end{tabularx}
\end{table}
\end{document}
Termo aditivo:
- Deixe-me observar primeiro que é muito difícil ajudá-lo, já que você não nos ajuda a ajudá-lo. Você ainda fornece apenas fragmentos de código, apesar de eu pedir muitas vezes que estenda esses fragmentos para completar pequenos documentos. Ainda não sabemos nada sobre o layout do seu documento e pacotes usados.
- Familiarize-se mais com o LaTeX, especificamente com a escrita de tabelas. Pode haver um texto introdutório sobre LaTeX (por exemplo, livros Dickimaw ou Não tão curta introdução ao LaTeX ) e sobre como escrever tabelas com LaTeX ( wiki / tabelas ).
- Ler a documentação do pacote também é de grande ajuda.
Em relação à sua mesa real:
- Agora é, aparentemente, que você não precisa que todas as colunas tenham largura igual, então você não precisa ter todos do
X
tipo. - As colunas
X
quebram automaticamente o texto nas células em mais linhas, portanto, não há necessidade de usar o\makecell
texto interno para quebrar manualmente. Ainda mais, seu uso causa seus problemas porque quebrar manualmente o texto pf não é adequado - conseqüentemente, o texto sai da tabela. - Os números na segunda coluna são (para meu gosto) mais agradáveis se estiverem alinhados à direita e centralizados na coluna. Isso pode ser feito pelo uso do
S
tipo de coluna definido nosiunitx
pacote. - Usando
siunitx
package require para redefinir o especificador de colunas definido nocellspace
package do padrão paraS
algum outro. No MWE abaixo eu selecionoO
para isso.
O MWE sugerido para esta nova tabela é:
\documentclass[a4paper]{article}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage[column=O]{cellspace}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash\hsize=#1\hsize}X}
\addparagraphcolumntypes{L}
\usepackage{siunitx}
\begin{document}
\begin{table}[ht]
\centering
\caption{Características dos conjuntos de dados formados.}
\label{quadro:conjuntosdados}
\renewcommand\tabularxcolumn[1]{m{#1}}
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|O{L{0.8}}
S[table-format=3.0]
c
O{L{1.2}}|}
\Xhline{1.2pt}
\rowcolor{white}
\thead{Método}
& {\thead{N. de\\ variáveis}}
& \thead{N. de\\ amostras}
& \thead{Descrição} \\
\Xhline{0.8pt}
Valores dos pixels s/ equalização
& 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Valores dos pixels c/ equalização
& 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Segmentação
& 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Segmentação (maior região)
& 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Máscara elíptica
& 126 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Histograma
& 64 & 1400 ou 2100 & Quant. de pixels em cada nível de cinza \\
Haralick
& 56 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick reduzido
& 14 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick duplo
& 112 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick e valores dos pixels com equalização
& 380 & 1400 ou 2100 & Valores dos descritores de textura e nível de intensidade de cada pixel \\
\Xhline{1.2pt}
\end{tabularx}
\end{table}
\end{document}
Aqui está o que você pode fazer com {NiceTabular}
de nicematrix
.
\documentclass{article}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{nicematrix}
\begin{document}
\begin{table}[h!]
\centering
\begin{NiceTabular}{|cccc|}[code-before=\rowcolors{2}{}{gray!20}]
\toprule
\textbf{AAAA} & \Block{}{ \textbf{BBB} \\ \textbf{BBBB}} & \Block{}{\textbf{CCCC} \\ \textbf{CCCCCC}} & \textbf{DDDDD} \\
\midrule
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\Block{}{CCCCC \\ CCCCCC} & 380 & 1400 ou 2100 & DDDDDDDDDD \\
\midrule
\end{NiceTabular}
\end{table}
\begin{table}[!ht]
\centering
\caption{Har}
\begin{NiceTabular}{|ll|}[code-before = \rowcolors{2}{}{gray!20},cell-space-top-limit=1ex,cell-space-bottom-limit=1ex]
%\toprule
\hline
\Block[l]{}{\textbf{BBBBBBBBBB}} &
\Block[l]{}{\textbf{AAAAAAAAAA}} \\
\toprule
AAAAAAA
& $ f_1 = \sum_{i}\sum_{j} \left\{p(i,j)\right\}^2 $ \\
AAAAAAAA
&\Block[l]{}{$f_2 = \sum\limits_{n=0}^{N_g - 1} n^2 \left\{ \sum\limits_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\}$, where
$n = |i-j| $.}\\
AAAAAAAA
& \Block[l]{}{$f_3 = \dfrac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}} $, \\
where $\mu_{x}$, $\mu_{y}$, $\sigma_{x}$ and $\sigma_{y}$ are...}\\
AAAAAAAA
& $f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j)$\\
AAAAAAAA
& $f_5 = \sum_{i}\sum_{j}\dfrac{p(i,j)}{1+(i-j)^2}$\\
AAAAAAAAA
& $f_6 = \sum\limits_{i=2}^{2N_g}ip_{x+y}(i)$\\
AAAAAAAAA
& $f_7 = \sum\limits_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i)$\\
AAAAAAAAA
& $f_8 = -\sum\limits_{i=2}^{2N_g}p_{x+y}(i)\log\left\{p_{x+y}(i)\right\}$ \\
AAAAAAAAA
& $f_9 = -\sum_{i}\sum_{j}p(i,j)\log\left\{p(i,j)\right\}$\\
AAAAAAAAA
& $f_{10} = - \sum\limits_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i)$ \\
AAAAAAAAA
& $f_{11} = -\sum\limits_{i=0}^{N_g-1}p_{x-y}(i)\log\left\{p_{x-y}(i)\right\}$\\
AAAAAAAAA
& \Block[l]{}{$f_{14} = \sqrt{\text{...}}$\\
$Q(i,j)=\sum_{k}\dfrac{p(i,k)p(j,k)}{p_x(i)p_y(k)}$}\\
\midrule
\end{NiceTabular}
\end{table}
\end{document}
Você precisa de várias compilações (porque nicematrix
usa nós PGF / Tikz).