lorenzo.pantieri” post=83610Salve. Come da titolo, vorrei scrivere una tabella le cui celle fossero larghe la loro larghezza naturale, ma il cui contenuto venisse centrato verticalmente. Come si fa?
Più precisamente, la tabella che sto cercando di comporre è di questo genere:
`\documentclass{article}
\usepackage{booktabs}
\usepackage{tikz}
\begin{document}
\begin{tabular}{lll}
\toprule
\tikz\draw [fill=black] (0,0) rectangle (0.6,0.3);
\texttt{black}
&
\tikz\draw [fill=darkgray] (0,0) rectangle (0.6,0.3);
\texttt{darkgray}
&
\tikz\draw [fill=lime] (0,0) rectangle (0.6,0.3);
\texttt{lime} \\
\bottomrule
\end{tabular}
\end{document}
`
e vorrei che rettangoli e scritte fossero centrati verticalmente, e non appoggiati alla stessa linea di base come ora.Grazie!
Il problema qui si risolve con la chiave [tt]baseline[/tt]. Un riferimento è How to align a series of TikZ pictures at the baseline e se sei in ambiente matematico il giusto setting (di Enrico ovviamente 😉 ) lo trovi nell’Introduzione all’uso di TikZ in Ingegneria (ultimo capitolo).
In genere, se non hai un nodo da poter utilizzare con `
\tikz[baseline=(x.base)]\node(x){Ciao};
`come nel tuo caso, il setting normale è: `
\tikz[baseline=-0.5ex]\draw [fill=black] (0,0) rectangle (0.6,0.3);
` dove con il [tt]-0.5ex[/tt] si intende: sposta la bounding box più in alto di 0.5ex (vedi Which measurement units should one use in LaTeX?). Un esempio di utilizzo è il codice che ho usato per documentare smartdiagram: `
\newcommand{\colsmartbox}[1]{#1~\tikz[baseline=-0.5ex] \node[fill=#1,rectangle,draw=black,thick,minimum width=5mm,minimum height=3mm,rounded corners]{};}
` che produce il nome del colore più un piccolo rettangolo (sezione 5.1 Something about colors).
Nel caso della tabella, non chiedere come mai :D, il setting che mi pare migliore è diverso:`
\documentclass{article}
\usepackage{booktabs}
\usepackage{tikz}
\begin{document}
\begin{tabular}{lll}
\toprule
\tikz[baseline=0.325ex]\draw [fill=black] (0,0) rectangle (0.6,0.3);
\texttt{black}
&
\tikz[baseline=0.325ex]\draw [fill=darkgray] (0,0) rectangle (0.6,0.3);
\texttt{darkgray}
&
\tikz[baseline=0.325ex]\draw [fill=lime] (0,0) rectangle (0.6,0.3);
\texttt{lime} \\
\bottomrule
\end{tabular}
\end{document}
`
Ciao
Claudio