LaTex: Testo tra una serie di immagini

Installazione, configurazione e uso di programmi e strumenti.
walrus
Prode Principiante
Messaggi: 236
Iscrizione: martedì 29 maggio 2007, 20:55

LaTex: Testo tra una serie di immagini

Messaggio da walrus »

Ciao a tutti
ho inserito nel mio documento Latex una serie di circa 10 immagini consecutive usando ripetutamente questo codice:

Codice: Seleziona tutto

\begin{figure}[htbp]
\begin{center}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22.eps}
\caption{Water Depth Raster Map generated by flooding2 with 8 neighbors for each cell (input: 20cubic meters per cell).}
\label{Water Depth Raster Map generated by flooding2 with 8 neighbors for each cell (input: 20cubic meters per cell).}
\end{center}
\end{figure}
tra un'immagine e un'altra io vorrei inserirci del testo, ma Latex me lo inserisce prima della prima immagine, e non dove io vorrei. Dove sta il problema?
max
Prode Principiante
Messaggi: 10
Iscrizione: martedì 12 aprile 2005, 16:48

Re: LaTex: Testo tra una serie di immagini

Messaggio da max »

Ciao walrus.
walrus ha scritto: ho inserito nel mio documento Latex una serie di circa 10 immagini consecutive usando ripetutamente questo codice:
[...]
tra un'immagine e un'altra io vorrei inserirci del testo, ma Latex me lo inserisce prima della prima immagine, e non dove io vorrei. Dove sta il problema?
Il problema sta nel fatto che gli ambienti figure e table sono considerati da LaTeX ambienti mobili, e pertanto è il sistema stesso a decidere dove posizionarli, non tu, anche se cerchi di specificare delle opzioni di posizionamento.

Di conseguenza, se desideri posizionare a mano i tuoi oggetti, non devi usare questi ambienti.

Una semplice soluzione per questo problema è quella di usare l'ambiente center e basta, ammesso che tu voglia che le immagini risultino centrate:

Codice: Seleziona tutto

Testo prima delle figure
\begin{center}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22.eps}
\end{center}
Testo in mezzo alle figure
\begin{center}
\includegraphics[width=13.7cm, height=8.2cm]{Figure23.eps}
\end{center}
Testo dopo le figure
Se vuoi, puoi vedere il tutto anche in modo più astratto; nel preambolo puoi definire un ambiente apposito per le immagini:

Codice: Seleziona tutto

\newenvironment{immagine}{
 \begin{center}
}{
 \end{center}
}
Questo ambiente può essere richiamato nel corpo nel modo seguente:

Codice: Seleziona tutto

Testo prima delle figure
\begin{immagine}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22.eps}
\end{immagine}
Testo in mezzo alle figure
\begin{immagine}
\includegraphics[width=13.7cm, height=8.2cm]{Figure23.eps}
\end{immagine}
Testo dopo le figure
Se desideri che anche all'interno di questo ambiente si possa fare riferimento alle immagini, nell'indice delle figure e nel corpo del documento, carica il pacchetto caption nel preambolo:

Codice: Seleziona tutto

\usepackage{caption}
In questo modo puoi usare il comando \captionof nel corpo:

Codice: Seleziona tutto

\begin{immagine}
\captionof{figure}[Testo corto]{Testo lungo}\label{fig:sigla}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22.eps}
\end{immagine}
C'è purtroppo un effetto collaterale: se non usi gli ambienti mobili figure e table ma gestisci la situazione a mano, come ti ho fatto vedere io, c'è il rischio che se piazzi l'immagine verso la fine della pagina, la didascalia si trovi in una pagina e la figura in un'altra. Per evitare questo, l'autore del pacchetto caption consiglia di inserire il comando \captionof all'interno di un comando \parbox o di un ambiente minipage. In questo modo, la situazione diventa però più complicata da gestire. Ecco perché sarebbe meglio fare affidamento sugli ambienti mobili, anche se talvolta questo significa che le figure e le tabelle non vanno a finire proprio dove vorremmo noi...

Alcune note sul codice che hai suggerito tu:

Codice: Seleziona tutto

