参考书目中年份后的括号内附加标签

参考书目中年份后的括号内附加标签

这是一个后续问题书目中的年份(带括号),我也从那里获得了这个 MWE。

\documentclass[pdftex,a4paper,12pt,german]{book}
\usepackage[german,ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[authoryear]{natbib}
\begin{document}
\bibliographystyle{myplainnat}
\cite{lastname.2019a}
\cite{lastname.2019b}
\bibliography{Literatur}
\end{document}
@book{lastname.2019a,
 author = {Firstname Lastname},
 year = {2019},
 title = {Title 1},
 address = {Berlin},
 publisher = {Springer}
}

@book{lastname.2019b,
 author = {Firstname Lastname},
 year = {2019},
 title = {Title 2},
 address = {Berlin},
 publisher = {Springer}
}

我按照答案中提供的代码编辑了我的 .bst 文件,如下所示:

FUNCTION {format.date}
{ year duplicate$ empty$
    { "empty year in " cite$ * warning$
       pop$ "" }
    'skip$
  if$
  month empty$
    'skip$
    { month
      " " * swap$ *
    }
  if$
  duplicate$ empty$ 'skip$ %% added
  { "(" swap$ * ")" *}     %% added
  if$
  extra.label *
}

但是,我的参考书目现在是这样的:

姓氏,名字。(2019)a,标题 1。Springer,柏林。

姓氏,名字。(2019)b,标题 2。Springer,柏林。

但我希望它看起来像这样:

姓氏,名字。(2019a),标题 1。Springer,柏林。

姓氏,名字。(2019b),标题 2。Springer,柏林。

我知道我必须以某种方式编辑文件extra.label中的行.bst,但我无法让它工作。

答案1

extra.label *只需将该行移动到新添加的行之前就足够了。

FUNCTION {format.date}
{ year duplicate$ empty$
    { "empty year in " cite$ * warning$
       pop$ "" }
    'skip$
  if$
  month empty$
    'skip$
    { month
      " " * swap$ *
    }
  if$
  extra.label *
  duplicate$ empty$
    'skip$
    { "(" swap$ * ")" * }
  if$
}

完整文件可从以下网址下载:https://gist.github.com/moewew/0b5992f6973bbc6af7d3c2cd5f0e297c(包括与的精确差异plainnat.bst)。结果为

名姓。标题 1。Springer,柏林,(2019a)。//名姓。标题 1。Springer,柏林,(2019b)。

当在问题的 MWE 中使用时。

相关内容