immagine su doppia colonna

  • Creatore
    Topic
  • #86140
    Up
    0
    Down
    ::


    Buongiorno a tutti,

    sto scrivendo un articolo in doppia colonna, tuttavia vorrei inserire un immagine che per motivi di visibilità dovrà occupare la larghezza di entrambe le colonne di testo. Diciamo che si tratta di un grafico “molto largo” e “non molto alto”, che quindi non potrà ne occupare una pagina intera, ne restare su una sola colonna.

    Ho cercato di inserire il grafico nella parte alta della pagina tramite questo codice all’interno del testo della prima colonna:

    `
    \begin{figure}[t]
    \centering
    \onecolumn\includegraphics[scale=0.6]{grafico1.pdf}
    \caption{\textbf{Titolo.}}
    \label{ref:fig3}
    \twocolumn
    \end{figure}
    `

    tuttavia quanto continuo a scrivere e passo alla seconda colonna il testo va a sovrapporsi al grafico stesso.

    Qualche idea?

    Grazie per l’aiuto, Gabriele.

Visualizzazione 15 filoni di risposte
  • Autore
    Risposte
    • #86141
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::


        Ciao,
        devi usare l’ambiente figure in versione asteriscata:
        `
        \begin{figure*}…

        \end{fugure*}
        `

        Saluti.
        R.

      • #86142
        Up
        0
        Down
        ::

        gabriulla” post=85592Buongiorno a tutti,

        sto scrivendo un articolo in doppia colonna, tuttavia vorrei inserire un immagine che per motivi di visibilità dovrà occupare la larghezza di entrambe le colonne di testo. Diciamo che si tratta di un grafico “molto largo” e “non molto alto”, che quindi non potrà ne occupare una pagina intera, ne restare su una sola colonna.

        Ho cercato di inserire il grafico nella parte alta della pagina tramite questo codice all’interno del testo della prima colonna:

        `
        \begin{figure}[t]
        \centering
        \onecolumn\includegraphics[scale=0.6]{grafico1.pdf}
        \caption{\textbf{Titolo.}}
        \label{ref:fig3}
        \twocolumn
        \end{figure}
        `

        tuttavia quanto continuo a scrivere e passo alla seconda colonna il testo va a sovrapporsi al grafico stesso.

        Qualche idea?

        Grazie per l’aiuto, Gabriele.

        Togli [t], togli \onecolumn e \twocolumn. Semplicemente scrivi \begin{figure*} e \end{figure*}.

        Ciao
        Tommaso

      • #86143
        Up
        0
        Down
        ::

        robitex” post=85594Ciao,
        devi usare l’ambiente figure in versione asteriscata:
        `
        \begin{figure*}…

        \end{fugure*}
        `

        Saluti.
        R.

        Ciao, grazie per la risposta, però l’ambiente {figure*} mi riserva una pagina intera per la sola immagine, mentre io vorrei avere immagine e testo sulla stessa pagina.

        Gabriele.

      • #86144
        Up
        0
        Down
        ::

        gabriulla” post=85596

        Ciao,
        devi usare l’ambiente figure in versione asteriscata:
        `
        \begin{figure*}…

        \end{fugure*}
        `

        Saluti.
        R.

        Ciao, grazie per la risposta, però l’ambiente {figure*} mi riserva una pagina intera per la sola immagine, mentre io vorrei avere immagine e testo sulla stessa pagina.

        Gabriele.

        Hai levato i comandi \onecolumn e \twocolumn?

        Ciao
        Tommaso

      • #86145
        Up
        0
        Down
        ::

        Hai levato i comandi \onecolumn e \twocolumn?

        Ciao
        Tommaso

        Si, ho levato anche [t] ma in tutti i casi la figura mi viene generata su una pagina separata.

      • #86146
        Up
        0
        Down
        ::

        gabriulla” post=85599

        Hai levato i comandi \onecolumn e \twocolumn?

        Ciao
        Tommaso

        Si, ho levato anche [t] ma in tutti i casi la figura mi viene generata su una pagina separata.

        C’è bisogno di vedere il preambolo del tuo documento. Come ottieni le due colonne?

        Ciao
        Tommaso

      • #86147
        Up
        0
        Down
        ::


        Se l’immagine, come dici, è molto grande, difficilmente LaTeX la metterà in una pagina con anche testo; il valore normale è che almeno il 20% della pagina (in senso verticale) sia riservato al testo e non più del 70% a tabelle o figure (inserite con gli ambienti [tt]table[/tt] o [tt]figure[/tt], con la variante * se in doppia colonna). Perciò se l’altezza della tua immagine è più del 70% della dimensione verticale della gabbia, non hai speranza, a meno che tu non modifichi i valori dei parametri. Ma te lo sconsiglio: un’immagine enorme nasconderebbe poche righe di testo sotto, sconcertando il lettore.

        Ciao
        Enrico

      • #86148
        Up
        0
        Down
        ::


        Il mio documento è di classe IEEEtran,

        ho già provato ad utilizzare subfigure così come indicato a pagina 9 di http://texdoc.net/texmf-dist/doc/latex/IEEEtran/IEEEtran_HOWTO.pdf ma non ho ottenuto alcun risultato.

        Soprattutto perchè io ho una figura unica…

        Sono riuscito riuscito ad ottenere il risultato che volevo con una \makebox di dimensioni adeguate che sono andato ad inserire in mezzo al testo proprio alla fine della prima colonna, ma ovviamente questa non è una soluzione molto elegante!

      • #86149
        Up
        0
        Down
        ::

        egreg9″ post=85601Se l’immagine, come dici, è molto grande, difficilmente LaTeX la metterà in una pagina con anche testo; il valore normale è che almeno il 20% della pagina (in senso verticale) sia riservato al testo e non più del 70% a tabelle o figure (inserite con gli ambienti [tt]table[/tt] o [tt]figure[/tt], con la variante * se in doppia colonna). Perciò se l’altezza della tua immagine è più del 70% della dimensione verticale della gabbia, non hai speranza, a meno che tu non modifichi i valori dei parametri. Ma te lo sconsiglio: un’immagine enorme nasconderebbe poche righe di testo sotto, sconcertando il lettore.

        Ciao
        Enrico

        l’immagine è pari a circa il 30% della dimensione verticale.

      • #86150
        Up
        0
        Down
        ::

        gabriulla” post=85605

        Se l’immagine, come dici, è molto grande, difficilmente LaTeX la metterà in una pagina con anche testo; il valore normale è che almeno il 20% della pagina (in senso verticale) sia riservato al testo e non più del 70% a tabelle o figure (inserite con gli ambienti [tt]table[/tt] o [tt]figure[/tt], con la variante * se in doppia colonna). Perciò se l’altezza della tua immagine è più del 70% della dimensione verticale della gabbia, non hai speranza, a meno che tu non modifichi i valori dei parametri. Ma te lo sconsiglio: un’immagine enorme nasconderebbe poche righe di testo sotto, sconcertando il lettore.

        Ciao
        Enrico

        l’immagine è pari a circa il 30% della dimensione verticale.

        Finché non fai vedere il preambolo e come inserisci la tua figura, si va “a usma”, come si dice da noi. Intanto prova a caricare il pacchetto dblfloatfix e vedi che succede. Piuttosto: che c’entra sub figure?

        Ciao
        Tommaso

      • #86151
        Up
        0
        Down
        ::


        preambolo:

        `\documentclass[9pt]{IEEEtran}
        \IEEEoverridecommandlockouts
        \usepackage{cite}
        \usepackage{graphicx}
        \usepackage[cmex10]{amsmath}
        %\usepackage{algorithm,algorithmic}
        \usepackage{algorithm}
        \usepackage{algpseudocode}
        \usepackage[tight,footnotesize]{subfigure}
        \usepackage{url}
        \usepackage{float}`

        immagine (senza * che mi fa andare l’immagine in pagina vuota):

        `\begin{figure}[t]
        \centering
        \onecolumn\includegraphics[width=\textwidth]{grafico1.pdf}
        \caption{\textbf{Titolo.}}
        \label{ref:fig3}
        \twocolumn
        \end{figure}}`

        usare \onecolumn e \twocolumn fanno in modo che la didascalia venga centrata insieme all’immagine, mentre se non li uso tutto rimane in linea con la prima colonna… Riamane il problema che il testo si sovrappone sulla seconda colonna…

        Gabriele.

      • #86152
        Up
        0
        Down
        ::


        anche con dblfloatfix da lo stesso risultato…

        Gabriele.

      • #86153
        Up
        0
        Down
        ::

        gabriulla” post=85609anche con dblfloatfix da lo stesso risultato…

        Gabriele.

        Non vedo dove sia il problema. Ecco un esempio minimo compilabile:

        `
        \documentclass[9pt]{IEEEtran}

        \usepackage[draft]{graphicx}

        \usepackage{lipsum}

        \begin{document}

        \lipsum[1]

        \begin{figure*}
        \centering
        \includegraphics[width=\textwidth,height=3cm]{grafico1.pdf}
        \caption{\textbf{Titolo.}}
        \label{ref:fig3}
        \end{figure*}

        \lipsum\lipsum\lipsum\lipsum\lipsum

        \end{document}
        `
        In quella classe sono allineate a sinistra. Quando la didascalia è già di un paio di righe, l’effetto non è così male.
        Se proprio la vuoi centrare prova questo:

        `
        \fbox{%
        \begin{minipage}{.5\textwidth}
        \caption{\textbf{Titolo.}}
        \end{minipage}}
        `

        Dopo aver visto il risultato, togli \fbox. L’ho messo solo per mostrare lo spazio occuapto dalla didascalia.

        Ciao
        Ivan

      • #86154
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::

          `\begin{figure}[t]
          \centering
          \onecolumn\includegraphics[width=\textwidth]{grafico1.pdf}
          \caption{\textbf{Titolo.}}
          \label{ref:fig3}
          \twocolumn
          \end{figure}}`

          NON USARE ASSOLUTAMENTE \ONECOLUMN E \TWOCOLUMN ALL’INTERNO DELL’AMBIENTE FIGURE; toglili immediatamente e usa l’ambiente figure*:
          `\begin{figure*}
          \centering
          \includegraphics[width=\textwidth]{grafico1}
          \caption{\textbf{Titolo}}\label{ref:fig3}
          \end{figure*}`

        • #86155
          Up
          0
          Down
          ::


          Allora,

          `\begin{figure*}
          \centering
          \includegraphics[width=\textwidth]{grafico1}
          \caption{\textbf{Titolo}}\label{ref:fig3}
          \end{figure*}`

          funziona se inserisco questo codice nella pagina precedente rispetto a dove voglio che l’immagine venga effettivamente inserita, in questo modo latex mi metterà l’immagine nella pagina successiva.

          Tutto ok fino a questo punto, il problema è che ho due immagini di queste dimensioni che dovranno essere posizionate ad un paio di pagine di distanza. La prima immagine riesco a posizionarla dove vorrei, ma quando inserisco la seconda ritorno allo stesso problema.

          In questo caso addiruttura latex mi sposta entrambe le immagini nella pagina finale del documento, questo nonostante io le abbia ancorate con [t].

          a questo punto spero di trovare un posizionamento che non mi darà errori…. Forse inserendo più testo fra le due immagini tutto si risolverà, il probelma è che non so che scrivere 😀 .

          NB: le proporzioni delle immagini sono di 28/11.

        • #86156
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Una immagine con le dimensioni 28 per 11 portata a larghezza completa del testo può stare in effetti in testa alla pagina, ma non ce ne possono stare due; quindi è evidente che le tue due immaigni a larghezza piena devono stare su pagine diverse; generalmente LaTeX, con il suo algoritmo per costruire la pagina da inviare al file di uscita, mette di default le figure asteriscate all’inizio della pagina successiva a quella dove si trova il testo sorgente che racchiudeva l’ambiente figure*. Dunque quello che ottieni è normale.

            Però può succedere che la seconda delle due figure asteriscate non abbia abbastanza testo dopo, e quindi vada a finire in fondo al capitolo o in fondo al documento. Prova il segiuente esempio minimo compilabile:`% !TEX TS-program = pdflatex
            % !TEX encoding = UTF-8 Unicode

            \documentclass[a4paper,twocolumn]{book}

            \usepackage{lipsum}

            \begin{document}
            \lipsum[1-4]

            \begin{figure*}
            \unitlength=\dimexpr \textwidth/28\relax
            \begin{picture}(28,11)
            \put(0,0){\framebox(28,11){}}
            \end{picture}
            \caption{Prima figura}
            \end{figure*}

            \lipsum[5-8]

            \begin{figure*}
            \unitlength=\dimexpr \textwidth/28\relax
            \begin{picture}(28,11)
            \put(0,0){\framebox(28,11){}}
            \end{picture}
            \caption{Seconda figura}
            \end{figure*}

            \lipsum[9-20]

            \end{document}`

            Se nell’ultimo comando \lipsum lasci così com’è vedi che le due figure compaiono in testa a due pagine consecutive; se invece ne cambi l’argomento facoltatio da [9-20] a [9-12] constati che la seconda figura va in fondo al documento. Perché? perché il primi \lipsum sono quasi tutti consumati dalla prima pagina, e non c’è abbastanza testo nella seconda per rimepirla completamente e rinviare qualche capoverso alla terza pagina. Gia mettendoci 13 al posto di 12, una parte dell’ultimo cpaoverso va nella terza pagina e la figura va al suo posto desiderato in testa alla pagina.

            Credo di averti spiegato l’intero meccanismo. Se vuoi approfondire puoi leggere la Guida GuIT dove in diversi punti si discute o descrive come vengono inseriti gli oggetti mobili (detti anche galleggianti, flottanti, floating bodies, eccetera); l’algoritmo seguito da LaTeX è piuttosto complesso, ma in condizioni normali produce i risultati migliori. In condizioni anomale si possono avere diversi inconvenienti, tra i quli quelli che tu lamenti.

            Se non sai cos’altro scrivere nel tuo testo per mettercene abbastanza da non fare andare la seconda figura in fondo al testo, puoi provare a mettere i due ambienti figure* consecutivi l’uno all’altro, senza metterci nessun testo in mezzo; tanto LaTeX te li sposta altrove, dove tipograficamente stanno bene; tu vi fai riferimento con i label, \fref, \pageref, \vref, e ogni altro comando per la cross reference, quindi in realtà non è importante dove questi oggetti siano veramente; l’importante è che tu non vi faccia riferimento con “… come si vede nella figura seguente …”. Comunque messi vicini nel testo sorgente, diventa facile copiarli in blocco e spostarli assieme un po’ prima o un po’ dopo in modo da ottenere risultati migliori. almeno tipograficamente.

            Dimenticavo: forse lo fai già, e nel mio esempio minimo compilabile non era necessario, ma sarebbe opportuno che quando componi a due colonne usassi sempre il pacchetto fixltx2e che sistema un po’ di difettucci nella composizione a due colonne; se vuoi avere maggiore flessibilità nella collocazione di figure a giustezza piena, usa dblfloatfix (senza caricare fixltx2e) che ti permette di usare anche il codice di posizionamento b anche per le figure a giustezza piena.

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

        Go to top