Celle il cui contenuto sia centrato verticalmente.

  • Creatore
    Topic
  • #84310
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Salve. 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!

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #84311
        Up
        0
        Down
        ::


        Ciao,

        se non ti importa di dover specificare la larghezza della cella, potresti usare questo:
        `\usepackage{array}
        \newcolumntype{C}{ >{\centering\arraybackslash} m{3cm} }`
        Altrimenti lascio la risposta agli esperti. 😀

        Ciao,
        Marco.

      • #84312
        Up
        0
        Down
        ::

        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

      • #84313
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::

          cfiandra” post=83614
          Nel caso della tabella, non chiedere come mai :D, il setting che mi pare migliore è diverso:[code]

          Grazie mille a te a a Marco. Alla fine ho usato la tua soluzione, perfetta! 🙂

        • #84314
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            lorenzo.pantieri” post=83615

            Nel caso della tabella, non chiedere come mai :D, il setting che mi pare migliore è diverso:

            Grazie mille a te a a Marco. Alla fine ho usato la tua soluzione, perfetta! 🙂

            Un momento, ci sono anch’io:
            `\documentclass{article}
            \usepackage{booktabs}
            \usepackage{tikz}
            \begin{document}

            \tikzset{
            color box/.style={
            draw,
            minimum width=0.6cm,
            minimum height=0.3cm
            },
            every label/.style={label distance=4pt,text depth=0pt}
            }

            \begin{tabular}{lll}
            \toprule
            \tikz
            \node[fill, color box, label=0:\texttt{black}] at (0,0) {};
            &
            \tikz
            \node[fill=darkgray, color box, label=0:\texttt{darkgray}] at (0,0) {};
            &
            \tikz
            \node[fill=lime, color box, label=0:\texttt{lime}] at (0,0) {};\\
            \bottomrule
            \end{tabular}
            \end{document}`

            Ho usato l’oggetto label che può essere disegnato assieme al nodo.
            Puoi regolare la distanza delll’etichetta dal nodo e le dimensioni dei rettangoli colorati nello stile.
            My two cent…
            R.

        Visualizzazione 3 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top