LaTeX数字与单位的完美渲染方案: siunitx 使用指南

国际单位制(SI, Système International d’Unités)是现代科学和工程领域中最广泛使用的计量单位体系。它为全球科学家、工程师和研究人员提供了一个统一的语言来描述物理量。

siunitx 是一个强大的 LaTeX 包,专门设计用于处理数值和单位的排版。它提供了一系列命令和选项,可以让我们轻松地排版各种数值和单位,包括科学计数法、数值范围、测量不确定性等。

利用 siunitx,我们可以轻松的排版出符合国际单位制的标准的数值和单位。例如,LaTeX 本身并不提供 符号的排版命令,想要排版摄氏度单位时,我们通常需要手动输入 ^{\circ}\mathrm{C}来间接实现。但当我们使用 siunitx 包时, 可以直接使用 \degreeCelsius 命令。

本文将介绍 siunitx 的基本用法,包括数值和单位的排版、数值范围的排版、测量不确定性的排版,以及一些其他有用的功能。

注意: siunitx API 已经更新到了 v3 版本,本文将只介绍 v3 版本的用法。

1. 命令列表

siunitx 提供了以下几个主要命令:

基础命令

命令用途
\unit[⟨options⟩]{⟨unit⟩}单位排版
\num[⟨options⟩]{⟨number⟩}数字排版
\complexnum[⟨options⟩]{⟨number⟩}复数排版
\qty[⟨options⟩]{⟨number⟩}{⟨unit⟩}数值和单位同时排版
\ang[⟨options⟩]{⟨angle⟩}角度排版(度分秒等)

组合命令

命令用途
\numlist[⟨options⟩]{⟨number⟩}数值列表排版
\numproduct[⟨options⟩]{⟨unit⟩}数值乘积排版
\numrange[⟨options⟩]{⟨number⟩}{⟨unit⟩}数值范围排版
\qtylist[⟨options⟩]{⟨angle⟩}数值+单位 列表排版
\qtyproduct[⟨options⟩]{⟨numbers⟩}{⟨unit⟩}数值+单位 乘积排版
\qtyrange[⟨options⟩]{⟨number1⟩}{⟨number2⟩}{⟨unit⟩}数值+单位 范围排版

全局配置

命令用途
\sisetup{⟨options⟩}全局配置

2. 基础命令

2.1 单位排版: \unit 命令

siunitx 提供了 \unit 命令,用于排版数值和单位。\unit 命令可以直接渲染给定的单位文本或者宏定义的命令:

\unit{kg.m.s^{-1}} \\                       %文本形式
\unit{\kilogram\metre\per\second}\\         %宏命令形式
\unit{ \kilogram \metre \per \second} \\    %宏命令形式(空格会被删除)
\unit[per-mode = symbol]                    %宏命令形式(指定 per-mode = symbol)
{\kilogram\metre\per\second} \\ 
\unit[per-mode = fraction]                  %宏命令形式(指定 per-mode = fraction)
{\kilogram\metre\per\second}

对应的输出如下结果:

在这里插入图片描述

  • 对于文本形式,. 提供了一个小的间隔,以便更好地区分不同的单位。 上下标仍通过 ^_ 来实现。
  • 对于宏命令形式,\kilogram\metre\per\amperesiunitx 提供的一些常用单位的宏命令。这些宏命令可以直接在 \unit 命令中使用,单位间的间隔会自动调整,手动添加的间隔会被删除。内置的宏命令可以参考:附:siunitx 中SI宏命令列表
  • 每个命令都提供了可选项,在[]中指定。如 per-mode = symbol 选项,用于指定\per命令的显示方式。默认情况下,会以上标为-1 的形式显示 \per 命令,我们可以通过设置 per-mode 选项为 symbolfraction 来更改。

2.2 数值排版: \num 命令

siunitx 提供了 \num 命令,用于自动处理与排版数值:

  • 软硬空格都会被删除
  • 自动给大数添加空格(每三位添加一个空格)
  • 自动识别指数形式(自动处理 e, E, d, D
  • 如果数值是小数,小数点左侧为空时,会自动添加 0 (., 都会被识别为小数点)

在这里插入图片描述

2.3 复数排版: \complexnum 命令

siunitx 提供了 \complexnum 命令,用于排版复数。\complexnum 命令的用法与 \num 命令类似,只是它可以处理复数。

复数可以通过笛卡尔形式或极坐标形式表示:

  • a + bi (笛卡尔形式)
  • a + ib (笛卡尔形式)
  • r:θ (极坐标形式)

在笛卡尔形式中,复数由实部和虚部组成,形式为 a + bia + ib。在极坐标形式中,复数由模长和幅角组成,形式为 r:θ

在这里插入图片描述

2.4 数值和单位同时排版: \qty\complexqty 命令

siunitx 提供了 \qty\complexqty 命令,用于同时排版数值和单位。\qty 命令接受两个参数,第一个参数是数值,第二个参数是单位,分别与\num\unit 命令对应。

在这里插入图片描述
\complexqty 命令\qty 命令一致,但用于处理数字为复数的情况。
在这里插入图片描述

2.5 角度排版: \ang 命令

siunitx 提供了 \ang 命令,用于排版角度。\ang 命令接受一个参数,即角度值。角度值可以是弧度值,也可以是度、分、秒的组合,以 ; 隔开。

在这里插入图片描述

3. 组合命令

3.1 列表排版: \numlist\qtylist 命令

如果有多个数值需要排版,我们可以使用 \numlist 命令。\numlist 命令接受一个参数,即数值列表。数值之间用 隔开。

在这里插入图片描述
\qtylist 命令与 \numlist 命令类似,用于排版数值和单位的列表。

在这里插入图片描述

3.2 乘积排版: \numproduct\qtyproduct 命令

如果有多个数值需要相乘,我们可以使用 \numproduct 命令。\numproduct 命令接受一个参数,即数值列表。数值之间用英文字母 x 隔开。

在这里插入图片描述

\qtyproduct 命令与 \numproduct 命令类似,用于排版数值和单位的乘积。

在这里插入图片描述

3.3 范围排版: \numrange\qtyrange 命令

如果有数值范围需要排版,我们可以使用 \numrange 命令。\numrange 命令接受两个参数,即数值范围的上限和下限。

在这里插入图片描述

\qtyrange 命令与 \numrange 命令类似,用于排版数值和单位的范围。

在这里插入图片描述

4. 全局配置

siunitx 中的命令都可以通过可选项进行配置,但如果我们希望对整个文档进行统一的配置,可以使用 \sisetup 命令。可选的配置选项可以查找官网文档查找:https://texdoc.org/serve/siunitx/0

例如:

\sisetup{%
	range-phrase = {\,\textasciitilde\,},  % to 改为 ~
	range-units = single,  % 第一个数字不加单位
	number-mode = text,    % 数字字体改为与正文一致
}

附:siunitx 中SI宏命令列表

SI 基础单位

在这里插入图片描述

SI 特殊名称与符号

在这里插入图片描述

被接受的非SI单位

在这里插入图片描述

SI 前缀

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉研

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值