我看过很多关于不同排版单元包及其相对优缺点的帖子。大多数帖子似乎都认为该siunitx
包是最新的包,但我还没有真正弄清楚使用包的优点。写类似的东西有什么好处:
\SI{10}{\kilo\gram\meter\per\second\squared}
你可以直接写:
kg m s$^-2$
或者对于数字,
\num{10}
和
10
答案1
看到这个问题时,我心里想着“是啊!为什么?”但在阅读了目前的评论和答案后,我已经改变了想法,现在倾向于另一种方式。经过思考以及我与这个包的小小互动,我意识到它提供了几乎相同的服务之内LaTeX 作为 LaTeX(或者甚至只是 TeX 本身)提供了整体写作功能。要理解这一点,请考虑通过计算机以书面形式传达一些数学知识的替代方案:
就像用语音书写一样。当然,单词就是单词,但是希腊字母是拼写出来的,或者可能是用某种临时的 ASCII 艺术画出来的,而更复杂的公式则是以一种未指定的方式拼凑在一起的,从上下文中可能看得清也可能看不清楚。
用 TeX 编写,其中希腊字母以宏的形式拼写出来,更复杂的公式以某种可能很糟糕的方式拼凑在一起……然后将结果“编译”成一个文档,使其看起来都像你脑海中所想的那样,所以如果你的源代码比你想要的更具示意图,也不会造成任何伤害。
该siunitx
软件包正是这样做的,但它使用的不是数学公式,而是 SI 样式的单位。当然,人们可以写出通常出现在这些单位中的相同符号,如kg
或s$^{-1}$
,但这很容易在视觉上出错,具体取决于单位是否出现在数学模式中(想象一下这会对后者产生什么影响!),或者如果几个单位挤在一起,或者(egreg 的非常有效的观察)跨线断开。然后,您可能会决定用 而不是 来表示s$^{-1}$
您真正想要的/s
赫兹单位,这需要全局更改符号。
这些都是 TeX 中通过定义包含您喜欢的样式的宏来处理的问题\kilogram
。\hertz
只需siunitx
组织定义这些宏及其相互关系的整个项目,并在其基础上提供许多美学选项。
基本上,它可以归结为“为什么有人首先想要编写他们的文档?”,答案是“通过这种方式编写结构良好的文档更容易。”
答案2
请允许我用一个实际的例子来回答:
当我撰写化学博士论文时,每一章要么已经发表,要么即将提交给同行评议期刊。每一章都是在几年内的不同时间撰写的,当然,每本期刊都有自己的标准,例如数字和单位之间是否应该有空格,逆单位是否应该以分数或指数给出等。除此之外,当我直接输入单位时,有时我会加空格,有时不会,所以我最后做了大量的校对来纠正这个问题,直到我找到了siunit
,然后是siunitx
。
通过将单位转换为宏,我不必再担心格式化问题,当我获取章节正文时,我只需使用期刊的样式包和正确的参数编写一个新的标题siunitx
(或者,如果期刊不支持,则在序言中硬编码宏),所有单位和数字都会自动正确格式化。当我需要将它们放入我的论文中时,我只需在标签\input{}
后添加文本正文\chapter{}
,我的所有章节都会按照我的大学论文标准进行格式化,没有任何麻烦,没有任何混乱。与此同时,我那些使用 Word 的朋友要花数周时间,有时甚至更长的时间个月什么都不做,只是重新格式化和校对以使所有内容保持一致(大部分时间都花在了公式、图形和参考编号上,我从来没有再想过这些)。
事实上,包含我的宏定义的文件最终几乎和我的章节一样长,因为每次我有一个数学符号(上标、下标、粗体等)时,我都会创建一个具有描述性名称的宏,这样不仅更容易校对,而且如果出于某种原因我必须更改符号或变量,我只需更改一次。单位也是同样的想法。如果一切都是宏,如果您需要更改某些内容,则只需更改一次,并且它会在整个文档中传播,而无需担心。
答案3
答案4
使用包的优点是,您可以以一致的排版方式设置数字和单位。有时您必须\,
在数字和单位之间使用空格 ( ),有时则不需要。包siunitx
了解这一点并自动为您完成。