Longtable e allinemento verticale

  • Creatore
    Topic
  • #22993
    Up
    0
    Down
    ::


    Ciao a tutti.
    Uso longtable per fare tabelle semplici. Un problema che riscontro è sull’allinemento verticale del testo, in quanto lo appoggia alla baseline, mentre io lo vorrei al centro della riga (al max al top).
    Ecco un esempio minimale:

    `
    \usepackage{palatino,url}
    \usepackage[italian]{babel}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage[textwidth=18cm,top=1.5cm,textheight=26.7cm]{geometry}
    \usepackage[pdftex]{graphicx}
    \usepackage{ellipsis} %per i … (\textellipsis)
    \usepackage{rotating}
    \usepackage{graphicx}
    \usepackage{longtable}
    \usepackage{tabularx} %Per tabelle a larghezza predefinita
    \usepackage{booktabs} %Definisce lo stile per le linee delle tabelle
    \usepackage{rccol} %Per le tabelle, allinea verticalmente il separatore decimale
    \begin{longtable}{*{4}{c}}
    \toprule
    Name & \multicolumn{2}{c}{Symbol} & Structure \\ \otoprule
    \endfirsthead
    \toprule
    \multicolumn{4}{c}{\textellipsis\ segue} \\
    Name & \multicolumn{2}{c}{Symbol} & Structure \\ \otoprule
    \endhead
    \bottomrule
    \endlastfoot
    \multicolumn{4}{c}{Continua nella pagina seguente\textellipsis} \\ \midrule
    \endfoot
    Alanine & Ala & A & \includegraphics[height=1.75cm]{A} \\ \midrule
    Arginine & Arg & R & \includegraphics[height=1.75cm]{R} \\ \midrule
    Asparagine & Asn & N & \includegraphics[height=1.75cm]{N} \\ \midrule
    \end{longtable}
    `
    Ho letto la guida su arstexnica e quella sui pacchetti più comuni, ma non ho trovato nulla, a riguardo, neanche cercando sul forum!

    Qualcuno ha gentilmente qualche idea?

    Grazie e buona giornata!

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #22994
      DMW
        Up
        0
        Down
        ::


        Se invece di usare height usi width, puoi scrivere
        `
        …..
        \makeatletter
        \newcommand*\ttoprule{\hrule\@height0pt\@width0pt\@depth-1ex}
        \newcommand*\ctoprule{\hrule\@height0pt\@width0pt\@depth.8ex}
        \let\btoprule\ctoprule
        \let\bbotrule\ctoprule
        \let\cbotrule\bbotrule
        \let\tbotrule\bbotrule
        \newcommand*{\tabularimage}[3]{\parbox[#1]{#2}{%
        \csname#1toprule\endcsname%
        \includegraphics[width=#2]{#3}\par
        \csname#1botrule\endcsname}}
        \makeatother

        \begin{document}

        \begin{longtable}{*{4}{c}}
        \toprule
        Name & \multicolumn{2}{c}{Symbol} & Structure \\ \otoprule
        \endfirsthead
        \toprule
        \multicolumn{4}{c}{\textellipsis\ segue} \\
        Name & \multicolumn{2}{c}{Symbol} & Structure \\ \otoprule
        \endhead
        \bottomrule
        \endlastfoot
        \multicolumn{4}{c}{Continua nella pagina seguente\textellipsis} \\ \midrule
        \endfoot
        Alanine & Ala & A & \tabularimage[t]{1.75cm}{A} \\ \midrule
        Arginine & Arg & R & \tabularimage[c]{1.75cm}{R} \\ \midrule
        Asparagine & Asn & N & \tabularimage{1.75cm}{N} \\ \midrule
        \end{longtable}

        \end{document} `

        con [c] la figura è al centro, con [t] in alto e con (o con niente) in basso.

        Ciao

        Andrea

      • #22995
        Up
        0
        Down
        ::

        Se invece di usare height usi width, puoi scrivere
        con [c] la figura è al centro, con [t] in alto e con (o con niente) in basso.

        Ciao

        Andrea

        Grazie, è un po’ scomodo (preferivo fissare le altezze) ma va bene, così ho il mio risultato!
        Ma se non avessi immagini e solo testo come lo centro?

      • #22996
        DMW
          Up
          0
          Down
          ::


          Se trovi più comodo fissare le altezze ora ci provo. Aspetta un po’.

          Nel caso di testo devi usare il pacchetto array e come specificatore di colonna devi usare m{}.

          Leggi la documentazione del pacchetto array
          http://www.ctan.org/get/macros/latex/required/tools/array.pdf

          Ciao

          Andrea

        • #22997
          DMW
            Up
            0
            Down
            ::


            Modifica la definizione precedente in questa
            `…
            \newcommand*{\tabularimage}[3]{\setbox0=\hbox{\includegraphics[height=#2]{#3}}\parbox[#1]{\wd0}{%
            \csname#1toprule\endcsname%
            \box0\par
            \csname#1botrule\endcsname}}
            ….`

            Ciao

            Andrea

          • #22998
            Up
            0
            Down
            ::


            Perfetto, grazie infinite!

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

        Go to top