2010-05-24 1 views
48

Sto provando a scrivere un breve documento con LaTeX e devo aggiungere una tabella con 3 colonne.Come codificare tabelle con celle multilinea

+-------------+-----------------+--------------------------------------+ 
| 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 | 
+-------------+-----------------+--------------------------------------+ 

Purtroppo non riesco a trovare l'idioma corretto per farlo.


ho provato:

\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} 

Ma LaTeX non fa alcuna interruzione di linea o la formattazione all'interno della cellula. Suppongo di doverlo dire per farlo .. Ma come?

+1

Domanda duplicata: http://stackoverflow.com/questions/2687033/multiple-lines-in-a-cell-of-a-table (la domanda ha un aspetto un po 'più generale). –

risposta

66

Utilizzare il descrittore p colonna:

Change

\begin{tabular}{lll} 

a

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

Per inserire esplicitamente line-break:

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

Ci sarebbe un modo per combinare p {} con uno degli altri descrittori di colonne?Significa, un modo per dire che la colonna che è p {5cm} dovrebbe essere lasciata, allineata a destra o al centro? – jja

+0

@jja come soluzione alternativa per allineare right in p {}, sto usando \ hfill all'inizio di ogni riga. – Frizi

2

Questa è la Ho trovato finora per i miei bisogni: Link here.

Si crea un nuovo comando che farà una tabella all'interno di una tabella in modo più corretto:

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

Quindi, se vogliono fare un'interruzione di linea forzata all'interno di una cella come qui:

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

si finirà con un codice come questo:

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 

allineamento orizzontale può essere controllato nel dichiarazione del nuovo comando, cambiando c @-l @ o r @

Tutto il merito va a egreg dal Tex forum

0

Ecco una risposta con alcuna codifica di fantasia. Scrivi le tue righe in righe separate. Ometti la \ hline per tutti tranne l'ultima riga (riga) È veloce e sporca ma, ehi, funziona e mi dà esattamente quello che voglio, per le tabelle semplici comunque. Stavo facendo pubblicità per andare su parabrezza di automobili. Ho 3 righe centrate in ogni cella

iTutor Grahamstown 
Mathematics Tutor 
0793296211 

Volevo questo ripetutamente nel mio tavolo. Ho appena lasciato \ hline per le prime due righe. Il multiplo \ hlines e '|' sono di rendere più facile il taglio della stampa.

\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} 

Spero che questo aiuti.