web-dev-qa-db-fra.com

Centrer un tableau plus large que la colonne de texte

J'inclus un tableau dans mon document LaTeX et le centrage fonctionne bien si le tableau n'est pas plus large que la colonne de texte au-dessus, mais lorsque le tableau est plus large, le côté gauche du tableau reste collé au côté gauche du texte et la largeur supplémentaire du tableau se trouve sur le côté droit de la page, comment puis-je centrer le tableau?

37
Zequj

Je recommanderais d'essayer le package chngpage .

\documentclass{article}

% allows for temporary adjustment of side margins
\usepackage{chngpage}

% provides filler text
\usepackage{lipsum}

% just makes the table prettier (see \toprule, \bottomrule, etc. commands below)
\usepackage{booktabs}

\begin{document}

\lipsum[1]% just a paragraph of filler text

\medskip% adds some space before the table
\begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch
  \begin{tabular}{ll}
    \toprule
    Sequence & Wide column \\
    \midrule
    First & Vestibulum porta ultricies felis. In nec mi. \\
    Second & Nam vestibulum auctor nibh. In eleifend, 
    lacus id tristique ullamcorper, mauris urna convallis elit. \\
    Third & Ut luctus nisi quam lobortis magna. Aenean sit amet odio 
   et sapien rutrum lobortis. \\ 
    Fourth & Integer dictum accumsan purus. Nullam erat ligula,
    dictum sed, feugiat nec, faucibus id, ipsum. \\
    \bottomrule
  \end{tabular}
\end{adjustwidth}
\medskip% adds some space after the table

\noindent\lipsum[2]% just a paragraph of filler text

\end{document}

La documentation du package chngpage se trouve en bas du chngpage.sty fichier. J'ai sorti les documents pour l'environnement adjustwidth:

Dans un environnement de largeur de réglage, les marges gauche et droite peuvent être ajustées. L'environnement prend un argument facultatif et deux arguments de longueur requis:

\begin{adjustwidth}[]{leftmargin}{rightmargin}

A positive length value will increase the relevant margin

(raccourcissement des lignes de texte) tandis qu'une valeur de longueur négative diminuera la marge (allongement des lignes de texte). Un argument de longueur vide signifie aucune modification de la marge. À la fin de l'environnement, les marges retrouvent leurs valeurs d'origine.

Par exemple, pour étendre le texte dans la marge de droite:

\begin{adjustwidth}{}{-8em}

Toute apparence de l'argument facultatif (même juste []) fera basculer les valeurs des marges entre les pages paires et impaires.

Si le document est défini sur deux faces, il peut être avantageux d'avoir un texte plus large s'étendant dans la marge extérieure. Cela pourrait être fait via l'argument facultatif, comme:

\begin{adjustwidth}[]{}{-8em}

Pour que le texte ajusté soit centré horizontalement par rapport à tout texte environnant, les marges doivent être ajustées également:

\begin{adjustwidth}{-4em}{-4em}

33
godbyk

Si vous utilisez un flotteur\table, le\begin {adjustwidth} ...\end {adjustwidth} doit être contenu à l'intérieur.

16
db.

Latex: table de centrage plus grande que la largeur du texte

Habituellement, vous pouvez centrer les tables avec\center. Mais lorsque la table est plus longue que la\textwidth, elle sera alignée avec la marge gauche. Vous pouvez temporairement ajuster la largeur du texte.

% allows for temporary adjustment of side margins
\usepackage{chngpage}

\begin{table}
    \begin{adjustwidth}{-.5in}{-.5in}  
        \begin{center}
        \begin{tabular}{|c|}
            \hline
And here comes a very long line. And here comes a very long line. And here comes a very long line.  \\
            \hline
        \end{tabular} 

        \caption{This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. }
        \label{myTable}
        \end{center}
    \end{adjustwidth}
\end{table}
16
user835611

Dans les figures, l'environnement de la figure doit contenir le adjustwidth env. De plus, caption doit être laissé en dehors de cet environnement pour s'aligner avec la largeur globale de la figure:

\begin{figure}[h]
  \begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch
    \centering
    \includegraphics[scale=0.44]{res/sth.png}
  \end{adjustwidth}
  \caption{sth}
  \label{fig:sth}
\end{figure}
3
juanmirocks

Utilisez-vous un document à plusieurs colonnes? Je pense donc au table* environnement variant.

Dans un environnement à colonne unique, vos options s'exécutent sur:

  • Augmentez le textwidth. Mais la marge par défaut a été choisie pour de bonnes raisons ergonomiques, il faut donc la décourager au-delà d'un ajustement minimal.
  • Réduisez la taille du texte dans le tableau (c'est-à-dire \small ou même \footnotesize dans l'environnement tabular). Encore une fois, ce n'est pas optimal.
  • Utilisez le rotating package comme suggéré dans le lien que Stephan202 a donné . J'ai utilisé cela pour quelques très grandes tables dans ma dissertation (avec seulement les options de positionnement p) et cela est très bien sorti.
1
dmckee