例如,我有一个命令,它有一个很多选项:
\documentclass[option1,option2,option3,option4,option5,option6,option7]{article}
我想将其分成几行,以便更好地阅读代码:
\documentclass[option1,
option2,
option3,
option4,
option5,
option6,
option7]{article}
正确的做法是什么?
答案1
每行以 结尾%
。这将吞噬下一行开头的换行符和所有空格。因此你会得到
\documentclass[option1,%
option2,%
option3,%
option4,%
option5,%
option6,%
option7]{article}
做你想让它做的事。
编辑并添加:正如 Geoffrey 在该答案的评论中指出的那样,在这种情况下,这种解决方案有点矫枉过正。%
在行尾使用总是吞噬换行符和前导空格 — 但是,这(正如 Geoffrey 指出的)无关紧要,除非在初始空格有影响的上下文中。因此,在 中\documentclass
,可以省略它并使用 Kit 的原始代码;而在类似的情况下
\begin{tikzpicture}
\foreach \p/\x/\y in {%
0/1/2,%
2/3/4,%
3/4/5,%
4/5/6,%
} {
\node [coordinate] (p\p) at (\x,\y) {};
}
% Do stuff with the defined coordinates
\end{tikzpicture}
它变得相关,否则空格将包含在定义中\p
,并破坏精心设计的坐标名称。
TikZ 之外还有很多类似的例子 —— 这是我能想到的最快与之相关的例子。
答案2
如果你懒得%
在每一行末尾输入内容(或者你认为这样做很丑),那么一个巧妙的技巧就是重新定义\endlinechar
。另一个技巧是将 的 catcode 设置^^M
为 9(忽略)。在这些情况下,如果你做如果想要在行尾有一个空格,则必须%
在行尾使用“ ”(空格百分比)。
{%
a%
b%
c
d
}
相当于
{\endlinechar=-1
a
b
c %
d
}
相当于
{\catcode`\^^M=9
a
b
c %
d
}
相当于
{abc d}