\begin{figure}[htbp]
\begin{center}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22.eps}
\caption{Water Depth Raster Map generated by flooding2 with 8 neighbors for each cell (input: 20cubic meters per cell).}
\label{Water Depth Raster Map generated by flooding2 with 8 neighbors for each cell (input: 20cubic meters per cell).}
\end{center}
\end{figure}
  • l'ambiente center dentro a figure o a table inserisce dello spazio extra sopra e sotto alla figura, spesso non voluto; se desideri solamente che la figura venga centrata orizzontalmente, puoi usare il comando \centering;
  • al giorno d'oggi si tende ad utilizzare sempre di meno il formato EPS e l'approccio di composizione che coinvolge LaTeX, Dvips e Ghostscript. È più comune invece usare pdfLaTeX per comporre, e passare quindi dal sorgente LaTeX direttamente al formato PDF. In questo caso, le immagini da includere nel documento vanno salvate in formato PDF se sono vettoriali, e nel formato JPG o PNG se sono raster. In quest'ultimo caso, i file grafici pesano molto di meno rispetto al formato EPS. Inoltre non è necessario specificare l'estensione dei file. L'unica ragione per continuare ad usare il vecchio approccio di composizione è la dipendenza da certi pacchetti, come psfrag e/o pstricks. Quindi vedi tu se questo è il tuo caso;
  • forse è meglio mettere la didascalia prima dell'immagine e non dopo, così quando si clicca sull'indice e si viene portati alla figura, si vede la descrizione sintetica fornita dalla didascalia e subito sotto l'immagine vera e propria;
  • se usi un indice per le figure, la didascalia che fornisci tu è un po' troppo lunga per comparirvi; meglio usare la forma \capion[Testo breve]{Testo molto molto più lungo}, così la corrispondente voce dell'indice sarà più leggibile;
  • anziché chiamare i file con nomi del tipo Figure22, non è meglio dare dei nomi che rispecchino il loro contenuto (es. waterdepth)? Questo, tra l'altro, perché se hai duecento immagini e in posizione cinquanta ti rendi conto che ne devi inserire ancora una, che cosa fai, ti metti a cambiare il nome di ciascuna (anche se forse questa cosa la potresti gestire con uno script...)?
  • l'etichetta per la didascalia è troppo lunga; di norma si usa un suffisso di pochi caratteri che dovrebbe codificare il tipo di oggetto che si desidera rappresentare (es. cha per i capitoli, sec per le sezioni, tab per le tabelle, fig per le immagini ed eq per le equazioni) seguito da un carattere di due punti e da una stringa sintetica (es. depth).
Se desideri usare il codice per gli ambienti mobili, ti consiglio un possibile miglioramento del tuo codice:

Codice: Seleziona tutto

\begin{figure}[htbp]
\centering
\caption[Water Depth Raster Map]{Water Depth Raster Map generated by flooding2 with 8 neighbors for each cell (input: 20cubic meters per cell).}
\label{fig:depth}
\includegraphics[width=13.7cm, height=8.2cm]{Figure22}
\end{figure}
Ciao e a presto!
Avatar utente
setun2
Prode Principiante
Messaggi: 108
Iscrizione: giovedì 10 luglio 2008, 9:53
Località: Padua

Re: LaTex: Testo tra una serie di immagini

Messaggio da setun2 »

Grazie max! ho sfruttato anch'io le tue spiegazioni. Ti faccio i complimenti per la completezza della risposta: in genere c'è chi ti posta un link e ciao  con due parole in croce. :D
Se dico sciocchezze perdonatemi: sono un niubbo e vado a tentativi :)
jack_71
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 551
Iscrizione: lunedì 31 luglio 2006, 18:09
Desktop: Gnome Shell
Distribuzione: Fedora 32
Località: bs county

Re: LaTex: Testo tra una serie di immagini

Messaggio da jack_71 »

La spiegazione è perfetta. Mi permetto solo di segnalarti questa ottima guida in italiano scritta da un membro del forum di guit (a cui se usi latex ti conviene registrarti): http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf
Intel® Core™ i5-2500 CPU @ 3.30GHz × 4  - 16GB ram - Samsung SSD 860 EVO 500GB - HD SATA3 500GB - NVIDIA GeForce GTX 1650 - Philips 243V - Fedora 34
Avatar utente
setun2
Prode Principiante
Messaggi: 108
Iscrizione: giovedì 10 luglio 2008, 9:53
Località: Padua

Re: LaTex: Testo tra una serie di immagini

Messaggio da setun2 »

una bella guida tutta in italiano! grazie jack_71. Io in verità baro un pò: uso lyx. Ho iniziato con questo programma perchè dovevo scrivere una tesi in fretta e non avevo il tempo di far seriamente pratica con i costrutti di latex. Cmq non può fare tutto e spesso devo anche qui inserire parti di codice tex per ottenere risultati più personalizzati: guide in italiano son sempre le benvenute quindi.
Se dico sciocchezze perdonatemi: sono un niubbo e vado a tentativi :)
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti