Larghezza anomala di una sola colonna

  • Creatore
    Topic
  • #110468
    Up
    0
    Down
    ::


    Salve a tutti.
    E’ il mio primo post sul gruppo, perciò chiedo scusa in anticipo per errori o imprecisioni.
    Ho un problema con la seguente tabella:
    `
    \begin{table}
    \centering
    \begin{tabular}{|cc|c|c|c|c|c|}
    \hline
    \multicolumn{2}{|c}{\multirow{2}*{Indice di dose cutanea \textbf{I\ped{c}}}}&\multicolumn{5}{|c|}{Modalità di contatto cutaneo (C)}\\ \cline{3-7}
    \multirow{5}*{Quantità (\textbf{Q})}&&\textbf{1}&\textbf{2}&\textbf{3}&\textbf{4}&\textbf{5}\\
    \hline
    &\multicolumn{1}{|c|}{\textbf{1}}&1&1&2&4&4\\
    \cline{2-7}
    &\multicolumn{1}{|c|}{\textbf{2}}&1&2&3&4&5\\
    \cline{2-7}
    &\multicolumn{1}{|c|}{\textbf{3}}&2&2&3&5&5\\
    \cline{2-7}
    &\multicolumn{1}{|c|}{\textbf{4}}&3&3&4&5&5\\
    \cline{2-7}
    &\multicolumn{1}{|c|}{\textbf{5}}&4&5&5&5&5\\
    \hline
    \end{tabular}
    \end{table}
    `
    l’ultima colonna, quella con il valore “5” risulta essere molto più larga di quelle con il valori da 1 a 4.
    Allego un’immagine che illustra come viene impaginata realmente la tabella
    Ho usato un codice analogo per una tabella molto simile e non ho avuto questo problema, ora non riesco a capire perché solo una colonna è così diversa dalle altre.
    Chiedo scusa se la domanda è banale, uso da pochissimo TeX e non credo di avere sufficiente esperienza.

    Grazie in anticipo.

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #110469
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Benvenuto nel forum.

        E corretto che venga così, anche se è brutto. Non puoi chiedere a LaTeX di fare miracoli.
        Come rimediare?
        1) puoi scrivere l’intestazione delle ultime 5 colonne, quella responsabile di quell’enorme allargamento, su due righe con una cella di tipo p{…}; regola la grandezza come si deve e vedrai che ruscirai a rendere anche l’ultima colonan di larghezza ragionevole.
        2) allarga le colonne sottostatnti; cioè imponi le ultime 5 colonne del tipo p{…} scegliendo al posto dei puntini in valore espresso in modo simbolico con il nome di un registro;una cosa del tipo seguente:`\begin{table}
        \dimendef\D 1000 \D= 12mm
        \begin{tabular}{…|5*{p{\D}}}

        \end{tabular}
        \caption{…]
        \label{…}
        \end{table}`poi sostituisci il 12mm che io ho indicato con un valore diverso, maggiore o minore, ricompilando diverse volte fiche il titolone sulle ultime 5 colonne romane con un po’ di spazio a destra e a sinistra.A quel punto le tue ultime 5 colonne sono tutte della stessa larghezza, ma, ovviamante la tabella risuta forse un po’ più larga di quella che hai ora.

        Tieni presente che le tabelle ben fatte non sono come quella che hai allegato al tuo messaggio, ma quelle che non hanno nessun filetto verticale, non hanno bordi veritclai, e hanno il minimo di filetti orizzontali compatibili con la struttura della tabella. Nel tuo caso vedo una tabella con quattro filetti orizzontali (pacchetto booktabs), due spessi, uno sopra e uno sotto la tabella, uno parziale sotto il titolone e sompra le 5 ultime colonne e un totale dopo la fine delle intestazioni.
        Naturalmente puoi fare come credi, ma in tipografia le tabelle si fanno così; se mai si mette un filetto verticale, uno solo, devono esserci davvero dei buoni motivi, solo che con il pacchetto booktabs i filetti verticali vengono interrotti dai filetti orizzontali.

        Ti ho dato delle idee; ora sta a te lavorarci sopra.

      • #110470
        Up
        0
        Down
        ::


        Ciao e grazie 1000.
        Parto dalla fine, ossia le tabelle non si fanno così: concordo con te, infatti in base a quando ho letto/ studiato nell’approcciarmi a LateX ho imparato molto sulla tipografia che non conoscevo.
        Sono anni che penso sempre di iniziare ad usare LateX come editor di testo, ma non sono mai riuscito a concludere un documento da utilizzare perché manca sempre il tempo e per fare bene un lavoro purtroppo il tempo è fondamentale.
        In questo specifico caso sto rifacendo l’analisi del rischio chimico aziendale e il documento ha molte tabelle, word mi stava facendo impazzire perchè sistemo un titolo e devo aggiustare una tabella, aggiusto una tabella e ho problemi su un’immagine … e così via. Anche se con LateX non sono capace, è uno strumento stabile e una volta sistemato un problema si può passare al successivo senza pensarci troppo.
        In merito alla tabella ho sistemato in parte seguendo il tuo consiglio e in parte spulciando in rete, scrivo qui come ho fatto in modo da capire se ho fatto bene, male o così così.

        Nel preambolo ho inserito:
        `\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
        \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
        \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}`

        per gestire gli allineamenti del testo.
        Poi nella tabella ho impostato la larghezza delle colonne (da 1 a 5) che mi davano problemi aggiungendo:
        `\begin{tabular}{|cC{0.6cm}|C{1cm}|C{0.8cm}|C{0.8cm}|C{0.8cm}|}`
        In questo modo i testi all’interno delle colonne sono centrati e l’aspetto è più regolare.
        Il codice completo della tabella è:
        `\begin{table}[!ht] %Durata contatto cutaneo
        \centering
        \begin{tabular}{|cC{0.6cm}|C{1cm}|C{0.8cm}|C{0.8cm}|C{0.8cm}|}
        \hline
        \multicolumn{2}{|c|}{\multirow{2}*{ \textbf{P\ped{c}}}}&\multicolumn{4}{c|}{Durata (D)}\\ \cline{3-6}
        \multirow{5}*{Indice di esposizione cutanea (\textbf{E})}&&\textbf{1}&\textbf{2}&\textbf{3}&\textbf{4}\\
        \hline
        &\multicolumn{1}{|c|}{\textbf{1}}&2&3&3&4\\
        \cline{2-6}
        &\multicolumn{1}{|c|}{\textbf{2}}&4&6&7&8\\
        \cline{2-6}
        &\multicolumn{1}{|c|}{\textbf{3}}&7&9&10&12\\
        \cline{2-6}
        &\multicolumn{1}{|c|}{\textbf{4}}&9&12&14&16\\
        \cline{2-6}
        &\multicolumn{1}{|c|}{\textbf{5}}&11&15&17&20\\
        \hline
        \end{tabular}
        \end{table}`
        in allegato l’aspetto della tabella.
        L’unica anomalia che non ho ancora capito sta nell’allineamente a destra e sinistra, in pratica per avere allineamento a destra (mi serve in altre tabelle) ho dovuto mettere nel preambolo il codice “al contrario”:
        \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} —- LEFT
        \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1} —- RIGHT
        e non ho capito perché, ma così funziona e per il momento lo uso così, quando avrò un attimo di tempo in più cercherò di approfondire.
        L’allineamento verticale della prima colonna non è centrato e davvero non ho idea del perché.

        Infine, non ho ben capito la differenza fra filetti e bordi, ma approfondirò.
        Le tabelle sono così (giuste o sbagliate) in quanto copiate da un documento ufficiale, il consulente mi ha consigliato di non metterci troppo del mio perché se fanno un controllo è meglio che ci si trovi il più possibile nelle condizioni che il controllore conosce. Ho deciso di fare io la valutazione per vari motivi: farla fare da un esterno per intero costa davvero troppo, sono comunque responsabile io anche se sbaglia lui (:( ), non è così difficile (è solo lunga e noiosa).

        Grazie ancora per l’aiuto e chiedo scusa se vi ho annoiato con argomenti triti e ritriti.
        A presto

        Attachments:
        You must be logged in to view attached files.
      • #110471
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non ho capito perché scrivi cosÌ;`\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} —- LEFT
          \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1} —- RIGHT`
          Hai già definito la colonna R come qualcosa di cui puoi specificare la larghezza Ora ridefinisci questo ocmando (o meglio definisci) che non trovo drammaticamente diverso da quello che hi indicato nel riquadro precedente, dove dici “ho risolto così”

          Allora definisci la colonna R; a parte dettagli tipo \arraybackslash, definisci una colonna di tipo p a cuoi premetti il comando \raggedleft. Benissimo; non è quello che volevi, cioè che nella cella di larghezza prefissata volessi il contenuto allineato a destra? ti stupisci forse perché devi usare \raggedleft? Non c’è niente da stupirsi, se vuoi il contenuto allineato a destra, dentro il “mini capoverso” della cella di tipo p vuoi che il margne destro sia incolonnato (giustificato) e che il margine sinistro non sia giustificato (ragged). Un ragionamento analogo vale per la colonna di tipo L.

        • #110472
          Up
          0
          Down
          ::


          Ciao.
          Ora è molto più chiaro, ho superficialmente dato per scontato che R ed L indicassero il rispettivo allineamento, non ho approfondito le opzioni del comando.
          Ho pensato di cambiare le opzioni del comando in:
          `\newcolumntype{L}[1]{>{\raggedleft\arraybackslash}p{#1}}
          \newcolumntype{R}[1]{>{\raggedright\arraybackslash}p{#1}`
          in modo da renderlo mnemonicamente più facile da ricordare (per me), è una grossa bestilità?

          Ora vado a litigare con il frontespizio.
          Grazie ancora.
          A presto

        • #110473
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            No hai fatto benissimo.

            Perché dovresti litigare con il frontespizio?

          • #110474
            Up
            0
            Down
            ::


            ho avuto qualche problemino con il frontespizio, il documento che sto preparando, anzi trasferendo da word a Latex è il manuale della sicurezza sui luoghi di lavoro (aziendale) e sto cercando di creare un frontespizio con logo aziendale, un po’ personalizzato.
            Finora ho trovato informazioni in merito ai frontespizi accademici (tesi di laurea e simili), ma poco o nulla che faccia al caso mio.
            Ma ci sbatto un po’ la testa da solo per un po’ prima di chiedere.
            Grazie 1000.

          • #110475
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Nella documentazione di della classe TOPtesi (texdoc toptesi-it) si parla molto di frontespizi di tesi di laurea, ma viene indicato un modo per crearsi un frontespizio personalizzato, senza ricorrere alle funzionalità della classe. L’esempio è quello di creare il frontespizio per na tesi in formato album (landscape) invece che in formato libro. Siccome il metodo descritto parte da zero, lì in pratica torvi tutte le indicazioni per crearti un frontespizio qualsiasi.

            • #110476
              Up
              0
              Down
              ::


              Grazie Claudio.
              Nel frattempo ho risolto facendo una semplice copertina con logo aziendale, titolo e sottotitolo (più o meno gli stessi contenuti che avevo nel file word).

              Andando fuori tema … all’università ricordo che i pc dei laboratori avevano qualche icona relativa a Latex, ma all’epoca non sapevo cosa fosse e non mi ci sono addentrato.
              A metà degli anni ’90, internet non era ancora disponibile in tutti i laboratori, ho avuto l’accesso solo per fare la tesi e non c’era tutta la documentazione di adesso.
              Nessuno poi ci aveva prospettato un’alternativa a word e non so quante notti insonni ho perso per sistemare relazioni, grafici, tabelle … ricordo che una volta, qualche giorno prima di un esame, torno a casa dopo l’ultima lezione, finisco una relazione e volevo mandarle in stampa tutte assieme (su una stampante Honeywell ad aghi che faceva tremare il palazzo ma che non si fermava nemmeno con le cannonate) e word mi aveva perso TUTTI i riferimenti dei grafici e le tabelle erano un disastro. Ho perso il pomeriggio per sistemare e stampare tutto …

              Vabbè un po’ di nostalgia.
              A presto e grazie ancora!

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

          Go to top