我正在尝试阅读.bst
来自驯服野兽第 39 页有一个乘法函数的示例:
INTEGERS { a b }
FUNCTION {mult}
{
’a := %% we store the first value
’b := %% we store the second value
b #0 < %% We remember the sign of b, and
{#-1 #0 b - ’b :=} %% then consider its absolute value.
{#1} %%
if$
...
为什么b
有些 前面没有'
? 难道所有的 都不应该b
指代同一个b
,即b
在内部声明的INTEGERS
,并且前面应该有一个'
吗?
答案1
BibTeX 的语法如下
#1 'a :=
是一个赋值,将变量命名为 ,a
并将其值设置为1
,而
a #1 =
是一个比较,将变量的值a
插入并与 进行比较1
。
BibTeX 是一种堆栈语言,因此更一般地'a
通常姓名变量在堆栈上,而仅a
将值留在堆栈上。
答案2
该行{#-1 #0 b - ’b :=}
含义为:将名称为 的变量的值设置'b
为通过对其中一个操作数的值进行运算而得到的值b
(变量当前存储的值)'b
。