如何将 Stata 指向两个不同命令的同一个帮助文件?

How to point Stata at the same help file for two different commands?

Stata 的 swilk 命令对非正态性执行 Shapiro-Wilk 检验。同样,Stata 的 sfrancia 对非正态性执行 Shapiro-Francia 检验。但是,这两个命令共享相同的帮助文件 swilk.sthlp.

Stata 如何知道一个帮助文件服务于多个命令? 例如,Stata 如何知道 swilk.sthlp 对命令help sfrancia?或者 ttest.sthlphelp ttesti(不仅仅是 help ttest)持有正确的回应?

我正在编写一个新包,同一个帮助文件应该同样为多个命令服务,我想确保我做对了。

StataCorp 自己的路标指向其他地方的求助电话在最近的版本中通常由 .maint 文件完成。因此

viewsource shelp_alias.maint 

包含以 s 开头的名称的各种指针列表,包括允许的缩写,并且可以看到 help sfrancia 启动 help swilk。对于 s 替换任何其他相关的首字母。

要查看此类文件潜伏在系统中的什么位置,请使用 which

which shelp_alias.maint 

历史系统和用户程序员容易模仿的系统是一个名为 foo.sthlp 并包含单行

的帮助文件
.h bar 

相当于直接help bar。所以如果你输入

. help foo 

就好像您知道输入

 . help bar 

此系统早于 SMCL 的引入,因此不会使用任何 SMCL 指令。

总而言之:foo.sthlp 之类的文件只是指向 bar.sthlp 而不是完整的帮助文件。

关于 .maint 文件的更多信息:本质上,用户程序员应该就他们自己的包而言忽略它们。否则,每个用户都将致力于在他们使用的每个系统上编辑相关的 .maint 文件,这甚至可能在本地不允许,并且在每次 Stata 升级时都这样做。此外,StataCorp 可能会在未来版本中使用一些不同的系统。相比之下,.h 机制已经使用了很长时间并广为宣传,可以肯定它会无限期地发挥作用。

注意:Stata 帮助文件最初标有扩展名 .hlp。当 Stata 于 1985 年启动时,与文件扩展名长度不能超过 3 个字符的现有 DOS 规则的兼容性至关重要。后来 Windows 为其帮助文件采用了完全相同的扩展名,鉴于这种 不可抗力 Stata 在版本 10 中引入了 .sthlp 个文件。Stata 自然仍然可以读取 .hlp 文件是适当目录或文件夹中的文本文件,即沿着定义的 adopath