LaTex的使用(一):图片的插入及排版方法_latex图片排版-程序员宅基地

技术标签: # LaTex  LaTex  

@ 图片格式

在 LaTeX 中插图,首先要生成 .eps 格式的图片,有三种方法:

  • 利用 visio 画图,另存为 pdf 格式的图片,用 InkscapeAdobe Acrobat 调整大小并保存为 eps 格式(可参考:visio画图并保存为eps格式);
  • 已有 png 或 jpg 格式的图片,在图片目录下,按住 shift+鼠标右键,选择 在此处打开命令窗口(在此处打开 PowerShell 窗口),然后在终端窗口输入:bmeps -c old.jpg new.eps,其中 -c 是让图片彩色输出,old 为原图,new 为转换的 eps 格式的图;
  • 利用 matlab 画图,可直接另存为 .eps 格式;

NOTE:如果 visio 画图保存为 pdf 出现失真,解决办法是先保存为 .jpg 图片,选择打印机600*600,然后再用 shell 将 jpg 转换为 eps(第三种方法)

1. 插入图片的基本框架

在这里插入图片描述
在导言区添加宏包:

\usepackage{
    graphicx}
\usepackage{
    epstopdf}

.eps 图片和自己的 .tex 文件放在同一目录下,向 LaTeX 插入代码:

\begin{
    figure}[htbp]
\centering
\includegraphics[scale=0.2]{
    girl.eps}
\caption{
    figure title}
\label{
    figure}
\end{
    figure}

解释一下每一句的功能:

  • Line 1\begin{figure} ~ \end{figure} 是固定用法,只要插入图片,就需要有这么一对儿;方括号 [] 内是控制参数,控制了整幅图的位置;
  • Line 2\centering 表示将图片居中显示;
  • Line 3\includegraphics{} 用于插入一张图片,花括号 {} 内就是图片的名称,方括号 [] 内同样是控制参数,但这里控制的是图片的显示大小;
  • Line 4\caption{} 是这幅图的图例信息;
  • Line 5\label{} 是这幅图的标签,在写论文时需要在正文中引用,这时候用标签直接来引就省去了一些不必要的麻烦;

图片位置控制参数:

\begin{
    figure}[htbp]
  • [h] 表示当前位置(here),也就是说图片将放在你设置的当前位置,但是如果这一页的空间不足以放下这个图片,此时图片会转到下一页;
  • [t] 顶端(top),此时优先将图片放置在页面的顶部;
  • [b] 底部(bottom)此时优先将图片放置在页面底部;
  • [p] 将图片设置为浮动状态,系统会自动排版图片的位置;
  • 一般推荐这几个参数结合使用,比如:[ht][htbp],此时这几种位置具有优先级。

图片大小控制参数:

\includegraphics[scale=0.2]{
    girl.eps}
  • [scale],表示按原图比例缩放,比如 scale=0.2 表示将原图缩小 5 倍,如果要放大只需要将 scale 设置为大于 1 即可;
  • 还可以直接设置图片宽高,比如 [height = 1cm, width = 2cm]

2. 并排插入图片

在导言区添加宏包:

\usepackage{
    subfigure}

(1)插入多张图片,显示为一横排:
在这里插入图片描述
【实现代码】

\begin{
    figure}[htbp]
