Spazio verticale prima e dopo tabella

  • Creatore
    Topic
  • #93774
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Ho delle tabelle inserite nel testo, ma no c’è nessuno spazio fra esse e il testo,
      cosicché la bottomrule e la toprule quasi si scontrano con le lettere. Ho provato
      `\usepackage{etoolbox}
      \makeatletter
      \appto{\@tabular}{\parskip=10pt}
      \preto{\@tabular}{\parskip=10pt}
      \makeatother`
      ma il codice funziona solo con `preto` e non anche con `appto`
      Inolter, poiché ho ambienti tabular e tabularx, volevo capire se devo produrre
      un codice distinto per i due ambienti

      grazie
      m

    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #93775
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non vedo perché tu debba ricorrere a a \preto e \addto; hai dele tabelle dentro lo stesso ambiente (flottante o non flottante, non importa) bene perché fra un tabella e l’altra in inserisci un \bigskip e festa finita?
          Se \bigskip ti mette uno stazio eccessivo, puoi sempre metterci un \medskip o uno \smallskip, oppure un \vspace*{…} mettendo al posto dei puntini la spaziatura che vuoi.

          Oppure, non ho capito che cosa vuoi fare.

          Vuoi rendere automatica questa spaziatura, benissimo; ma devi modificare sia tabular, sia tabularx e non può trnare indietro, perché in tutte le tablle dopo quelle modifiche avrai gli spazi che hai aggiunto. Non mi para una strada flessibile per tutte le situazioni in cui uno può trovarsi a dover inserire delle tablle in un documento.

        • #93776
          Up
          0
          Down
          ::

          samiel” post=93363Ho delle tabelle inserite nel testo, ma no c’è nessuno spazio fra esse e il testo,
          cosicché la bottomrule e la toprule quasi si scontrano con le lettere. Ho provato
          `\usepackage{etoolbox}
          \makeatletter
          \appto{\@tabular}{\parskip=10pt}
          \preto{\@tabular}{\parskip=10pt}
          \makeatother`
          ma il codice funziona solo con `preto` e non anche con `appto`
          Inolter, poiché ho ambienti tabular e tabularx, volevo capire se devo produrre
          un codice distinto per i due ambienti

          grazie
          m

          Modificare [tt]\@tabular[/tt] mi sembra assurdo; usare [tt]\appto[/tt], poi, è completamente sbagliato, visto che [tt]\@tabular[/tt] è usato solo all’inizio della tabella. E non ha alcun senso dare un valore a [tt]\parskip[/tt], visto che il codice dell’ambiente non esegue [tt]\par[/tt] in alcun caso (se non all’interno di celle del tipo [tt]p[/tt]). Per maggiore chiarezza: [tt]\parskip[/tt] è un parametro, non un comando che venga eseguito; contiene il valore dello spazio verticale aggiunto prima che venga cominciato un nuovo capoverso.

          Se vuoi centrare una tabella senza usare l’ambiente [tt]table[/tt], usa semplicemente [tt]center[/tt].

          Ciao
          Enrico

        • #93777
          samiel
          Partecipante
            Up
            0
            Down
            ::


            Certo, la semplice aggiunta di un \medskip risolve.
            Mi chiedevo però in che modo, senza mettere ogni volta questo \medskip
            prima e dopo ogni tabella come aggiungere a tabular e tabularx
            uno spazio verticale di default, prima e dopo…

            Se vuoi centrare una tabella senza usare l’ambiente table, usa semplicemente center.

            Non devo centrare l’ambiente, volevo apputo distanziarlo da testo antecedente e successivo,
            perché, ad esempio, le “g” della riga immediatamente sopra la tabella quasi toccano la bottomrule

            m

            PS
            Fra le tante soluzioni trovate in rete, c’è anche chi suggerisce (ad esempio) con verbatimbox
            `\addvbuffer[12pt 8pt]`
            ma non capisco se sia una soluzione che carica inutilmente un pacchetto che in definitiva non serve,,,

          • #93778
            Up
            0
            Down
            ::

            samiel” post=93370Certo, la semplice aggiunta di un \medskip risolve.
            Mi chiedevo però in che modo, senza mettere ogni volta questo \medskip
            prima e dopo ogni tabella come aggiungere a tabular e tabularx
            uno spazio verticale di default, prima e dopo…

            Se vuoi centrare una tabella senza usare l’ambiente table, usa semplicemente center.

            Non devo centrare l’ambiente, volevo apputo distanziarlo da testo antecedente e successivo,
            perché, ad esempio, le “g” della riga immediatamente sopra la tabella quasi toccano la bottomrule

            m

            PS
            Fra le tante soluzioni trovate in rete, c’è anche chi suggerisce (ad esempio) con verbatimbox
            `\addvbuffer[12pt 8pt]`
            ma non capisco se sia una soluzione che carica inutilmente un pacchetto che in definitiva non serve,,,

            Non sarebbe meglio fare un esempio di ciò che intendi? Dove metti queste tabelle? In mezzo al testo? Non credo; su una riga per conto loro? Benissimo, se non le vuoi centrare, usa [tt]flushleft[/tt].

            Ciao
            Enrico

          • #93779
            samiel
            Partecipante
              Up
              0
              Down
              ::


              Ecco un esempio:
              `\documentclass[a4paper]{report}
              \usepackage{fontspec}
              \usepackage{polyglossia}
              \setmainlanguage[babelshorthands=true]{italian}
              \PolyglossiaSetup{italian}{indentfirst=false}

              % TABELLE
              \usepackage{tabularx}
              \usepackage{booktabs}

              \begin{document}

              Nell'Isagogé Porfirio formula tre fondamentali questioni: 1) se gli universali
              sussistano realmente o solo nell'intelletto; 2) supponendo che godano di
              esistenza autonoma, se siano realtà corporee o incorporee; 3) se sono realtà
              incorporee, se sussistano separatamente dalle cose o uniti a esse.

              \noindent
              \begin{tabular}{lccc}
              \toprule
              & \textsc{ante rem} & \textsc{in re} & \textsc{post rem} \\
              \midrule
              \textsc{realismo} & sì & sì & sì \\
              \textsc{realismo moderato} & no & sì & sì \\
              \textsc{concettualismo} & no & no & sì \\
              \textsc{nominalismo} & no & no & no \\
              \bottomrule
              \end{tabular}
              %\medskip

              Porfirio, analizzando com'è possibile predicare e cioè attribuire un predicato a
              un soggetto, ne identifica cinque modi: genere («Socrate è un animale»), specie
              («Socrate è un uomo »), differenza («Socrate è razionale»), proprio («Socrate è
              capace di ridere») e accidente («Socrate è calvo»). Ma le relazioni fra i
              termini rispecchiano relazioni reali, esistenti fra le cose? Detto in altro
              modo, i cinque predicabili sono sostanza (res) o semplici parole (voces)?

              \end{document}`
              Un po’ di spazio verticale, sopra e sotto, direi che ci vuole…

            • #93780
              Up
              0
              Down
              ::

              samiel” post=93379Ecco un esempio:
              `\documentclass[a4paper]{report}
              \usepackage{fontspec}
              \usepackage{polyglossia}
              \setmainlanguage[babelshorthands=true]{italian}
              \PolyglossiaSetup{italian}{indentfirst=false}

              % TABELLE
              \usepackage{tabularx}
              \usepackage{booktabs}

              \begin{document}

              Nell'Isagogé Porfirio formula tre fondamentali questioni: 1) se gli universali
              sussistano realmente o solo nell'intelletto; 2) supponendo che godano di
              esistenza autonoma, se siano realtà corporee o incorporee; 3) se sono realtà
              incorporee, se sussistano separatamente dalle cose o uniti a esse.

              \noindent
              \begin{tabular}{lccc}
              \toprule
              & \textsc{ante rem} & \textsc{in re} & \textsc{post rem} \\
              \midrule
              \textsc{realismo} & sì & sì & sì \\
              \textsc{realismo moderato} & no & sì & sì \\
              \textsc{concettualismo} & no & no & sì \\
              \textsc{nominalismo} & no & no & no \\
              \bottomrule
              \end{tabular}
              %\medskip

              Porfirio, analizzando com'è possibile predicare e cioè attribuire un predicato a
              un soggetto, ne identifica cinque modi: genere («Socrate è un animale»), specie
              («Socrate è un uomo »), differenza («Socrate è razionale»), proprio («Socrate è
              capace di ridere») e accidente («Socrate è calvo»). Ma le relazioni fra i
              termini rispecchiano relazioni reali, esistenti fra le cose? Detto in altro
              modo, i cinque predicabili sono sostanza (res) o semplici parole (voces)?

              \end{document}`
              Un po’ di spazio verticale, sopra e sotto, direi che ci vuole…

              A te non servivano [tt]appto[/tt] o [tt]preto[/tt], ma [tt]BeforeBeginEnvironment[/tt] e [tt]AfterEndEnvironment[/tt] se vuoi farlo per tutte le tabelle. Potrebbero esserci effetti collaterali, ovviamente. `
              \usepackage{etoolbox}

              \BeforeBeginEnvironment{tabular}{\medskip}
              \AfterEndEnvironment{tabular}{\medskip}
              `

              Ciao
              Claudio

            • #93781
              samiel
              Partecipante
                Up
                0
                Down
                ::


                A parte il sinistro avvertimento sugli effetti collaterali 🙂
                il codice funziona alla fine della tabella, separandola convenientmente
                dal testo, ma non sembra funzionare per lo spazio sopra,
                perché la parte superiore della tabella continua a risultare
                attaccata al testo…

                m

              • #93782
                samiel
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Perfetto, risolto con
                  `\usepackage{etoolbox}
                  \BeforeBeginEnvironment{tabular}{\medskip\noindent}
                  \AfterEndEnvironment{tabular}{\medskip}
                  \BeforeBeginEnvironment{tabularx}{\medskip\noindent}
                  \AfterEndEnvironment{tabularx}{\medskip}`
                  A parte il sinistro avvertimento sugli effetti collaterali….

                  grazie|
                  m

                • #93783
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Sì, infatti, come ti avevo detto nel mio mail, l’effetto collaterale è che non puoi più tornare indietro, quindi tutte le tabelle di quel documento avranno un \midskip prima e dopo;, definire un nuovo ambiente non sarebbe meglio? Qualcosa come`\newenvironment{spacedtabular}[1]{% comandi di apertura
                    \begin{flushleft}\tabular{#1}
                    }{%comandi di chiusra
                    \endtabular\end{flushleft}
                    }% fine definizioni`
                    ATTENTO: non ho collaudato il codice…
                    Ci vuole una definzione analoga per tabularx, ma con due argomenti, il primo la larghezza e il seocndo per le colonne.
                    Lo userai così`\begin{document}

                    Nell'Isagogé Porfirio formula tre fondamentali questioni: 1) se gli universali
                    sussistano realmente o solo nell'intelletto; 2) supponendo che godano di
                    esistenza autonoma, se siano realtà corporee o incorporee; 3) se sono realtà
                    incorporee, se sussistano separatamente dalle cose o uniti a esse.

                    \begin{spacedtabular}{lccc}
                    \toprule
                    & \textsc{ante rem} & \textsc{in re} & \textsc{post rem} \\
                    \midrule
                    \textsc{realismo} & sì & sì & sì \\
                    \textsc{realismo moderato} & no & sì & sì \\
                    \textsc{concettualismo} & no & no & sì \\
                    \textsc{nominalismo} & no & no & no \\
                    \bottomrule
                    \end{spacedtabular}

                    Porfirio, analizzando com'è possibile predicare e cioè attribuire un predicato a
                    un soggetto, ne identifica cinque modi: genere («Socrate è un animale»), specie
                    («Socrate è un uomo »), differenza («Socrate è razionale»), proprio («Socrate è
                    capace di ridere») e accidente («Socrate è calvo»). Ma le relazioni fra i
                    termini rispecchiano relazioni reali, esistenti fra le cose? Detto in altro
                    modo, i cinque predicabili sono sostanza (res) o semplici parole (voces)?

                    \end{document}`In questo modo non avresti i pericolosi effetti collaterali.

                  • #93784
                    samiel
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Nel testo in questione le “tabelle”, che in realtà sono per certi versi quello che oggi
                      si usa chiamare “mappe concettuali”, vanno bene separate una volta per tutte.
                      Però tengo nota dell’ambiente, nel caso di situazioni diverse

                      grazie
                      m

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

                  Go to top