tabularx e listings: problemi di convivenza?

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


      `\begin{table}[tb]
      \caption{Dida.}
      \centering
      \medskip
      \begin{tabularx}{\textwidth}{llX}
      \toprule
      Esempio & Voce & Commento \\
      \midrule
      \lstinline!\index{arte}! & arte, 1 & Voce primaria \\
      \bottomrule
      \end{tabularx}
      \end{table}
      `
      Ciao a tutti, non capsico perché questa tabella venga composta male (le parole sotto lstinline sono tutte appiccicate e sovrapposte in modo illeggibile). Anche mettendo \\ al posto di \ non funziona.

      Grazie,
      L.

    Visualizzazione 6 filoni di risposte
    • Autore
      Risposte
      • #19906
        Up
        0
        Down
        ::

        `\begin{table}[tb]
        \caption{Dida.}
        \centering
        \medskip
        \begin{tabularx}{\textwidth}{llX}
        \toprule
        Esempio & Voce & Commento \\
        \midrule
        \lstinline!\index{arte}! & arte, 1 & Voce primaria \\
        \bottomrule
        \end{tabularx}
        \end{table}
        `
        Ciao a tutti, non capsico perché questa tabella venga composta male (le parole sotto lstinline sono tutte appiccicate e sovrapposte in modo illeggibile). Anche mettendo \\ al posto di \ non funziona.

        Il problema è che tabularx raccoglie il contenuto della tabella come se fosse un argomento a un comando; questo fissa i codici di categoria e \lstinline non può più farci nulla.

        Soluzioni: poche. Puoi mettere \lstinline!\index{arte}! come argomento di \scantokens, ma questo aggiunge uno spazio dopo ogni comando. Oppure usare l’ambiente lrbox (prima di tabularx) per comporre il \lstinline; se è per un paio di comandi può andare, altrimenti è impossibile.

        Oppure, meglio ancora, non usare tabularx.

        Ciao
        Enrico

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

          Oppure, meglio ancora, non usare tabularx.

          Infatti con un normale tabular funziona. Per la verità, la tabella è piccolina. In definitiva, come scriveresti questa tabella?
          `\begin{table}[tb]\small
          \caption[Dida]{Dida.}
          \label{tab:index}
          \centering
          \medskip
          \begin{tabularx}{\textwidth}{llX}
          \toprule
          Esempio & Voce & Commento \\
          \midrule
          \lstinline!\\index{arte}! & arte, 2 & Voce primaria \\
          \lstinline*\\index{arte!Escher}* & \hspace{2ex} Escher, 3 & Voce secondaria sotto ‘arte’ \\
          \lstinline!\\index{Gaudì@\textsl{Gaudì}}! & \textsl{Gaudì}, 5 & Voce con forma specificata \\
          \lstinline!\\index{Goya@\textbf{Goya}}! & \textbf{Goya}, 7 & Come sopra \\
          \lstinline!\\index{Klimt|textbf}! & Klimt, \textbf{11} & Pagina con forma specificata \\
          \lstinline!\\index{Miró|textit}! & Miró, \textit{13} & Come sopra \\
          \bottomrule
          \end{tabularx}
          \end{table}
          `
          La tabella non ci sta di pochissimo (il corpo del testo di ClassicThesis è notoriamente stretto, sto facendo i salti mortali per farci stare tutto dentro…)

          Grazie,
          L.

        • #19908
          Up
          0
          Down
          ::

          Oppure, meglio ancora, non usare tabularx.

          Infatti con un normale tabular funziona. Per la verità, la tabella è piccolina. In definitiva, come scriveresti questa tabella?
          `\begin{table}[tb]\small
          \caption[Dida]{Dida.}
          \label{tab:index}
          \centering
          \medskip
          \begin{tabularx}{\textwidth}{llX}
          \toprule
          Esempio & Voce & Commento \\
          \midrule
          \lstinline!\\index{arte}! & arte, 2 & Voce primaria \\
          \lstinline*\\index{arte!Escher}* & \hspace{2ex} Escher, 3 & Voce secondaria sotto ‘arte’ \\
          \lstinline!\\index{Gaudì@\textsl{Gaudì}}! & \textsl{Gaudì}, 5 & Voce con forma specificata \\
          \lstinline!\\index{Goya@\textbf{Goya}}! & \textbf{Goya}, 7 & Come sopra \\
          \lstinline!\\index{Klimt|textbf}! & Klimt, \textbf{11} & Pagina con forma specificata \\
          \lstinline!\\index{Miró|textit}! & Miró, \textit{13} & Come sopra \\
          \bottomrule
          \end{tabularx}
          \end{table}
          `
          La tabella non ci sta di pochissimo (il corpo del testo di ClassicThesis è notoriamente stretto, sto facendo i salti mortali per farci stare tutto dentro…)

          Probabilmente metterei la riga del commento esattamente sopra l’esempio:
          `\begin{tabular}{ll}
          \toprule
          Esempio & Voce \\
          \midrule
          \comm{Voce primaria}\\
          \lstinline!\\index{arte}! & arte, 2 \\

          \end{tabular}`
          dove \comm scrive il suo argomento in \footnotesize e distanziando un po’ le righe.

          Ciao
          Enrico

        • #19909
          DMW
            Up
            0
            Down
            ::


            Lorenzo, Hai dimenticato un sacco di \ davanti le parentesi e la stessa \.
            Così funziona e viene una tabella corretta. Non c’è bisogno di mettere \ davanti |, vedi Miró.
            `\begin{table}[tb]\small
            \caption[Dida]{Dida.}
            \label{tab:index}
            \centering
            \medskip
            \begin{tabularx}{\textwidth}{llX}
            \toprule
            Esempio & Voce & Commento \\
            \midrule
            \lstinline!\\index\{arte\}! & arte, 2 & Voce primaria \\
            \lstinline!\\index\{arte\!Escher\}! & \hspace{2ex} Escher, 3 & Voce secondaria sotto arte \\
            \lstinline!\\index\{Gaudì@\\textsl\{Gaudì\}\}! & \textsl{Gaudì}, 5 & Voce con forma specificata \\
            \lstinline!\\index\{Goya@\\textbf\{Goya\}\}! & \textbf{Goya}, 7 & Come sopra \\
            \lstinline!\\index\{Klimt|textbf\}! & Klimt, \textbf{11} & Pagina con forma specificata \\
            \lstinline!\\index\{Miró|textit\}! & Miró, \textit{13} & Come sopra \\
            \bottomrule
            \end{tabularx}
            \end{table}`

            Controlla se manca qualcosa.

            Ciao

            Andrea

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

              Probabilmente metterei la riga del commento esattamente sopra l’esempio:
              `\begin{tabular}{ll}
              \toprule
              Esempio & Voce \\
              \midrule
              \comm{Voce primaria}\\
              \lstinline!\\index{arte}! & arte, 2 \\

              \end{tabular}`
              dove \comm scrive il suo argomento in \footnotesize e distanziando un po’ le righe.

              Ringrazio tantissimo Andrea, la sua tabella funziona alla perfezione, però l’effetto estetico non mi soddisfa al 100%. Vorrei provare quello che ha suggerito Enrico, ma non riesco a definire bene il comando
              `\comm`
              Scusatemi per l’insistenza, davvero, ma questa tabella mi sta facendo impazzire…
              😥

              Grazie mille, ragazzi.
              L.

            • #19911
              Up
              0
              Down
              ::

              Probabilmente metterei la riga del commento esattamente sopra l’esempio:
              `\begin{tabular}{ll}
              \toprule
              Esempio & Voce \\
              \midrule
              \comm{Voce primaria}\\
              \lstinline!\\index{arte}! & arte, 2 \\

              \end{tabular}`
              dove \comm scrive il suo argomento in \footnotesize e distanziando un po’ le righe.

              Ringrazio tantissimo Andrea, la sua tabella funziona alla perfezione, però l’effetto estetico non mi soddisfa al 100%. Vorrei provare quello che ha suggerito Enrico, ma non riesco a definire bene il comando
              `\comm`
              Scusatemi per l’insistenza, davvero, ma questa tabella mi sta facendo impazzire…
              😥

              `\newcommand{\comm}[1]{{\footnotesize#1}}`
              Poi usi \\[3pt] o qualcosa del genere per aumentare la spaziatura.

              Ciao
              Enrico

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

                `\newcommand{\comm}[1]{{\footnotesize#1}}`
                Poi usi \\[3pt] o qualcosa del genere per aumentare la spaziatura.

                Sìììì!!! 😀

                Così è bellissima!

                Grazie mille Enrico!

                A presto,
                L.

                P.S. Aspetto con grande curiosità un tuo intervento qui: http://www.guit.sssup.it/phpbb/viewtopic.php?t=3664

                Ancora grazie!

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

            Go to top