我试图使用子图显示两个并排的图形,并附带标题,但它总是将一个图形放在另一个图形之下。
这是我的代码:
\documentclass{article}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.5\textwidth}
\centering
\includegraphics[width=0.7\linewidth]{apparatus.jpg}
\caption{A photograph of the apparatus used}
\label{fig:capparatus}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\centering
\def\svgwidth{0.7\linewidth}
\input{diagram.pdf_tex}
%\includegraphics[width=0.7\linewidth]{diagram.pdf}
\caption{A diagram of the apparatus sited inside the evacuated chamber}
\label{fig:cdiagram}
\end{subfigure}
\caption{A graphical depiction of the setup}
\label{fig:csetup}
\end{figure}
\end{document}
我努力了:
- 从 pdf_tex 更改为仅包含 pdf 文件(由 inkscape 生成)
- 将 [h] 和 [b] 添加到子图中
- 在第一和第二个子图后添加 %
- 更改子图和图像的大小
但似乎没有什么能让它们显示在同一行。有人知道怎么做吗?
这是我使用 pdf_tex 的输出:
仅使用 pdf:
答案1
要并排显示图像,最好使用 subfig 包而不是 subcaption 包。两次调用 subfloat 之间不能有空格
\documentclass{article}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{subfig}
\begin{document}
\begin{figure}
\centering
\subfloat[A photograph of the apparatus used]{\label{fig:capparatus}
\centering
\includegraphics[width=0.45\linewidth]{apparatus.jpg}
}
%no space
\hfill
\subfloat[A diagram of the apparatus sited inside the evacuated chamber]{\label{fig:cdiagram}
\centering
\includegraphics[width=0.45\linewidth]{diagram.pdf}
}
\caption{A graphical depiction of the setup}
\label{fig:csetup}
\end{figure}
\end{document}
答案2
对于锻炼:
- 正如前面提到的,问题的原因是两个
subfigure
s 之间的尾随空格代码。您只需按照@Sigur 评论中的建议将其删除即可:**
** - 无关:
hyperref
必须像极少数例外情况一样(就像cleveref
包一样)必须在序言中加载(因为它必须纠正其他包的设置才能正常工作)。- 由于两个图像的宽度相同,您可以使用键
Gin
来定义它 subfigure
如果规定更窄的宽度和相等的图像宽度,则可以获得更短的代码:
\documentclass{article}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{subcaption}
\usepackage{hyperref} % had to loaded last
\begin{document}
\begin{figure}[htb]
\centering
\setkeys{Gin}{width=\linewidth}
\begin{subfigure}{0.4\textwidth}
\includegraphics{example-image-duck}%{apparatus.jpg}
\caption{A photograph of the apparatus used}
\label{fig:capparatus}
\end{subfigure}% trailing space between `subfigure` environments had to be removed
\hfil
\begin{subfigure}{0.4\textwidth}
\includegraphics{example-image-duck}%{diagram.pdf}
\caption{A diagram of the apparatus sited inside the evacuated chamber}
\label{fig:cdiagram}
\end{subfigure}
\caption{A graphical depiction of the setup}
\label{fig:csetup}
\end{figure}
\end{document}