在自定义参考书目样式 .bst 中将卷标设为粗体

在自定义参考书目样式 .bst 中将卷标设为粗体

由于我找不到符合老师对我必须做的参考书目的要求的样式,所以我在 Mac 上创建了自己的bst样式。我选择制作卷,但它没有以粗体显示在文档中(我使用的是 LyX)。我想知道是否有办法通过修改文件使其以粗体显示latex makebstboldbst

这是我在卷部分的内容

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}"

定义函数后,您可以emphasizemakebold(或参阅 Mico 对其他相关函数的评论)替换

相关内容