LaTeX(2):插入图片

Riguz Lee 发布于 2020-02-08

在LaTeX中插入图片有些类似于Markdown中的方式。

Figure和图片

可以使用Figure的方式插入图片:

\usepackage{graphicx} % 需要导入graphicx包

\begin{figure}[h!]
    \includegraphics[width=\linewidth]{src/1.jpg}
    \caption{冠状病毒的示意图}
    \label{fig:virus}
\end{figure}

这样生成的效果如图所示:

值得注意的是,在LaTeX中,图片和表格等是浮动元素,Tex会自动帮你找个地方放着。据说这样做的原因是因为它希望你专注在写作内容上面,等你完成了内容再回头来调整格式。因为没有这种经验,所以不确定这样是否是最好的方式,不过我们可能更习惯直接放在我们想放的位置上,所以这里是必须的:

begin{figure}[h]

这里后面有一个h!,有这样一些可用的参数:

  • \(h\)ere: 就放在这里
  • \(t\)op: 放在页面顶部
  • \(b\)ottom: 页面底部
  • \(p\)age: 放在单独的页面
  • \(!\)(Override):强制放在指定的位置

虽然我们已经用了h!来强制将图片放在页面的位置,但是很有可能页面余下的空间并不足以放入这张图片,这个时候,这个选项会失效。如果依然确定要将图片放入到下面,可以引入float包,使用H选项:

\usepackage{float}

\begin{figure}[H]

就像下面这样:

多张图片排版

如果要将多张图片排版到一起,可以有多种方法。

使用subfig

subfig是一个可以支持嵌套Figure或者表格的包,这个包是subfigure包的替代品,后者已经被弃用了。

\usepackage{subfig}

\begin{figure}
    \centering
    \subfloat[信息锅]{
        \includegraphics[width=0.4\linewidth, height=80pt]{src/3.jpg}
    }
    \subfloat[硬气功]{
        \includegraphics[width=0.4\linewidth, height=80pt]{src/4.jpg}
    }
    \caption{两种气功流派}
    \label{fig:qg}
\end{figure}

这样排版出来的效果如下:

使用subfloat

subfloat是另一个包,用法如下:

\begin{subfigures}
\begin{figure}
    \centering
    \fbox{
        \includegraphics[width=0.4\linewidth, height=80pt]{src/3.jpg}
    }
    \caption{信息锅}
\end{figure}
\begin{figure}
    \centering
    \fbox{
        \includegraphics[width=0.4\linewidth, height=80pt]{src/4.jpg}
    }
    \caption{硬气功}
\end{figure}
\end{subfigures}

这样出来的效果是这样:

两张图片不在一行,没有找到怎么把他们放到一起的方法,也不知道是否支持。

使用subcaption

另有使用captionsubcaption包结合的方式。subcaption包更加新一些,可能更适合选用。

\usepackage{caption}
\usepackage{subcaption} 

\begin{figure}
\centering
\subcaptionbox{信息锅}{
    \includegraphics[width=0.40\textwidth, height=80pt]{src/3.jpg}
}
\hfill
\subcaptionbox{硬气功}{
    \includegraphics[width=0.40\textwidth, height=80pt]{src/4.jpg}
}
\caption{两种气功流派}
\end{figure}

注意subcaption包貌似和前面两种方法中的某一种可能不兼容。效果如下:

如果去掉\hfill之后,效果基本上和第一种差不多了。

参考: