Prologo: ho sviluppato una applicazione che incrociando i dati tra un’altra applicazione ed un database dovrebbe produrre un documento immediatamente distribuibile via web.
Il committente ha sollevato alcune riserve, tra le quali la formattazione delle tabelle.
Ho smanettato un poco e sono giunto a produrre una cosa come questa (scusate se il codice è orribile, ma oggettivamente meglio di così non sono stato in grado di fare):
`\begin{center}
\setlength{\tabcolsep}{1pt}%
\begin{xtabular}{|m{63pt}|m{26.1pt}|m{26.1pt}|} \hline
\rule[-1.5em]{1pt}{4em}\centering\arraybackslash \textbf{ i} & \centering\arraybackslash \textbf{M\(\mathsf{_{n2}}\)\newline{} [Nm]} & \centering\arraybackslash \textbf {M\(\mathsf{_{a2}}\)\newline{}[Nm]} \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 1 & \centering\arraybackslash 10 & \centering\arraybackslash 16 \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 2 & \centering\arraybackslash 12 & \centering\arraybackslash 20 \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 3 & \centering\arraybackslash 12 & \centering\arraybackslash 20 \\ \cline{1-3}
\end{xtabular}
\end{center}`
Il pilastrino largo 1pt l’ho messo per vedere meglio l’effetto del cambio dei parametri. Con questo sistema la tabella (per lo meno in colonna 1) ha la formattazione e l’aspetto che il cliente vuole.
Q1: La formattazione funziona bene quasi ovunque, tranne che nelle due celle di testa: non riesco a fare le due righe ‘centrate’. Mi inizia tutto a sinistra. Inoltre se aggiungo un \rule va tutto in malora.
Q2: Esiste un sistema per mettere il testo al centro di una cella senza fare i salti mortali?
Esiste:
`\newcommand{\centerlistitem}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}
\begin{tabular}{|l|c|c|}
\hline
\multicolumn{1}{|c|}{\centerlistitem{\textbf{i}}} &
\centerlistitem{\textbf{M\(\mathsf{_{n2}}\)} \\ \textbf{[Nm]}} &
\centerlistitem{\textbf{M\(\mathsf{_{a2}}\)} \\ \textbf{[Nm]}} \\
\hline
TIPO 1 & 10 & 16 \\
\hline
TIPO 2 & 12 & 20 \\
\hline
TIPO 3 & 12 & 20 \\
\hline
\end{tabular}`
Usa puntelli di vario tipo e eventuali spaziature aggiuntive se preferisci che le celle siano più spaziate.
Ciao
Enrico