对齐五幅图像

对齐五幅图像

我有五张图片想要水平对齐,目前有四张对齐,第五张在下面。而且它们看起来太居中了,我想将它们稍微向页面边缘扩展一点。

如果您想让我粘贴我的代码,请告诉我,这是我第一次在这里发帖,我不确定如何包含它,我不希望第一篇文章看起来太混乱。

代码如下:

\documentclass{article}

\usepackage{graphicx}
\usepackage[font=scriptsize]{caption}
\graphicspath{ {images/} }

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\begin{document}

\begin{figure}[!tbp]

  \centering
\hfill
\begin{minipage}[b]{0.2\textwidth}
\includegraphics[width=\textwidth]{image1}
\caption*{image1}
\end{minipage}
\hfill
\begin{minipage}[b]{0.2\textwidth}
\includegraphics[width=\textwidth]{image2}
\caption*{image2}
\end{minipage}
\hfill
\begin{minipage}[b]{0.2\textwidth}
\includegraphics[width=\textwidth]{image3}
\caption*{image3}
\end{minipage}
\hfill
\begin{minipage}[b]{0.2\textwidth}
\includegraphics[width=\textwidth]{image4}
\caption*{image4}
\end{minipage}
\hfill
\begin{minipage}[b]{0.2\textwidth}
\includegraphics[width=\textwidth]{image5}
\caption*{image5}
\end{minipage}
\hfill

\end{figure}

\end{document}

答案1

minipage您应该 (a) 将五个环境的宽度从0.2\textwidth减小到 或0.19\textwidth0.18\textwidth并且 (b) 省略第一个和最后一个\hfill语句。这样,五个图形将最大限度地水平展开,并且四个图形之间的间隙中将有一些空白。

在此处输入图片描述

\documentclass[demo]{article} % Omit "demo" option in real document

\usepackage{graphicx}
\usepackage[font=scriptsize]{caption}
\graphicspath{ {images/} }
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\begin{document}

\begin{figure}[!tbp]
\begin{minipage}[b]{0.19\textwidth}
\includegraphics[width=\textwidth]{image1}
\caption*{image1}
\end{minipage}
\hfill
\begin{minipage}[b]{0.19\textwidth}
\includegraphics[width=\textwidth]{image2}
\caption*{image2}
\end{minipage}
\hfill
\begin{minipage}[b]{0.19\textwidth}
\includegraphics[width=\textwidth]{image3}
\caption*{image3}
\end{minipage}
\hfill
\begin{minipage}[b]{0.19\textwidth}
\includegraphics[width=\textwidth]{image4}
\caption*{image4}
\end{minipage}
\hfill
\begin{minipage}[b]{0.19\textwidth}
\includegraphics[width=\textwidth]{image5}
\caption*{image5}
\end{minipage}
\end{figure}

\end{document} 

附录:在后续评论中,您问道:

我的下一个问题是如何将它们更多地扩展到页面的边缘,它们看起来太居中了,以及如何在它们之间留出更多的空间。

我必须承认,我不确定你说的“它们看起来太居中”是什么意思。上面屏幕截图中显示的五幅图像没有居中——它们完全散布在可用的文本块上。

如果希望图像之间留出更多空白,则需要减小图像的宽度。这可以通过将封闭minipage环境的宽度从当前值更改0.19\textwidth0.17\textwidth(甚至更大幅度地)来实现0.15\textwidth。以下屏幕截图显示了三行,每行五幅图像,每幅图像分别占文本块宽度的 19%、17% 和 15%。

在此处输入图片描述

答案2

使用tabularx代替minipages 使代码更简洁,同时也注意它们的宽度和沿文本宽度的扩展。为了看到这一点,我在下面的 MWE 中添加了showframe仅用于显示页面布局的包(在实际使用中必须删除):

\documentclass[demo]{article} % Omit "demo" option in real document

\usepackage{graphicx}
\usepackage[font=scriptsize]{caption}

\usepackage{tabularx}
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}

\begin{document}

\begin{figure}[htb]
\begin{tabularx}{\textwidth}{@{} *{5}{X} @{}}
\includegraphics[width=\linewidth]{image1}
\caption*{image1}
    &
\includegraphics[width=\linewidth]{image2}
\caption*{image2}
    &
\includegraphics[width=\linewidth]{image3}
\caption*{image3}
    &
\includegraphics[width=\linewidth]{image4}
\caption*{image4}
    &
\includegraphics[width=\linewidth]{image5}
\caption*{image5}
\end{tabularx}
\end{figure}

\end{document} 

在此处输入图片描述

如果您想增加或减少图像之间的距离,您只需更改\tabcolsep

\setlength\tabcolsep{<desired width>}

其默认大小为 6pt。

附录: 如果你喜欢将图像扩展到比文本更宽的宽度,则可以使用包changepage及其宏adjust width。例如,如果你想将图像扩展到外部:

\begin{adjustwidth*}{0 pt}{<right margin>}
 ... images ...
\end{adjustwidth}

在下面的例子中,带有图像的表格空间扩展到marginpars 的空间:

\documentclass{article} 
\usepackage[demo]{graphicx}% Omit "demo" option in real document
\usepackage[font=scriptsize]{caption}

\usepackage{tabularx}
\usepackage[strict]{changepage} % <-- added for change of total images width
\usepackage{calc}               % <-- added for calculation of total images width
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}

\begin{document}    
\begin{figure}[htb]
    \begin{adjustwidth*}{0cm}{-\marginparwidth-\marginparsep}
\begin{tabularx}{\linewidth}{@{} *{5}{X} @{}}
\includegraphics[width=\linewidth]{image1}
\caption*{image1}
    &
\includegraphics[width=\linewidth]{image2}
\caption*{image2}
    &
\includegraphics[width=\linewidth]{image3}
\caption*{image3}
    &
\includegraphics[width=\linewidth]{image4}
\caption*{image4}
    &
\includegraphics[width=\linewidth]{image5}
\caption*{image5}
\end{tabularx}
    \end{adjustwidth*}
\end{figure}
\end{document}

在此处输入图片描述

相关内容