LaTeX | 为学术论文排版而生【浮动体篇】

今天,迎来$LaTeX$系列的第四篇【浮动体篇】。

与主流的编程语言(如JavaPythonC++等相比),$LaTeX$并没有那么多光环,在每年的编程语言排行版上也是不可能见到它的踪影的,毕竟$LaTeX$只是一门为排版而生的小众语言,因此也不会成为互联网时代大家追逐高薪的编程利器。

从我学习$LaTeX$以来,虽然接触还不深,但却明显感觉到她的小而精。当你拿用$LaTeX$写学位论文时,你会被她的高效和专业而惊叹;如果你是HR,当你看到一份用$LaTeX$写的简历时,你会被其漂亮的排版所吸引,而多看几眼;当你坐在电脑前,敲着代码,便能感觉到那种所想即所得的美妙……

学习$LaTeX$从来就不带有功利的因素,而是纯粹被她的专业和精致所吸引,作为一个业余的兴趣就很好。虽然相比Word,$LaTeX$入门很难,想要做到精通,花个几年时间都不为过。可是,如果真的有兴趣,慢慢享受这种逐步弄懂她的过程,又有啥不好呢?

存在的必然是合理的。反过来想想,既然$LaTeX$在排版方面有这么大的优势,那么除了在学术界受欢迎,在其他行业是否能够发挥她的价值呢?

经过我的初步了解,在国外,有不少专注于提供$LaTeX$排版服务的小型公司,在国内,一家叫做LaTeX Studio(LaTeX工作室)的公司做的挺不错,公司位于杭州萧山。

而我最近因为无意发现了个有关$LaTeX$的私活,就接了下来。这个兼职是教育公司提供的,具体就是用$LaTeX$排版题库,特别是带有很多数学公式的题库(比如高中奥赛题库)。所以可见,$LaTeX$以其专业的排版水准在教育行业也能发挥重要作用。

做这个兼职的过程中,除了得到丰富的报酬,更学到了很多知识,使得我对$LaTeX$的兴趣更加浓厚了,将来会分配更多的业余时间来学习。

废话不多说,进入今天的主题【浮动体篇】。

LaTeX【浮动体篇】

这里的浮动体主要是针对图表而言,比如论文中的插图和表格。图表往往能更加直观地表达信息,在学术论文中最为常见,因此图表的排版显得非常重要。

不过,单单一个图片或表格还算不上浮动体,得放在一个浮动环境中才行。简单地说,就像Word中的图表,想要排版得当得调整嵌入方式(环绕四周、浮于文字上方 之类的),这个过程中图表可能会着文字移动。不过相比Word中经常出现图表牵一发而动全身的令人抓狂的情况相比,$LaTeX$中的图表就非常老实了,你可以让它在附近位置浮动,也可以让它固定在某个位置,这也是$LaTeX$在图表排版方面的优势。

表格

$LaTeX$中可以用tabulararray环境来录入表格,其中tabular支持文本和数学模式,array仅仅支持数学模式。除了使用模式有所区别,两者在使用方式上没有明显区别。

tabulararray环境的一般格式为:

1
2
3
4
5
6
7
8
\begin{tabular}[垂直对齐]{列格式说明}
表项 & 表项 & ... & 表项  \\
......
\end{tabular}
\begin{array}[垂直对齐]{列格式说明}
表项 & 表项 & ... & 表项  \\ 
......
\end{array}

其中,表格每一行后面用\\换行,不同列之间用&分开。垂直对齐可以理解为表格在文档中的对齐方式,一般用的较少。列格式说明指列内容的对齐方式,有左、中、右,分别用lcr表示。下面代码包含了文本和数学公式,可以加深理解。

1
2
3
4
 \begin{tabular}{lcr}
 $x^{2}$  & 文本 & $y^{2}$  \\
 本列公式 & 本列文本 & 本列公式
 \end{tabular}

编译后效果如:

编译效果

再看下面的代码:

1
2
3
4
5
6
\begin{tabular}{|c|c|c|}
\hline
1 & 0 & 0 \\ \hline
0 & 1 & 0 \\ \hline
0 & 0 & 1 \\ \hline
\end{tabular}

编译效果 上述代码中,列格式说明中的|表示画一条竖线,即列表格线。\hline表示画一条行表格线。

利用下面代码看看垂直对齐的用法。

