使用“apalike”书目样式截断作者年份引文中的“年份”字段

使用“apalike”书目样式截断作者年份引文中的“年份”字段

我使用该natbib包(使用默认authoryear选项)和apalike参考书目样式来编写参考书目。

我想以这样的方式引用即将发表的论文,即用“即将发表”或“即将出现”代替出版年份——无论是在内联引用还是在参考书目中。

如果我使用以下 bibtex 条目...

@Unpublished{ key,
   title="Title", 
   author="F. Lastname", 
   year="to appear", 
   note="Manuscript under submision" }

...然后\citep{key}扩展为(Lastname pear)而不是所需的(Lastname to appear)。同样,如果我在年份字段中使用“forthcoming”,则\citep{key}扩展为(Lastname ming)。看来年份字段被截断为最后四个字符。

有办法解决这个问题吗?

答案1

我应该指出,虽然这种引用很常见,但这不是很好的做法:你引用的文章有年份,即你阅读的草稿的年份,并且应该引用该年份,并附上说明该稿即将出版的注释。参见BibTeX 中即将发表的论文属于哪种出版类型?以获得关于如何最好地实现这一点的一些想法。

话虽如此,修改参考书目样式以允许这种年份并不是那么困难。

apalike.bst此截断是样式设置的一种属性。复制apalike.bst并对其进行以下修改。将其另存为myapalike.bst本地texmf文件夹。它应该进入<path/to/local>/texmf/bibtex/bst(路径取决于您的操作系统)。然后\bibliographystyle{myapaplike}在您的文档中使用。

找到 FUNCTION calc.label:它应该如下所示:

FUNCTION {calc.label}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.label                       % apalike ignores organization
        'author.key.label                       % for labeling and sorting
      if$
    }
  if$
  ", "                                                  % these three lines are
  *                                                     % for apalike, which
  year field.or.null purify$ #-1 #4 substring$          % uses all four digits
  *
  'label :=
}

改变线路

year field.or.null purify$ #-1 #4 substring$          % uses all four digits

成为:

year field.or.null purify$ #-1 #64 substring$          % allow many characters

答案2

另一种可能性(尽管不是完全令人满意)是利用命令 \citeauthor并在正文中手动输入“(即将推出)”:

\citeauthor{key} (forthcoming)

由于人们很少引用即将发表的论文(希望如此),这个解决方案可能不会那么麻烦。

相关内容