Aumentare lo spazio in una tabella

  • Creatore
    Topic
  • #66173
    Up
    0
    Down
    ::


    Ciao a tutti,

    Scusatemi per il disturbo, so che la mia domanda sarà stata toccata milioni di volte, ma non riesco a trovare la risposta. So che fare una tabella è sempre difficoltoso e di solito la maggior parte delle tabelle sono orrende. La tabella che sto costruendo io non è da meno. Tuttavia vorrei provare a renderla un po’ meno oscena ingrossando gli spazi tra le righe. Volevo quasi fare, in maniera un po’ maccheronica ponendo al posto di \\ la scritta \\[2pt] ma il risultato è orribile perché le righe di \toprule, \midrule e \bottomrule non sono correttamente allineare. Ci sarebbe un modo per ingrossare tutti gli spazi, compresi quelli delle righe??

    Ciao e grazie,

    Andrea

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #66174
      Up
      0
      Down
      ::


      Perché la maggior parte delle tabelle è orrenda? Le mie non lo sono! 😀

      Piuttosto, facci vedere il codice della tua tabella: aumentare lo spazio tra le righe non è proprio un buon modo per migliorarla. Di solito lo si fa se proprio il contenuto delle celle va a sovrapporsi (quanto odio il verbo andare usato in questo modo! 😉 ).

      Che vuol dire, poi, che i filetti non sono allineati? La tua domanda non mi è chiara.

      Ciao
      Tommaso

    • #66175
      Up
      0
      Down
      ::


      Ecco la mia tabella:

      `
      \begin{tabular}{l*{2}{>{$}r<{$}@{$\mathbin{}\equiv\mathbin{}$}>{$}l<{$}}} \toprule \textsl{nome} & \multicolumn{2}{c}{\slshape proprietà} & \multicolumn{2}{c}{\slshape proprietà duale} \\ \midrule associativa & (\mathcal{A}\land\mathcal{B})\land\mathcal{C} & \mathcal{A}\land(\mathcal{B}\land\mathcal{C}) & (\mathcal{A}\lor\mathcal{B})\lor\mathcal{C} & \mathcal{A}\lor(\mathcal{B}\lor\mathcal{C}) \\ commutativa & \mathcal{A}\land\mathcal{B} & \mathcal{B}\land\mathcal{A} & \mathcal{A}\lor\mathcal{B} & \mathcal{B}\lor\mathcal{A} \\ distributiva & \mathcal{A}\land(\mathcal{B}\lor\mathcal{C}) & (\mathcal{A}\land\mathcal{B})\lor(\mathcal{A}\land\mathcal{C}) & \mathcal{A}\lor(\mathcal{B}\land\mathcal{C}) & (\mathcal{A}\lor\mathcal{B})\land(\mathcal{A}\lor\mathcal{C}) \\ di assorbimento & \mathcal{A}\land(\mathcal{B}\lor\mathcal{A}) & \mathcal{A} & \mathcal{A}\lor(\mathcal{B}\land\mathcal{A}) & \mathcal{A} \\ elemento neutro & \mathcal{A}\land\top & \mathcal{A} & \mathcal{A}\lor\bot & \mathcal{A} \\ complementazione & \mathcal{A}\land\lnot\mathcal{A} & \bot & \mathcal{A} \lor \lnot\mathcal{A} & \top \\ leggi de De Morgan & \lnot(\mathcal{A}\land\mathcal{B}) & \lnot\mathcal{A}\lor\lnot\mathcal{B} & \lnot(\mathcal{A}\lor\mathcal{B}) & \lnot\mathcal{A}\land\lnot\mathcal{B} \\ idempotenza & \mathcal{A}\land\mathcal{A} & \mathcal{A} & \mathcal{A}\lor\mathcal{A} & \mathcal{A} \\ involuzione\footnotemark & \multicolumn{4}{c}{$\lnot\lnot\mathcal{A} \equiv\mathcal{A}$} \\ implicazione & \multicolumn{4}{c}{$\mathcal{A}\implies\mathcal{B} \equiv\lnot\mathcal{A}\lor\mathcal{B}$} \\ equivalenza & \multicolumn{4}{c}{$\mathcal{A}\iff\mathcal{B} \equiv (\mathcal{A}\implies\mathcal{B})\land(\mathcal{B}\implies\mathcal{A})$} \\ \bottomrule \end{tabular} ` Così com'è fa un po' schifo e non entra nella pagina, sicché l'ho messa dentro figure con il carattere \footnotesize.

      Ciao,

      Andrea

    • #66176
      Up
      0
      Down
      ::


      Non c’è alcun disallineamento se usi \\[], ma con booktabs è meglio \addlinespace che ha anche un argomento opzionale. Ti propongo una versione diversa:
      `\begin{table}
      \newcommand{\mc}{\mathcal}
      \newcommand{\eeq}{\equiv}
      \newcolumntype{R}{>{$}r<{$}} \newcolumntype{L}{>{$}l<{$}} \newcolumntype{C}{>{${}}c<{{}$}} \centering\footnotesize \begin{tabular}{l*{2}{R@{}C@{}L}} \toprule \textsl{nome} & & \makebox[0pt]{\slshape propriet‡} & & \makebox[0pt]{\slshape propriet‡ duale} \\ \midrule associativa & (\mc{A}\land\mc{B})\land\mc{C} &\eeq& \mc{A}\land(\mc{B}\land\mc{C}) & (\mc{A}\lor\mc{B})\lor\mc{C} &\eeq& \mc{A}\lor(\mc{B}\lor\mc{C}) \\ commutativa & \mc{A}\land\mc{B} &\eeq& \mc{B}\land\mc{A} & \mc{A}\lor\mc{B} &\eeq& \mc{B}\lor\mc{A} \\ distributiva & \mc{A}\land(\mc{B}\lor\mc{C}) &\eeq& (\mc{A}\land\mc{B})\lor(\mc{A}\land\mc{C}) & \mc{A}\lor(\mc{B}\land\mc{C}) &\eeq& (\mc{A}\lor\mc{B})\land(\mc{A}\lor\mc{C}) \\ di assorbimento & \mc{A}\land(\mc{B}\lor\mc{A}) &\eeq& \mc{A} & \mc{A}\lor(\mc{B}\land\mc{A}) &\eeq& \mc{A} \\ elemento neutro & \mc{A}\land\top &\eeq& \mc{A} & \mc{A}\lor\bot &\eeq& \mc{A} \\ complementazione & \mc{A}\land\lnot\mc{A} &\eeq& \bot & \mc{A} \lor \lnot\mc{A} &\eeq& \top \\ leggi de De Morgan & \lnot(\mc{A}\land\mc{B}) &\eeq& \lnot\mc{A}\lor\lnot\mc{B} & \lnot(\mc{A}\lor\mc{B}) &\eeq& \lnot\mc{A}\land\lnot\mc{B} \\ idempotenza & \mc{A}\land\mc{A} &\eeq& \mc{A} & \mc{A}\lor\mc{A} &\eeq& \mc{A} \\ \addlinespace involuzione\footnotemark & \lnot\lnot\mc{A} &\eeq& \mc{A} \\ implicazione & \mc{A}\implies\mc{B} &\eeq& \lnot\mc{A}\lor\mc{B} \\ equivalenza & \mc{A}\iff\mc{B} &\eeq& \makebox[0pt][l]{$(\mc{A}\implies\mc{B})\land(\mc{B}\implies\mc{A})$} \\ \bottomrule \end{tabular} \end{table}` A parte la definizione di comandi ausiliari locali per tenere compatto il codice, la variante più importante è l'introduzione di una nuova coppia di colonne riservate al simbolo di equivalenza sul quale sono centrate anche le intestazioni (rese di larghezza zero con \makebox[0pt]). L'altra variante è che le ultime proprietà stanno da una parte e non penzolanti in mezzo (che non è nemmeno il mezzo, fra l'altro). L'ultima, che aumenta troppo l'ampiezza della quarta colonna l'ho trattata allo stesso modo, rendendola di ampiezza zero; sborda un po', ma non si nota perché è l'ultima. Personalmente rinuncerei all'allineamento dei segni di equivalenza: c'è troppo ondeggiamento su entrambi i lati. Ma sono scelte dipendenti dal gusto. Secondo me \iff è un simbolo troppo grande, meglio \Leftrightarrow. E forse sono anche meglio le frecce "singole", ma qui si può discutere. Ciao Enrico

    • #66177
      Up
      0
      Down
      ::


      Wow, sia il codice che la tabella sono usciti fuori bellissimi!!!! Sei proprio bravissimissimo Enrico!!

      Solo che avevo capito che era meglio evitarli i comandi accorciati come \mc per \mathcal. Inoltre, non ho capito esattamente perché inserire tutte le volte il simbolo \eeq (cioè \equiv) e non fare come avevo scritto io di inserirlo in automatico. Il comando \newcolumntype sembra comodissimo: lo riutilizzerò moltissime volte!

      Ciao,

      Andrea

    • #66178
      Up
      0
      Down
      ::

      logos” post=65211Wow, sia il codice che la tabella sono usciti fuori bellissimi!!!! Sei proprio bravissimissimo Enrico!!

      Solo che avevo capito che era meglio evitarli i comandi accorciati come \mc per \mathcal. Inoltre, non ho capito esattamente perché inserire tutte le volte il simbolo \eeq (cioè \equiv) e non fare come avevo scritto io di inserirlo in automatico. Il comando \newcolumntype sembra comodissimo: lo riutilizzerò moltissime volte!

      È vero il contrario! È meglio definire un comando personale per gli oggetti che intendiamo usare; magari non \mc, ma per esempio
      `\newcommand{\mvar}{\mathcal}`
      dove “mvar” sta per “metavariabile”. In questo modo aggiungi valore semantico ai comandi e hai il vantaggio che se vuoi cambiare come le tue metavariabili vengono composte ti basta agire sulla definizione di \mvar.

      Ho usato \eeq nella tabella per occupare meno spazio, \equiv va bene lo stesso. Perché inserirlo? Perché così possiamo usare quella colonna “fissa” per allineare a essa l’intestazione: con i tuoi primi e secondi membri sbilanciati, l’intestazione veniva centrata male; il centro “ottico” di quelle formule è il segno di equivalenza. Analogo discorso per le ultime tre identità: messe con \multicolumn a cavallo delle colonne rimanenti (quattro per te, sei per me) non le centrava rispetto all’asse ottico della tabella, che nemmeno c’è perché ce ne sono due.

      Trovi una tabella analoga a pagina 22 di queste dispense; come vedi ho preferito l’allineamento a sinistra per le due colonne. Allineare all’uguale sbilancia tutto.

      Ciao
      Enrico

    • #66179
      Up
      0
      Down
      ::


      Ti ringrazio delle spiegazioni, Enrico. Sono molto utili e credo che mi saranno anche molto utili. L’idea di utilizzare un comando personale che “descriva” l’oggetto in esame è molto utile. Mi è capitato moltissime volte di decidere di cambiare notazione a metà testo, e mi sono dovuto spaccare schiena ed occhi per sistemare tutto il testo già scritto. D’ora in avanti, cercherò sempre di usare dei comandi personali. Riguardo alla tabella, sono talmente ignorante in materia da non essere assolutamente in grado di farne di decenti. Potrei scimmiottare quelle delle dispense che mi hai mostrato, che, peraltro, mi sembrano estremamente interessanti.

      Ti ringrazio ancora nuovamente per i preziosi suggerimenti,

      Andrea

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

Go to top