如何编辑 apalike 样式以在末尾显示年份?

如何编辑 apalike 样式以在末尾显示年份?

apalike样式上,年份紧跟在作者姓名之后:

[Doe, 2016] Doe, J. (2016). some article. Name of journal.

如何编辑它以便年份出现在末尾(没有括号)?即像这样:

[Doe, 2016] Doe, J. some article. Name of journal, 2016.

编辑: 假设reference.bib包括:

@article{Auth123,
    author  = "A. Auth1 and B. Auth2 and C. Auth3",
    title   = "title",
    journal = "journal",
    year    = "2016"}

下面的代码

\documentclass{article}
\begin{document}
\cite{Auth123}
\bibliography{references} 
\bibliographystyle{apalike}
\end{document}

结果是 在此处输入图片描述

如果我将 apalike 更改为 plainnat(如评论中所建议的那样),我将得到以下结果: 在此处输入图片描述

这将年份移到了末尾(这正是我想要的),但它重复了作者的名字,这并不好。

如果另外添加\usepackage{natbib},我会得到这个: 在此处输入图片描述

我想要类似第一张图片的东西,但将年份移到末尾。

答案1

要求有以下输出:

%[Auth1 et al., 2016] Auth1, A., Auth2, B., and Auth3, C. The article title. My Simple Journal, 16:19–24, 2016.
\bibitem[Auth1 et~al., 2016]{Auth123}
Auth1, A., Auth2, B., and Auth3, C.
\newblock The article title.
\newblock {\em My Simple Journal}, 16:19--24, 2016.

代替:

%[Auth1 et al., 2016] Auth1, A., Auth2, B., and Auth3, C. (2016). The article title. My Simple Journal, 16:19–24.
\bibitem[Auth1 et~al., 2016]{Auth123}
Auth1, A., Auth2, B., and Auth3, C. (2016).
\newblock The article title.
\newblock {\em My Simple Journal}, 16:19--24.

在开始编辑bst文件之前,我们需要将文件重命名为apalike-edited.bst,因为版权规定:

% 版权所有 (C) 1988, 2010 Oren Patashnik。

% 允许无限制复制和重新分发此文件,只要

% 未经修改。修改(以及修改版本的重新分发)

% 也是允许的,但前提是生成的文件被重命名。

需要进行以下更改:

  1. 在 中FUNCTION {output.year.check},将行更改" (" year * extra.label * ")" *", " year * extra.label * "" *。因此该函数现在将变为:

    FUNCTION {output.year.check}
    { year empty$
        { "empty year in " cite$ * warning$ }
        { write$
          ", " year * extra.label * "" *
          mid.sentence 'output.state :=
        }
      if$
    }
    

    如果你不需要年份前的逗号,而需要句号,那么你可以改成", " year * extra.label * "" *". " year * extra.label * "" *现在有一个问题解决了,那就是不带括号的年份

  2. 接下来,我们需要在参考列表末尾设置年份。为此,我们需要使用编辑功能来创建各种类型的参考列表,例如,,,,,,,,,,,和。我article将展示如何修复这个问题。同样,您需要为上述所有参考类型修复它。bookbookletinbookincollectioninproceedingsmanualmasterthesismiscphdthesisproceedingstechreportunpublishedarticle

output.year.check在函数中搜索FUNCTION {article}并从那里剪切该行。将该行放在紧挨着之前fin.entry。这样函数现在将变成:

    FUNCTION {article}
    { output.bibitem
      format.authors "author" output.check
      author format.key output                              % special for
      new.block
      format.title "title" output.check
      new.block
      crossref missing$
        { journal emphasize "journal" output.check
          format.vol.num.pages output
        }
        { format.article.crossref output.nonnull
          format.pages output
        }
      if$
      new.block
      note output
      output.year.check                                     % apalike
      fin.entry
    }

之前是这样的:

    FUNCTION {article}
    { output.bibitem
      format.authors "author" output.check
      author format.key output                              % special for
      output.year.check                                     % apalike
      new.block
      format.title "title" output.check
      new.block
      crossref missing$
        { journal emphasize "journal" output.check
          format.vol.num.pages output
        }
        { format.article.crossref output.nonnull
          format.pages output
        }
      if$
      new.block
      note output
      fin.entry
    }

对所有类型的引用重复此过程并保存文件。

我假设您有以下 MWE:

\documentclass{article}

\begin{filecontents}{references.bib}
@article{Auth123,
    title   = {The Article Title},
    author  = {A. Auth1 and B. Auth2 and C. Auth3},
    journal = {My Simple Journal},
    volume = {16},
    pages = {19--24},
    year    = "2016"}
\end{filecontents}

\begin{document}
\cite{Auth123}
\bibliography{references} 
\bibliographystyle{apalike-edited}
\end{document}

希望这可以帮助。

相关内容