Caption: problema nelle sottofigure

  • Questo topic ha 5 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni fa da Pierpaolo.
  • Creatore
    Topic
  • #116348
    Up
    0
    Down
    ::


    Ciao a tutti.
    Mi si è presentato uno strano problema nelle didascalie delle sottofigure.
    É strano perché ho generato un nuovo documento partendo da uno che uso come modello e che non presentava il problema che vado a descrivere.
    In sostanza le didascalie delle sottofigure vanno a capo molto frequentemente come ad esempio la scritta qui sotto:
    [Esempio
    di
    didascalia
    che
    va
    troppo
    spesso
    a
    capo]
    Sicuramente è un problema di spazio, ma non capisco da cosa sia originato.
    Cercando in rete ho sistemato un po’ le cose usando il comando:
    `\captionsetup[subfigure]{width=100pt}`
    subito prima della figura, ma in molti casi ho un errore nell’elaborazione del pdf
    Overfull \hbox (100.0pt too wide) in paragraph …
    L’output viene generato lo stesso ma non capisco perché sia sopraggiunto questo problema.

    Uso il pacchetto caption come segue:
    `\usepackage{caption}
    \captionsetup{tableposition=top,figureposition=bottom,font=small}
    \captionsetup{format=hang,labelfont={bf}}
    `

    Mentre la sintassi dei comandi delle sottofigure è:
    `\begin{figure}[htb]
    \centering
    \subfloat[Didascalia della prima immagine]{\label{fig:immagine_1}}
    \includegraphics[width=0.85\textwidth]{nomefile1.png}
    \qquad
    \subfloat[Didascalia della seconda immagine]{\label{fig:immagine_2}}
    \includegraphics[width=0.85\textwidth]{nomefile2.png}
    \caption{Didascalia complessiva}
    \label{etichetta}
    \end{figure}`

    In alternativa il codice che “funziona” è:
    `\begin{figure}[htb]
    \centering
    \captionsetup[subfigure]{width=100pt}
    \subfloat[Didascalia della prima immagine]{\label{fig:immagine_1}}
    \includegraphics[width=0.85\textwidth]{nomefile1.png}
    \qquad
    \captionsetup[subfigure]{width=100pt}
    \subfloat[Didascalia della seconda immagine]{\label{fig:immagine_2}}
    \includegraphics[width=0.85\textwidth]{nomefile2.png}
    \caption{Didascalia complessiva}
    \label{etichetta}
    \end{figure}`

    Le uniche differenze rispetto al documento di partenza sono:

    • documento origine: `\documentclass[a4paper,twoside,12pt,italian,notitlepage,openright]{book}`
    • documento attuale: `\documentclass[a4paper,twoside,12pt,english,notitlepage,openright]{report}`
    • documento origine: `\usepackage[italian]{babel}`
    • documento attuale: `\usepackage[english]{babel}`

    Spero di essere stato chiaro.
    Grazie in anticipo!

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #116349
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Fornisci tante informazioni, probabilmente tutti utili, ma non fornisci il preambolo che; classe pacchetti caricati, impostazioni varie, ecceter.
        Subfloat mi lascia perplesso, ma prima funzionava con la classe book, e ora non funziona pù con la classse report? Molto strano, a mono che modificando il preambolo tu abbia dimenticato qualche pacchetto.
        Dovrebbe essere un indizio il fatto che ti dica che dopo aver specificato 100pt per la didascali te la componga bne ma ti segnali una scatola che eccede la larghezza proprio di 100pt.

        Inoltre, se specifichi che le sotto figure che importi sono scalate all’85% della larghezza del testo e ci metti in mezzo un doppio quadro (\qquad), immagino che tu le voglia mettere affiancate in orizzontale; ma se ciascuna è larga l’85% della giustezza, e due affiancate sono larghe complessivamente il170% della giustezza più i circa 8mm di distanza del doppio quadro. Questo potrebbe essere irrilevante per il tuo problema, ma sicuramente non ti porta all’esito che vorresti ottenere.

        Ripensa un po’ a quello che stai facendo e se non ne esci, produci un esempio minimo compilabile, seguendo le istruzioni riportate nell’apposita guida tematica presente nella sezione Documentazione di questo sito. In sostanza devi scrivere un cdice che parta con \documentclass e finisca con \end{document}; il suo preambolo deve contenere il minimo numero di pacchetti e il contenuto fra [tt]\begin{document}[/tt] e [tt]\end{document}[/tt] deve essere il minimo necessario per replicare il problema e affinché chi vuol darti una mano posa copia-incollare il tuo esempio, in un suo file .tex, lo possa compilare e, visto il problema, possa condurre le necessarie analisi e possa scoprire dove sta l’errore, o che soluzione si possa adottare.

      • #116350
        Up
        0
        Down
        ::


        Hai ragionissima.
        Innanzi tutto ho sbagliato a riportare il codice dell’immagine, infatti l’85% del testo per ciascuna immagine è relativa a due immagini sovrapposte, il codice corretto dovrebbe essere:

        `\begin{figure}[htb]
        \centering
        \subfloat[Didascalia della prima immagine]{\label{fig:immagine_1}}
        \includegraphics[width=0.85\textwidth]{nomefile1.png}

        \subfloat[Didascalia della seconda immagine]{\label{fig:immagine_2}}
        \includegraphics[width=0.85\textwidth]{nomefile2.png}
        \caption{Didascalia complessiva}
        \label{etichetta}
        \end{figure}`

        oppure per le immagini affiancate:
        `\begin{figure}[htb]
        \centering
        \subfloat[Didascalia della prima immagine]{\label{fig:immagine_1}}
        \includegraphics[width=0.45\textwidth]{nomefile1.png}
        \qquad
        \subfloat[Didascalia della seconda immagine]{\label{fig:immagine_2}}
        \includegraphics[width=0.45\textwidth]{nomefile2.png}
        \caption{Didascalia complessiva}
        \label{etichetta}
        \end{figure}`

        mentre attuale il preambolo è:
        `\documentclass[a4paper,twoside,12pt,english,notitlepage,openright]{report}
        \usepackage[latin1]{inputenc}
        \usepackage[english]{babel}
        \usepackage[T1]{fontenc}
        \usepackage{txfonts}
        \usepackage{booktabs}
        \usepackage{longtable}
        \usepackage{tabularx}
        \usepackage{siunitx}
        \usepackage{graphicx}
        \usepackage{url}
        \usepackage{pgfplots}
        \usepackage[maxdepth=6]{gitinfo2}
        \graphicspath{{./immagini/}}
        \usepackage{emptypage}
        \usepackage{booktabs}
        \usepackage{marvosym}
        \usepackage{textcomp}
        \usepackage{subfig}
        \usepackage{enumitem}
        \usepackage[nottoc]{tocbibind} %per lista delle figure
        \usepackage{colortbl}
        \usepackage{xcolor}
        \usepackage{rotating}
        \usepackage{caption}
        \captionsetup{tableposition=top,figureposition=bottom,font=small}
        \captionsetup{format=hang,labelfont={bf}}`
        mentre nel file di origine con cui non avevo problemi, il preambolo è:
        `
        \documentclass[a4paper,twoside,12pt,italian,notitlepage,openright]{book}
        \usepackage[latin1]{inputenc}
        \usepackage[italian]{babel}
        \usepackage[T1]{fontenc}
        \usepackage{txfonts}
        \usepackage{booktabs}
        \usepackage{tabularx}
        \usepackage{siunitx}
        \usepackage{graphicx}
        \usepackage{url}
        \usepackage{pgfplots}
        \usepackage[maxdepth=6]{gitinfo2}
        \graphicspath{{./immagini/}}
        \usepackage{emptypage}
        \usepackage{booktabs}
        \usepackage{marvosym}
        \usepackage{textcomp}
        \usepackage{subfig}
        \usepackage{enumitem}
        \usepackage[nottoc]{tocbibind} %per lista delle figure
        \usepackage{colortbl}
        \usepackage{xcolor}
        \usepackage{rotating}
        \usepackage{caption}
        \captionsetup{tableposition=top,figureposition=bottom,font=small}
        \captionsetup{format=hang,labelfont={bf}}`

        Scusa se sono stringato ma torno da una trasferta di 700 km solo oggi.
        Ovviamente grazie in anticipo!

      • #116351
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non è proprio un esempio minimo (o due esempi minimi visto che hai due preamboli diversi) ma si possono combinare. Ci devo lavorare sopra. ti farò sapere, se posso prima di mezzanotte, altrimenti domani.

        • #116352
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            1) non caricare lo stesso pacchetto due volte; vedi il commento di fianco al secondo booktabs.

            2) Usi una sintassi sbagliata e i due esempi che hi mandato presentano lo stesso problema della didascalia stretta e divisa in sillabe.

            3) esmina il codice seguente con attenzione`\documentclass[a4paper,twoside,12pt,english,notitlepage,openright]{report}
            \usepackage[utf8]{inputenc}
            \usepackage[english]{babel}
            \usepackage[T1]{fontenc}
            \usepackage{txfonts}
            \usepackage{booktabs}
            \usepackage{longtable}
            \usepackage{tabularx}
            \usepackage{siunitx}
            \usepackage{graphicx}
            \usepackage{url}
            \usepackage{pgfplots}
            \usepackage[maxdepth=6]{gitinfo2}
            \graphicspath{{./immagini/}}
            \usepackage{emptypage}
            %\usepackage{booktabs}% già caricato
            \usepackage{marvosym}
            \usepackage{textcomp}
            \usepackage{subfig}
            \usepackage{enumitem}
            \usepackage[nottoc]{tocbibind} %per lista delle figure
            \usepackage{colortbl}
            \usepackage{xcolor}
            \usepackage{rotating}
            \usepackage{caption}
            \captionsetup{tableposition=top,figureposition=bottom,font=small}
            \captionsetup{format=hang,labelfont={bf}}

            \usepackage{mwe}% per testo e figure di un Minimum Working Example
            % Esempio Minimo Compilabile

            \begin{document}
            \begin{figure}[htb]
            \centering
            \subfloat[Didascalia della prima immagine\label{fig:immagine_1}]
            {\includegraphics[width=0.85\textwidth]{example-image-a}}

            \subfloat[Didascalia della seconda immagine\label{fig:immagine_2}]
            {\includegraphics[width=0.85\textwidth]{example-image-b}}
            \caption{Didascalia complessiva}
            \label{etichetta-1}
            \end{figure}

            \begin{figure}[htb]
            \centering
            \subfloat[Didascalia della prima immagine\label{fig:immagine_3}]
            {\includegraphics[width=0.45\textwidth]{example-image-a}}
            \qquad
            \subfloat[Didascalia della seconda immagine\label{fig:immagine_4}]
            {\includegraphics[width=0.45\textwidth]{example-image-b}}
            \caption{Didascalia complessiva}
            \label{etichetta-2}
            \end{figure}

            \end{document}`Osserva la posizione delle graffe e delle quadre e confrontalo con quello che mi hai inviato. Prendi nota delle differenze.
            Se cambi la classe report con la classe book viene come si deve lo stesso; Senza la correzione delle graffe e quadre sia con report sia con book le didascalie venivano male.

          • #116353
            Up
            0
            Down
            ::


            Tutto chiaro!
            Che dire, grazie infinite!

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

        Go to top