如何使用 LaTeX 在一个图中插入多幅图像?

如何使用 LaTeX 在一个图中插入多幅图像?

我想插入 16 幅图像(4 行 4 列)并仅在一个图中显示它们。

例如:

Img1  Img2  Img3  Img4

Img5  Img6  Img7  Img8

Img9  Img10  Img11  Img12

Img13  Img14  Img15  Img16 

答案1

您可以将多个\includegraphics命令放入您的figure环境中。请记住,这figure只是一个逻辑浮动容器,可以容纳创建内容的所有内容,包括 a\caption或不包含 a。即使多个\captions 也不成问题。

例如,对于图像的对齐,您可以使用tabular环境。在 中使用它figure是完全有效的,即使通常在 内使用table。如果所有图像都应具有相同的宽度和高度,只需将其中四个图像放在一行中,并以 结尾,然后\\将其放在\hfill它们之间以填充剩余空间。

\documentclass{article}

\usepackage{graphicx}

\usepackage{mwe}% just for the example content

\begin{document}

\blindtext

\begin{figure}
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}
    \\[\smallskipamount]
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}
    \\[\smallskipamount]
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}
    \\[\smallskipamount]
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}\hfill
    \includegraphics[width=.24\textwidth]{example-image}
    \caption{Some images}\label{fig:foobar}
\end{figure}

\blindtext

\end{document}

在此处输入图片描述

如果图像的高度不同,则它们在每一行的底部对齐。如果您想将它们对齐在顶部或垂直中心,最简单的方法是使用选项加载包adjustboxexport在键列表末尾添加valign=t或,例如。使用您还可以使用键在图像周围添加白色边距或轻松地在图像周围绘制框架。有关更多详细信息,请参阅包手册。valign=c\includegraphics[width=.24\textwidth,valign=c]{...}adjustboxmargin

答案2

实现此目的的一种方法是使用 tikz 的节点矩阵:

    %Preamble
    \usepackage{tikz}
    \usetikzlibrary{matrix}

    %Document
    \begin{tikzpicture
    \matrix[matrix of nodes]{
    \includegraphics{Img1} & \includegraphics{Img2} &\includegraphics{Img3} & 
    \includegraphics{Img4}\\
    \includegraphics{Img5} & \includegraphics{Img6} &\includegraphics{Img7} & 
    \includegraphics{Img8}\\
    \includegraphics{Img9} & \includegraphics{Img10} &\includegraphics{Img11} & 
    \includegraphics{Img12}\\
    \includegraphics{Img13} & \includegraphics{Img14} &\includegraphics{Img15} & 
    \includegraphics{Img16}\\
    };
    \end{tikzpicture}

为了立即使效果良好,图像需要具有相同的尺寸(可能使用 \includegraphics[width=x, keepasapectratio]{Img})。否则,您需要对矩阵本身进行更多调整。

答案3

另一种存档方法是使用 subfigure 环境。
要使用 subfigure,您需要\usepackage{subcaption}

\begin{figure}[H]
    \vspace{-2cm}
    \begin{subfigure}[h]{0.5\textwidth}
            \includegraphics[scale=1, natwidth=193px,natheight=197px]{img/prinzipbild.jpg}
        \caption{Prinzipbild \cite{Tipl}}
        \label{Prinzipbild}
    \end{subfigure}
    \begin{subfigure}[h]{0.5\textwidth}
        \vspace{2.8cm}
        \includegraphics[scale=1, natheight=115px,natwidth=263px]{img/realerSensor.jpg}
            \caption{Schnitt realer Sensor \cite{Pat}}
        \label{realSensor}
    \end{subfigure}
        \caption{Der Sensor in Theorie und Verwirklichung}
\end{figure}

现在将两个数字并排放置在一行中。

改变

0.5\textwidth

设置为 0.25\textwidth,您应该得到占用可用水平空间 1/4 的 2 个数字。再添加 2 个数字,即可得到一行中的 4 个数字。我想您可以添加更多数字,它会自动将它们放在另一行,或者您可能需要在几个地方使用 \vspace 和 \hspace……

相关内容