Tabelle con celle contenenti liste di items

  • Creatore
    Topic
  • #85007
    Up
    0
    Down
    ::


    Rieccomi con un caso, forse banale, ma che mi sta dando grattacapi. Ho una semplice tabella che contiene in una delle celle una lista di item. La lista degli item risulta disallineata rispetto ai valori delle altre celle poichè parte con un margine superiore che non riesco ad evitare. Lo stesso dicasi, ma è meno importante, per il margine sinistro e inferiore della lista di item (vedasi allegato con l’esito della elaborazione).

    `
    \documentclass{book}
    \usepackage{tabularx}
    \usepackage{booktabs}

    \begin{document}

    \begin{tabular}{p{4cm}p{4cm}p{4cm}}
    \toprule
    {T1} & {T2} & {T3} \\
    \midrule
    {alfa} & {beta} & {gamma} \\
    \midrule
    {teta} &
    {\begin{itemize}
    \item testo
    \item testo
    \item testo
    \end{itemize}} &
    {omega} \\
    \bottomrule
    \end{tabular}

    \end{document}
    `

    C’è modo di allineare il margine superiore della lista a quello della cella?

    Grazie in anticipo

Visualizzazione 14 filoni di risposte
  • Autore
    Risposte
    • #85008
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        `\begin{tabular}{p{4cm}p{4cm}p{4cm}}
        \toprule
        {T1} & {T2} & {T3} \\
        \midrule
        {alfa} & {beta} & {gamma} \\
        \midrule
        {teta} &\vspace*{-1.5\baselineskip}
        \begin{itemize}
        \item testo
        \item testo
        \item testo
        \end{itemize} &
        {omega} \\
        \bottomrule
        \end{tabular}
        `

      • #85009
        Up
        0
        Down
        ::


        Grazie mille. Mi crea ancora un piccolo difettuccio che però vedrò di risolvere da solo. Sapete anche come fare per il margine sinistro e in basso alla lista degli item?

      • #85010
        alegenn
        Partecipante
          Up
          0
          Down
          ::

          Amedeo” post=84397Rieccomi con un caso, forse banale, ma che mi sta dando grattacapi. Ho una semplice tabella che contiene in una delle celle una lista di item. La lista degli item risulta disallineata rispetto ai valori delle altre celle poichè parte con un margine superiore che non riesco ad evitare. Lo stesso dicasi, ma è meno importante, per il margine sinistro e inferiore della lista di item (vedasi allegato con l’esito della elaborazione).

          `
          \documentclass{book}
          \usepackage{tabularx}
          \usepackage{booktabs}

          \begin{document}

          \begin{tabular}{p{4cm}p{4cm}p{4cm}}
          \toprule
          {T1} & {T2} & {T3} \\
          \midrule
          {alfa} & {beta} & {gamma} \\
          \midrule
          {teta} &
          {\begin{itemize}
          \item testo
          \item testo
          \item testo
          \end{itemize}} &
          {omega} \\
          \bottomrule
          \end{tabular}

          \end{document}
          `

          C’è modo di allineare il margine superiore della lista a quello della cella?

          Grazie in anticipo

          Caricando [tt]enumitem[/tt]
          `\documentclass{book}
          \usepackage{tabularx}
          \usepackage{booktabs}
          \usepackage{enumitem}

          \begin{document}

          \begin{tabular}{p{4cm}p{4cm}p{4cm}}
          \toprule
          {T1} & {T2} & {T3} \\
          \midrule
          {alfa} & {beta} & {gamma} \\
          \midrule
          {teta} &
          {\begin{itemize}[leftmargin=*]
          \item testo
          \item testo
          \item testo
          \end{itemize}} &
          {omega} \\
          \bottomrule
          \end{tabular}
          \end{document} `

        • #85011
          alegenn
          Partecipante
            Up
            0
            Down
            ::

            Amedeo” post=84401Grazie mille. Mi crea ancora un piccolo difettuccio che però vedrò di risolvere da solo. Sapete anche come fare per il margine sinistro e in basso alla lista degli item?

            Per il margine sinistro:
            `\documentclass{book}
            \usepackage{tabularx}
            \usepackage{booktabs}
            \usepackage{enumitem}

            \begin{document}

            \begin{tabular}{p{4cm}p{4cm}p{4cm}}
            \toprule
            {T1} & {T2} & {T3} \\
            \midrule
            {alfa} & {beta} & {gamma} \\
            \midrule
            {teta} &\vspace*{-1.5\baselineskip}
            \begin{itemize}[leftmargin=*]
            \item testo
            \item testo
            \item testo
            \end{itemize} &
            {omega} \\
            \bottomrule
            \end{tabular}
            \end{document}
            `

          • #85012
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Si, devi usare il pacchetto enumitem e usare l’opzione align=left
              poi magari, se non lo vuoi, poi eliminare lo spazio sotto la lista puntata e anche sopra se, sempre con quel pacchetto, usi le opzioni giuste per togliere gli spazi sopra, sotto e in mezzo agli item.

              Da terminale texdoc enumitem e hai la documentazione del pacchetto direttamente sullo schermo.

            • #85013
              Up
              0
              Down
              ::


              Grazie a tutti

            • #85014
              Up
              0
              Down
              ::


              Poichè un esempio val più di mille parole, ho ricavato un estratto della tabella che vorrei realizzare. Di seguito il codice e in allegato la pagina prodotta. In sostanza, all’interno di una tabella (nel caso mio è una longtable perchè le righe sono molte) le lista di item (itemize) vengono posizionate con un margine superiore ed inferiore che non riesco ad eliminare. Ne farei a meno ma l’effetto in stampa non mi piace per niente. Qualche suggerimento dai più esperti?

              `
              \documentclass[10pt,a4paper,oneside]{book}
              \usepackage[italian]{babel}
              \usepackage[utf8x]{inputenc}
              \usepackage[T1]{fontenc}
              \usepackage

              {geometry}
              \usepackage{enumitem}
              \usepackage{calc}
              \usepackage{booktabs}
              \usepackage{longtable}

              \newenvironment{McsLongTabThree}[6]{%
              \begin{small}
              \begin{center}
              \begin{longtable}{p{#2}p{#4}p{#6}}
              % intestazione iniziale
              \toprule
              \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
              \endfirsthead
              % intestazione normale
              \multicolumn{3}{l}{continua dalla pagina precedente} \\
              \toprule
              \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
              \midrule
              \endhead
              % piede normale
              \multicolumn{3}{r}{continua nella prossima pagina} \\
              \endfoot
              % piede finale
              \bottomrule
              \multicolumn{3}{r}{si conclude dalla pagina precedente} \\
              \endlastfoot
              }{%
              \end{longtable}
              \end{center}
              \end{small}
              }
              \newcommand\McsRigaLongTabThree[3]{%
              \midrule
              {#1} & {#2} & {#3}\\
              }

              \newenvironment{McsLB}{%
              \begin{itemize}[leftmargin=*]
              }{%
              \end{itemize}
              }
              \newcommand\McsRigaLB[1]{%
              \item {#1}
              }

              \begin{document}
              \begin{McsLongTabThree}
              {Fattispecie di reato}{.33\textwidth-2\tabcolsep}
              {Esempi di casistiche}{.33\textwidth-2\tabcolsep}
              {Controlli implementati}{.33\textwidth-2\tabcolsep}
              \McsRigaLongTabThree
              {Falsità in un documento informatico pubblico o privato avente efficacia
              probatoria (art. 491-bis c.p.)}
              {\begin{McsLB}
              \McsRigaLB {Falsificazione di documenti informatici da parte di
              banche/società di servizi}
              \McsRigaLB {Cancellazione o alterazione di informazioni a valenza
              probatoria presenti sui propri sistemi}
              \end{McsLB}}
              {\begin{McsLB}
              \McsRigaLB {Misure di protezione dell’integrità delle informazioni
              messe a disposizione}
              \end{McsLB}}
              \McsRigaLongTabThree
              {Danneggiamento di informazioni, dati e programmi informatici
              utilizzati dallo Stato (art. 635-ter c.p.)}
              {\begin{McsLB}
              \McsRigaLB {Danneggiamento, distruzione o manomissione di documenti
              informatici aventi efficacia probatoria}
              \end{McsLB}}
              {\begin{McsLB}
              \McsRigaLB {Formalizzazione di regole per un utilizzo accettabile
              delle informazioni}
              \McsRigaLB {Procedure per l’etichettatura ed il trattamento delle
              informazioni}
              \end{McsLB}}
              \end{McsLongTabThree}
              \end{document}
              `

              Attachments:
              You must be logged in to view attached files.
            • #85015
              robitex
              Amministratore del forum
                Up
                0
                Down
                ::

                Amedeo” post=84455Poichè un esempio val più di mille parole, ho ricavato un estratto della tabella che vorrei realizzare. Di seguito il codice e in allegato la pagina prodotta. In sostanza, all’interno di una tabella (nel caso mio è una longtable perchè le righe sono molte) le lista di item (itemize) vengono posizionate con un margine superiore ed inferiore che non riesco ad eliminare. Ne farei a meno ma l’effetto in stampa non mi piace per niente. Qualche suggerimento dai più esperti?

                `
                \documentclass[10pt,a4paper,oneside]{book}
                \usepackage[italian]{babel}
                \usepackage[utf8x]{inputenc}
                \usepackage[T1]{fontenc}
                \usepackage

                {geometry}
                \usepackage{enumitem}
                \usepackage{calc}
                \usepackage{booktabs}
                \usepackage{longtable}

                \newenvironment{McsLongTabThree}[6]{%
                \begin{small}
                \begin{center}
                \begin{longtable}{p{#2}p{#4}p{#6}}
                % intestazione iniziale
                \toprule
                \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
                \endfirsthead
                % intestazione normale
                \multicolumn{3}{l}{continua dalla pagina precedente} \\
                \toprule
                \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
                \midrule
                \endhead
                % piede normale
                \multicolumn{3}{r}{continua nella prossima pagina} \\
                \endfoot
                % piede finale
                \bottomrule
                \multicolumn{3}{r}{si conclude dalla pagina precedente} \\
                \endlastfoot
                }{%
                \end{longtable}
                \end{center}
                \end{small}
                }
                \newcommand\McsRigaLongTabThree[3]{%
                \midrule
                {#1} & {#2} & {#3}\\
                }

                \newenvironment{McsLB}{%
                \begin{itemize}[leftmargin=*]
                }{%
                \end{itemize}
                }
                \newcommand\McsRigaLB[1]{%
                \item {#1}
                }

                \begin{document}
                \begin{McsLongTabThree}
                {Fattispecie di reato}{.33\textwidth-2\tabcolsep}
                {Esempi di casistiche}{.33\textwidth-2\tabcolsep}
                {Controlli implementati}{.33\textwidth-2\tabcolsep}
                \McsRigaLongTabThree
                {Falsità in un documento informatico pubblico o privato avente efficacia
                probatoria (art. 491-bis c.p.)}
                {\begin{McsLB}
                \McsRigaLB {Falsificazione di documenti informatici da parte di
                banche/società di servizi}
                \McsRigaLB {Cancellazione o alterazione di informazioni a valenza
                probatoria presenti sui propri sistemi}
                \end{McsLB}}
                {\begin{McsLB}
                \McsRigaLB {Misure di protezione dell’integrità delle informazioni
                messe a disposizione}
                \end{McsLB}}
                \McsRigaLongTabThree
                {Danneggiamento di informazioni, dati e programmi informatici
                utilizzati dallo Stato (art. 635-ter c.p.)}
                {\begin{McsLB}
                \McsRigaLB {Danneggiamento, distruzione o manomissione di documenti
                informatici aventi efficacia probatoria}
                \end{McsLB}}
                {\begin{McsLB}
                \McsRigaLB {Formalizzazione di regole per un utilizzo accettabile
                delle informazioni}
                \McsRigaLB {Procedure per l’etichettatura ed il trattamento delle
                informazioni}
                \end{McsLB}}
                \end{McsLongTabThree}
                \end{document}
                `

                Ciao,
                ho compilato il codice per curiosità ed ho notato una spazio verticale sopra e sotto le liste.
                È voluta questa spaziatura?
                R.

              • #85016
                Up
                0
                Down
                ::


                E’ proprio lo spazio che voglio eliminare! 🙁

              • #85017
                alegenn
                Partecipante
                  Up
                  0
                  Down
                  ::

                  Amedeo” post=84457E’ proprio lo spazio che voglio eliminare! 🙁

                  Ciao, come ti ha suggerito OldClaudio se leggi la documentazione del pacchetto [tt]enumitem[/tt] trovi scritto:

                  The key noitemsep kills the space between items and paragraphs (i.e., itemsep=0pt and parsep=0pt), while nosep kills all vertical spacing.

                  Saluti

                • #85018
                  Up
                  0
                  Down
                  ::


                  I suggerimenti sono tutti corretti peccato che non funzionino se la lista è posta in una cella di una tabella. Per farvi un esempio, di seguito riporto lo stesso codice precedente contenente anche i vostri suggerimenti. Ho dublicato una delle liste fuori della tabella e come potete vedere dall’esito della compilazione in allegato, nella tabella la lista è preceduta e seguita da un cospicuo margine, mentre fuori della tabella no.
                  `
                  \documentclass[10pt,a4paper,oneside]{book}
                  \usepackage[italian]{babel}
                  \usepackage[utf8x]{inputenc}
                  \usepackage[T1]{fontenc}
                  \usepackage

                  {geometry}
                  \usepackage{enumitem}
                  \usepackage{calc}
                  \usepackage{booktabs}
                  \usepackage{longtable}

                  %\setlist{nolistsep} % or
                  %\setlist{noitemsep} %

                  \newenvironment{McsLongTabThree}[6]{%
                  \begin{longtable}{p{#2}p{#4}p{#6}}
                  % intestazione iniziale
                  \toprule
                  \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
                  \endfirsthead
                  % intestazione normale
                  \multicolumn{3}{l}{continua dalla pagina precedente} \\
                  \toprule
                  \textbf{\textit{#1}} & \textbf{\textit{#3}} & \textbf{\textit{#5}} \\
                  \midrule
                  \endhead
                  % piede normale
                  \multicolumn{3}{r}{continua nella prossima pagina} \\
                  \endfoot
                  % piede finale
                  \bottomrule
                  \multicolumn{3}{r}{si conclude dalla pagina precedente} \\
                  \endlastfoot
                  }{%
                  \end{longtable}
                  }
                  \newcommand\McsRigaLongTabThree[3]{%
                  \midrule
                  {#1} & {#2} & {#3}\\
                  }

                  \newenvironment{McsLB}{%
                  \begin{itemize}[leftmargin=*,noitemsep,topsep=0pt,partopsep=0pt]
                  }{%
                  \end{itemize}
                  }
                  \newcommand\McsRigaLB[1]{%
                  \item {#1}
                  }

                  \begin{document}
                  Bla bla bla bla bla bla bla bla bla bla bla
                  \begin{McsLB}
                  \McsRigaLB {Falsificazione di documenti informatici da parte di
                  banche/società di servizi}
                  \McsRigaLB {Cancellazione o alterazione di informazioni a valenza
                  probatoria presenti sui propri sistemi}
                  \end{McsLB}
                  Bla bla bla bla bla bla bla bla bla bla bla
                  \begin{McsLongTabThree}
                  {Fattispecie di reato}{.33\textwidth-2\tabcolsep}
                  {Esempi di casistiche}{.33\textwidth-2\tabcolsep}
                  {Controlli implementati}{.33\textwidth-2\tabcolsep}
                  \McsRigaLongTabThree
                  {Falsità in un documento informatico pubblico o privato avente efficacia
                  probatoria (art. 491-bis c.p.)}
                  {\begin{McsLB}
                  \McsRigaLB {Falsificazione di documenti informatici da parte di
                  banche/società di servizi}
                  \McsRigaLB {Cancellazione o alterazione di informazioni a valenza
                  probatoria presenti sui propri sistemi}
                  \end{McsLB}}
                  {\begin{McsLB}
                  \McsRigaLB {Misure di protezione dell’integrità delle informazioni
                  messe a disposizione}
                  \end{McsLB}}
                  \McsRigaLongTabThree
                  {Danneggiamento di informazioni, dati e programmi informatici
                  utilizzati dallo Stato (art. 635-ter c.p.)}
                  {\begin{McsLB}
                  \McsRigaLB {Danneggiamento, distruzione o manomissione di documenti
                  informatici aventi efficacia probatoria}
                  \end{McsLB}}
                  {\begin{McsLB}
                  \McsRigaLB {Formalizzazione di regole per un utilizzo accettabile
                  delle informazioni}
                  \McsRigaLB {Procedure per l’etichettatura ed il trattamento delle
                  informazioni}
                  \end{McsLB}}
                  \end{McsLongTabThree}
                  \end{document}
                  `

                • #85019
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    E allora inserisci spazi verticali negativi prima e dopo la lista [tt]\vspace*{-1.5\baselineskip}[/tt]

                  • #85020
                    Up
                    0
                    Down
                    ::


                    Ok. Grazie. Ho inserito [tt]\vspace*{-\baselineskip}[/tt] prime del [tt]\begin{itemize}[/tt] e prima del [tt]\end{itemize}[/tt]

                  • #85021
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::

                      Amedeo” post=84472Ok. Grazie. Ho inserito [tt]\vspace*{-\baselineskip}[/tt] prime del [tt]\begin{itemize}[/tt] e prima del [tt]\end{itemize}[/tt]

                      Logicamente sta meglio dopo; può darsi che il risultato finale sia lo stesso; nel senso che con “dopo’ si avrebbe: termina la lista; aggiungi un spazio verticale di fine lista; torna indietro di uno spazio verticale equivalente.

                      Mentre con il “prima” sarebbe: torna indietro di un spazio verticale equivalente a quello di fine lista; termina la lista, aggiungi uno spazio verticale di fine lista.

                    • #85022
                      Up
                      0
                      Down
                      ::


                      Purtroppo il risultato non è lo stesso: se lo metto dopo, la lista mantiene il margine inferiore. Grazie

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

                  Go to top