我有一个带有 3 个子图的图。
我希望它们之间有空白(这就是我将宽度设置为的原因0.25\textwidth
),但我希望它们水平分布,以便左图像的左边缘与左侧的文本边框对齐,右侧也是如此。
这是我的代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{lipsum}
\begin{document}
\lipsum[1-2]
\begin{figure}[h] % example dataset
\centering
\subfigure[Gray overlay.]{
\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hspace{\fill}
\subfigure[Green overlay.]{
\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hspace{\fill}
\subfigure[Red overlay.]{
\includegraphics[width=0.25\textwidth]
{example-image-a}}
\end{figure}
\lipsum[1]
\end{document}
结果如下:
您可以看到图像和文本边框之间有空白。我以为使用hfill
可以消除它们。
我究竟做错了什么?
答案1
您需要删除不需要的空格。试试这个:
\documentclass{article}
\usepackage[utf8]{inputenc} % This is the default in recent LaTeX distros
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{lipsum}
\usepackage{showframe} % Shows the frame, only for this example
\begin{document}
\lipsum[1-2]
\begin{figure}[h] % example dataset
\centering% <-- superfluous in this example as commented by Zarko
\subfigure[Gray overlay.]{% <-- No space here
\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hfill
\subfigure[Green overlay.]{% <-- No space here
\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hfill
\subfigure[Red overlay.]{% <-- No space here
\includegraphics[width=0.25\textwidth]
{example-image-a}}% <-- No space here
\end{figure}
\lipsum[1]
\end{document}
答案2
大部分都是题外话(虚假空间的来源已经通过接受的答案解决了)...
- 你使用
subfigure
包,它已过时并被其后继者替换subfig
,它将命令替换\subfigure
为subfloat
, - 更好的是使用
subcaption
1.3 版或最新版本也支持\subfloat
语法 - 命令
\hspace{\fill}
可以简单地写成\hfill
考虑到上述情况,您的 MWE 可以是:
\documentclass{article}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[ht] % example dataset
\subfloat[Gray overlay.]{\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hfill
\subfloat[Green overlay.]{\includegraphics[width=0.25\textwidth]
{example-image-a}}
\hfill
\subfloat[Red overlay.]{\includegraphics[width=0.25\textwidth]
{example-image-a}}
\end{figure}
\lipsum[2]
\end{document}
(红线表示文本块边框)