我正在尝试添加一个图像,并使其居中,防止从下一页换行。以下代码可以实现这一点:
\begin{minipage}{\textwidth}
\begin{center}
Caption for image
\includegraphics[scale=0.5]{myimage.png}
\end{center}
\end{minipage}
我希望这张图片能放在图中,并带有标题。以下内容无法编译:
\begin{minipage}{\textwidth}
\begin{figure}
\includegraphics[scale=0.5]{myimage.png}
\caption{Caption for image}
\label{fig:sample_figure}
\end{figure}
\end{minipage}
我收到错误:
! LaTeX Error: Not in outer par mode.
! Undefined control sequence.
我怎样才能解决这个问题?
答案1
Figure
是一个浮动的环境minipage
,不幸的是,不是。因此,如果你将浮动对象放入非浮动对象中minipage
,则会出现错误。但反过来也是可行的——你可以将对象放入环境minipage
中figure
:
\begin{figure}
\centering
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[width=3.0in]{example-image-a}
\caption{Caption for image}
\label{fig:sample_figure}
\end{minipage}
\end{figure}
另一种方法是完全避免使用figure
。这可以借助caption
包来完成(使用其captionof
功能,以便您可以为图形添加标题):
.....in preamble
\usepackage{caption}
......in document body
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[width=3.0in]{example-image-a}
\captionof{figure}{Caption for image}
\label{fig:sample_figure}
\end{minipage}
总 mwe 为:
\documentclass{article}
\usepackage{mwe} % new package from Martin scharrer
\usepackage{caption}
\begin{document}
\begin{figure}
\centering
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[width=3.0in]{example-image-a}
\caption{Caption for image}
\label{fig:sample_figure}
\end{minipage}
\end{figure}
\noindent
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[width=3.0in]{example-image-a}
\captionof{figure}{Caption for image}
\label{fig:sample_figure}
\end{minipage}
\end{document}
其结果将是:
答案2
如果您使用“float”包,则可以将图形放在小页面中。下面将并排放置两个图形。如果您为它们添加标题,则标题将并排放置。
\usepackage{float}
...
\begin{minipage}{\linewidth}
\centering
\begin{minipage}{0.45\linewidth}
\begin{figure}[H]
\includegraphics[width=\linewidth]{figures/dummy}
\caption{This is the first figure}
\end{figure}
\end{minipage}
\hspace{0.05\linewidth}
\begin{minipage}{0.45\linewidth}
\begin{figure}[H]
\includegraphics[width=\linewidth]{figures/dummy}
\caption{This is the second figure}
\end{figure}
\end{minipage}
\end{minipage}
答案3
您可以尝试对两个并排的数字进行以下操作:
\begin{figure}[htb]
\begin{minipage}[t]{.45\textwidth}
\centering
\includegraphics[width=\textwidth]{example-image-a}
\subcaption{Image 1.}\label{fig:1}
\end{minipage}
\hfill
\begin{minipage}[t]{.45\textwidth}
\centering
\includegraphics[width=\textwidth]{example-image-b}
\subcaption{Image 2.}\label{fig:2}
\end{minipage}
\label{fig:1-2}
\caption{Title.}
\end{figure}
或者这样,并排显示 3 个数字:
\begin{figure}[htb]
\begin{minipage}[t]{.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/1.png}
\subcaption{Image 1.}\label{fig:1}
\end{minipage}
\hfill
\begin{minipage}[t]{.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/2.png}
\subcaption{Image 2.}\label{fig:2}
\end{minipage}
\hfill
\begin{minipage}[t]{.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/rtk3.png}
\subcaption{Image 3.}\label{fig:3}
\end{minipage}
\label{fig:1-2-3}
\caption{Title.}
\end{figure}
一旦子标题弄乱底部对齐,所有小页面都会按图形顶部对齐。