BST表达式语法
变量前要加上'
,比如表示变量A:’A
BST语法是逆波兰表达式,即后缀表达式。 A B + 的含义是A+B,遇到符号,就把栈顶的两个元素拿出来做运算再压回栈内。
部分语法可见连接:关于修改.bst文件(bibtex模板)的几点说明 - 简书 (jianshu.com)
if条件判断
1 | condition |
if的示例见链接:通过修改bst文件手动设置LaTeX参考文献格式 | Weitang Li’s blog (liwt31.github.io)
示例:
自己用过的一个示例,
中文文献,超过3个人名时,用小明,小红,小白等,等前面不用逗号,
英文文献,超过3个人名时,用Tom,Alice,Bob, et al,et al前面要有逗号。
1 | language empty$ %增加判断语句,判断中文文献还是英文文献 |
while循环
1 | {condition} |
BST内置函数
一般以$结尾的大部分是内置函数
示例:
num.names$ 弹出堆栈最上层的字符串,计算其中的人名的个数,其中每出现一个 “and” (忽略大小写),并之前有非空的字符,则计数加一。最后将结果压入堆栈。
empty$ 弹出堆栈最上层的一个元素,如果它是空白字符串或没有内容,压入 1 至堆栈;否则,压入 0 。
format.name$ 弹出堆栈最上层的三个元素,分别是字符串,整数,字符串。第一个字符串代表一个名字列表(人名),第二个整数表示将列表中哪一个人名提出,最后一个字符串代表如何进行格式化。最后将格式化后的人名结果压回堆栈。
更多内部函数见链接:BibTeX 定制自己的参考文献模板 bst_Xue Shengke 博客-CSDN博客