2010-05-24 5 views
48

J'essaye d'écrire un court article avec LaTeX et j'ai besoin d'ajouter une table avec 3 colonnes.Comment coder des tables avec des cellules multi-lignes

+-------------+-----------------+--------------------------------------+ 
| AAAAAAAAAA | BBBBBBBBBBBBBBB | Betty Botter Bought a Bit of Butter | 
|    |     | but the Butter's Bitter    | 
+-------------+-----------------+--------------------------------------+ 
| CCCCCCCC | DDDD   | Betty Botter Thought:    | 
|    |     | If I Put This Bitter Butter in My | 
|    |     | Batter it Will Make My Batter Bitter | 
+-------------+-----------------+--------------------------------------+ 

Malheureusement je n'arrive pas à trouver l'idiome correct pour le faire.


J'ai essayé:

\begin{tabular}{lll} 
    AAAAAAAAAA & BBBBBBBBBBBBBBB & Betty Botter Bought a Bit of Butter but 
    the Butter's Bitter \\ 
    CCCCCCCC & DDDD & Betty Botter Thought: \newline If I Put This Bitter Butter in My Batter it Will Make My Batter Bitter 
\end{tabular} 

Mais LATEX ne fait pas de sauts de ligne ou la mise en forme dans la cellule. Je suppose que j'ai besoin de le dire pour le faire .. Mais comment?

+1

Question en double: http://stackoverflow.com/questions/2687033/multiple-lines-in-a-cell-of-a-table (cette question est un peu plus générale). –

Répondre

66

Utilisez le descripteur de colonne p:

changement

\begin{tabular}{lll} 

à

\begin{tabular}{llp{5cm}} 

Pour insérer explicitement des sauts de ligne:

CCCCCCCC & DDDD & \parbox{5cm}{Betty Botter Thought: \\ If I Put This Bitter Butter in My Batter it Will Make My Batter Bitter} 
+5

Serait-il possible de combiner p {} avec l'un des autres descripteurs de colonne?C'est-à-dire, une façon de dire que la colonne p {5cm} doit être alignée à gauche, à droite ou au centre? – jja

+0

@jja comme solution de contournement pour align-right à l'intérieur de p {}, j'utilise \ hfill au début de chaque ligne. – Frizi

2

C'est le J'ai trouvé jusqu'ici pour mes besoins: Link here.

Il crée une nouvelle commande qui fera une table à l'intérieur d'une table d'une manière plus appropriée:

\newcommand{\specialcell}[2][c]{% 
\begin{tabular}[#1]{@{}[email protected]{}}#2\end{tabular}} 

Donc, si vous voulez faire un saut de ligne forcée dans une cellule comme ici:

\begin{tabular}{|c|c|c|} 
\hline 
Foo bar & Foo <forced line break here> bar & Foo bar \\ 
\hline 
\end{tabular} 

Vous terminerez en utilisant un code comme ceci:

Foo bar & \specialcell{Foo\\bar} & Foo bar \\ % vertically centered 
Foo bar & \specialcell[t]{Foo\\bar} & Foo bar \\ % aligned with top rule 
Foo bar & \specialcell[b]{Foo\\bar} & Foo bar \\ % aligned with bottom rule 

alignement horizontal peut être contrôlé dans la déclaration de la nouvelle commande en changeant c @-l @ ou r @

Tout le crédit va à egreg de la Tex forum

0

Voici une réponse sans codage de fantaisie. Écrivez vos lignes dans des lignes séparées. Omettre le \ hline pour tout sauf la dernière ligne (ligne) C'est rapide et sale mais, bon, ça marche et ça me donne exactement ce que je veux, pour des tables simples quand même. Je faisais de la publicité pour aller sur les pare-brise des automobiles. J'ai 3 rangées centrées dans chaque cellule

iTutor Grahamstown 
Mathematics Tutor 
0793296211 

Je voulais cela de façon répétitive dans mon tableau. Je viens de laisser tomber le \ hline pour les deux premières lignes. Les multiples \ hlines et '|' sont de faire découper l'impression plus facile.

\begin{tabular}{||c||c||c||c||} 
\hline\hline 

iTutor Grahamstown &iTutor Grahamstown&iTutor Grahamstown &iTutor Grahamstown \\ %No \hline 

Mathematics Tutor & Mathematics Tutor & Mathematics Tutor&Mathematics Tutor \\ %No \hline 

0793296211 & 0793296211 & 0793296211 & 0793296211\\ \hline\hline\hline %\hline now 


\end{tabular} 

J'espère que cela aide.

Questions connexes