Definire la grandezza di una colonna in una tabella

  • Creatore
    Topic
  • #64351
    Up
    0
    Down
    ::


    salve ragazzi , ho un problema. ho creato la seguente tabella

    `\begin{center}
    \begin{tabular}{|c|c|} \hline
    \textbf{Caratteristiche} & \textbf{Benefici} \\\hline
    Guadagno del segnale & Migliore copertura \\\hline
    3 & 3 \\\hline
    \end{tabular}
    \end{center}`

    e ho un problema. devo inserire al posto di “guadagno del segnale” una frase molto lunga. se la scrivo, però, continua orizzontalmente e si deforma tutto.
    io mi chiedo: è possibile settare la larghezza delle colonne, manualmente o cmq con qualche comando (così restano nella pagina senza uscire fuori i margini del testo) ed è possibile che le 2 colonne (a me ne servono 2 in questo caso) abbiamo la stessa dimensione??

    grazie a tutti coloro che mi aiuteranno 🙂

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #64352
      Up
      0
      Down
      ::


      Prova ad usare il pacchetto booktabs e il comando:

      `\addtolength{\tabcolsep}{20pt}`
      Chiaramente la dimensione (20pt nell’esempio) devi impostarla in base alle tue esigenze.

    • #64353
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        No, \tabcolsep serve per la separazione delle colonne; di default vale 6pt e questi 6pt si trovano sia a destra sia a sinistra di ogni contenuto di cella.

        Se vuoi due colonne uguali carica i pacchetti array e tabularx e usa il descrittore di colonna X (X maiuscolo); ti occorrono 2 o 3 compilazioni per avere le cose sistemate a puntino.

        In ognuna delle colonne X il testo viene composto in modo paragrafo, cioè il testo va a capo come se fosse in un capoverso di larghezza specificata. Naturalmente può usare i descrittori/modificatori definiti dal pacchetto array per specificare se vuoi il testo in bandiera invece che giustificato; per esempio:`
        \documentclass[…]{…}

        \usepackage{array,tabularx,booktabs}

        \begin{document}

        \begin{center}
        \begin{tabularx}{0.8\textwidth}{XX}
        \toprule
        \centering\textbf{Caratteristiche} & \centering\textbf{Benefici} \\
        Guadagno del segnale & Migliore copertura \\
        \midrule
        3 & 3 \\
        \bottomrule
        \end{tabularx}
        \end{center}

        \end{document}
        `

        Usa booktabs; non usare mai filetti verticali; usa solo un filetto \toptule sopra la tabella, sua \midrule per separare le intestazioni dai dati della tabella, usa \bootmrule sotto la tabella. Non è detto che lunghe intestazioni di tabella siano appropriate con la natura del contenuto delle celle, magari solo dei numeri semplici e corti. Potrebbe essere utile usare intestazioni più brevi e una spiegazione adeguate nel testo che precede o che segue la tabella.

        Sei sicuro di volere usare una tabella fissa, non flottante, e senza didascalia?

      • #64354
        Up
        0
        Down
        ::


        se inserisco il codice che mi hai dato mi dà uno strano errore, anche se compilo + volte …

        la didascalia è opzionale, nel senso che non mi interessa più di tanto. il fato che sia fissa mi interessa invece; se il fatto che sia flottante la fa restare al suo posto senza “sfarfallature improvvise” potrei optare per quella se mi dà anche meno problemi di compilazione. 🙂

      • #64355
        Up
        0
        Down
        ::

        Damon Salvatore” post=63761se inserisco il codice che mi hai dato mi dà uno strano errore, anche se compilo + volte …

        Infatti occorre una piccola modifica:
        `\begin{tabularx}{0.8\textwidth}{XX}
        \toprule
        \centering\textbf{Caratteristiche} & \centering\textbf{Benefici} \tabularnewline
        \midrule
        Guadagno del segnale & Migliore copertura \\
        \midrule
        3 & 3 \\
        \bottomrule
        \end{tabular}`
        Il comando \centering ridefinisce \\, che quindi non può essere usato per terminare la riga di tabella. In alternativa, ricordarsi di aggiungere \arraybackslash se si usa \centering, \raggedright o \raggedleft nell’ultima colonna:

        `\begin{tabularx}{0.8\textwidth}{XX}
        \toprule
        \centering\textbf{Caratteristiche} & \centering\arraybackslash\textbf{Benefici} \\
        \midrule
        Guadagno del segnale & Migliore copertura \\
        \midrule
        3 & 3 \\
        \bottomrule
        \end{tabularx}`
        Ciao
        Enrico

      • #64356
        Up
        0
        Down
        ::


        ho fatto copia incolla dei due codici che mi avete dato e continua a non compilare … non ho ben capito se devo modificarli ulteriormente oppure ho un problema io in latex.

        riporto il messaggio di errore in fase di compilazione
        `
        ! File ended while scanning use of \TX@get@body.

        \par
        <*> “Argomento scelto.tex”
        I suspect you have forgotten a `}', causing me
        to read past where you wanted me to stop.
        I'll try to recover; but if the error is serious,
        you'd better type `E' or `X' now and fix your file.
        ! Emergency stop.
        <*> “Argomento scelto.tex”
        *** (job aborted, no legal \end found)
        Here is how much of TeX's memory you used:
        5635 strings out of 493763
        81488 string characters out of 3144955
        305346 words of memory out of 3000000
        8712 multiletter control sequences out of 15000+200000
        19213 words of font info for 93 fonts, out of 3000000 for 9000
        715 hyphenation exceptions out of 8191
        38i,8n,47p,2231b,294s stack positions out of 5000i,500n,10000p,200000b,50000s
        ! ==> Fatal error occurred, no output PDF file produced!
        `

      • #64357
        Up
        0
        Down
        ::


        Aargh! 😥 Non abbiamo visto \end{tabular} che deve essere \end{tabularx}

        Correggo nei due messaggi precedenti.

        Ciao
        Enrico

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

          Damon Salvatore” post=63398devo inserire al posto di “guadagno del segnale” una frase molto lunga. se la scrivo, però, continua orizzontalmente e si deforma tutto.
          io mi chiedo: è possibile settare la larghezza delle colonne, manualmente o cmq con qualche comando (così restano nella pagina senza uscire fuori i margini del testo) ed è possibile che le 2 colonne (a me ne servono 2 in questo caso) abbiamo la stessa dimensione??

          Problema classico. Nell’Arte di scrivere con LaTeX (sul mio sito) trovi riassunte le soluzioni.

          Ciao,
          L.

        • #64359
          Up
          0
          Down
          ::


          ho risolto con il codice

          `
          \begin{tabularx}{0.8\textwidth}{XX}
          \toprule
          \centering\textbf{Caratteristiche} & \centering\arraybackslash\textbf{Benefici} \\
          \midrule
          Guadagno del segnale & Migliore copertura \\
          \midrule
          3 & 3 \\
          \bottomrule
          \end{tabularx}
          `

          Funziona benissimo con un testo molto lungo e ho settato 0.8 a 1 per esigenze personali.

          Altro miglioramento grafico che vorrei aggiungere: le linee ai lati della tabella! compaiono solo quelle orizzontali, ma non quelle verticali (che mi farebbero molto comodo per dividere le 2 colonne e per impostare il margine sinistro e destro). 🙂

        • #64360
          Up
          0
          Down
          ::

          Damon Salvatore” post=63766Altro miglioramento grafico che vorrei aggiungere: le linee ai lati della tabella! compaiono solo quelle orizzontali, ma non quelle verticali (che mi farebbero molto comodo per dividere le 2 colonne e per impostare il margine sinistro e destro). 🙂

          Peggioramento grafico, vorrai dire. 🙂

          Ciao
          Enrico

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

      Go to top