LaTeX'te iki figür aynı sayfada kalmaya nasıl zorlanır?


84

Bir sayfada şekil olarak göstermek istediğim iki görselim var. Her biri mevcut alanın yarısından biraz daha azını yiyor, bu yüzden o sayfada başka şeyler için fazla yer yok, ancak her iki figür için de yeterli alan olduğunu biliyorum. Şekilleri hem [h] hem de [ht] olmak üzere [ht] ve [hb] ile yerleştirmeye çalıştım ama yine de bu iki resmi aynı sayfada alamıyorum, bunun yerine aralarında en az birkaç paragraf var.

Bu iki rakamı aynı sayfada kalmaya nasıl zorlarım?


Benzer bir soru daha yakın zamanda TeX.SX'te soruldu ve bence komutu kullanarak cevabın\afterpage en iyi cevap olduğuna inanıyorum .
Kod

Yanıtlar:


141

Bir figür ortamına iki figür koyabilirsiniz. Örneğin:

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

Her başlık ayrı bir şekil numarası oluşturacaktır.


2
Bu hatırlamak için güzel bir cevap :). Hiç düşünmedim ama temiz görünüyor :).
bastijn

5
Diğer bir olasılık, alt biçim paketi ve buna benzer bir şeyin şekil ortamı içindeki bir komuttur \subfloat[Caption]{\includegraphics{file}}.
Rupert Nash

11
Görünüşe göre iki farklı figürü bağımsız olarak etiketleyemezsiniz
Mulone

1
"Doğru cevap" bayrağı değiştirildi çünkü bu en iyisi gibi görünüyor.
Kusti

2
@Mulone - Ortamı \labeliçine koyarsan yapabilirsin \caption.
Chris

20

Aynı konuyla ilgili görsellere sahip olmak istiyorsanız, subfigurepaket ve yapıyı kullanabilirsiniz :

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

Örneğin, yan yana iki farklı görüntünün olmasını istiyorsanız, kullanabilirsiniz:

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

Sütunlardaki resimler için kaynakta [1] [2] [3] [4] olacak, ancak şöyle görünecek

[1] [3]

[2] [4].


1
Jerred Russel tarafından belirtilen yapıyı burada da kullanabilirsiniz: stackoverflow.com/questions/1673942/latex-table-positioning Point, floatpaketi kullanıyor .
Crowley

15

Şekilleri ve metni karıştırmaya çalışırken bu problemi yaşadım. Benim için işe yarayan, '!' Olmadan 'H' seçeneğiydi. seçeneği. \begin{figure}[H]
'H', rakamı tam olarak kodda koyduğunuz yerde olmaya zorlar. Bu eklemenizi gerektirir \usepackage{float}

Seçenekler burada açıklanmıştır


1
Evet, floatpaket burada kesinlikle doğru cevaptır. Sık sık! Sembol, \begin{figure}[h!]TeX'te yeniden yazılabileceği gibi \please, derleyici hala görüntünüzü nereye koyacağına kendisi karar verir. Bu sefer seni görmezden gelmek yerine göz kırpıyor. floatPaket size kesin istediğinizi yapın yapacaktır.
ely

6

Her ikisinin de aynı sayfada olmasını istiyorsanız ve ikisi de temelde tüm sayfayı kaplarsa, en iyi fikir LaTeX'e ikisini de kendi sayfalarına koymasını söylemektir!

\begin{figure}[p]

Bir sayfada yalnızca birkaç satır metnin üstünde veya altında iki figür olması sağlam tipografik ilkelere (örneğin çirkin) aykırı olacaktır.


Bu arada, [!h]işe yaramasının nedeni, LaTeX'e metin içeren bir sayfada kayan alanlara ne kadar alan ayrılması gerektiğine dair olağan kısıtlamalarını geçersiz kılmasını söylemesidir. Yukarıda belirtildiği gibi, kısıtlamaların orada olmasının bir nedeni var. Bu onların biraz gevşetilebileceği anlamına gelmez; bununla ilgili SSS bölümüne bakın .


1
Daha doğrusu, [p]yalnızca derleyiciye onları yalnızca kayan bir sayfaya koymasını söyler. Bu, boyutlarına bağlı olarak iki şekil için ayrı sayfalarla sonuçlanabilir veya sonuçlanmayabilir.
fotNelton


1

Önce [h!] deneyin ama bunu çirkin bir şekilde yapabilirsiniz.

LateX, kendini yerleştirmeyi başardığı için bu tür kısıtlamalara sahip görüntüleri yerleştirmede biraz zordur. O noktada bir figür istiyorsam genellikle yaptığım şey | gibi bir şey yapmaktır:

text in front of image here

 \newpage 
 \figure1 
 \figure2

text after images here

Bunu yapmanın doğru bir yolu olmayabileceğini biliyorum ama bir cazibe gibi çalışıyor :).

//Düzenle

Sayfanın üstünde küçük bir metin istiyorsanız da aynı şeyi yapabilirsiniz, ancak sonra / clearpage kullanın. Elbette onları biraz daha küçültebilirsiniz, böylece artık olmaz. Belki de görülmeyen beyaz boşluk şüphelendiğinizden biraz daha büyüktür, her zaman aynı sayfada görünene kadar resmimi küçültmeye çalışırım, sadece% 1 gibi bir örtüşme olmadığından emin olmak için tüm bunları gerekli kılmadan .


Teşekkürler, [h!] İşe yaradı! Cevabınızı tercih ettim çünkü "çirkin yol", bu durumda ihtiyacım olmasa bile bilmek için iyi bir şey gibi görünüyor.
Kusti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.