Làm thế nào để buộc hai hình ở trên cùng một trang trong LaTeX?


84

Tôi có hai hình ảnh mà tôi muốn hiển thị trên một trang dưới dạng số liệu. Mỗi thứ chiếm ít hơn một nửa không gian có sẵn, vì vậy không có nhiều chỗ cho bất kỳ nội dung nào khác trên trang đó, nhưng tôi biết có đủ không gian cho cả hai số liệu. Tôi đã cố gắng đặt các hình với [ht] và [hb], cả [h] và cả [ht] nhưng tôi vẫn không thể nhận được hai hình ảnh đó trên cùng một trang mà thay vào đó là ít nhất một vài đoạn giữa chúng.

Làm cách nào để buộc hai số liệu đó ở trên cùng một trang?


Một câu hỏi tương tự đã được hỏi gần đây hơn trên TeX.SX và tôi tin rằng câu trả lời bằng cách sử dụng \afterpagelệnh là câu trả lời tốt nhất.
Tôi thích viết mã

Câu trả lời:


140

Bạn có thể đặt hai hình bên trong một môi trường hình. Ví dụ:

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

Mỗi chú thích sẽ tạo ra một số hình riêng biệt.


2
Đó là một câu trả lời hay để nhớ :). Chưa từng nghĩ tới nhưng có vẻ sạch sẽ :).
bastijn

5
Một khả năng khác là gói cấu hình con và một lệnh bên trong môi trường hình của một cái gì đó giống như \subfloat[Caption]{\includegraphics{file}}.
Rupert Nash

10
Tuy nhiên, có vẻ như bạn không thể \ gắn nhãn hai số liệu khác nhau một cách độc lập
Mulone

1
Đã thay đổi cờ "câu trả lời đúng" vì cờ này có vẻ là tốt nhất.
Kusti

2
@Mulone - Có vẻ như bạn có thể làm được nếu bạn đặt môi trường \labelbên trong \caption.
Chris

20

Nếu bạn muốn có những hình ảnh về cùng chủ đề, bạn có thể sử dụng subfiguregói và thi công:

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

Ví dụ: nếu bạn muốn có hai hình ảnh khác nhau bên cạnh nhau, bạn có thể sử dụng:

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

Đối với hình ảnh trong cột, bạn sẽ có [1] [2] [3] [4] trong nguồn, nhưng nó sẽ giống như

[1] [3]

[2] [4].


1
Bạn cũng có thể sử dụng cấu trúc được Jerred Russel đề cập tại đây: stackoverflow.com/questions/1673942/latex-table-positioning Point đang được sử dụng floatgói.
Crowley

15

Tôi đã gặp sự cố này khi cố gắng kết hợp số liệu và văn bản. Điều phù hợp với tôi là tùy chọn 'H' mà không có '!' Lựa chọn. \begin{figure}[H]
'H' cố gắng buộc hình vẽ ở chính xác nơi bạn đặt nó trong mã. Điều này yêu cầu bạn bao gồm \usepackage{float}

Các tùy chọn được giải thích ở đây


1
Vâng, floatgói chắc chắn là câu trả lời chính xác ở đây. Tôi thường than thở rằng sử dụng! biểu tượng, \begin{figure}[h!]cũng có thể được viết lại bằng TeX \pleasevì trình biên dịch vẫn chỉ tự quyết định vị trí đặt hình ảnh của bạn. Nó chỉ nháy mắt với bạn vào lúc này thay vì phớt lờ bạn. Các floatgói sẽ làm cho nó làm những gì bạn muốn chắc chắn.
ely

6

Nếu bạn muốn cả hai trên cùng một trang và cả hai đều chiếm cơ bản toàn bộ trang, thì ý tưởng tốt nhất là nói với LaTeX để đặt cả hai trên một trang của riêng mình!

\begin{figure}[p]

Có thể sẽ đi ngược lại các nguyên tắc đánh máy âm thanh (ví dụ: xấu xí) nếu có hai hình trên một trang chỉ có vài dòng văn bản ở trên hoặc dưới chúng.


Nhân tiện, lý do [!h]hoạt động là vì nó yêu cầu LaTeX ghi đè lên những hạn chế thông thường của nó về lượng không gian nên dành để nổi trên một trang có văn bản. Như đã ngụ ý ở trên, có lý do các hạn chế ở đó. Điều đó không có nghĩa là chúng có thể được nới lỏng phần nào; xem Câu hỏi thường gặp về cách làm điều đó.


1
Chính xác hơn, [p]chỉ yêu cầu trình biên dịch đặt chúng trên một trang chỉ có float. Điều đó có thể có hoặc không dẫn đến các trang riêng biệt cho hai hình, tùy thuộc vào kích thước của chúng.
fotNelton


1

hãy thử [h!] trước nhưng nếu không, bạn có thể làm theo cách xấu xí.

LateX hơi khó trong việc đặt hình ảnh với những ràng buộc như vậy vì nó quản lý việc đặt chính nó. Những gì tôi thường làm nếu tôi muốn có một con số ngay tại vị trí đó là làm một cái gì đó như |:

text in front of image here

 \newpage 
 \figure1 
 \figure2

text after images here

Tôi biết nó có thể không phải là cách chính xác để làm điều đó nhưng nó hoạt động như một cái duyên :).

//biên tập

Bạn có thể làm tương tự nếu muốn có một ít văn bản ở đầu trang nhưng sau đó chỉ cần sử dụng / clearpage. Tất nhiên bạn cũng có thể chia tỷ lệ chúng nhỏ hơn một chút để điều đó không xảy ra nữa. Có thể khoảng trắng không nhìn thấy lớn hơn một chút so với bạn nghi ngờ, tôi luôn cố gắng thu nhỏ hình ảnh của mình cho đến khi chúng xuất hiện trên cùng một trang, chỉ để biết chắc chắn rằng không có 1% trùng lặp chỉ làm cho tất cả những điều này không cần thiết .


Cảm ơn, [h!] Đã hoạt động! Tôi ủng hộ câu trả lời của bạn vì "cách xấu xí" dường như cũng là một thứ tốt để biết ngay cả khi tôi không cần nó trong trường hợp này.
Kusti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.