2009-11-24 11 views
66

Ho due immagini che voglio visualizzare su una pagina come figure. Ognuno consuma poco meno della metà dello spazio disponibile, quindi non c'è molto spazio per altre cose su quella pagina, ma so che c'è abbastanza spazio per entrambe le figure. Ho provato a posizionare le figure con [ht] e [hb], sia [h] che entrambi [ht], ma ancora non riesco a ottenere quelle due immagini sulla stessa pagina ma invece almeno alcuni paragrafi tra di loro.Come forzare due figure a rimanere sulla stessa pagina in LaTeX?

Come posso forzare queste due cifre a rimanere sulla stessa pagina?

+0

Una domanda simile è stato chiesto più di recente su TeX.SX, e credo che il [risposta] (http://tex.stackexchange.com/a/65617/7142) utilizzando il comando '\ afterpage' è la migliore risposta. –

risposta

107

È possibile inserire due figure all'interno di un ambiente di figure. Ad esempio:

\begin{figure}[p] 
\centering 
\includegraphics{fig1} 
\caption{Caption 1} 
\includegraphics{fig2} 
\caption{Caption 2} 
\end{figure} 

Ogni sottotitolo genera un numero di figura separato.

+1

Questa è una bella risposta da ricordare :). Non ci ho mai pensato ma sembra pulito :). – bastijn

+5

Un'altra possibilità è il pacchetto subfigure e un comando all'interno dell'ambiente figure di qualcosa come '\ subfloat [Caption] {\ includegraphics {file}}'. –

+5

sembra che tu non possa etichettare le due diverse figure in modo indipendente, sebbene – Mulone

1

Prova ad aggiungere uno !, ad es. [h!].

+0

non funziona, il latex lo sostituirà con [ht], quindi procederà a posizionare comunque la figura su una pagina separata. –

1

provare [h!] In primo luogo, ma puoi farlo in modo brutto.

LateX è un po 'difficile nel posizionare le immagini con tali vincoli mentre gestisce se stesso. Quello che faccio di solito se voglio una figura proprio in quel punto è fare qualcosa di simile |:

text in front of image here 

\newpage 
\figure1 
\figure2 

text after images here 

So che non può essere il modo corretto per farlo, ma funziona come un fascino :).

// modifica

Si può fare lo stesso se si vuole un po 'di testo nella parte superiore della pagina, ma poi basta usare/clearpage. Ovviamente puoi ridimensionarli un po 'più piccoli in modo che non succedano più. Forse lo spazio bianco non visto è un po 'più grande di quello che sospetti, cerco sempre di ridimensionare la mia immagine fino a quando non compaiono nella stessa pagina, solo per sapere con certezza che non c'è sovrapposizione dell'1% solo rendendo tutto ciò non necessario .

+0

Grazie, [h!] Ha funzionato! Ho preferito la tua risposta perché il "modo brutto" sembra anche una buona notizia da sapere anche quando non ne ho avuto bisogno in questo caso. – Kusti

5

Se li vuoi entrambi nella stessa pagina e occuperanno entrambi l'intera pagina, l'idea migliore è di dire a LaTeX di metterli entrambi su una pagina a parte!

\begin{figure}[p] 

Probabilmente sarebbe contro sani principi tipografici (per esempio, brutto) di avere due figure in una pagina con solo poche righe di testo sopra o sotto di loro.


Tra l'altro, la ragione che [!h] funziona è perché si sta dicendo LaTeX per ignorare le sue solite restrizioni su quanto spazio dovrebbe essere dedicato a galleggia su una pagina con il testo. Come implicito sopra, c'è una ragione per cui le restrizioni ci sono. Il che non significa che possano essere allentati un po '; vedere lo FAQ per farlo.

+0

Più precisamente, '[p]' dice solo al compilatore di metterli su una pagina con solo float. Questo potrebbe o non potrebbe risultare in pagine separate per le due figure, a seconda delle loro dimensioni. – fotNelton

18

Se si vuole avere foto su stesso argomento, si ca usare subfigure pacchetto e costruzione:

\begin{figure} 
\subfigure[first image]{\includegraphics{image}\label{first}} 
\subfigure[second image]{\includegraphics{image}\label{second}} 
\caption{main caption}\label{main_label} 
\end{figure} 

Se si desidera avere, per esempio due, diverse immagini una accanto all'altra è possibile utilizzare:

\begin{figure} 
\begin{minipage}{.5\textwidth} 
    \includegraphics{image} 
    \caption{first} 
\end{minipage} 
\begin{minipage}{.5\textwidth} 
    \includegraphics{image} 
    \caption{second} 
\end{minipage} 
\end{figure} 

Per le immagini a colonne si dovrà [1] [2] [3] [4] nella sorgente, ma sarà simile

[1] [3]

[2] [4].

+1

Qui puoi anche utilizzare la costruzione menzionata da Jerred Russel: http://stackoverflow.com/questions/1673942/latex-table-positioning Il punto è nell'uso del pacchetto 'float'. – Crowley

12

Ho avuto questo problema durante il tentativo di combinare figure e testo. Ciò che ha funzionato per me è stata l'opzione "H" senza il "!" opzione. \begin{figure}[H]
'H' cerca di forzare la figura esattamente dove l'hai inserita nel codice. Ciò richiede di includere \usepackage{float}

Le opzioni sono spiegate here

+1

Sì, il pacchetto 'float' è sicuramente la risposta corretta qui. Mi lamento spesso che usando il! il simbolo, come in '\ begin {figura} [h!]' potrebbe anche essere riscritto in TeX come '\ per favore' perché il compilatore decide solo da solo dove mettere la tua immagine. Stavolta strizza l'occhio a te, invece di ignorarti. Il pacchetto 'float' farà sì che faccia ciò che vuoi di sicuro. – ely

Problemi correlati