\usepackage
当使用具有很多选项的命令来包含包时,是否有:
- 对于如何将选项拆分到多行,有什么限制吗?
- 对于跨多行格式化选项,有没有什么最佳做法?
例子
% Example #1
\usepackage[letterpaper,
left=1in,
right=1in,
top=1.5in,
headheight=1in,
headsep=.3in
]{geometry}
% Example #2
\usepackage[letterpaper,
left=1in,
right=1in,
top=1.5in,
headheight=1in,
headsep=.3in]
{geometry}
答案1
标准处理贯穿整个论证\zap@space
前处理逗号列表,因此所有空格都会被忽略(除了在处理开始之前会变成空白行\par
并产生错误。
但是,您展示了带有 key=value 列表的几何示例。您不想在 keyval 解析中删除所有空格,因为值可能(通常)需要空格,任何具有此类语法的包都已插入其自己的选项处理程序,因此答案原则上取决于所使用的包,但是大多数将使用keyval
或xkeyval
或基于系统,在这种情况下将忽略和周围的l3keys
空格。,
=
答案2
除了在选项列表中不留任何空行(相当于一个\par
标记)之外,我认为没有任何特殊的限制。
我喜欢的加载包的格式样式如下所示。
\usepackage[
letterpaper,
left = 1in,
right = 1in,
top = 1.5in,
headheight = 1in,
headsep = .3in,
]{geometry}
让我解释一下,以免我的回答被认为是主要基于观点。
- 每个选项都应单独占一行,这样就可以轻松注释/取消注释,而无需重新格式化代码或删除内容。要实现这一点,第一个选项应单独占一行(即不与 在同一行
\usepackage
),最后一个选项也应单独占一行(即不与结束 在同一行]
)。 - 包选项应该缩进一个制表位以突出选项。
- 如果有很多
key=value
对,垂直对齐等号通常会使代码更易于阅读。
附录(Speravir 编写)
有一种变体,在所有内容前面都设置逗号,对于那些在更改值时很容易在末尾删除它们的人来说:
\usepackage
[
,letterpaper
,left = 1in
,right = 1in
,top = 1.5in
,headheight = 1in
,headsep = .3in
]{geometry}
你甚至可以使用逗号前和后每个键值对,因为空字符串也会被删除。