image - 乳胶:水平绘图时 mbox() 上方的文本?
问题描述
\begin{figure}[H]
\centering
\mbox{\includegraphics[scale = 0.3]{images/cor.pdf}}
\hspace{1px}
\mbox{\includegraphics[scale = 0.3]{images/co0re.pdf}}
\hspace{1px}
\mbox{\includegraphics[scale = 0.3] {images/cooco.pdf}}
\caption{Blah}
\label{materialflowChart}
\end{figure}
我使用上面的方法并排显示 3 张图像,水平。
它有效,一切都很好。但我想在每个子图像上方(或下方)添加一个小文本。不是标准的标题,而是像“A”、“B”、“C”这样的词。
我怎样才能做到这一点?
解决方案
除了使用已经呈现的子图之外,还有很多方法可以做到这一点:
1/ 使用小页面
\documentclass{article}
\usepackage{graphicx}
\usepackage{multicol}
\begin{document}
\begin{figure}
\centering
\begin{minipage}{0.2\linewidth}
\centering A\\ \includegraphics[width=\textwidth]{example-image-a}
\end{minipage}%
\hspace{1px}%
\begin{minipage}{0.2\linewidth}
\centering B\\ \includegraphics[width=\textwidth]{example-image-a}
\end{minipage}%
\hspace{1px}%
\begin{minipage}{0.2\linewidth}
\centering C\\ \includegraphics[width=\textwidth]{example-image-a}
\end{minipage}%
\caption{Blah}
\label{materialflowChart}
\end{figure}
请注意,我删除了无用的 \mbox{},因为 \includegraphics 已经返回了一个 TeX 框。
同样,如果要精细控制图像间距并真正获得 1px 的图像间距,则必须在行尾添加 '%' 以吞噬空间并避免被 TeX 格式化。在您的原始代码中也是如此。
2/ 使用表格
\begin{figure}
\centering
\begin{tabular}{*{3}{@{\hspace{1px}}c}}
A&B&C\\
\includegraphics[width=0.2\linewidth]{example-image-a}&
\includegraphics[width=0.2\linewidth]{example-image-a}&
\includegraphics[width=0.2\linewidth]{example-image-a}
\end{tabular}
\caption{Blah}
\label{materialflowChart}
\end{figure}
使用@{\hspace{1px}} 控制列间距。@ 命令在列之前插入并删除正常的列间距。
3/ 在 multicol 包中使用多列
您可以在 minipage 中定义一个包含多个列的框
\begin{figure}
\centering
\begin{minipage}{0.7\linewidth}
\setlength\columnsep{1px}
\begin{multicols}{3}
\centering A\\ \includegraphics[width=\linewidth]{example-image-a}\\
\columnbreak
\centering B\\ \includegraphics[width=\linewidth]{example-image-a}\\
\columnbreak
\centering C\\ \includegraphics[width=\linewidth]{example-image-a}
\end{multicols}
\end{minipage}
\caption{Blah}
\label{materialflowChart}
\end{figure}
\columnbreak 开始一个新列。\columnsep 是控制列间距的长度。使用此参数计算列宽,即 minipage 的列数和宽度。