multirow e multicolumn

  • Questo topic ha 3 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 13 anni fa da franen.
  • Creatore
    Topic
  • #88527
    Up
    0
    Down
    ::


    Devo realizzare una tabella in cui nella prima colonna o due righe e nella seconda una sola riga,

    ho quindi usato multirow e multicolumn, un esempio è questo

    `
    \usepackage{multirow}
    \usepackage{tabularx, array}
    \usepackage{dcolumn}

    \begin{table}[ht]
    \begin{tabularx}{\linewidth}{|m{10em}|>\raggedright X}
    \hline
    \multicolumn1{|c|}{\textbf{Campo 1}} & \multicolumn1{c}{\textbf{Campo 2}} \tabularnewline
    \hline
    Campo1 & \multicolumn{1}{c}{\multirow{2}{*}{testo molto lungo ecc testo molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecc}} \tabularnewline
    \cline{1-1}
    Campo2 & \multicolumn{1}{c}{} \tabularnewline
    \hline
    \end{tabularx}
    \caption{Prova \label{tab:prova}}
    \end{table}`

    il problema è che nella seconda colonna il testo mi va fuori pagina e non riesco “inquadrare” la tabella sulla destra con | … come risolvo?

    Grazie

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #88528
      Up
      0
      Down
      ::


      Ho provato a modificare il tuo codice ed ho ottenuto un compromesso che riporto di seguito
      `
      \begin{table}[ht]
      \centering
      \begin{tabularx}{\linewidth}{cX}
      \toprule
      \textbf{Campo 1} &\hfil\textbf{Campo 2}\hfil\\
      \midrule
      Campo 1 & \multirow{2}{\linewidth}{testo molto lungo ecc testo molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecc}\\
      \cline{1-1}
      Campo 2 & \\
      \bottomrule
      \end{tabularx}
      \caption{Prova \label{tab:prova}}
      \end{table}
      `
      Ora, una piccola nota. Ho aggiunto il pacchetto [tt]booktabs[/tt] per i comandi [tt]\toprule[/tt], [tt]\midrule[/tt] e [tt]\bottomrule[/tt] e ho eliminato i filetti verticali, in quanto tipograficamente scorretti (vedi L’Arte per maggiori spiegazioni). Ho aggiunto anche \centering per centrare la tabella (ma magari conoscevi già questo comando). La prima colonna deve essere necessariamente 10 em?

    • #88529
      Up
      0
      Down
      ::


      non necessariamente 10em ma non so come farla autoridimensionante in base alla lunghezza della parola 😳

    • #88530
      franen
      Partecipante
        Up
        0
        Down
        ::


        Se sai qual è la parola più lunga:`\documentclass{book}
        \usepackage{multirow}
        \usepackage{tabularx, array}
        \usepackage{dcolumn}

        \newlength{\FirstColumnWidth}
        \settowidth{\FirstColumnWidth}{Parola più lunga nella colonna}
        \setlength{\FirstColumnWidth}{1.2\FirstColumnWidth}
        \begin{document}
        \begin{table}[ht]
        \begin{tabularx}{\linewidth}{|m{\the\FirstColumnWidth}|>\raggedright X}
        \hline
        \multicolumn1{|c|}{\textbf{Campo 1}} & \multicolumn1{c}{\textbf{Campo 2}} \tabularnewline
        \hline
        Campo1 & \multicolumn{1}{c}{\multirow{2}{*}{testo molto lungo ecc testo molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecctesto molto lungo ecc}} \tabularnewline
        \cline{1-1}
        Campo2 & \multicolumn{1}{c}{} \tabularnewline
        \hline
        \end{tabularx}
        \caption{Prova \label{tab:prova}}
        \end{table}
        \end{document}`
        Ma se davvero si tratta di una sola parola, perché non usare un descrittore “l” al, posto di “m{10em}”?
        Fran

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

    Go to top