Tabelle affiancate – disallineamento caption

  • Creatore
    Topic
  • #62957
    Up
    0
    Down
    ::


    Salve a tutti,
    (wow, il mio primo post nel nuovo forum!)

    sto lavorando alla mia tesi di laurea, e ho necessità di includere tabelle con molte colonne, che ho pensato di inserire in appendice e in orientamento “landscape”. Sono 5-6 tabelle, di cui 4 (almeno) necessitano di quell’orientamento a causa del numero di colonne. Le ultime due tabelle le avevo inizialmente inserite “fuori” dall’ambiente landscape; poi per omogeneità ho pensato che avrei potuto inserirle dentro, ma affiancate (sono abbastanza piccole).

    Sono riuscito ad affiancarle usando gli ambienti minipage; ho riscontrato però un disallineamento del caption — che nelle tabelle “fuori da minipage” risulta allineato centralmente rispetto alla tabella. Avete idea di come risolvere?

    Allego il codice (con solo qualche riga d’esempio), e il PDF che ne vien fuori (uso XeLaTeX, ma penso non sia un problema suo specifico).

    `
    \documentclass[a4paper,12pt,openany,titlepage,oneside]{scrbook}
    \usepackage{fontspec}
    \usepackage[italian]{babel}
    \usepackage{booktabs}
    \usepackage{pdflscape}
    \usepackage{dcolumn}

    \newcommand{\punto}[1]{\textit{#1}}
    \newcommand{\piano}[2]{\punto{#1}-\punto{#2}}

    \begin{document}
    \begin{landscape}
    \begin{table}
    \footnotesize
    \begin{minipage}{.4\columnwidth}
    \centering
    \caption{Indice “Wits''}
    \begin{tabular}{>{\bfseries}clD{,}{,}{-1}}
    \toprule
    ID & Paziente & \multicolumn{1}{c}{\punto{A}$_0$-\punto{B}$_0$} \\
    \midrule
    1 & VAFE1997 & 2 \\
    2 & DABA1994 & 6 \\
    3 & MASCHI2000 & 3 \\
    \multicolumn{3}{c}{\ldots} \\
    \bottomrule
    \end{tabular}
    \end{minipage}%
    \begin{minipage}{.4\columnwidth}
    \centering
    \caption{Analisi antero-posteriore di Ricketts}
    \begin{tabular}{>{\bfseries}clc*{3}{D{,}{,}{-1}}}
    \toprule
    ID & Paziente & Età & \multicolumn{1}{c}{Angolo facciale} & \multicolumn{1}{c}{Convessità facciale} & \multicolumn{1}{c}{\piano{FH}{NaA}} \\
    \midrule
    1 & VAFE1997 & 13 & 87 & 8 & 95 \\
    2 & DABA1994 & 16 & 82 & 3 & 85 \\
    3 & MASCHI2000 & 10 & 87 & 7 & 93 \\
    \multicolumn{6}{c}{\ldots} \\
    \bottomrule
    \end{tabular}
    \end{minipage}
    \end{table}

    \end{landscape}
    \end{document}
    `

    [attachment=17]foo.pdf[/attachment]

    Grazie mille! 🙂
    David

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #62958
      Up
      0
      Down
      ::

      d.paleino” post=61928Salve a tutti,
      (wow, il mio primo post nel nuovo forum!)

      sto lavorando alla mia tesi di laurea, e ho necessità di includere tabelle con molte colonne, che ho pensato di inserire in appendice e in orientamento “landscape”. Sono 5-6 tabelle, di cui 4 (almeno) necessitano di quell’orientamento a causa del numero di colonne. Le ultime due tabelle le avevo inizialmente inserite “fuori” dall’ambiente landscape; poi per omogeneità ho pensato che avrei potuto inserirle dentro, ma affiancate (sono abbastanza piccole).

      Sono riuscito ad affiancarle usando gli ambienti minipage; ho riscontrato però un disallineamento del caption — che nelle tabelle “fuori da minipage” risulta allineato centralmente rispetto alla tabella. Avete idea di come risolvere?

      Allego il codice (con solo qualche riga d’esempio), e il PDF che ne vien fuori (uso XeLaTeX, ma penso non sia un problema suo specifico).

      `
      \documentclass[a4paper,12pt,openany,titlepage,oneside]{scrbook}
      \usepackage{fontspec}
      \usepackage[italian]{babel}
      \usepackage{booktabs}
      \usepackage{pdflscape}
      \usepackage{dcolumn}

      \newcommand{\punto}[1]{\textit{#1}}
      \newcommand{\piano}[2]{\punto{#1}-\punto{#2}}

      \begin{document}
      \begin{landscape}
      \begin{table}
      \footnotesize
      \begin{minipage}{.4\columnwidth}
      \centering
      \caption{Indice “Wits''}
      \begin{tabular}{>{\bfseries}clD{,}{,}{-1}}
      \toprule
      ID & Paziente & \multicolumn{1}{c}{\punto{A}$_0$-\punto{B}$_0$} \\
      \midrule
      1 & VAFE1997 & 2 \\
      2 & DABA1994 & 6 \\
      3 & MASCHI2000 & 3 \\
      \multicolumn{3}{c}{\ldots} \\
      \bottomrule
      \end{tabular}
      \end{minipage}%
      \begin{minipage}{.4\columnwidth}
      \centering
      \caption{Analisi antero-posteriore di Ricketts}
      \begin{tabular}{>{\bfseries}clc*{3}{D{,}{,}{-1}}}
      \toprule
      ID & Paziente & Età & \multicolumn{1}{c}{Angolo facciale} & \multicolumn{1}{c}{Convessità facciale} & \multicolumn{1}{c}{\piano{FH}{NaA}} \\
      \midrule
      1 & VAFE1997 & 13 & 87 & 8 & 95 \\
      2 & DABA1994 & 16 & 82 & 3 & 85 \\
      3 & MASCHI2000 & 10 & 87 & 7 & 93 \\
      \multicolumn{6}{c}{\ldots} \\
      \bottomrule
      \end{tabular}
      \end{minipage}
      \end{table}

      \end{landscape}
      \end{document}
      `

      Il problema è che la seconda tabella è molto più di 0.4\columnwidth. Carica il pacchetto varwidth e sostituisci gli ambienti minipage con varwidth:
      `\begin{varwidth}{\textwidth}
      \centering

      \end{varwidth}\hfil
      \begin{varwidth}{\textwidth}
      \centering

      \end{varwidth}`
      La dimensione data come argomento è quella massima, ma se gli oggetti all’interno non la superano, viene usata quella naturale.

      Ciao
      Enrico

    • #62959
      Up
      0
      Down
      ::

      egreg9″ post=61929
      Il problema è che la seconda tabella è molto più di 0.4\columnwidth. Carica il pacchetto varwidth e sostituisci gli ambienti minipage con varwidth:
      `\begin{varwidth}{\textwidth}
      \centering

      \end{varwidth}\hfil
      \begin{varwidth}{\textwidth}
      \centering

      \end{varwidth}`
      La dimensione data come argomento è quella massima, ma se gli oggetti all’interno non la superano, viene usata quella naturale.

      Sempre gentilissimo Enrico, grazie mille! 🙂

      Ora come ora, riportando quel codice all’interno della tesi, le tabelle vengono una sotto l’altra, con caption allineato a sinistra. Non capisco il motivo, né d’altronde potrei allegare l’intera tesi. Vedrò di sperimentare un po’ con varwidth!

    • #62960
      Up
      0
      Down
      ::


      Quel codice mi dà il risultato atteso.

      Ciao
      Enrico

    • #62961
      Up
      0
      Down
      ::

      d.paleino” post=61931
      Ora come ora, riportando quel codice all’interno della tesi, le tabelle vengono una sotto l’altra, con caption allineato a sinistra. Non capisco il motivo, né d’altronde potrei allegare l’intera tesi. Vedrò di sperimentare un po’ con varwidth!

      Svelato l’arcano: è colpa del pacchetto caption, che carico con:

      `\usepackage[font=footnotesize,format=plain,labelfont={sf,bf}]{caption}`

      (ma anche senza opzioni, stesso problema)

      Ora resta da capire come risolvere 🙂 (vado a googlare)

    • #62962
      Up
      0
      Down
      ::

      d.paleino” post=61937

      Ora come ora, riportando quel codice all’interno della tesi, le tabelle vengono una sotto l’altra, con caption allineato a sinistra. Non capisco il motivo, né d’altronde potrei allegare l’intera tesi. Vedrò di sperimentare un po’ con varwidth!

      Svelato l’arcano: è colpa del pacchetto caption, che carico con:

      `\usepackage[font=footnotesize,format=plain,labelfont={sf,bf}]{caption}`

      (ma anche senza opzioni, stesso problema)

      Ora resta da capire come risolvere 🙂 (vado a googlare)

      Purtroppo varwidth non funziona con caption.
      `\documentclass[a4paper,12pt,openany,titlepage,oneside]{scrbook}
      \usepackage{fontspec}
      \usepackage[italian]{babel}
      \usepackage{booktabs}
      \usepackage{pdflscape}
      \usepackage{dcolumn}
      \usepackage[font=footnotesize,format=plain,labelfont={sf,bf},singlelinecheck=on]{caption}
      \newcommand{\punto}[1]{\textit{#1}}
      \newcommand{\piano}[2]{\punto{#1}-\punto{#2}}

      \usepackage{environ}
      \makeatletter
      \newenvironment{centeredcaption}[1]
      {\def\table@caption{#1}%
      \Collect@Body\measure@table}
      {\begin{minipage}{\table@width}\centering
      \expandafter\caption\expandafter{\table@caption}
      \box0\end{minipage}}
      \def\measure@table#1{\sbox\z@{#1}\edef\table@width{\the\wd\z@}}
      \makeatother

      \begin{document}
      \begin{landscape}
      \begin{table}
      \footnotesize
      \begin{centeredcaption}{Indice “Wits''}
      \begin{tabular}{>{\bfseries}clD{,}{,}{-1}}
      \toprule
      ID & Paziente & \multicolumn{1}{c}{\punto{A}$_0$-\punto{B}$_0$} \\
      \midrule
      1 & VAFE1997 & 2 \\
      2 & DABA1994 & 6 \\
      3 & MASCHI2000 & 3 \\
      \multicolumn{3}{c}{\ldots} \\
      \bottomrule
      \end{tabular}
      \end{centeredcaption}\hfil
      \begin{centeredcaption}{Analisi antero-posteriore di Ricketts}
      \begin{tabular}{>{\bfseries}clc*{3}{D{,}{,}{-1}}}
      \toprule
      ID & Paziente & Età & \multicolumn{1}{c}{Angolo facciale} & \multicolumn{1}{c}{Convessità facciale} & \multicolumn{1}{c}{\piano{FH}{NaA}} \\
      \midrule
      1 & VAFE1997 & 13 & 87 & 8 & 95 \\
      2 & DABA1994 & 16 & 82 & 3 & 85 \\
      3 & MASCHI2000 & 10 & 87 & 7 & 93 \\
      \multicolumn{6}{c}{\ldots} \\
      \bottomrule
      \end{tabular}
      \end{centeredcaption}
      \end{table}

      \end{landscape}
      \end{document}`
      Ciao
      Enrico

    • #62963
      Up
      0
      Down
      ::

      egreg9″ post=61945
      Purtroppo varwidth non funziona con caption.

      Peccato. 🙁

      egreg9″ post=61945
      `[..]
      \usepackage{environ}
      \makeatletter
      \newenvironment{centeredcaption}[1]
      {\def\table@caption{#1}%
      \Collect@Body\measure@table}
      {\begin{minipage}{\table@width}\centering
      \expandafter\caption\expandafter{\table@caption}
      \box0\end{minipage}}
      \def\measure@table#1{\sbox\z@{#1}\edef\table@width{\the\wd\z@}}
      \makeatother
      [..]
      `

      Grazie mille!!!

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

Go to top