Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

插入图片

FengYouzheng edited this page Apr 26, 2017 · 18 revisions

由于规范中规定了图片的图题格式,所以不能在模板中直接使用标准的LaTeX插图命令。模板包装了几个插图命令,以保证插图的标题符合规范。 下文提及的图片编辑转换软件为免费、开源的自由软件 Inkscape。

另外,有同学编写了一个用于自动裁剪PDF图表的白边的工具pdf-cut-white,可以轻松地使用。

准备图片

图片大小

0,得到任何图片后,请先图片去白边
1,左键图片,按住ctrl,拖动右上角调整图片大小,
2,重复0和1,直至画布的宽为426pt(149mm),高度不超过672pt(235mm),这也是能插入的图片的最大尺寸。这样大小的画布和论文页面版心的大小基本相同。在这张画布上得到的绘图最终以100%大小插入到论文中。
研究生院的规范中规定了图表中的文字字体应为宋体五号字,所以将图片以原始大小插入论文十分重要。只有这样才能保证图片中的文字大小不变。因而在制作图片时只需设置好字体字号即可。
3,编辑图片中的文字,而后导出成pdf。

PS,100%大小插入时,请使用5号字或者10.5pt。子图时的情形,还在尝试。

图片格式

图片的格式可以是png,pdf,jpg,jpeg,eps。除pdf和eps格式以外的3种格式均为位图格式。而pdf格式既可以是位图也可以是矢量图,也是在本模板中使用矢量图的推荐方法(PSTricks基本不支持pdflatex编译);如果使用eps矢量图,需要调用epstopdf宏包,比如在模板主文件的导言区加入\usepackage{epstopdf}语句即可,epstopdf宏包会自动将你插入的eps文件转换为pdf文件。

推荐将所有图片都转换成pdf格式再插入到论文中。对于其他格式的矢量图,推荐使用Inkscape软件进行格式转换,它几乎支持所有矢量图格式。这是一个开源的全平台的矢量图绘制工具,相当于Adobe Illustrator。

图片去白边

由于设置了画布大小或者图片的输出工具以A4大小输出了矢量图,经常有些矢量图存在比较大的四周空白。Inkscape可以很方便的去除图片周围的空白。

如果操作后图片四周依然有白边,请仔细检查图片是否存在一个白色的图形作为其背景。在Inkscape中一般可以单独选择到它然后删除掉。如果不能单独选择到,请尝试“对象”菜单中的“解除群组”。作为矢量图,背景一般不会和其他图形混在一起。

具体方法如下:
去白边步骤1
去白边步骤2
去白边步骤3
去白边步骤4

存放图片

模板定义了插图的根目录pics。制作好的图片需要存放到pics目录中,并尽量不要使其中出现相同文件名的文件(例如apple.jpg和apple.pdf)。如果图片特别多,可以在pics目录中创建子目录,分章保存。

文件名可以由英文、数字和下划线构成。

了解什么是浮动体

LaTeX经验较少的同学可能没有“浮动体”的概念,这是一个MS Word中没有的概念。LaTeX标准插图方法中一般要将插图命令写在一个figure环境中。figure环境就是一个浮动体,它会自动决定图片出现的位置。我们可以给它提出一些建议,让它将图片优先放在哪。本模板包装了figure环境,后面要讲的插图命令的参数和figure环境基本一致。所以看下面的插图命令之前,应该先对原本的figure环境有所了解。

建议阅读《LaTeX2e完全学习手册》的插图部分,或者至少阅读LaTeX插图指南的第16章

插入单图

插入单幅图片的命令是:
\pic[建议位置]{图标题}{参数}{文件名} 举个例子:
\pic[htbp]{菊花}{width=0.6\textwidth}{Chrysanthemum}

“建议位置”这个参数是用“[]”包围的,代表它是一个可选参数。其含义和figure环境一致,详见LaTeX插图指南-16.2 图形的放置的介绍。此外,LaTeX插图指南-20.1 float 宏包中的 [H] 位置选项中介绍的H选项也可以直接使用,模板中已经内置了\usepackage{float}语句,无需额外添加这行代码。

“参数”这个大括号可以空置但不能省略,例如\pic[htbp]{菊花}{}{Chrysanthemum},这样会将图片以原始大小插入,也是推荐的插入方式(理由见前文图片大小一节)。这个“参数”会传递给\pic命令内部包装的\includegraphics命令的选项中。因此,可用的参数和\includegraphics命令的可用选项一致,详见LaTeX插图指南-7.1 includegraphics 命令

“文件名”可以不包含文件的扩展名,因此不建议在pics目录中放置相同文件名而扩展名不同的文件。“文件名”同时还在\pic命令内部传递给了\label{}命令,也就是自动定义了和文件名相同的标签,在后文可以直接用\ref{文件名}引用这张图片的序号。关于\label与`ref`等命令的用法请自行阅读LaTeX书籍。

这部分内容还可以查看example工作目录的编译效果中的“插入图片”一节的内容,同时还可以在其chapters目录中找到tuition.tex源文件,查看这部分示例的源代码是如何编写的。其中具有\ref的使用示例。

插入子图组

多个图片组成一个整体的浮动体,共用同一个标题,并各自有单独的子标题称为“子图组”,在研究生院规范中称为“有分图时”。

插入子图组的命令是:

\begin{pics}[建议位置]{整体标题}{整体引用标签}
\addsubpic{子图标题}{参数}{文件名}
...
\addsubpic{子图标题}{参数}{文件名}
\end{pics}

这组的结构就是在pics环境中插入多个\addsubpic命令。pics环境的参数中“建议位置”和\pic命令中的一致。“整体引用标签”就是当用\ref命令引用子图组整体的图号时要用的标签。\addsubpic命令的参数和\pic命令中的一致。子图环境的使用例子在模板带的两个范例论文中都可以找到。

需要注意的是,当一行图片排满后可以换行到下一行。注意图片间有间距,所以两张0.5\textwidth宽的图片不能排在一行。

另外有很多同学对子图标题的排版方式和位置有所质疑。这个排版要求是2013年7月修订的规范新提出的,请核查新的规范手册。

子图组跨页

v1.1.0新增功能

研究生院规范中有规定“有分图时,分图过多不能在一页内编排时,可转到下页,但总图题只编排在下页。”针对这项规定,模板给出的解决方案是将原本一个整体的子图组浮动体拆成两个或更多个浮动体,将第一个浮动体的建议位置设置为b,也就是页面底部,将其余浮动体的建议位置设置为t,也就是页面顶部,可以达到需要的跨页效果。

模板只需要用户手动将pics环境的建议位置设置成b,其余工作交由\subpicnewpage命令完成。在需要换页的位置插入该命令即可完成分隔浮动体的操作。

\begin{pics}[b]{整体标题}{整体引用标签}
\addsubpic{子图标题}{参数}{文件名}
...
\subpicnewpage
...
\addsubpic{子图标题}{参数}{文件名}
\end{pics}

如果一页图片太多,甚至占满了一整页,LaTeX可能迟迟不会将它排版,直到一章结束时才排版这些图片。你可以通过在pics环境后面加上\clearpage命令强制在此处必须排版完所有浮动体再排版后面的内容。结果应该是浮动体前方留有大量空白,LaTeX就是因为这些空白才决定将后面的文字提前,暂时不排版那些图片的。如果不希望图片浮动到某些文字或章节后面,可以用 \FloatBarrier 命令. 浮动体的浮动范围不可以跨越该命令. 在需要的大章节之间加上这个就可以,如:

\FloatBarrier
\section{}

所以,调整的手段一是更改分隔浮动体的位置,二是增减前后文字的数量。