\centering
\subfigure
{
    
    \begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\subfigure
{
    
 	\begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\subfigure
{
    
 	\begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\caption{
    figure title}
\end{
    figure}

注意:这里 minipage 后的 {.3\linewidth} 很重要,需要你根据自己一行图片的多少来设置,.3 等价于 0.3,表示了该张图片会占当前行的空间比例,上例有三张图片,那么可以让每张图片占 30% 的空间,这样排版出来是比较好看的。假如设置为 0.5,那么第三张图片由于该行放不下,会自动换到第二行。另外,如果要对图片进行换行,只需要在两个 subfigure 中间加一个空行即可。

(2)为每张图片添加单独的序号:上例其余代码不变,只需要在 subfigure 后加一个方括号 [] 即可。
在这里插入图片描述
【实现代码】

\subfigure[]
\subfigure[]

注意:subfigure 的序号是按顺序自动编排并显示的,也就是方括号内不需要填内容。

(3)为每张图片添加单独的描述信息:给 subfigure 后的方括号 [] 内填写描述信息即可。
在这里插入图片描述
【实现代码】

\subfigure[figure 1]
\subfigure[figure 2]

3. 多行多列排版

(1)实现多行多列放置图片:
在这里插入图片描述
【实现代码】

\begin{
    figure}[htbp]
\centering
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\subfigure{
    
\begin{
    minipage}[b]{
    .3\linewidth}
\centering
\includegraphics[scale=0.1]{
    girl.eps}
\end{
    minipage}
}
\caption{
    figure title}
\end{
    figure}

这里就是简单地叠加 subfigure,控制一行放几张图片的关键还是在于 minipage{.3\linewidth},设置为 .3 就意味着一行至多放三张,后面的图片会自动换行。

这里将每张图片作为了一个 subfigure,如果有必要为每张图添加单独的序号或图例说明,根据前面讲的给 subfigure[] 就可以。

(2)图片分组显示 [横排]:
在这里插入图片描述
【实现代码】

\begin{figure}[htbp]
\centering
\subfigure[figure 1]
{
    \begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
    \begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
    \begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
}
\subfigure[figure 2]
{
 	\begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
    \begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
    \begin{minipage}[b]{.3\linewidth}
        \centering
        \includegraphics[scale=0.1]{girl.eps}
    \end{minipage}
}
\caption{figure title}
\end{figure}

这里将每一行图片作为一个 subfigure,所以只会有两个图例说明。

(3)图片分组显示 [竖排]:
在这里插入图片描述
【实现代码】

\begin{
    figure}[htbp]
\centering
\subfigure[figure 1]
{
    
    \begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps} \\
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\subfigure[figure 2]
{
    
    \begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps} \\
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\subfigure[figure 3]
{
    
    \begin{
    minipage}[b]{
    .3\linewidth}
        \centering
        \includegraphics[scale=0.1]{
    girl.eps} \\
        \includegraphics[scale=0.1]{
    girl.eps}
    \end{
    minipage}
}
\caption{
    figure title}
\end{
    figure}

subfigure 没有换行功能,所以要实现一个 subfigure 中包含多张垂直排版的图片,可以在 minipage 中使用多个 \includegraphics,在除了最后一个之外的后面都加上换行符 \\ 即可。

从以上能看出来,

  • figure 是整幅图像,有唯一的序号及描述信息(\caption);
  • subfigure 是子图,可以有自己的序号和描述信息,figure 可包含多个 subfigure;
  • minipage 一般放在 subfigure 里,没有自己的序号和描述信息,一个 subfigure 可包含多个 minipage;

【附】minipage 在 LaTex 上的官方说明文档:minipage.html

4. 跨栏放置图片

在论文排版为双栏时,需要跨栏放置图片,只需要在 \begin{figure}{\end{figure}} 上带星号 * 即可。

【实现代码】

\begin{
    figure*}
\centering
\includegraphics[width=0.75\textwidth]{
    girl.eps}
\caption{
    figure title}
\end{
    figure*}

5. 其他细节

图标题格式

论文里可能要求图片标题为 Fig. 1.,而有的模版生成出来的是 Figure. 1.,此时只需要在 \begin{document} 后面放上 caption 的格式控制命令:

\begin{
    document}\sloppy
\captionsetup[figure]{
    labelfont={
    bf},name={
    Fig.},labelsep=period}

bf 表示加粗,name 是要显示的名字,labelsep 是名称和序号之间的分隔符,period 表示用句号分隔,space 表示用空格分隔,没有参数就默认使用冒号分隔。

对于表格也同理,修改自己需要的 name 即可:

\captionsetup[table]{labelfont={bf},name={Table},labelsep=period}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_31347869/article/details/103832190

智能推荐

什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?_成员内部类和局部内部类的区别-程序员宅基地

文章浏览阅读3.4k次,点赞8次,收藏42次。一、什么是内部类?or 内部类的概念内部类是定义在另一个类中的类;下面类TestB是类TestA的内部类。即内部类对象引用了实例化该内部对象的外围类对象。public class TestA{ class TestB {}}二、 为什么需要内部类?or 内部类有什么作用?1、 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。2、内部类可以对同一个包中的其他类隐藏起来。3、 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。三、 内部类的分类成员内部_成员内部类和局部内部类的区别

分布式系统_分布式系统运维工具-程序员宅基地

文章浏览阅读118次。分布式系统要求拆分分布式思想的实质搭配要求分布式系统要求按照某些特定的规则将项目进行拆分。如果将一个项目的所有模板功能都写到一起,当某个模块出现问题时将直接导致整个服务器出现问题。拆分按照业务拆分为不同的服务器,有效的降低系统架构的耦合性在业务拆分的基础上可按照代码层级进行拆分(view、controller、service、pojo)分布式思想的实质分布式思想的实质是为了系统的..._分布式系统运维工具

用Exce分析l数据极简入门_exce l趋势分析数据量-程序员宅基地

文章浏览阅读174次。1.数据源准备2.数据处理step1:数据表处理应用函数:①VLOOKUP函数; ② CONCATENATE函数终表:step2:数据透视表统计分析(1) 透视表汇总不同渠道用户数, 金额(2)透视表汇总不同日期购买用户数,金额(3)透视表汇总不同用户购买订单数,金额step3:讲第二步结果可视化, 比如, 柱形图(1)不同渠道用户数, 金额(2)不同日期..._exce l趋势分析数据量

宁盾堡垒机双因素认证方案_horizon宁盾双因素配置-程序员宅基地

文章浏览阅读3.3k次。堡垒机可以为企业实现服务器、网络设备、数据库、安全设备等的集中管控和安全可靠运行,帮助IT运维人员提高工作效率。通俗来说,就是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。由于堡垒机内部保存着企业所有的设备资产和权限关系,是企业内部信息安全的重要一环。但目前出现的以下问题产生了很大安全隐患:密码设置过于简单,容易被暴力破解;为方便记忆,设置统一的密码,一旦单点被破,极易引发全面危机。在单一的静态密码验证机制下,登录密码是堡垒机安全的唯一_horizon宁盾双因素配置

谷歌浏览器安装(Win、Linux、离线安装)_chrome linux debian离线安装依赖-程序员宅基地

文章浏览阅读7.7k次,点赞4次,收藏16次。Chrome作为一款挺不错的浏览器,其有着诸多的优良特性,并且支持跨平台。其支持(Windows、Linux、Mac OS X、BSD、Android),在绝大多数情况下,其的安装都很简单,但有时会由于网络原因,无法安装,所以在这里总结下Chrome的安装。Windows下的安装:在线安装:离线安装:Linux下的安装:在线安装:离线安装:..._chrome linux debian离线安装依赖

烤仔TVの尚书房 | 逃离北上广?不如押宝越南“北上广”-程序员宅基地

文章浏览阅读153次。中国发达城市榜单每天都在刷新,但无非是北上广轮流坐庄。北京拥有最顶尖的文化资源,上海是“摩登”的国际化大都市,广州是活力四射的千年商都。GDP和发展潜力是衡量城市的数字指...

随便推点

java spark的使用和配置_使用java调用spark注册进去的程序-程序员宅基地

文章浏览阅读3.3k次。前言spark在java使用比较少,多是scala的用法,我这里介绍一下我在项目中使用的代码配置详细算法的使用请点击我主页列表查看版本jar版本说明spark3.0.1scala2.12这个版本注意和spark版本对应,只是为了引jar包springboot版本2.3.2.RELEASEmaven<!-- spark --> <dependency> <gro_使用java调用spark注册进去的程序

汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用_uds协议栈 源代码-程序员宅基地

文章浏览阅读4.8k次。汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用,代码精简高效,大厂出品有量产保证。:139800617636213023darcy169_uds协议栈 源代码

AUTOSAR基础篇之OS(下)_autosar 定义了 5 种多核支持类型-程序员宅基地

文章浏览阅读4.6k次,点赞20次,收藏148次。AUTOSAR基础篇之OS(下)前言首先,请问大家几个小小的问题,你清楚:你知道多核OS在什么场景下使用吗?多核系统OS又是如何协同启动或者关闭的呢?AUTOSAR OS存在哪些功能安全等方面的要求呢?多核OS之间的启动关闭与单核相比又存在哪些异同呢?。。。。。。今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JCXrdI0k-1636287756923)(https://gite_autosar 定义了 5 种多核支持类型

VS报错无法打开自己写的头文件_vs2013打不开自己定义的头文件-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏14次。原因:自己写的头文件没有被加入到方案的包含目录中去,无法被检索到,也就无法打开。将自己写的头文件都放入header files。然后在VS界面上,右键方案名,点击属性。将自己头文件夹的目录添加进去。_vs2013打不开自己定义的头文件

【Redis】Redis基础命令集详解_redis命令-程序员宅基地

文章浏览阅读3.3w次,点赞80次,收藏342次。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍历数目。_redis命令

URP渲染管线简介-程序员宅基地

文章浏览阅读449次,点赞3次,收藏3次。URP的设计目标是在保持高性能的同时,提供更多的渲染功能和自定义选项。与普通项目相比,会多出Presets文件夹,里面包含着一些设置,包括本色,声音,法线,贴图等设置。全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,主光源和附加光源在一次Pass中可以一起着色。URP:全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,一次Pass可以计算多个光源。可编程渲染管线:渲染策略是可以供程序员定制的,可以定制的有:光照计算和光源,深度测试,摄像机光照烘焙,后期处理策略等等。_urp渲染管线