LaTeX 中的水平和垂直间距
速览
本节的主体内容摘自:一份不太简短的 LaTeX2e 介绍(版本 5.01),根据自己的理解为该内容补充了一些案例和代码注释。本文将主要介绍一下几个命令
1 | \hspace{length} |
水平间距
hspace 命令
语法
1 | \hspace{length} |
案例 1:单行文字中设置水平间距
1 | \documentclass{ctexart} |
关于以上代码中的 zhlipsum 中文假文宏包的使用:可参考 Latex 之 zhlipsum 中文假文宏包使用说明
stretch 命令
stretch 将产生一个可变长的长度(弹性长度),产生一个能把行内剩余所有空隙填满的空白,如果多个 \hspace{\stretch{n}}
命令位于同一行,那么它们将根据伸缩参数分配空间,非常类似于 HTML 当中的 flex 布局(分蛋糕)
语法
1 | \stretch{n} %这是一个长度,可嵌在\hspace命令中使用 |
案例 2
1 | \documentclass{ctexart} |
同样,对于垂直间距,也存在水平间距对应的命令:hspace ⇒ vspace
垂直间距
在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是 latex 预设的。比如 \parskip
,默认设置为 0pt plus 1pt(弹性长度)。
什么是 “弹性长度”:如 12pt plus 2pt minus 3pt 表示基础长度为 12pt,可以伸展到 14pt,也可以收缩到 9pt。也可只定义 plus 或者 minus 的部分,如 0pt plus 5pt
如果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用 \vspace
命令:
1 | A paragraph. |
\vspace
命令生成的垂直间距在一页的顶端或底端可能被 “吞掉”,对应地,\vspace*
命令产生不会因断页而消失的垂直间距。
更有趣的长度
setlength:给参数一个固定的值
语法
1 | \setlength{parameter}{length} |
addtolength:给参数增加一个长度
语法
1 | \addtolength{parameter}{length} |
第二个命令实际上比 \setlength
更为实用,因为可以相对于现有的设置来获得所需的结果。比如,为了将文本的宽度增加 1cm,我将如下的命令放置在文档导言区
1 | \addtolength{\hoffset}{-0.5cm} %页面左右两侧均有hoffset,两边减小的空隙等于版心增加的间隙,页面总宽度不变 |
比如使用默认的 ctexart 文档类,其默认的布局参数如下所示:
PS:按住 Ctrl 键或 Command 键 + 滚动鼠标中键可进行放大,亦可全屏观看
如何查看文档的页面布局参数
1 | \usepackage{layout} %在导言区使用Layout宏包 |
比如
1 | \documentclass{ctexart} |
输出文档布局参数如下
只要可能,就应该避免在 Latex 文档中使用绝对长度。比如说通过 \textwidth
可作为图片的宽度,使其恰好充满整个页面
下面的三个命令允许你获得一个文本串的宽度、高度以及深度
1 | \settoheight{variable}{text} %获取text的宽度,将其值传给variable变量 |
1 | \documentclass{ctexart} |
待续
参考资料
- Latex 官方文档:一份不太简短的 LaTeX2e 介绍(版本 5.01)
- ctex.org:CTEX - 在线文档 - TeX/LaTeX 常用宏包