我想减少两个子图之间的空间,并利用该空间使这些子图变大。怎么做?我的代码如下:
\begin{figure}[htp]
\centering
\subfigure[1a]{\label{fig1:a}\includegraphics[width=1.6in]{./fig1a.eps}}\hfill
\subfigure[1b]{\label{fig1:b}\includegraphics[width=1.6in]{./fig1b.eps}}
\label{fig1}
\end{figure}
答案1
考虑下面的最小例子,它展示了子图间距的三种不同方式:
- 最大长度
- 长度相等
- 固定长度
\documentclass{article}
\usepackage{showframe,subcaption,graphicx}
\begin{document}
\begin{figure}[htp]
% Maximum length
\subcaptionbox{1a\label{fig1:a}}{\includegraphics[width=1.6in]{example-image-a}}\hfill%
\subcaptionbox{1b\label{fig1:b}}{\includegraphics[width=1.6in]{example-image-a}}%
\bigskip
% Equal length
\hspace*{\fill}%
\subcaptionbox{2a\label{fig2:a}}{\includegraphics[width=1.6in]{example-image-b}}\hfill%
\subcaptionbox{2b\label{fig2:b}}{\includegraphics[width=1.6in]{example-image-b}}%
\hspace*{\fill}%
\bigskip
% Fixed length
\centering
\subcaptionbox{3a\label{fig3:a}}{\includegraphics[width=1.6in]{example-image-c}}\hspace{1em}%
\subcaptionbox{3b\label{fig3:b}}{\includegraphics[width=1.6in]{example-image-c}}
\end{figure}
\end{document}
这showframe
包裹被加载以突出显示文本块边界。请注意使用%
来精确间距。请参阅%
行末百分号 ( ) 有什么用?了解更多信息。
最大长度:此处使用可拉伸长度
\hfill
将两个子图推到文本块的边缘。%
如果您将内容放在下一行,请注意第二个子图末尾的。长度相等
\hspace*{\fill}
:在子图的两侧放置可拉伸的长度,以平衡与文本块边界以及子图之间的长度。请注意在子图的两侧使用,而\hfill
它们之间则足够。固定长度:在子图之间使用固定距离
\hspace{<len>}
,并将子图\centering
居中并以固定距离分隔开<len>
(1em
在我的例子中)。
一些评论:
%
请注意在行尾使用。它们会在输出中添加虚假空格。虽然它可能不可见,但否则您可能无法获得准确的长度。请参阅%
行末百分号 ( ) 有什么用?了解更多信息。只有方法 3(固定长度)需要
\centering
,除非您还提供figure
标题(您在代码片段中没有提供)。此外,\label
不使用\caption
也没有帮助。它在\subcaptionbox
(从subcaption
\caption
),因为它会写一个标题,但您仍然需要一个单独的figure
环境才能\label{fig1}
产生任何东西。
答案2
使用相对宽度:
\documentclass{article}
\usepackage{showframe}% only for demo
\usepackage{subfig}
\usepackage[demo]{graphicx}% [demo] only for demo
\begin{document}
\begin{figure}[!htp]
% Maximum length
\subfloat[1a]{\label{fig1:a}\includegraphics[width=0.49\linewidth]{fig1a}}\hfill
\subfloat[1b]{\label{fig1:b}\includegraphics[width=0.49\linewidth]{fig1b}}%
\end{figure}
\end{document}
答案3
在我的例子中,该subfig
软件包引入了两个图形之间的默认间距,略小于1em
。我仍然需要它们紧密相连,因为这两个图形在主要特征上是一致的,所以我发现用负水平空间调整间距也很有帮助。
\documentclass[draft]{article}
\usepackage{subfig}
\usepackage{graphicx}
\begin{document}
\begin{figure}[htbp]
\centering
\subfloat[Subfigure caption 1.]{
\includegraphics[width=0.75\textwidth] {img1.png}
\label{fig:img1} } \hspace*{-0.9em}
\subfloat[Subfigure caption 2.]{
\includegraphics[width=0.25\textwidth] {img2.png}
\label{fig:img2} } \\
\caption{Two corresponding images.}
\label{fig:img}
\end{figure}
\end{document}
答案4
事实证明,这对我来说是最好的解决方案,因为它允许继续使用子图环境。
原始帖子:语法类似于 \centering 左右?
\documentclass{article}
\usepackage[export]{adjustbox}
\begin{document}
\begin{figure}
\begin{subfigure}{.5\textwidth}
\includegraphics[width=\linewidth, right]{img1}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\includegraphics[width=\linewidth, left]{img2}
\end{subfigure}
\end{figure}
\end{document}