Come tabelle di codice con celle multi-linea
Domanda
Sto cercando di scrivere una breve carta con LaTeX e necessità di aggiungere una tabella con 3 colonne.
+-------------+-----------------+--------------------------------------+
| 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 posso sembrare trovare il linguaggio giusto 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 alcun interruzioni di linea o la formattazione all'interno della cellula. Presumo che ho bisogno di dire di farlo .. Ma come?
Soluzione
Utilizzare il descrittore di colonna p
:
Cambia
\begin{tabular}{lll}
a
\begin{tabular}{llp{5cm}}
Per esplicitamente inserto interruzioni di linea:
CCCCCCCC & DDDD & \parbox{5cm}{Betty Botter Thought: \\ If I Put This Bitter Butter in My Batter it Will Make My Batter Bitter}
Altri suggerimenti
Questa è la risposta che ho trovato finora per le mie esigenze: link qui .
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]{@{}c@{}}#2\end{tabular}}
Quindi, se vogliamo 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à per utilizzando 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 nella dichiarazione del nuovo comando cambiando c @ per l @ o r @
Come @aioobe ha scritto nella sua risposta, in questo caso si può passare dalla allineamento a sinistra
\begin{tabular}{lll}
per il comma di allineamento, almeno nella terza colonna in cui l'interruzione di riga personalizzato deve essere inserito manualmente:
\begin{tabular}{llp{.5\textwidth}}
Dopo questa modifica, si può usare il comando \par
(invece di \newline
) per implementare l'interruzione di riga all'interno della cella.
Il codice:
\documentclass{article}
\begin{document}
\begin{tabular}{llp{.5\textwidth}}
AAAAAAAAAA & BBBBBBBBBBBBBBB & Betty Botter Bought a Bit of Butter \par but the Butter's Bitter\\
CCCCCCCC & DDDD & Betty Botter Thought: \par If I Put This Bitter Butter in My \par Batter it Will Make My Batter Bitter\\
\end{tabular}
\end{document}
produce l'output richiesto:
Ecco una risposta con codifica senza fantasia. Scrivi i tuoi file in righe separate. Omettere il \ hline per tutti, ma l'ultima riga (linea) Il suo rapido e sporco, ma, ehi, funziona e mi dà esattamente quello che voglio, per le tabelle semplici comunque. Stavo facendo la pubblicità per andare sui parabrezza di automobili. Ho 3 centrato righe in ogni cella
iTutor Grahamstown
Mathematics Tutor
0793296211
ho voluto questo modo ripetitivo nel mio tavolo. Ho appena lasciato il \ hline per le prime due file. Il multiplo \ hlines e '|' sono a fare tagliando la stampa più 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}
Spero che questo aiuti.