' BibTeX 样式文件中的符号

' BibTeX 样式文件中的符号

我正在尝试阅读.bst来自驯服野兽在第 38 页上,有一个and函数示例:

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

'前面的 起什么作用skip

第 32 页第 34 条评论说道:

变量名是使用 STRINGS 或 INTEGERS 或 ENTRY 声明的名称。此外,它前面必须有一个单引号,这样 BibTeX 才能理解您指的是变量的名称而不是其值。例如,'label.

skip这是一个变量名,仍然没有意义。

答案1

在我们了解基本思想之前,重要的是要记住,andBibTeX 中有一个隐藏在函数内的比较器。它总是用在生成整数之后,然后该整数要么是1(TRUE),要么是0(FALSE)。它整理了比较两个整数的逻辑,但它只对第二个整数进行操作,因为结果就是第一个整数。

这里'用于“简化”代码。条件的标准语法是

<number>
  { <code if true> }
  { <code if false> }
if$

特别注意,两个分支都需要一组括号。(BibTeXif$根据简单的 TRUE/FALSE = 1/0 来测试数字。您在 BibTeX 中看到的大多数条件在进行if$一些设置之前都有一个部分。)

在示例中,TRUE 分支仅包含 BibTeX 内置函数。因此,虽然您可以编写

FUNCTION {and}
{
    { skip$ }
    { pop$ #0 }
  if$
}

或者

FUNCTION {and}
{
    { }
    { pop$ #0 }
  if$
}

这使得 TRUE 分支有点难以阅读。因此,有一种“快捷”语法:如果使用 代替 ,可能会遗漏'skip$括号{ skip$ }

您通常只会在跳过分支时看到这种方法,因为它对于其他内置函数来说并不是那么有用(尽管您可能会'pop$以相同的方式看到)。

相关内容