Salve a tutti, vorrei porre un problema che sembra che nessun utilizzatore di LaTeX si sia mai posto (probabilmente perché è una cosa banalissima, almeno spero). Devo costruire delle tabelle in cui i bordi verticali non coprono tutta la lunghezza della tabella, ma solo una limitata area. Detto così sembra complicato, in realtà l’idea è molto semplice.
Immaginate una struttura tabellare nella quale non è evidenziata nessuna linea che suddivide le celle. Ora immaginate di prendere una porzione di celle all’interno della tabella, l’una adiacente all’altra, ad es. un quadrato costituito da 2×2 celle. Vogliamo circondare questo quadrato da un bordo. Ad esempio:
cella01 cella02 cella03 cella04
cella05 cella06 cella07 cella08
cella09 cella10 cella11 cella12
cella13 cella14 cella15 cella 16Prendiamo il quadrato costituito dalle celle 06, 07, 10 e 11, e proviamo a circondarlo da un bordo. Come agiamo?
Dobbiamo creare 2 linee orizzontali e 2 verticali. Sinchè dobbiamo fare le orizzontali non c’è problema, c’è il comando \cline (se così si chiama, ora non ricordo esattamente). Ma… per le veticali??????Potremmo indicare a tabular il parametro {c|cc|c} ma, così facendo, le linee verticali sarebbero disposte su tutta l’altezza della tabella. Io invece voglio che la linea verticale vada solo da cella06 a cella10 e non che si estenda anche a cella02 e a cella14.
Non so sinceramente se ho esposto chiaramente il problema… qualcuno avrebbe un consiglio da darmi?
`\begin{tabular}{cccc}
aaa&aaa&aaa&aaa\\
\cline{2-3}
aaa&\multicolumn{1}{|c}{aaa}&\multicolumn{1}{c|}{aaa}&aaa\\
aaa&\multicolumn{1}{|c}{aaa}&\multicolumn{1}{c|}{aaa}&aaa\\
\cline{2-3}
aaa&aaa&aaa&aaa
\end{tabular}`
Se non vuoi scriverti quella roba terribile ogni volta, puoi definire un comando:
`\newcommand{\1}[2]{\multicolumn{1}{#1}{#2}}
\begin{tabular}{cccc}
aaa&aaa&aaa&aaa\\
\cline{2-3}
aaa&\1{|c}{aaa}&\1{c|}{aaa}&aaa\\
aaa&\1{|c}{aaa}&\1{c|}{aaa}&aaa\\
\cline{2-3}
aaa&aaa&aaa&aaa
\end{tabular}`
Non occorre che sia \1, l’ho fatto solo per comodità. L’importante è che sia il primo token (eccetto gli spazi che sono ignorati) dopo &; TeX espande sempre il primo token dopo &, per motivi TeXnici che sarebbe un po’ lungo spiegare, ma sono gli stessi su cui si basa \multicolumn.
Ciao
Enrico