Corriger un tableau qui dépasse de la page dans Overleaf.
Les tableaux LaTeX dépassent souvent des marges car les types de colonnes standard comme l, c et r ne renvoient pas le texte automatiquement. Vous pouvez résoudre ce problème proprement avec des colonnes à retour automatique via tabularx, en réduisant les marges internes ou en utilisant une orientation paysage sans altérer la taille de la police.
La réponse courte : remplacez tabular par tabularx et utilisez des colonnes X pour le texte devant être renvoyé. Si le tableau contient de nombreuses colonnes numériques étroites, réduisez l'espacement par défaut avec \setlength{\tabcolsep}{4pt} ou faites pivoter le tableau en mode paysage avec sidewaystable.
Identifier la cause du dépassement
Les tableaux dépassent la marge droite pour des raisons structurelles précises. Utilisez ce guide pour choisir la solution adaptée plutôt que de deviner.
| Symptôme | Cause sous-jacente | Solution recommandée |
|---|---|---|
| Une colonne s'étire bien au-delà de la marge | Phrases dans des colonnes de type l, c ou r |
1. Renvoi automatique du texte avec tabularx ou colonnes p
Les spécificateurs de colonne LaTeX standard traitent le contenu des cellules comme une ligne unique. Lorsqu'une cellule contient une phrase complète, LaTeX la compose sur un axe horizontal unique qui pousse les colonnes suivantes au-delà de la marge droite.
Le remède le plus propre est le package tabularx. Il introduit le spécificateur de colonne X, qui s'étend pour remplir la largeur de texte restante tout en renvoyant automatiquement les longues phrases sur plusieurs lignes. Si vous avez besoin de largeurs exactes, spécifiez des dimensions fixes avec p{width}.
Exemples de code pour le renvoi de colonnes
Calcul automatique de la largeur avec tabularx
Définissez la largeur du tableau sur \textwidth. Le spécificateur X calcule l'espace restant après l'ajustement des colonnes standard et renvoie le texte sur plusieurs lignes.
\usepackage{tabularx} \begin{table}[htbp] \centering \begin{tabularx}{\textwidth}{l X X} \hline Method & Description & Expected Result \\ \hline Baseline & Standard model without data augmentations applied & Stable convergence \\ Proposed & Mixed training routine using synthetic datasets & Lower error rate \\ \hline \end{tabularx} \end{table}Renvoi à largeur fixe avec les colonnes p
Si vous ne souhaitez pas importer tabularx, utilisez p{width} dans un environnement tabular standard. Ajoutez le package array pour aligner le texte à gauche plutôt que de le justifier maladroitement dans des cellules étroites.
\usepackage{array} \begin{tabular}{l >{\raggedright\arraybackslash}p{6cm} r} \hline Item & Description & Cost \\ \hline Service & Cloud compute hours including storage backups & $120 \\ \hline \end{tabular}
2. Réduire les espaces blancs et les en-têtes
Lorsque les tableaux dépassent de seulement 10 à 30 points, des ajustements typographiques simples ramèneront le tableau dans les marges sans modifier la structure.
Réduire l'espacement entre colonnes avec tabcolsep
LaTeX ajoute par défaut 6pt d'espace blanc horizontal de chaque côté de chaque colonne. Dans un tableau à dix colonnes, cet espacement représente 120pt. Réduisez-le dans l'environnement du tableau pour resserrer l'espacement.
\begin{table}[htbp] \centering \setlength{\tabcolsep}{3.5pt} % Default is 6pt \begin{tabular}{llllllll} \hline ... & ... & ... & ... & ... & ... & ... & ... \\ \hline \end{tabular} \end{table}Diviser les en-têtes sur plusieurs lignes avec makecell
Les colonnes de données avec de petits nombres s'étirent souvent car leurs en-têtes sont longs. Le package makecell permet d'insérer des sauts de ligne manuels dans les en-têtes individuels.
\usepackage{makecell} % In your table row: \makecell{Average\\Runtime (s)} & \makecell{Peak Memory\\Usage (MB)} & \makecell{Final\\Accuracy (\%)}Ajuster la taille de la police localement
Réduisez légèrement la taille du texte du tableau en plaçant \small ou \footnotesize dans l'environnement du tableau. N'appliquez jamais cela globalement. Gardez la déclaration de taille strictement limitée au flottant.
\begin{table}[htbp] \centering \small \begin{tabular}{lllll} \hline ... \\ \hline \end{tabular} \end{table}
3. Gérer les tableaux larges dans les documents à deux colonnes et paysage
Les tableaux scientifiques complexes contiennent souvent trop de données pour tenir dans une seule colonne ou page portrait. Utilisez la structure du document pour accorder plus d'espace au tableau.
Couvrir les deux colonnes dans les documents à deux colonnes
Si vous écrivez pour une revue IEEE, ACM ou Elsevier dans un modèle à deux colonnes, les tableaux standard sont limités à \columnwidth. Utilisez table* pour couvrir les deux colonnes sur toute la largeur de la page.
\begin{table*}[t] \centering \begin{tabular}{llllllllll} \hline Trial & Metric A & Metric B & Metric C & Metric D & Metric E & Metric F & Metric G \\ \hline ... \\ \hline \end{tabular*} \end{table*}Faire pivoter le tableau en mode paysage
Pour les jeux de données exceptionnellement larges, faites pivoter le tableau de 90 degrés en utilisant sidewaystable du package rotating. La légende et le tableau pivotent ensemble, laissant l'orientation de la page intacte.
\usepackage{rotating} \begin{sidewaystable} \centering \caption{Broad experimental results across all sample sites} \begin{tabular}{llllllllllll} \hline ... \\ \hline \end{tabular} \end{sidewaystable}Faire pivoter toute la page PDF
Si vous souhaitez que le lecteur PDF affiche la page en format horizontal, enveloppez le tableau dans le package pdflscape au lieu de ne faire pivoter que le flottant.
\usepackage{pdflscape} \begin{landscape} \begin{table}[htbp] \centering \begin{tabular}{llllllllllll} \hline ... \\ \hline \end{tabular} \end{table} \end{landscape}
4. La solution moderne : tabularray
Le package plus récent tabularray remplace les anciennes astuces tabular par une syntaxe cohérente. Il sépare le formatage des données, gère le renvoi automatique avec les colonnes X nativement et permet un alignement vertical et horizontal direct sans charger array ou makecell.
Il fonctionne également parfaitement dans les longs tableaux qui doivent s'étendre sur plusieurs pages verticales tout en conservant des largeurs de colonne délimitées.
Écrire un tableau propre avec tabularray
Tableau tabularray de base
Spécifiez la largeur totale avec width=\textwidth et assignez les colonnes de renvoi avec X. Vous pouvez ajouter des marqueurs d'alignement entre crochets, comme X[2,l] pour une colonne prenant deux fois la largeur proportionnelle et alignée à gauche.
\usepackage{tabularray} \begin{table}[htbp] \centering \begin{tblr}{ width = \textwidth, colspec = {l X[2,l] X[1,c] r}, hlines, } ID & Experiment Notes & Status & Score \\ 1 & Initial run showed minor calibration divergence & Validated & 94.2 \\ 2 & Repeated with temperature control enabled & Complete & 98.7 \\ \end{tblr} \end{table}
Pourquoi resizebox devrait être votre dernier recours
De nombreux forums recommandent d'envelopper les tableaux récalcitrants dans \resizebox{\textwidth}{!}{...}. Bien que cela force le tableau à tenir entre les marges, cela produit des problèmes typographiques graves.
Resizebox met à l'échelle le tableau comme un graphique vectoriel arbitraire plutôt que de formater le texte. Les polices rétrécissent à des tailles incohérentes, les lignes horizontales deviennent trop fines et les nombres deviennent souvent illisibles. Les éditeurs rejettent fréquemment les articles avec des tableaux mis à l'échelle.
Réservez \resizebox strictement aux soumissions d'urgence lorsque la date limite est proche. Pour les publications finales, renvoyez les longues phrases avec tabularx ou réduisez l'espacement systématiquement.
Questions
Pourquoi mon tableau dépasse-t-il la marge droite dans Overleaf ?
Les colonnes de tableau LaTeX définies sur l, c ou r ne renvoient pas les lignes. Tout texte saisi reste sur une seule ligne horizontale continue, poussant le bord du tableau hors de la page si le texte est plus long que la largeur restante.
Comment faire en sorte que le texte soit renvoyé automatiquement dans les cellules ?
Chargez le package tabularx et remplacez tabular par tabularx{\textwidth}{...}. Utilisez le spécificateur de colonne X pour toute colonne contenant des phrases descriptives. LaTeX calculera alors la largeur restante et coupera les lignes naturellement.
Puis-je utiliser resizebox pour corriger rapidement un tableau large ?
Essayez votre propre article dans Texeno.
Commencez gratuitement, importez un projet en .zip et cliquez sur Recompiler. Passez à une offre payante quand il vous faut des compilations plus longues.
Commencer à écrire