有没有办法移动两个 \includegraphics 图像?使用 \begin{figure} 时遇到问题

有没有办法移动两个 \includegraphics 图像?使用 \begin{figure} 时遇到问题

我正在尝试将两张图片放入我的 latex 文档中。我希望格式为

2(a)文本

图片 图片

文字 文字

当我执行以下操作时

%2a
\item Here are the histograms of M and A values. \\
\includegraphics[scale=.4]{2a hist M values.jpeg} 
\includegraphics[scale=.4]{2a hist a values.jpeg}
I would not say either of these are normally distributed. 

我得到了我想要的,但第二张图片超出了页面范围

%2a
\item Here are the histograms of M and A values. 
\begin{figure}[h!]
\includegraphics[scale=.4]{2a hist M values.jpeg} 
\includegraphics[scale=.4]{2a hist a values.jpeg}
\end{figure}
I would not say either of these are normally distributed. 

这会很好地格式化图像,但文本会继续,就好像图像被放在章节末尾一样。文本基本上在第一句之后继续,而我希望它在图像之后继续。

谁能帮我这个?

答案1

如果不需要标题,则可以figure完全省略环境。此外,可以借助minipages 对齐图形。

\documentclass{article}
\usepackage{graphicx}
\usepackage{showframe}   %% for demo of grids, remove in your file
\begin{document}
\begin{enumerate}
\item Here are the histograms of M and A values.\par
\begin{minipage}{.45\linewidth}
\includegraphics[width=\linewidth]{example-image-a}
\end{minipage}%
\hfill
\begin{minipage}{.45\linewidth}
\includegraphics[width=\linewidth]{example-image-b}
\end{minipage}
\par
I would not say either of these are normally distributed. 
\end{enumerate}
\end{document}

在此处输入图片描述

如果您想要字幕,您可以使用提供宏的caption或包。capt-of\captionof

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}     %% provides \captionof command. capt-of package does this too.
\usepackage{showframe}   %% for demo of grids, remove in your file
\begin{document}
\begin{enumerate}
\item Here are the histograms of M and A values.\par
\begin{minipage}{.45\linewidth}
\includegraphics[width=\linewidth]{example-image-a}
\captionof{figure}{some figure}
\end{minipage}%
\hfill
\begin{minipage}{.45\linewidth}
\includegraphics[width=\linewidth]{example-image-b}
\captionof{figure}{Some other figure}
\end{minipage}
\par
I would not say either of these are normally distributed.
\end{enumerate}
\end{document}

在此处输入图片描述

答案2

为了更详细地解释一下发生了什么,LaTeX 具有用于确定最佳浮动位置的内部参数。无需任何额外的软件包,浮动选项包括:

  • t- 页面顶部
  • b- 页面底部
  • p- 浮动内容单独页面
  • h- 如果可能的话,请点击此处
  • !- 这将覆盖 LaTeX 的内部参数

因此,可以这样写\begin{figure}[htbp],让图形浮动位于以下任意位置(IE、此处、页面顶部、页面底部或者单独的、专用于浮动元素的页面)。

现在,\begin{figure}[h]应该只将图形放在此处。但是,由于 LaTeX 内部确定了良好的浮动位置,因此只有当这里是浮动的好位置时,它才会将其放在此处。使用!应该覆盖这一点。也就是说,\begin{figure}[h!]应该覆盖 LaTeX 的内部参数,并明确将浮动放在此处。(在您的例子中,它似乎没有覆盖这一点;我们将在下面回到这一点。首先,介绍一下float。)

现在,还有另一种选择,Hfloat包装中,根据LaTeX 维基百科,是“有点相当于h!”。

根据float文档(第 3-4 页),H无论如何,位置说明符始终会将浮动放置在此处。从这个意义上讲,它在某种程度上等同于h!

但是,以下代码仍然会产生您不想要的结果:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{enumerate}
\item Here are the histograms of M and A values.
\begin{figure}[h!]
\includegraphics[width=.45\linewidth]{example-image-a}
\includegraphics[width=.45\linewidth]{example-image-b}
\end{figure}
I would not say either of these are normally distributed. 
\end{enumerate}
\end{document}

在此处输入图片描述

另一方面,使用H位置说明符会产生所需的结果:

\documentclass{article}
\usepackage{graphicx}
\usepackage{float}
\begin{document}
\begin{enumerate}
\item Here are the histograms of M and A values.
\begin{figure}[H]
\includegraphics[width=.45\linewidth]{example-image-a}
\includegraphics[width=.45\linewidth]{example-image-b}
\end{figure}
I would not say either of these are normally distributed. 
\end{enumerate}
\end{document}

在此处输入图片描述

我认为,这个看似难题的答案在于浮点数在内部是如何处理的。在前一种情况下,h!使用 where 时,LaTeX 仍将该事物视为浮点数。另一方面,当使用Hfromfloat时,我怀疑该事物被放在 中minipage,就像 @HarishKumar 的回答一样。(虽然文档float没有明确说明发生了什么,但这种怀疑的来源来自 @DavidCarlisle 的回答,他说“H使得环境本质上根本不是浮点数,它或多或少与使用相同minipage”。)

因此,在前一种情况下,该事物仍被视为浮点数,但它是不是在后一种情况下,实际的浮点数。在后一种情况下,由于“这是 M 和 A 值的直方图”和“我不认为它们都是正态分布的”之间发生了minipage(或minipage类似的事情),因此强制发生段落中断。

另一方面,由于在前一种情况下,该对象只是一个浮点数,因此不会发生段落中断。而且,由于原始文件中没有换行符.tex,因此“这是 M 和 A 值的直方图”和“我不认为这两个值是正态分布的”被视为同一段落的一部分。

请注意,您可以使用以下代码实现所需的结果:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{enumerate}
\item Here are the histograms of M and A values.

\begin{figure}[h!]
\includegraphics[width=.45\linewidth]{example-image-a}
\includegraphics[width=.45\linewidth]{example-image-b}
\end{figure}

I would not say either of these are normally distributed. 
\end{enumerate}
\end{document}

或者,正如@HarishKumar 在他的回答中所做的那样,您可以使用 TeX 原语\par,它相当于原始.tex文件中的一个空白行。

总而言之,您在 OP 中指出的不良结果是由于与h!不同, 导致该事物仍然被 LaTeX 视为合法浮点数,而不是,并且它还由于在您的 OP 中的代码中没有发生段落中断。Hfloatminipage

H您可以通过使用来实现所需的结果float,使用实际minipage环境(如@HarishKumar 在他的回答中所做的那样),或者继续使用h!但实际上使用换行符或将两行文本分成单独的段落\par

相关内容