由于我找不到符合老师对我必须做的参考书目的要求的样式,所以我在 Mac 上创建了自己的bst
样式。我选择制作卷,但它没有以粗体显示在文档中(我使用的是 LyX)。我想知道是否有办法通过修改文件使其以粗体显示latex makebst
bold
bst
这是我在卷部分的内容
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ bbl.volume volume tie.or.space.prefix
"volume" bibinfo.check * *
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ emphasize ", " * swap$ * }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ series empty$
{ number "number" bibinfo.check }
{ output.state mid.sentence =
{ bbl.number }
{ bbl.number capitalize }
if$
number tie.or.space.prefix "number" bibinfo.check * *
bbl.in space.word *
series "series" bibinfo.check *
}
if$
}
if$
}
{ "" }
if$
}
有人能帮我解决这个问题吗?我尝试添加,{\bf }
但* swap$ *
似乎不起作用。
答案1
BibTeX 风格的语言基于逆波兰表示法。这意味着它将字符串放在堆栈上,函数对堆栈中的最后一个元素进行操作。因此,要使堆栈的当前元素加粗,可以创建以下函数
FUNCTION {makebold}{
"\textbf{" swap$ * "}" * }
}
此函数假设堆栈上有一个元素,然后将字符串添加\textbf{
到堆栈中,因此在此步骤之后堆栈为"element" "\textbf{"
。该指令swap$
反转堆栈中最后两个元素的顺序。*
用它们的连接替换最后两个元素。因此在第一个之后,*
堆栈的最后一个元素是"\textbf{element"
。然后我们将“}”附加到堆栈中,最后将其与前一个元素连接起来。这样我们就得到了"\textbf{element}"
。
定义函数后,您可以emphasize
用makebold
(或参阅 Mico 对其他相关函数的评论)替换