2010-09-10 7 views
10

Existe-t-il un moyen d'avoir une table dans LaTeX qui s'étend sur plusieurs pages en largeur plutôt qu'en longueur? Autant que je sache, longtable et supertabulaire vont casser des tables sur plusieurs pages, mais seulement en cassant entre les lignes et j'ai besoin de casser entre les colonnes. Mieux encore, s'il était possible de répéter quelques colonnes sur chaque page.Des tables très larges dans LaTeX

+7

Recommander cette question à déplacer http://tex.stackexchange.com/ –

+2

Trouver une solution sur [tex.stackexchange.com] [1]. [1]: http://tex.stackexchange.com/questions/93808/column-wise-break-of-extra-wide-tables –

+2

Je vote pour fermer cette question hors sujet parce qu'il y a un site entier dédié à ceci: [tex.se] (trop vieux pour migrer). – Werner

Répondre

0

Je me suis arraché les cheveux avec ce même problème pendant une semaine. Je pense que cela n'est peut-être pas entièrement possible d'une manière non hacky.

Une solution possible hackly est d'utiliser le paquet dpfloat: http://www.ctan.org/tex-archive/help/Catalogue/entries/dpfloat.html

Malheureusement, vous seriez en train de créer plusieurs tables et les casser manuellement, mais le résultat final au moins devrait regarder bien. En outre, cela semblera beaucoup mieux si vous abandonnez les règles verticales dans vos tables selon les instructions sages du paquet booktabs (que vous devrez google car apparemment, en tant que nouvel utilisateur, je n'ai pas assez de réputation pour poster un lien) au manuel pdf de booktabs).

+0

Je le veux vraiment le faire automatiquement, mais peut-être devrais-je me résigner à le faire manuellement. J'ai pensé (comme je prévois de générer le fichier tex avec Python) d'écrire les colonnes comme des lignes, en tournant chaque cellule et en utilisant longtable ou supertabulaire, mais cela semble encore un peu fou et frustrant inélégant. – hoyland

0

J'utilise ce pas agréable et le code configuré manuellement pour diviser un tableau trop large:

\usepackage{tikz} 

\newsavebox{\boxFinal} 
\begin{lrbox}{\boxFinal} 
    \scalebox{0.6}{ 
    \begin{tabular}{...} 
... 
    \end{tabular} 
    } 
\end{lrbox} 

\begin{table}[htb] 
    \centering 
    \begin{tikzpicture} 
    \clip (0,-\dp\boxFinal) rectangle (0.5\wd\boxFinal,\ht\boxFinal); 
    \pgftext[left,base]{\usebox{\boxFinal}}; 
    \end{tikzpicture} 
    \label{table_test1}\caption{Part 1 of 2.} 
\end{table} 

\begin{table}[htb] 
    \centering 
    \begin{tikzpicture} 
    \clip (0.5\wd\boxFinal,-\dp\boxFinal) rectangle 
     (\wd\boxFinal,\ht\boxFinal); \pgftext[left,base]{\usebox{\boxFinal}}; 
    \end{tikzpicture} 
    \label{table_test2}\caption{Part 2 of 2.} 
\end{table} 

Il est généralement nécessaire de décalages fendus de corriger manuellement. Vous pouvez le faire en ajoutant ou en soustrayant 0.5 \ wd \ boxFinal valeur.

L'idée a été de http://www.latex-community.org/forum/viewtopic.php?f=5&t=2867

0

Une bonne solution serait de faire tourner toute la table 90 degrés vers la gauche, ayant donc plus de place pour elle.

Préambule \usepackage{pdflscape}

\newpage 
\thispagestyle{empty} 
\begin{landscape} 
\begin{table} 
... 
\end{table} 
\end{landscape} 
Questions connexes