Erreur de bordure de table avec \ toprule \ midrule \ vspace [fermé]
J'ai un tableau avec des formules mathématiques et j'avais besoin d'utiliser des commandes pour augmenter les dimensions des cellules. Cependant, cela empêche la formation d'une frontière extérieure pour les tables. Comment puis-je obtenir des bordures sans défaut sur ces tables?
TABLEAU 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}

TABLEAU 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

MISE À JOUR: En utilisant tabularx, je rencontre ce problème. J'ai besoin d'un tableau plus compact, je ne veux pas beaucoup de lignes dans la dernière colonne. Je m'en fiche si j'ai besoin de réduire la taille de la police. J'ai besoin d'un effet similaire à lors de l'utilisation \resizebox
Il y a beaucoup d'espace entre les colonnes. Cet espace pourrait être réduit afin de ne pas casser le texte de la dernière colonne en autant de lignes.
\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}

J'aimerais avoir cet aspect (par rapport à la rupture des lignes dans les cellules). Cependant j'en ai besoin avec les lignes des bords extérieurs.

Réponses
Edit: vous ne fournissez pas MWE (Minimal Working Example), un petit mais complet document, avec lequel nous pouvons tester vos fragments de code. La question n'est pas très claire, donc la conception de la table est principalement à mon goût. SO, veuillez modifier votre question et clarifier, quels sont tous les problèmes à vos tables.
Maintenant, j'ai ajouté une explication sur la façon dont est géré l'espace vertical autour du contenu des cellules, supprimez les faux restes \limits
de votre code pour la deuxième table et ajoutez \nolimits (which you can remove, if you liked such form of
\ sum`)
- Les règles définies dans le
booktabs
package ne sont pas destinées à être utilisées dans un tableau avec des lignes verticales. Au lieu de cela, vous devez utiliser ces règles\hline
ou lorsque vous souhaitez avoir des règles de table d'épaisseur différentehlineB{<factor>}
définies lesboldline
packages (utilisés dans le premier tableau) ouXhline{<thicknes>}
définis dans lemakecell
package (utilisé dans le deuxième tableau). - Pour plus d'espace vertical autour du contenu des cellules, vous pouvez utiliser le package
cellspace
. Cet espace est défini par
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
- Si vous trouvez que
5pt
c'est trop, vous pouvez le réduire à la quantité souhaitée (en MWE est maintenant réduit à 2pt) - L'utilisation de
\resizebox
at tables n'est pas recommandée car avec son utilisation, la taille de police utilisée dans la table est perdue. Mieux vaut utiliser l'environnement de table, que vous pouvez prescrire la largeur, par exempletabular*
outabularx
tel qu'utilisé dans les deux MWE ci-dessous.
Le premier tableau:

\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}
Le deuxième tableau:

\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}
Addenda:
- Permettez-moi d'abord de noter, qu'il est très difficile de vous aider puisque vous ne nous aidez pas à vous aider. Vous ne fournissez toujours que des fragments de code même si je vous demande plusieurs fois d'étendre ces fragments pour compléter un petit document. Nous ne savons toujours rien de la mise en page de vos documents et des packages utilisés.
- Veuillez vous familiariser avec LaTeX, en particulier avec l'écriture de tableaux. Il existe peut-être un texte d'introduction sur LaTeX (par exemple des livres de Dickimaw ou une introduction pas si courte à LaTeX ) et sur l'écriture de tableaux avec LaTeX ( wiki / tables ).
- La lecture de la documentation du paquet est également d'une grande aide.
Concernant votre vraie table:
- Il est apparemment maintenant que vous n'avez pas besoin que toutes les colonnes aient la même largeur, vous n'avez donc pas besoin d'avoir toutes le
X
type. - Les colonnes
X
divisent automatiquement le texte des cellules en plusieurs lignes, il n'est donc pas nécessaire de les utiliser à l'\makecell
intérieur avec le texte de rupture manuelle. De plus, leur utilisation rend vos problèmes parce que votre texte pf de rupture manuelle n'est pas adéquat - par conséquent, le texte déborde du tableau. - Les nombres dans la deuxième colonne sont (à mon goût) plus agréables s'ils sont alignés à droite et centrés dans la colonne. Cela peut être dona en utilisant le
S
type de colonne défini dans lesiunitx
package. - L'utilisation de
siunitx
package nécessite de redéfinir le spécificateur de colonnes défini dans lecellspace
package par défaut ou par défautS
. Dans MWE ci-dessous, je sélectionneO
pour cela.
Le MWE suggéré pour cette nouvelle table est:
\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}

Voici ce que vous pouvez faire avec {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}
Vous avez besoin de plusieurs compilations (car nicematrix
utilise des nœuds PGF / Tikz).

