spazio tra titolo e tabella

  • Creatore
    Topic
  • #25443
    Up
    0
    Down
    ::


    Ciao,

    ho 2 tabelle:

    `
    \begin{table}[htbp]
    \begin{center}
    \caption{Classes interpretation}
    \label{tab:classinterp2}
    \scalebox{1.2}{%
    \begin{tabular}{|l|l|}
    \hline
    ObjectSomeValuesFrom(R, C) & { x $|$ $\exists$ y : ( x, y ) $\in$ R and y $\in$ C } \\
    \hline
    ObjectAllValuesFrom(R, C) & { x $|$ $\forall$ y : ( x, y ) $\in$ R $\rightarrow$ y $\in$ C } \\
    \hline
    ObjectHasValue(R, a) & { x $|$ ( x, a ) $\in$ R } \\
    \hline
    ObjectExistsSelf(R) & { x $|$ ( x, x ) $\in$ R } \\
    \hline
    \end{tabular}}
    \end{center}
    \end{table}
    `

    and

    `

    \begin{table}[htbp]
    \begin{center}
    \caption{Class Axioms interpretation}
    \label{tab:classinterp3}
    \scalebox{1.35}{%
    \begin{tabular}{|l|l|}
    \hline
    SubClassOf(C,D) & C $\subseteq$ D \\
    \hline
    EquivalentClasses(C$_{1}$ … C$_{n}$) & C$_{1}$ = … = C$_{n}$ \\
    \hline
    DisjointClasses(C$_{1}$ … C$_{n}$) & C$_{1}$ $\cap$ … $\cap$ C$_{n}$ = 0 \\
    \hline
    \end{tabular}}
    \end{center}
    \end{table}
    `

    nella prima mi inserice dello spazio tra il titolo e la tabella, nella seconda no.

    Qualcuno può aiutarmi a capire perchè?

    e per cambiare questo spazio, come posso fare?

    grazie

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #25444
      Up
      0
      Down
      ::

      Ciao,

      ho 2 tabelle:

      `
      \begin{table}[htbp]
      \begin{center}
      \caption{Classes interpretation}
      \label{tab:classinterp2}
      \scalebox{1.2}{%
      \begin{tabular}{|l|l|}
      \hline
      ObjectSomeValuesFrom(R, C) & { x $|$ $\exists$ y : ( x, y ) $\in$ R and y $\in$ C } \\
      \hline
      ObjectAllValuesFrom(R, C) & { x $|$ $\forall$ y : ( x, y ) $\in$ R $\rightarrow$ y $\in$ C } \\
      \hline
      ObjectHasValue(R, a) & { x $|$ ( x, a ) $\in$ R } \\
      \hline
      ObjectExistsSelf(R) & { x $|$ ( x, x ) $\in$ R } \\
      \hline
      \end{tabular}}
      \end{center}
      \end{table}
      `

      and

      `

      \begin{table}[htbp]
      \begin{center}
      \caption{Class Axioms interpretation}
      \label{tab:classinterp3}
      \scalebox{1.35}{%
      \begin{tabular}{|l|l|}
      \hline
      SubClassOf(C,D) & C $\subseteq$ D \\
      \hline
      EquivalentClasses(C$_{1}$ … C$_{n}$) & C$_{1}$ = … = C$_{n}$ \\
      \hline
      DisjointClasses(C$_{1}$ … C$_{n}$) & C$_{1}$ $\cap$ … $\cap$ C$_{n}$ = 0 \\
      \hline
      \end{tabular}}
      \end{center}
      \end{table}
      `

      nella prima mi inserice dello spazio tra il titolo e la tabella, nella seconda no.

      Qualcuno può aiutarmi a capire perchè?

      e per cambiare questo spazio, come posso fare?

      Devi, senza discutere, eliminare due cose: la prima è l’ambiente center, da sostituire con il comando \centering. Vedrai che non ci sarà alcuno spazio fra didascalia e tabella.

      La seconda cosa da eliminare è l’uso di \scalebox. Se proprio vuoi, usa il comando \large subito dopo \centering, ma ritengo inappropriato usare un corpo maggiore.

      Sarebbe opportuno anche eliminare le riquadrature della tabella, cerca la documentazione del pacchetto booktabs oppure nel forum, ci sono parecchi esempi.

      Se vuoi uno spazio fra didascalia e tabella, usa \medskip oppure carica il pacchetto caption e dà, nel preambolo, il comando
      `\captionsetup[table]{position=top}`
      Ciao
      Enrico

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

        Se vuoi uno spazio fra didascalia e tabella, usa \medskip oppure carica il pacchetto caption e dà, nel preambolo, il comando
        `\captionsetup[table]{position=top}`

        Ciao Enrico, interessante questo codice. Mi era sfuggita questa funzione del pacchetto caption, che mi pare migliore che dare manualmente ogni volta \medskip.

        Tuttavia, purtroppo il codice non funziona con ClassicThesis (e più in generale, con le classi KOMA):
        `\documentclass{scrreprt}

        \usepackage{classicthesis-ldpkg}
        \usepackage{classicthesis}

        \captionsetup[table]{position=top}

        \begin{document}

        \begin{table}[tb]
        \caption{Dida.}
        \centering
        \begin{tabular}{cc}
        \toprule
        $p$ & $\lnot p$ \\
        \midrule
        V & F \\
        F & V \\
        \bottomrule
        \end{tabular}
        \end{table}

        \end{document}`
        Sulla doc. di caption c’è un avvertimento:

        Side effects
        The optional argument of \setcapwidth is not supported and will be ignored if used in conjunction with the caption package. Furthermore the KOMA-Script options tablecaptionabove & tablecaptionbelow and the commands \captionabove & \captionbelow are stronger than the position= setting offered by the caption package.

        Please note that the options skip=, position=, figureposition=, and table- position= do not always have an effect. Since it’s a matter of the document class to
        supply the environments figure and table, it could use its very own spacing, and
        could decide for itself if the caption will be typeset as “top” or “bottom” caption. For
        example the KOMA-Script document classes support the skip= setting, but will always
        typeset figure captions as “bottom” captions, and table captions are dependent on
        the global option tablecaptionsabove resp. tablecaptionsbelow.

        Ho provato a selezionare l’opzione di classe tablecaptionsabove, invano.

        Sai se esiste un modo per usare quella comoda funzione di caption anche con le classi KOMA?

        Più in generale, ti chiedo se quel \medskip che uso per separare la didascalia dalla tabella può presentare effetti collaterali in classi che si occupano di inserire automaticamente quello spazio (mi pare che amsart sia una di queste):
        `\begin{table}[tb]
        \caption{Dida.}
        \centering
        \medskip % Può dare effetti collaterali?
        \begin{tabular}{cc}
        \toprule
        $p$ & $\lnot p$ \\
        \midrule
        V & F \\
        F & V \\
        \bottomrule
        \end{tabular}
        \end{table}`

        Grazie,
        L.

      • #25446
        Up
        0
        Down
        ::

        Se vuoi uno spazio fra didascalia e tabella, usa \medskip oppure carica il pacchetto caption e dà, nel preambolo, il comando
        `\captionsetup[table]{position=top}`

        Ciao Enrico, interessante questo codice. Mi era sfuggita questa funzione del pacchetto caption, che mi pare migliore che dare manualmente ogni volta \medskip.

        Tuttavia, purtroppo il codice non funziona con ClassicThesis (e più in generale, con le classi KOMA):
        `\documentclass{scrreprt}

        \usepackage{classicthesis-ldpkg}
        \usepackage{classicthesis}

        \captionsetup[table]{position=top}

        \begin{document}

        \begin{table}[tb]
        \caption{Dida.}
        \centering
        \begin{tabular}{cc}
        \toprule
        $p$ & $\lnot p$ \\
        \midrule
        V & F \\
        F & V \\
        \bottomrule
        \end{tabular}
        \end{table}

        \end{document}`
        Sulla doc. di caption c’è un avvertimento:

        Side effects
        The optional argument of \setcapwidth is not supported and will be ignored if used in conjunction with the caption package. Furthermore the KOMA-Script options tablecaptionabove & tablecaptionbelow and the commands \captionabove & \captionbelow are stronger than the position= setting offered by the caption package.

        Please note that the options skip=, position=, figureposition=, and table- position= do not always have an effect. Since it’s a matter of the document class to
        supply the environments figure and table, it could use its very own spacing, and
        could decide for itself if the caption will be typeset as “top” or “bottom” caption. For
        example the KOMA-Script document classes support the skip= setting, but will always
        typeset figure captions as “bottom” captions, and table captions are dependent on
        the global option tablecaptionsabove resp. tablecaptionsbelow.

        Ho provato a selezionare l’opzione di classe tablecaptionsabove, invano.

        Sai se esiste un modo per usare quella comoda funzione di caption anche con le classi KOMA?

        Più in generale, ti chiedo se quel \medskip che uso per separare la didascalia dalla tabella può presentare effetti collaterali in classi che si occupano di inserire automaticamente quello spazio (mi pare che amsart sia una di queste):
        `\begin{table}[tb]
        \caption{Dida.}
        \centering
        \medskip % Può dare effetti collaterali?
        \begin{tabular}{cc}
        \toprule
        $p$ & $\lnot p$ \\
        \midrule
        V & F \\
        F & V \\
        \bottomrule
        \end{tabular}
        \end{table}`

        L’avvertenza che citi dice esattamente che il metodo non funziona con le classi KoMa. Direi che in amsart non si deve usare il \medskip; del resto basterebbe provare, che dici?

        Ciao
        Enrico

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

          L’avvertenza che citi dice esattamente che il metodo non funziona con le classi KoMa. Direi che in amsart non si deve usare il \medskip; del resto basterebbe provare, che dici?

          Eh, ormai la mia pigrizia ha raggiunto livelli proverbiali… 😉

          Ho appena provato: amsart mette lo spazio “giusto”: se si usa \medskip e amsart, lo spazio viene forse un pochino esagerato. Peccato che le classi KOMA siano incompatibili con quella impostazione di caption: lì il \medskip “manuale” tocca metterlo. 🙁

          Ecco un altro difettuccio di LaTeX, evidenziato peraltro anche nella doc. di caption.
          `The \caption command offered by LATEX has a design flaw: The command does notknow if it stands on the beginning of the figure or table, or at the end. Therefore it does not know where to put the space separating the caption from the content of the figure or table. While the standard implementation always puts the space above the caption in floating environments (and inconsistently below the caption in longtables), the
          implementation offered by this package is more flexible.`
          Niente di insormontabile, per carità, ma la cosa è notevole: LaTeX di difetti ne ha talmente pochi…

          A presto,
          L.

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


            Riprendo il topic e riporto le mie conclusioni.

            Per separare la didascalia da una tabella fuori testo, si può usare \medskip (da dare dopo ogni \caption, prima del relativo tabular). Questo sistema funziona, ma non è né comodo né elegante, soprattutto se si devono inserire molte tabelle. Le ragioni sono le solite: è sempre possibile dimenticare qualche \medskip, e se si vuole modificare quello spazio bisogna intervenire manualmente su tutte le tabelle. Inoltre alcune classi -come le classi AMS- si occupano (a differenza delle classi standard) di impostare adeguatamente e automaticamente quello spazio, che con \medskip risulta esagerato.

            Per queste ragioni, per risolvere il problema una volta per tutte, se si usano le classi standard è conveniente caricare il pacchetto caption e scrivere nel preambolo
            `\captionsetup[table]{position=top} `

            (Se si usano le classi AMS non c’è bisogno di fare nulla.)

            Se si usano le classi KOMA-Script, per separare la la didascalia dalla tabella è sufficiente caricare il pacchetto caption e scrivere, nel
            preambolo,
            `\captionsetup[table]{skip=\medskipamount}
            `
            dopo aver selezionato l’opzione di classe tablecaptionabove.

            Ciò fatto, una tabella fuori testo si introduce molto semplicemente con
            `\begin{table}[…]
            \caption{…}
            \label{…}
            \centering
            \begin{tabular}{…}

            \end{tabular}
            \end{table}`
            N.B. Attenzione: a pagina 14 della documentazione del pacchetto caption, l’opzione globale per le classi KOMA è scritta scorrettamente come tablecaptionsabove (con una “s” di troppo).

            Ciao,
            L.

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

        Go to top