我想知道是否有针对程序包编写者的指南,指导他们如何将参数传递给宏。假设我正在编写一个用于排版标题页的程序包。有三个主要选项:
- LaTeX 宏样式
\titlepage[color]{<title>}{<author>}
- 键值风格
\titlepage{author=..., title=..., color=...}
- “声明式”风格
\author{...}\title{...}\maketitlepage
现在,我更喜欢 2 和 3 而不是 1,因为它们不需要用户记住参数的顺序,它们更“有文化”,而且似乎更容易扩展。
此外,假设我想让我的标题页“可主题化”。混合“数据”(作者/标题)和“外观”(颜色)的键是否可以接受?key-val 是否更适合定制而不是内容规范?
我认为,以统一的传递方式为目标,使包裹的采用更加顺利,这一点很重要,但我找不到明确的指导方针。
答案1
我的经验法则是:如果可能的参数数量很少,并且除了一两个参数之外其他都是必需的,那么我会使用标准参数。如果数量很大,或者有几个可选参数,那么键值接口可能更好。