Calcolo dei sequenti in LaTeX

  • Questo topic ha 53 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 3 anni, 3 mesi fa da Sara.
  • Creatore
    Topic
  • #121552
    Up
    0
    Down
    ::


    Avrei bisogno di scrivere alcune regole del calcolo dei sequenti (esempio) in LaTeX.
    C’è qualche pacchetto che può fare al caso mio?

Visualizzazione 52 filoni di risposte
  • Autore
    Risposte
    • #121553
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Quegli esempi sono tutti compilabili con il pacchetto amsmath che fa uso anche dei font amsa e amsb; (li carica quasi da solo,ma aggingi anche il pacchetto amssymb, per accedere ai font in modo migliore) hai solo l’imbarazzo della scelta, ma devi leggerti la documentazione di amsmath (terminale: texdoc amsmath. e analogamente per amssymb.
        Il pacchetto e i suoi font è molto potente e chiunque scriva matematica con LaTeX dovrebbe farne uso quasi obbligatoriamente; forse non tanto per la matematica a livello di scuola media, ma dal livello del ginnasio o del liceo in su fino al dottorato di ricerca e alla ricerca scientifica direi che sa proprio obbligatorio. Il prefisso AMS sta per American Mathematical Society, lassociazione professionale del matematici statunitensi; ora la manutenzione di quei pacchetti e della loro documentazione è curata dal LaTeX Project Team.

        A occhio direi che gli esempi cui ti riferisci sono stati composti con amsmath 🙂

      • #121554
        Up
        0
        Down
        ::


        Parliamo degli esempi nell’immagine in allegato?
        Ho letto la documentazione di amsmath ma non ho trovato nulla del genere.

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


          Guarda l’elenco dei simboli aggiuntivi dalla pagina 20 in poi del documento amsfntdoc.pdf (texdoc amsfntdoc).
          Ti consigli anche la lettura dell’enorme catalogo di simboli e dei pacchetti che li producono symbols-a4.pdf (texdoc sumbols-a4)

        • #121556
          Up
          0
          Down
          ::


          Il mio problema non è come inserire i simboli, ma come inserire quelle strutture “a più piani” tipiche del calcolo dei sequenti. Chiedevo se c’era un pacchetto apposito.

        • #121557
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            A me sembrano semplici frazioni; se ti sembra che la riga orizzontale sia sottile,o spessa, se ti sembra che gli spazi de simboli e riga siano troppo larghi o troppo stretti puoi sempre modificarli; e in ogni caso amsmath mette a disposizione il comando \genfrac con il quale puoi personalizzare questi aspetti come vuoi; senza dover ogni volta specificare tutti i parametri, ti basta definire un comando, ]er esempio \sequent, e mettere una volta per tutte qui parametri dento il tuo nuovo comando, così da non doverli ripetere ogi volta.

            Se non ti piace, puoi semrpre andare nel sito di CTAN e cercare per argomento i pacchetti che trattano i sequents (devi usare l’inglese); secondo me perdimeno tempo a create in prima persona la macro che ti dicevo; forse devis sperimentare n poco poer torovare gli spazi e gli spessori giusti, ma ne vale la pena. Io, almeon, penso che ne valga la pena.

          • #121558
            Up
            0
            Down
            ::


            Ho optato per l’utilizzo del pacchetto bussproofs e mi sembra valido, grazie!

            Ora vorrei creare una sorta di tabella con tutte le varie regole, raggruppate in base a certi criteri.
            In particolare vorrei che il numero di celle della tabella fosse variabile a seconda delle righe e vorrei poter specificare su ciascuna riga in che modo (ad esempio in percentuale) è distribuita la larghezza tra le varie celle della riga (allego immagine di esempio).
            Mi dareste qualche dritta su come farlo?

            PS: visto che in un certo senso questa è un’altra richiesta rispetto al messaggio precedente, se lo ritenete più idoneo apro un nuovo thread.

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


              riga per riga dovresti usare multicolumn nel modo più adatto; per esempio hai righe che cotengono celle di 1/4 della larghezza. altre di 1/2, altre di un terzo; il un multiplo dei denominatori è 12 , quindi definisci una tabella di 12 colonne; dentro ogni riga ci metti \per esempio [code}\multicolumn6{c}{cella da mezza larghezza}&\multicolumn 13{c}{ cella da 1/4 di larghetta}&\multicolumn3c{cella da 1/4}\\
              \multicolumn(12}{c}{cella da larghezza intera}\\
              \multicolumn4{c}{cella da 1/3}&\multicolumn4{c}{cella da 1/3}&\multicolumn4{c}{cella da 1/3}[/code]
              Fai attenzione che i numeri di celle occupate a un \multicolumn deve essere un numero intero, quindi fai attenzione al multiplo giusto.

            • #121560
              Up
              0
              Down
              ::


              Ho creato una table con multicolumn come mi hai suggerito:
              `
              \begin{table}[]
              \centering
              \begin{tabular}{clllclclclll}
              \multicolumn{4}{c}{ax1} & \multicolumn{4}{c}{ax2} & \multicolumn{4}{c}{ax3}\\
              \multicolumn{6}{c}{e s} & \multicolumn{6}{c}{e d}\\
              \multicolumn{6}{c}{o s} & \multicolumn{3}{c}{o d 1} & \multicolumn{3}{l}{o d 2}\\
              \multicolumn{6}{c}{implica s} & \multicolumn{6}{c}{implica d}\\
              \multicolumn{6}{c}{neg s} & \multicolumn{6}{c}{neg d}\\
              \multicolumn{12}{c}{scambio}
              \end{tabular}
              \end{table}
              `
              Fin qui tutto bene.
              Ho anche scritto una dimostrazione tramite calcolo dei sequenti con il package bussproofs:
              `
              \begin{prooftree}
              \AxiomC{$\Gamma, \phi, \psi \vdash \gamma$}
              \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \gamma$}
              \end{prooftree}
              `
              Anche qui tutto bene.
              Il problema nasce quando vado ad inserire la dimostrazione all’interno della multicolumn:
              `
              \begin{table}[]
              \centering
              \begin{tabular}{clllclclclll}
              \multicolumn{4}{c}{ax1} & \multicolumn{4}{c}{ax2} & \multicolumn{4}{c}{ax3}\\
              \multicolumn{6}{c}{
              \begin{prooftree}
              \AxiomC{$\Gamma, \phi, \psi \vdash \gamma$}
              \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \gamma$}
              \end{prooftree}
              } & \multicolumn{6}{c}{e d}\\
              \multicolumn{6}{c}{o s} & \multicolumn{3}{c}{o d 1} & \multicolumn{3}{l}{o d 2}\\
              \multicolumn{6}{c}{implica s} & \multicolumn{6}{c}{implica d}\\
              \multicolumn{6}{c}{neg s} & \multicolumn{6}{c}{neg d}\\
              \multicolumn{12}{c}{scambio}
              \end{tabular}
              \end{table}
              `
              In fase di compilazione ottengo l’errore:

              ! LaTeX Error: Something’s wrong–perhaps a missing \item.

              See the LaTeX manual or LaTeX Companion for explanation.
              Type H for immediate help.

              l.74 }
              & \multicolumn{6}{c}{e d}\\
              ?

              Quale può essere il problema?

            • #121561
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Non sono riuscito a capire che cosa impedisca all’ambiente prooftree ad essere incorporato in una tabella; nemmeno se inscatolato in una minipage; se dovessi farlo io, ricorrerei ad un artificio complicatissimo; comporrei la dimostrazione in un’immagine, cioè un un file pdof smarginato e importerei quel pdf come se fosse un’immagine. ma la cosa richiede grosse complicazioni. Tramite il pacchetto pdfcrop si riesce a fare qualcosa; anche il pacchetto standalone riesce a fare un buon lavoro, tuttavia la cosa è un po’ acrobatica.

              • #121562
                Up
                0
                Down
                ::


                Quindi il problema è dell’ambiente prooftree?
                Pensi che utilizzare un package diverso da bussproofs potrebbe risolvere il problema?

              • #121563
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  è possibile che esistano altri pacchetti oltre a bussproofs, ma per crcarli bisogna cercare epr argometo nel sito di CTAN che ti ho indicato.

                  Come ti ho detto io farei con standalone. ma certo bisogna impratichirsene; non è difficile, ma richiede pazienza e precisione perché le operazioni sono delicate.

                • #121564
                  Up
                  0
                  Down
                  ::


                  Penso di aver risolto il problema pur mantenendo il pacchetto bussproofs, anzichè utilizzare l’ambiente prooftree ho inserito i sequenti in linea e dopo ogni sequente ho aggiunto il comando \DisplayProof nel modo seguente:
                  `
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \phi$}
                  \DisplayProof
                  `

                  Ora ho scritto il seguente codice:
                  `
                  \section{Logica proposizionale intuizionista}

                  AAAAAAAAAAAAAAAAAAAAAAAAA

                  \begin{table}[]
                  \centering
                  \begin{tabular}{cccccccccccc}
                  \multicolumn{4}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \phi$}
                  \DisplayProof
                  } & \multicolumn{4}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \phi$}
                  \DisplayProof
                  } & \multicolumn{4}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma \vdash \top$}
                  \DisplayProof
                  }\\
                  \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \phi, \psi \vdash \gamma$}
                  \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \gamma$}
                  \DisplayProof
                  } & \multicolumn{6}{c}{
                  \AxiomC{$\Gamma \vdash \phi$}
                  \AxiomC{$\Gamma \vdash \psi$}
                  \BinaryInfC{$\Gamma \vdash \phi \wedge \psi$}
                  \DisplayProof
                  }\\
                  \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \phi \vdash \gamma$}
                  \AxiomC{$\Gamma, \psi \vdash \gamma$}
                  \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \gamma$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \phi$}
                  \UnaryInfC{$\Gamma \vdash \phi \vee \psi$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \psi$}
                  \UnaryInfC{$\Gamma \vdash \phi \vee \psi$}
                  \DisplayProof
                  }\\
                  \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \phi \rightarrow \psi \vdash \phi$}
                  \AxiomC{$\Gamma, \psi \vdash \gamma$}
                  \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \gamma$}
                  \DisplayProof
                  } & \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \phi \vdash \psi$}
                  \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi$}
                  \DisplayProof
                  }\\
                  \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \neg \phi \vdash \phi$}
                  \UnaryInfC{$\Gamma, \neg \phi \vdash \psi$}
                  \DisplayProof
                  } & \multicolumn{6}{c}{
                  \AxiomC{$\Gamma, \phi \vdash$}
                  \UnaryInfC{$\Gamma \vdash \neg \phi$}
                  \DisplayProof
                  }\\
                  \multicolumn{12}{c}{
                  \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \phi$}
                  \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \phi$}
                  \DisplayProof
                  }
                  \end{tabular}
                  \end{table}

                  BBBBBBBBBBBBBBBBBBBBBBBBBBB

                  \section{Logica proposizionale classica}

                  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                  \begin{table}[]
                  \centering
                  \begin{tabular}{cccccc}
                  \multicolumn{2}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \Delta, \phi, \Delta'$}
                  \DisplayProof
                  } & \multicolumn{2}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{2}{c}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma \vdash \Delta, \top, \Delta'$}
                  \DisplayProof
                  }\\
                  \multicolumn{3}{c}{
                  \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                  \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \AxiomC{$\Gamma \vdash \psi, \Delta$}
                  \BinaryInfC{$\Gamma \vdash \phi \wedge \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \multicolumn{3}{c}{
                  \AxiomC{$\Gamma, \phi \vdash \Delta$}
                  \AxiomC{$\Gamma, \psi \vdash \Delta$}
                  \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \phi, \psi, \Delta$}
                  \UnaryInfC{$\Gamma \vdash \phi \vee \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \AxiomC{$\Gamma, \psi \vdash \Delta$}
                  \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma, \phi \vdash \psi, \Delta$}
                  \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \UnaryInfC{$\Gamma, \neg \phi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma, \phi \vdash \Delta$}
                  \UnaryInfC{$\Gamma\vdash \neg \phi, \Delta$}
                  \DisplayProof
                  }\\
                  \multicolumn{3}{c}{
                  \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \Delta$}
                  \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{c}{
                  \AxiomC{$\Gamma \vdash \Sigma, \Delta, \Theta, \Delta', \Sigma'$}
                  \UnaryInfC{$\Gamma \vdash \Sigma, \Delta', \Theta, \Delta, \Sigma'$}
                  \DisplayProof
                  }
                  \end{tabular}
                  \end{table}

                  DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
                  `
                  La prima tabella dovrebbe comparire tra la riga di A e la riga di B, la seconda tabella dovrebbe comparire tra la riga di C e la riga di D e invece…allego il risultato che ottengo.

                  [attachment]C:\fakepath\anteprima.png[/attachment]

                • #121565
                  Up
                  0
                  Down
                  ::


                  [attachment]C:\fakepath\anteprima.png[/attachment]

                • #121566
                  Up
                  0
                  Down
                  ::


                  Ho risolto, utilizzando comunque il pacchetto bussproofs: anzichè utilizzare l’ambiente prooftree ho messo i comandi per generare i sequenti “sciolti” dentro la tabella e ho aggiunto alla fine di ognuno il comando \DisplayProof.
                  `
                  \begin{center}
                  \begin{tabular}{cccccc}
                  \hline
                  \multicolumn{2}{|c|}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \Delta, \phi, \Delta'$}
                  \DisplayProof
                  } & \multicolumn{2}{|c|}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{2}{|c|}{
                  \AxiomC{}
                  \UnaryInfC{$\Gamma \vdash \Delta, \top, \Delta'$}
                  \DisplayProof
                  }\\
                  \hline
                  \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                  \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \AxiomC{$\Gamma \vdash \psi, \Delta$}
                  \BinaryInfC{$\Gamma \vdash \phi \wedge \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \hline
                  \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma, \phi \vdash \Delta$}
                  \AxiomC{$\Gamma, \psi \vdash \Delta$}
                  \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma \vdash \phi, \psi, \Delta$}
                  \UnaryInfC{$\Gamma \vdash \phi \vee \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \hline
                  \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \AxiomC{$\Gamma, \psi \vdash \Delta$}
                  \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma, \phi \vdash \psi, \Delta$}
                  \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi, \Delta$}
                  \DisplayProof
                  }\\
                  \hline
                  \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma \vdash \phi, \Delta$}
                  \UnaryInfC{$\Gamma, \neg \phi \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma, \phi \vdash \Delta$}
                  \UnaryInfC{$\Gamma\vdash \neg \phi, \Delta$}
                  \DisplayProof
                  }\\
                  \hline
                  \multicolumn{3}{|c|}{
                  \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \Delta$}
                  \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \Delta$}
                  \DisplayProof
                  } & \multicolumn{3}{|c|}{
                  \AxiomC{$\Gamma \vdash \Sigma, \Delta, \Theta, \Delta', \Sigma'$}
                  \UnaryInfC{$\Gamma \vdash \Sigma, \Delta', \Theta, \Delta, \Sigma'$}
                  \DisplayProof
                  }\\
                  \hline
                  \end{tabular}
                  \end{center}
                  `
                  L’unica cosa che ora non mi torna è come mai ora la prima riga della tabella (che è composta da tre celle) ha la prima cella più larga delle altre due, nonostante nel codice siano tutte e tre multicolumn{2}…

                  [attachment=2740]tabella.pdf[/attachment]

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


                    È normale che sia così.
                    il comando \multicolumn dice quanti & deve “saltare” per cominciare un’altra cella, ma il descrittore di cela non dice quando deve essere larga, dice solo se il contenuto deve essere allineato a sinistra o a destra o se debba essere centrato.
                    Nel tuo caso la prima cella della prima riga è più larga delle altre due perché il contenuto è più largo.

                    Se proprio volessi specificare anche le larghezze delle celle, semplici o multiple, dovresti usare i descrittori p{…}, oppure, usando il pacchetto array, m{…} o b{…} per l’allineamento verticale e i comandi >{…} per gli allineamenti orizzontali. Ovviamente molto più complesso, anche se ti permette di regolare le larghezze delle celle al millimetro, anzi al milionesimo di millimetro, tanto è preciso il sistema TeX nella gestione delle misure.

                  • #121568
                    robitex
                    Amministratore del forum
                      Up
                      0
                      Down
                      ::

                      vsara” post=122137Ho risolto, utilizzando comunque il pacchetto bussproofs: anzichè utilizzare l’ambiente prooftree ho messo i comandi per generare i sequenti “sciolti” dentro la tabella e ho aggiunto alla fine di ognuno il comando \DisplayProof.
                      `
                      \begin{center}
                      \begin{tabular}{cccccc}
                      \hline
                      \multicolumn{2}{|c|}{
                      \AxiomC{}
                      \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \Delta, \phi, \Delta'$}
                      \DisplayProof
                      } & \multicolumn{2}{|c|}{
                      \AxiomC{}
                      \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{2}{|c|}{
                      \AxiomC{}
                      \UnaryInfC{$\Gamma \vdash \Delta, \top, \Delta'$}
                      \DisplayProof
                      }\\
                      \hline
                      \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                      \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma \vdash \phi, \Delta$}
                      \AxiomC{$\Gamma \vdash \psi, \Delta$}
                      \BinaryInfC{$\Gamma \vdash \phi \wedge \psi, \Delta$}
                      \DisplayProof
                      }\\
                      \hline
                      \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma, \phi \vdash \Delta$}
                      \AxiomC{$\Gamma, \psi \vdash \Delta$}
                      \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma \vdash \phi, \psi, \Delta$}
                      \UnaryInfC{$\Gamma \vdash \phi \vee \psi, \Delta$}
                      \DisplayProof
                      }\\
                      \hline
                      \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma \vdash \phi, \Delta$}
                      \AxiomC{$\Gamma, \psi \vdash \Delta$}
                      \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma, \phi \vdash \psi, \Delta$}
                      \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi, \Delta$}
                      \DisplayProof
                      }\\
                      \hline
                      \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma \vdash \phi, \Delta$}
                      \UnaryInfC{$\Gamma, \neg \phi \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma, \phi \vdash \Delta$}
                      \UnaryInfC{$\Gamma\vdash \neg \phi, \Delta$}
                      \DisplayProof
                      }\\
                      \hline
                      \multicolumn{3}{|c|}{
                      \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \Delta$}
                      \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \Delta$}
                      \DisplayProof
                      } & \multicolumn{3}{|c|}{
                      \AxiomC{$\Gamma \vdash \Sigma, \Delta, \Theta, \Delta', \Sigma'$}
                      \UnaryInfC{$\Gamma \vdash \Sigma, \Delta', \Theta, \Delta, \Sigma'$}
                      \DisplayProof
                      }\\
                      \hline
                      \end{tabular}
                      \end{center}
                      `
                      L’unica cosa che ora non mi torna è come mai ora la prima riga della tabella (che è composta da tre celle) ha la prima cella più larga delle altre due, nonostante nel codice siano tutte e tre multicolumn{2}…

                      [attachment=2740]tabella.pdf[/attachment]

                      Ciao.
                      L’ambiente tabular è progettato per lasciare un piccolo spazio a sinistra della prima cella e a destra dell’ultima, per ciascuna riga.
                      Nei descrittori di colonna esiste la possibilità di azzerare questo spazio.
                      Può darsi che sia questo che evita l’allineamento che lamenti.
                      Vedi anche messaggio precedente di OldClaudio.
                      R.

                    • #121569
                      Up
                      0
                      Down
                      ::


                      Senza specificare una larghezza assoluta delle multicolumn, è possibile fare in modo che la tabella si allarghi automaticamente fino a che ogni riga abbia tutte le multicolumn tutte larghe uguali?

                      E riguardo la possibilità di azzerare lo spazio a sinistra della prima cella e a destra dell’ultima, come lo posso specificare nei descrittori di colonna?

                    • #121570
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Certo che c’è il modo di togliere o di aggiungere spazio sia in orizzontale sia in verticale; siccome è lungo da spiegare, bisognrebbe che @vsara leggesse con attenzione la guida tematica tabelle da scaricare dalla sezione Documentazione di questo forum; tutto si può aggiustare compreso quello di specificare la larghezza delle celle con descrittori di colonne specifici che si possono vedere in funzione leggendo la documetazione del pacchetto array (texdoc array);poi c’è il pacchetto lacui documentazione si legge con texdoc widetable; poi per gliamanti di LuaLaTeX c\è il pacchetto tabularray, formidabile, persino eccessivo; alsolito al documentazioe si legge con texdoc tabularray.

                      • #121571
                        Up
                        0
                        Down
                        ::


                        Ho letto la sezione “Gli ambienti tabular e tabular*” della guida “Comporre tabelle e matrici”, ma non ho trovato il modo di adattare la larghezza della tabella in modo che in ogni riga tutte le multicolumn di quella riga abbiano la stessa larghezza…mi potresti dare una dritta?

                      • #121572
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Avrei dovuto farlo l’ultima volta che ti ho scritto. Ti chiedo scusa se lo faccio adesso.

                          Ho copiato l’ultimo file che hai allegato col quale avresti voluto dimostrare che le tre celle della prima riga venivano di larghezza diversa; ne avevi mandato anche una immagine, da cui sembrava che fosse proprio così.

                          Oggi o copiato quel file sorgente;o aggiunto quelle poche che mancavano per realizzare un EMC (esempio minimo compilabile; perché non lo fai tu? risparmieresti a chi ti vuole aiutare non solo pochi minuti, ma anche l’imbarazzo di indovinare quello che stai facendo tu prima e dopo la tabella che non ti viene). Ti allego qui il file completo dell’EMC che ho confezionato; certamante il preambolo è diverso dal tuto, perché è essenziale`\documentclass[12pt]{book}

                          \usepackage{%array,
                          bussproofs}

                          \begin{document}
                          \begin{center}
                          \begin{tabular}{*6c}
                          \hline
                          \multicolumn{2}{|c|}{
                          \AxiomC{}
                          \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \Delta, \phi, \Delta'$}
                          \DisplayProof
                          } & \multicolumn{2}{|c|}{
                          \AxiomC{}
                          \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{2}{|c|}{
                          \AxiomC{}
                          \UnaryInfC{$\Gamma \vdash \Delta, \top, \Delta'$}
                          \DisplayProof
                          }\\
                          \hline
                          \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                          \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma \vdash \phi, \Delta$}
                          \AxiomC{$\Gamma \vdash \psi, \Delta$}
                          \BinaryInfC{$\Gamma \vdash \phi \wedge \psi, \Delta$}
                          \DisplayProof
                          }\\
                          \hline
                          \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma, \phi \vdash \Delta$}
                          \AxiomC{$\Gamma, \psi \vdash \Delta$}
                          \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma \vdash \phi, \psi, \Delta$}
                          \UnaryInfC{$\Gamma \vdash \phi \vee \psi, \Delta$}
                          \DisplayProof
                          }\\
                          \hline
                          \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma \vdash \phi, \Delta$}
                          \AxiomC{$\Gamma, \psi \vdash \Delta$}
                          \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma, \phi \vdash \psi, \Delta$}
                          \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi, \Delta$}
                          \DisplayProof
                          }\\
                          \hline
                          \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma \vdash \phi, \Delta$}
                          \UnaryInfC{$\Gamma, \neg \phi \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma, \phi \vdash \Delta$}
                          \UnaryInfC{$\Gamma\vdash \neg \phi, \Delta$}
                          \DisplayProof
                          }\\
                          \hline
                          \multicolumn{3}{|c|}{
                          \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \Delta$}
                          \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \Delta$}
                          \DisplayProof
                          } & \multicolumn{3}{|c|}{
                          \AxiomC{$\Gamma \vdash \Sigma, \Delta, \Theta, \Delta', \Sigma'$}
                          \UnaryInfC{$\Gamma \vdash \Sigma, \Delta', \Theta, \Delta, \Sigma'$}
                          \DisplayProof
                          }\\
                          \hline
                          \end{tabular}
                          \end{center}

                          \end{document}
                          `A me le tre celle della prima riga vengono larghe uguali ! 😯

                          Non so se la pagina che ti allego viene effettivamante allegata al messaggio, ma se viene, constati che le tre larghezze sono uguali.

                          Io uso TeX Live completo e aggiornato, installato nel mio portatile; sistema operativo Mac OS X.
                          Tu usi una versione di TeX Live completa e aggiornata? oppure di MiKTeX completo e non di base?, oppure lavori su Overleaf?

                          [attachment=2742]Sequents-2.pdf[/attachment]

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


                          Scusami tu, effettivamente avevo riportato un frammento di codice e non un EMC.

                          Nel pdf che hai allegato al messaggio, vedo che la prima cella della prima riga è considerevolmente più larga delle altre due (probabilmente a causa del fatto che il suo contenuto è più largo rispetto al contenuto delle altre due). Mi sembra strano che visualizziamo il pdf in modi diversi, ma se me lo confermi posso riportare uno screenshot di come io visualizzo il tuo pdf.

                          PS: utilizzo TexLive su Windows, non so se sia aggiornato, come posso verificarlo?

                        • #121574
                          OldClaudio
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Guarda se questo sporco trucco ti risolve il problema`
                            \documentclass[12pt]{book}

                            \usepackage{%array,
                            bussproofs}

                            \begin{document}
                            \begin{center}\def\spazio{\hspace*{12mm}}
                            \begin{tabular}{*8{c}}
                            \spazio&\spazio&\spazio&\spazio&\spazio&\spazio&\spazio&\spazio\\
                            \hline
                            \multicolumn{4}{|c|}{\centering
                            \AxiomC{}
                            \UnaryInfC{$\Gamma, \phi, \Gamma' \vdash \Delta, \phi, \Delta'$}
                            \DisplayProof
                            } & \multicolumn{2}{c|}{\centering
                            \AxiomC{}
                            \UnaryInfC{$\Gamma, \bot, \Gamma' \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{2}{c|}{\centering
                            \AxiomC{}
                            \UnaryInfC{$\Gamma \vdash \Delta, \top, \Delta'$}
                            \DisplayProof
                            }\\
                            \hline
                            \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                            \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{4}{c|}{
                            \AxiomC{$\Gamma \vdash \phi, \Delta$}
                            \AxiomC{$\Gamma \vdash \psi, \Delta$}
                            \BinaryInfC{$\Gamma \vdash \phi \wedge \psi, \Delta$}
                            \DisplayProof
                            }\\
                            \hline
                            \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma, \phi \vdash \Delta$}
                            \AxiomC{$\Gamma, \psi \vdash \Delta$}
                            \BinaryInfC{$\Gamma, \phi \vee \psi \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma \vdash \phi, \psi, \Delta$}
                            \UnaryInfC{$\Gamma \vdash \phi \vee \psi, \Delta$}
                            \DisplayProof
                            }\\
                            \hline
                            \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma \vdash \phi, \Delta$}
                            \AxiomC{$\Gamma, \psi \vdash \Delta$}
                            \BinaryInfC{$\Gamma, \phi \rightarrow \psi \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma, \phi \vdash \psi, \Delta$}
                            \UnaryInfC{$\Gamma \vdash \phi \rightarrow \psi, \Delta$}
                            \DisplayProof
                            }\\
                            \hline
                            \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma \vdash \phi, \Delta$}
                            \UnaryInfC{$\Gamma, \neg \phi \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma, \phi \vdash \Delta$}
                            \UnaryInfC{$\Gamma\vdash \neg \phi, \Delta$}
                            \DisplayProof
                            }\\
                            \hline
                            \multicolumn{4}{|c|}{
                            \AxiomC{$\Sigma, \Gamma, \Theta, \Gamma', \Sigma' \vdash \Delta$}
                            \UnaryInfC{$\Sigma, \Gamma', \Theta, \Gamma, \Sigma' \vdash \Delta$}
                            \DisplayProof
                            } & \multicolumn{4}{|c|}{
                            \AxiomC{$\Gamma \vdash \Sigma, \Delta, \Theta, \Delta', \Sigma'$}
                            \UnaryInfC{$\Gamma \vdash \Sigma, \Delta', \Theta, \Delta, \Sigma'$}
                            \DisplayProof
                            }\\
                            \hline
                            \end{tabular}
                            \end{center}

                            \end{document}
                            `

                          • #121575
                            Up
                            0
                            Down
                            ::


                            Non so se ho capito precisamente cos’hai fatto in questo nuovo codice, comunque adesso la prima cella della prima riga è larga il doppio delle altre due celle della prima riga.

                            [attachment=2743]seqtab.png[/attachment]

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


                              Ho messo nella tabella una [rima riga invisibile che contiene solo degli spazi in ciascuna delle 8 celle, imponendo quindi alle celle di cambiare dimensione; la riga non si vede, mac’è e quando inserisci la tabella nel tuo testo vedi che sopra ciè dello spazio vuotoche primanon c’era. puoi annullarloconl’insermetodi spazionegati prima della tabella, per esempio `\begin{center}\vspace*{-\baselineskip}

                              \begin{{tabular}{…}

                              \end{tabular}
                              \end{center}`

                              Puoi anche regolareun poco la larghezza del tutto modificando il numer contenuto dentro al\\la definzioe di \spazio{…}

                            • #121577
                              OldClaudio
                              Partecipante
                                Up
                                0
                                Down
                                ::

                                OldClaudio” post=122149Ho messo nella tabella una [rima riga invisibile che contiene solo degli spazi in ciascuna delle 8 celle, imponendo quindi alle celle di cambiare dimensione; la riga non si vede, mac’è e quando inserisci la tabella nel tuo testo vedi che sopra ciè dello spazio vuoto che priman on c’era. puoi annullarlo con l’insermeto di spazio negativo prima della tabella, per esempio ` \begin{center}\vspace*{-\baselineskip}

                                \begin{{tabular}{…}

                                \end{tabular}
                                \end{center} `

                                Puoi anche regolareun poco la larghezza del tutto modificando il numer contenuto dentro al\\la definzioe di \spazio{…}

                              • #121578
                                Up
                                0
                                Down
                                ::


                                Ok, ma rimane il fatto che ora la prima cella della prima riga è larga il doppio delle altre due celle della prima riga, invece dovrebbero essere tutte e tre larghe uguali.

                              • #121579
                                OldClaudio
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::


                                  Non vedo come si possa fare diversamente, lasciando che la tabella non fori fuori dai margini il contenuto d\puù largoe della prima colonne è di 40mm; aggiungici almeno 6mm (3 a sinistra e 3 a destra, venfono 46mm e se abbiamo tre colonne larghe uguale, vengono 138mm, che è di iù della giustezza della gabbia della pagina A4 con la classe book. certo puoi rimiccolirla componento l’itera tabba i \small o i \footnotesize. Ma a quel punto inviede di usare multicolum per pa prima riga fisse tre colonne con i descrittori p{40mm); e sudi \peer le righe dopo la prima un \multicolun(2c{espressione logica} e nelle celle delle righe dopo la prim ti resterà un mucchio di spaziobianco.. Vedi tu…

                                • #121580
                                  Up
                                  0
                                  Down
                                  ::


                                  Ok grazie, non avevo capito che il problema fosse che il contenuto della prima cella è troppo largo.

                                  Mi chiedevo…come mai hai definito il comando spazio impostando proprio una larghezza di 12mm? Cioè come hai deciso questa misura e perchè?

                                • #121581
                                  OldClaudio
                                  Partecipante
                                    Up
                                    0
                                    Down
                                    ::


                                    Homosrato la figura della pagina A4 sullo schermo in modo che la larghezza fosse esattamante di 210mm, che è appunto la larghezza del foglio; ocn un righello ho miuralo al più larga delle formule della pima colona, ho aggio 2mm per lato e ho diviso per 4; poi ho provatodiversi valori atoroalvaloreche avevo ottenuto e ho arrotonf=dato ad un numero inerodi millimeri,

                                    Rozzo, ma efficace.

                                  • #121582
                                    Up
                                    0
                                    Down
                                    ::


                                    Chiarissimo, grazie.

                                    Per curiosità, se il contenuto delle mie multicolumn fosse più piccolo (ad esempio, “uno”, “due”, “tre”), ci sarebbe un modo di dire a LaTeX di allargare la tabella fino a fargli occupare il 100% della larghezza (che mi sembra di capire si chiami gabbia) e di rendere tutte e tre le multicolumn larghe uguali?

                                  • #121583
                                    OldClaudio
                                    Partecipante
                                      Up
                                      0
                                      Down
                                      ::


                                      Si usando il pacchetto tabularx e il descrittore di colona X; probabilmente bisogna dirgli di centrare il contenuto in tutte le celle, cosa che si può fare con i comandi speciali della pacchetto array, ma non è detto che un terzo di riga sia sufficiente per tutte le formule da inserirci dentro; basta provare. Se poi la tabella così compost contenesse tutti i sequenti ma fosse solo un pochino più larga della giustezza, si può sempre centrarla dento una scatola costruita con \makebox.
                                      Insomma LaTeX è una scatola di attrezzi; c’è l’imbarazzo della scelta per trovare gli strumenti giusti. Ma prima bisogna sempre analizzare il problema; in particolare bisogna sapere quanti millimetri è largoilcontenuto di ogni oggetto da incasellare in colonna e provvedere con calcoli ragionevoli prima di prendere la prima soluzione che viene in mente.

                                    • #121584
                                      Up
                                      0
                                      Down
                                      ::


                                      Ho letto la documentazione di tabularx ed ho provato a costruire qualche tabella.
                                      Il codice seguente crea una tabella che si adatta alle dimensioni del contenuto, ed è quindi “stretta”:
                                      `
                                      \documentclass[a4paper,11pt]{book}

                                      \usepackage[italian]{babel}
                                      \usepackage[utf8]{inputenc}

                                      \usepackage{tabularx}

                                      \begin{document}

                                      \begin{tabularx}{\columnwidth}{XX}
                                      \hline
                                      \multicolumn{2}{|c|}{Ciao}\\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \end{tabularx}

                                      \end{document}
                                      `
                                      Ho allora usato il trucchetto di aggiungere una riga vuota all’inizio:
                                      `
                                      \documentclass[a4paper,11pt]{book}

                                      \usepackage[italian]{babel}
                                      \usepackage[utf8]{inputenc}

                                      \usepackage{tabularx}

                                      \begin{document}

                                      \begin{tabularx}{\columnwidth}{XX}
                                      & \\
                                      \hline
                                      \multicolumn{2}{|c|}{Ciao}\\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                      \hline
                                      \end{tabularx}

                                      \end{document}
                                      `
                                      In questo modo la tabella si allarga fino ad occupare la larghezza della griglia, ma c’è un modo più corretto per ottenere questo risultato?

                                    • #121585
                                      OldClaudio
                                      Partecipante
                                        Up
                                        0
                                        Down
                                        ::


                                        Devi suare la colonna di tipo C anche dentro la tabella; e devi cominciarne il contenenuto con \centering a meno che, usando il pacchetto array tu non usi una rigaddi apertura di tabularx così`\begin{tabularx{{\linewudth}{*2{>{\centering}X}}`Nota: il comando \linewidth è molto comodo a una colonna equivale a ]textwidt e a due colonne, per una tabella che deve stare solo dentro una colonna, \linewidth equivale a \columnwidth. Io uso sistematicamente \linewidth e non mi chiedo più in quale modalità sto componendo.

                                      • #121586
                                        Up
                                        0
                                        Down
                                        ::


                                        In che senso devo usare la colonna di tipo C? Cioè usare la C maiuscola al posto della minuscola?

                                        Ho usato il pacchetto array e aggiunto la riga di apertura di tabularx che mi hai indicato ma il problema non si è risolto:
                                        `
                                        \documentclass[a4paper,11pt]{book}

                                        \usepackage[italian]{babel}
                                        \usepackage[utf8]{inputenc}

                                        \usepackage{array}
                                        \usepackage{tabularx}

                                        \begin{document}

                                        \begin{tabularx}{\linewidth}{*2{>{\centering}X}}
                                        %& \\
                                        \hline
                                        \multicolumn{2}{|c|}{Ciao}\\
                                        \hline
                                        \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                        \hline
                                        \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                        \hline
                                        \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                        \hline
                                        \multicolumn{1}{|c|}{ciao} & \multicolumn{1}{c|}{ciao} \\
                                        \hline
                                        \end{tabularx}

                                        \end{document}
                                        `

                                      • #121587
                                        OldClaudio
                                        Partecipante
                                          Up
                                          0
                                          Down
                                          ::


                                          Mi sono evidentemente spiegato male.

                                          Questo è il codice che funziona`% !TEX encoding = UTF-8 Unicode
                                          % !TEX TS-program = pdflatex

                                          % La prima riga “magica” è per l'editor, se è un editor moderno, altrimenti
                                          % serve solo all'utente per ricordarsi che con TeX Live moderno o MiKTeX
                                          % moderno questa è e la codifica preimpostata

                                          \documentclass[a4paper,11pt]{book}

                                          \usepackage[italian]{babel}
                                          \usepackage[utf8]{inputenc}% pleonastico: UTF* è preimpostato

                                          \usepackage{array}
                                          \usepackage{tabularx}

                                          \begin{document}
                                          \hrule
                                          \bigskip

                                          \noindent
                                          \begin{tabularx}{\linewidth}{|*2{>{\centering}X|}}
                                          %
                                          \hline
                                          \multicolumn{2}{|c|}{Ciao}\tabularnewline
                                          \hline
                                          ciao & ciao \tabularnewline
                                          \hline
                                          ciao & ciao \tabularnewline
                                          \hline
                                          ciao & ciao \tabularnewline
                                          \hline
                                          ciao & ciao \tabularnewline
                                          \hline
                                          \end{tabularx}

                                          \end{document}
                                          `
                                          Dopo [tt]\begin{document}[/tt] ho inserito il comando \hrule che traccia una linea orizzontale attraverso la giustezza corrente; \bigskip è per spaziala da quel che viene dopo. \noindent serve a evitare che la tabella, larga quanto la giustezza, cominci un nuovo capoverso; sarebbe inutile se la tabella fosse dentro un ambiente (flottante) table, perché dentro table e figure il rientro è nullo per impostazione predefinita. Prova a togliere \noindent e vedi che cosa succede.

                                        • #121588
                                          Up
                                          0
                                          Down
                                          ::


                                          Fantastico, grazie!

                                          Un’ultima cosa…ho notato che se inserisco dei sequenti al posto della scritta “ciao” (o anche semplicemente se inserisco una scritta con lettere maiuscole) questi “toccano” la linea superiore della tabella, c’è un modo per aggiustare la spaziatura in modo che questo non succeda?

                                          [attachment=2744]tabellasequenti.png[/attachment]

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


                                            Tabelle: paragrafo 3.1.3, in particolare la pagina 28.

                                          • #121590
                                            Up
                                            0
                                            Down
                                            ::


                                            Ho utilizzato
                                            `\setlength\extrarowheight{15pt}`
                                            ed ora il risultato è quasi esattamente quello che volevo.
                                            L’unica cosa che manca sarebbe allineare verticalmente il contenuto di ogni cella al centro della cella, qualche suggerimento?

                                            [attachment=2747]tabellasequentibis.png[/attachment]

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


                                              A me la tua tabella pare che i contenuti siano perfettamente centrato; se non li vuoi cenrati non usare i descrittooc ma o il descrittore l per alinearli a sinistra e r per allinearli a destra.

                                              Inve io userei la ridefinizionizio di \arraystretch, per esempio [tt]\def\arraystretich{1.5}[/tt]; questo ampllia il pilastrino che stainilsce l’altezza della riga di 1.5 volte;, quindi viene un po’ di spazio sia sopra sia sotto. Naturalmente il valore giusto del coefficiente va provato per tentativi. Vedi pagina 30 della guida sulle tabelle. Nella pagina 35 c’è un esempio. Dalla pagina 41in poi ci sono diverse applicazioni di questa ridefinizione per disegnare una tbella strana, quelle della cassa tipografica. Nelle pagine 65 e 66 c’è l’applicazione ad un tipo specile di tabella costituit da una matrice matemematic. Nell’esempio 8.2 c’è l’applicazione ad una lung tabelle che occuoa due pagine.

                                              Insomma la gita sulle tabelle contiene quasi tutto quello che bisogna sapre sulle tabelle. Volendo ci si potrebbe aggingere ltro, ma quello che serve a te c’è tutto.

                                            • #121592
                                              Up
                                              0
                                              Down
                                              ::


                                              Si si, l’allineamento orizzontale era perfetto.
                                              Ho comunque sostituito la soluzione che utilizzava \extrarowheight con quella che mi hai suggerito che utilizza arraystretch.
                                              `
                                              \documentclass[a4paper,11pt]{book}

                                              \usepackage[italian]{babel}
                                              \usepackage[utf8]{inputenc}

                                              \usepackage{array}
                                              \usepackage{tabularx}
                                              \usepackage{bussproofs}

                                              \begin{document}
                                              \hrule
                                              \bigskip

                                              \noindent
                                              %\setlength\extrarowheight{15pt}
                                              \renewcommand\arraystretch{3}
                                              \begin{tabularx}{\linewidth}{|*2{>{\centering}X|}}
                                              \hline
                                              \multicolumn{2}{|c|}{
                                              \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                                              \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                                              \DisplayProof
                                              }\tabularnewline
                                              \hline
                                              \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$} \DisplayProof & ciao \tabularnewline
                                              \hline
                                              ciao & ciao \tabularnewline
                                              \hline
                                              \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                                              \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                                              \DisplayProof & ciao \tabularnewline
                                              \hline
                                              ciao & ciao \tabularnewline
                                              \hline
                                              \end{tabularx}

                                              \end{document}
                                              `
                                              Quello che ti chiedevo nel post precedente era se c’è un modo per centrare il contenuto delle celle orizzontalmente, nel senso che attualmente all’interno delle celle c’è molto più spazio sopra che sotto rispetto al contenuto.

                                            • #121593
                                              OldClaudio
                                              Partecipante
                                                Up
                                                0
                                                Down
                                                ::


                                                Prova questo
                                                `\documentclass[a4paper,11pt]{book}

                                                \usepackage[italian]{babel}
                                                \usepackage[utf8]{inputenc}

                                                \usepackage{array}
                                                \usepackage{tabularx}
                                                \usepackage{bussproofs}

                                                \begin{document}
                                                \hrule
                                                \bigskip

                                                \noindent
                                                \setlength\extrarowheight{-4pt}
                                                \renewcommand\arraystretch{4}
                                                \begin{tabularx}{\linewidth}{|*2{>{\centering}X|}}
                                                \hline
                                                \multicolumn{2}{|c|}{
                                                \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                                                \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                                                \DisplayProof
                                                }\tabularnewline
                                                \hline
                                                \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$} \DisplayProof & ciao \tabularnewline
                                                \hline
                                                ciao & ciao \tabularnewline
                                                \hline
                                                \AxiomC{$\Gamma, \phi, \psi \vdash \Delta$}
                                                \UnaryInfC{$\Gamma, \phi \wedge \psi \vdash \Delta$}
                                                \DisplayProof & ciao \tabularnewline
                                                \hline
                                                ciao & ciao \tabularnewline
                                                \hline
                                                \end{tabularx}

                                                \end{document}`

                                              • #121594
                                                Up
                                                0
                                                Down
                                                ::


                                                Fantastico!

                                                A voler essere pignoli rimarrebbe da capire perchè la linea orizzontale ottenuta con \hrule è un po più a sinistra rispetto alle linee orizzontali della tabella ottenute con \hline, anche se questa è davvero una sottigliezza.
                                                [attachment=2748]tabellasequentitris.png[/attachment]

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


                                                  O mtti due segni di commento dopo i due comadni di impostazione, oppure sposti \noindent subito prima di begin{tabular}

                                                • #121596
                                                  Up
                                                  0
                                                  Down
                                                  ::


                                                  Grazie mille!!

                                                • #121597
                                                  Up
                                                  0
                                                  Down
                                                  ::


                                                  Mi sa che qualcosa mi sfugge ancora…ho scritto questo emc:

                                                  `
                                                  \documentclass[a4paper,11pt]{book}

                                                  \usepackage[italian]{babel}
                                                  \usepackage[utf8]{inputenc}

                                                  \usepackage{array}
                                                  \usepackage{tabularx}

                                                  \begin{document}

                                                  \begin{tabularx}{\linewidth}{|*4{>{\centering}X|}}
                                                  \multicolumn{2}{|c|}{doppia} & singola & singola
                                                  \end{tabularx}

                                                  \end{document}
                                                  `

                                                  Come mai la multicolumn contenente il testo “doppia” non è larga il doppio rispetto alle celle contenenti il testo “singola”? Allego l’output.
                                                  [attachment=2751]tabularx.pdf[/attachment]

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


                                                    Perché non devi scrivere \multicolumn{2}{|c|}{doppia} ma \multicolumn{2}{|X|}{doppia}.

                                                  • #121599
                                                    Up
                                                    0
                                                    Down
                                                    ::


                                                    Ho fatto come mi hai detto ma ancora la multicolumn non è larga il doppio delle altre due celle.

                                                    `
                                                    \documentclass[a4paper,11pt]{book}

                                                    \usepackage[italian]{babel}
                                                    \usepackage[utf8]{inputenc}

                                                    \usepackage{array}
                                                    \usepackage{tabularx}

                                                    \begin{document}

                                                    \begin{tabularx}{\linewidth}{|*4{>{\centering}X|}}
                                                    \multicolumn{2}{|X|}{doppia} & singola & singola
                                                    \end{tabularx}

                                                    \end{document}
                                                    `

                                                    [attachment=2752]tabularx1.pdf[/attachment]

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


                                                      Prova con \multicolumn{2}{>{p{0.475\linewidth}}{doppia} aggiustando il valore 0.475 a qualcosa di meo di 0.5.
                                                      Non so che cosa succede nelle righe successive.
                                                      Tieni presente che sono fuori uso fino a lunedì prossimo, perchè sarò al Meeting del GuIT senza portarmi dietro il laptop.

                                                    • #121601
                                                      Up
                                                      0
                                                      Down
                                                      ::


                                                      Ora il problema della larghezza della multicolumn si è risolto ma il contenuto non è più centrato.

                                                    • #121602
                                                      OldClaudio
                                                      Partecipante
                                                        Up
                                                        0
                                                        Down
                                                        ::


                                                        E con \multicolumn{2}{>{\centering}p{0.475\linewidth}{doppia} come va?

                                                      • #121603
                                                        Up
                                                        0
                                                        Down
                                                        ::


                                                        Così va meglio. Mi rimane un mistero il perchè in una tabella da 4 colonne che occupano l’intera larghezza della griglia una multicolumn{2} non occupi automaticamente metà della larghezza della griglia, comunque il trucco di usare 0.475 dal punto di vista pratico funziona.

                                                        Invece tornando alla questione del pacchetto bussproofs per la scrittura delle dimostrazioni, ho notato che se viene inserita una regola nella forma
                                                        `
                                                        \AxiomC{Ipotesi 1}
                                                        \UnaryInfC{Tesi 1}
                                                        `
                                                        tutto funziona bene, mentre se viene inserita una regola senza ipotesi nella forma
                                                        `
                                                        \AxiomC{} %RIGA CHE NON OCCUPA SPAZIO
                                                        \UnaryInfC{Tesi 2}
                                                        `
                                                        lo spazio vuoto che dovrebbe essere lasciato sopra per mostrare che non ci sono ipotesi viene ignorato.

                                                        Riporto un EMC che chiarisce meglio la situazione:
                                                        `
                                                        \documentclass[a4paper,11pt]{book}

                                                        \usepackage[italian]{babel}
                                                        \usepackage[utf8]{inputenc}

                                                        \usepackage{array}
                                                        \usepackage{tabularx}
                                                        \usepackage{bussproofs}

                                                        \begin{document}

                                                        \begin{tabularx}{\linewidth}{*1{>{\centering}X}}
                                                        \AxiomC{Ipotesi 1}
                                                        \UnaryInfC{Tesi 1}
                                                        \DisplayProof
                                                        \\
                                                        \AxiomC{} %RIGA CHE NON OCCUPA SPAZIO
                                                        \UnaryInfC{Tesi 2}
                                                        \DisplayProof
                                                        \\
                                                        \AxiomC{Ipotesi 3}
                                                        \UnaryInfC{Tesi 3}
                                                        \DisplayProof
                                                        \end{tabularx}

                                                        \end{document}
                                                        `

                                                        Avevo provato a mettere come ipotesi
                                                        `
                                                        \AxiomC{\null}
                                                        `
                                                        ma non cambia nulla, c’è qualche carattere “invisibile” che posso mettere perchè venga rispettato lo spazio vuoto nel posto dove devono andare le ipotesi?

                                                        [attachment=2753]bussproofs.pdf[/attachment]

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


                                                          Anch’io avre pensato a un carattere invisibile, \null che è qualcosa di invisibile, è sinonimo di \hbox{}. Conoscendoil sottostante interpreteTeX, si capisce che \hbox è un comando primitivo che sembra piuttost limitato; Proverei a metteri \mbox{}; se non bastasse proverei con \makebox[1em}{}; oppure con \quad, oppure con \qquad. Insomma ci sono vari modi di inserire qualcosa di invisibile.

                                                        • #121605
                                                          Up
                                                          0
                                                          Down
                                                          ::


                                                          Ho provato tutti quelli che mi hai suggerito ma nessuno risolve il problema.

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

                                                      Go to top