1
2
3
4
5
6
7
\begin{tabular}{|c|c|c|}
\hline
1 & 0 & 0  \\ \hline
0 & 1 & 0  \\ \hline
0 & 0 & 1  \\ \hline
\end{tabular}
表格外的文字与表格底部对齐

编译效果

以上就是$LaTeX$中表格的最基本用法,更多格式调整如改变列宽、合并单元格等大家可以上网查阅。

图片

$LaTeX$中,插入功能由宏包graphicx中的\includegraphics命令提供。不同的编译引擎支持不同的插图格式,一般来说采用xelatex引擎,支持EPS、PDF、PNG、JPEG、BMP等格式。

\includegraphics命令的语法格式为\includegrapgics[选项]{文件名}。其中选项包含width、height、scale三种,分别表示图形在文档中显示的宽度、高度和缩放比例。此外,为了方便图片的管理,可以将需要插入的图片放在工作目录中的一个文件夹中,如figure,只需要在导言区添加\graphicspath即可。

更多用法这里不多说。

LaTeX 浮动体

介绍

图片或表格通常都占有较大的一块,直接放在文档中常常会造成分页的困难,即在文档中常常会造成分页的困难,即一页放不下,放在后一页又会造成很大的留白,很不美观。除了图表,其他类型的大块内容也有可能出现类似的问题,如程序算法、大型公式等。

LaTeX中的浮动体便可以解决这个问题。浮动体是一个活动的盒子,它可以把内容放在距离浮动体代码前后不远的地方,通常就是浮动体代码所在地,但也可以放在页面开头、末尾或是单独的一页中。

使用浮动体,就可以在不太费力仔细调整内容的情况下,避免大块图表把整齐的页面弄糟。

此外,浮动体还可以给图表添加标题,这在论文写作中非常重要。

浮动体

$LaTeX$中两种浮动体环境:figuretable,通常分别用于图和表的排版。figure环境的语法格式如下:

1
2
3
\begin{figure}[允许位置]
内容
\end{figure}

table环境与之类似。可选参数允许位置用来设定浮动环境可以出现在页面中的位置,即h、t、b、p四个选项的组合。

  • h 此处(here),浮动体的内容被放在代码所在的上下文位置。
  • t 页顶(top),浮动体被放在一页的顶部,这可以是代码所在环境的页面或之后的页面,注意当页排版的浮动体可能出现在实际代码之前。
  • b 页底(bottom),浮动体被放在一页的底部。
  • p 独立一页(page),一个或多个浮动体被放在单独的页面中,这个页面被称为浮动页。

浮动体最常见的应用就是直接在table环境中放置tabular,或者是在figure环境中放置\includegraphics命令插入的图形。经常还在前面使用\centering命令让图表居中放置。看下面代码:

1
2
3
4
5
6
7
8
9
10
11
12
\begin{figure}[htbp]
\centering
\includegraphics{figure_name.jpg}
\end{figure}
  \begin{table}
  \centering
  \begin{tabular}{c|c}
  \hline
  a & b  \\ \hline
  c & d  \\ \hline
  \end{tabular}
\end{table}

需要再次说明的是,无论是figure还是table环境,浮动环境的名称和内容并没有必然联系,其内容可以任意放置,如程序算法(后续会介绍)。

浮动体的另一个重要动能是使用\caption命令加标题,其语法格式如下为\caption{标题}。看下面代码。

1
2
3
4
5
\begin{figure}[htbp]
\centering
\includegraphics{figure_name.jpg}
\caption{这是图片的标题}
\end{figure}

关于浮动体,提出最多的一个问题是:怎么样让图表不要乱跑?习惯于所见即所得环境下拖拽鼠标放置图形的人尤其不适应浮动环境的“奇怪”效果。浮动图表的目的是用浮动的位置避免糟糕的分页,但如果不在乎因为图表太大而产生的分页,而要有确定的位置,那么这其实是要求不使用“浮动”环境。

$LaTeX$为此提供了float宏包来解决这个问题,即用一个新的H位置选项来产生没有浮动效果的图表环境,它的使用非常简单,和一般的浮动环境没有什么区别。看下面代码。

1
2
3
4
5
6
\usepackage{float}
\begin{figure}[H]
\centering
\includegraphics{figure_name.jpg}
\caption{这是图片的标题}
\end{figure}

【浮动体篇】就介绍到这里,更多详细的用法大家可上网查阅,比如简书上很多网友分享的教程。

参考文献

  1. 刘海洋 《LaTeX入门》,电子工业出版社。
ISEEX wechat
艾新可思公众号,我们的小窝~
0%