这个问题与格式化文档的文本/标记无关。我真正关注的是 LaTeX 的编程方面。我正在处理一组相当大的文档类和包,我想知道括号和缩进的常规用法是什么。
查看该latex.ltx
文件,我看到一些组以它们的右括号作为最后一行的结尾,例如:
\def\vgl@{\par \dimen@\prevdepth \hrule \@height\z@
\nobreak\vskip\skip@ \prevdepth\dimen@}
有时,结束括号位于下一行,例如
\def\ltx@sh@ft #1{%
\dimen@ #1%
\kern \strip@pt
\fontdimen1\font \dimen@
} % kern by #1 times the current slant
我认为后一种风格可以称为 K&R。我不知道前一种风格在 C 世界中是否有足够的追随者来命名。
从今天早上起,我就开始考虑使用 K&R 样式的括号,缩进四个空格。 latex.ltx
我读过的其他资料使用两个,但四个似乎更易读一些。额外的换行符意味着必须小心\par
添加额外的空格和 s,但为了便于阅读,我喜欢使用空格。
我很有兴趣听听 LaTeX 程序员使用过并且喜欢的其他约定。
答案1
当我有更多时间时,我会更详细地回答这个问题,但我目前最喜欢的 LaTeX2e 编程方法是始终将右括号放在自己的行上(并缩进两个空格,因为有时它会堆积很多)。例如,
\def\foo{%
\bar{abc}%
}
就像您的第一个例子一样,我曾经虔诚地使用更多的内联样式,但后来我发现它使重新阅读代码变得有点困难(特别是当右括号堆叠了好几层深的时候)。
我非常不喜欢也不鼓励你的第一个示例的形式,即在同一行放置多个命令。当人们说 TeX 编程难以阅读时,他们使用的例子就是这些。
在 LaTeX3 编程中,我还有一些经验规则,但它们必须等待另一天。
答案2
我同意 Will 所写的内容,但我发现 2 个空格会让代码很难阅读。我的代码往往使用制表符缩进(因此请随意设置制表位)。我发现即使使用默认的 8 个空格制表位,我的代码也保持在 80 列以下(或多或少)。
如果我编写的宏是真的简单来说,我会把所有内容放在一行中。例如,\temp
在
\newcommand\foo[1]{%
\edef\temp{#1}%
% do something with \temp
}
代替
\newcommand\foo[1]{%
\edef\temp{%
#1%
}%
% do something with \temp
}
这显然更难阅读。
答案3
Will 和 TH 都回答得很好。我将采用经过修改的K&R 风格括号/缩进样式。我不会像控制结构那样对函数进行不同的缩进。TH. 明智地说,有一些明显的例外。
我还没有确定缩进的空格数。我认为 2 到 4 之间比较好。