将 doi 包含在 agsm 书目样式中

将 doi 包含在 agsm 书目样式中

有没有办法在agsm参考书目样式中包含 doi?我知道我可以使用创建自己的文件,latex makebst但我希望有办法修改文件agsm.bst以在参考文献中包含 doi。有办法吗?

答案1

您可以按照下列步骤进行:

  • 在您的 TeX 发行版中找到该文件agsm.bst。复制此文件并将副本命名为 。agsmdoi.bst(不要agsm.bst直接编辑该文件。)

  • 在文本编辑器中打开文件agsmdoi.bst。你用来编辑.tex文件的编辑器就可以了。

  • 首先需要添加一个名为 的字段类型doi。为此,请找到ENTRY列表(它从文件的第 20 行开始)。找到以下行

        chapter
        edition
    

    并插入行

        doi
    

    在这两条线之间。

  • 找到函数write.url。(它应该从第 162 行左右开始。)

    此函数中,在文件中插入以下代码来定义一个名为的新函数write.doi

    FUNCTION {write.doi}
    { doi empty$
        { "" }
        { new.block "doi: " doi * "" * }
      if$ 
    }
    

    如果您想使用除 之外的前缀doi:,请将字符串更改为适合您需要的任何内容。

  • 接下来,在约 14 个函数中,找到以下四行代码(以 开头FUNCTION {article},以 结尾FUNCTION {unpublished}),用于格式化和排版这些条目类型的内容:

      new.block
      note output
      fin.entry
      write.url
    

    假设您希望条目字段的内容在 之后但在 之前doi排版,则应插入以下行noteurl

      write.doi output
    

    在字里行间note outputfin.entry; 最多重复 13 次。我想如果你确定你的参考书目将绝不mastersthesis包含类型为或 的条目phdthesis,那么您可以跳过编辑相应的函数。同样,如果您知道某些条目类型绝不有一个doi字段,则不需要编辑相应的功能。

  • 将文件保存agsmdoi.bst在与主 tex 文件相同的目录中,或保存在 BibTeX 搜索的目录中。如果选择后一种方法,请务必更新 TeX 发行版的文件名数据库。

  • 通过发出命令来使用修改后的参考书目样式\bibliographystyle{agsmdoi}。再运行 LaTeX、BibTeX 和 LaTeX 两次以传播所有更改。

这是一个独立的 MWE(最小工作示例),使用agsmdoi书目样式。请注意,我没有加载哈佛包,而是纳特比布哈2纳特包;这样做可以完全兼容hyperref包(如果需要的话)。请注意,字段\url{...}内容周围使用了包装器doi。提供此包装器允许换行,并提供一种机制,doi如果包也已加载,则可以使字符串可点击hyperref。请注意,这种处理在某种程度上特定于使用harvard包的参考书目样式。如果您使用了这样的样式,plainnat您应该不是\url为字段提供包装器doi

在此处输入图片描述

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{abcd:2013,
author = "Torben G. Andersen and Tim Bollerslev and Peter F. Christoffersen and Francis X. Diebold",
title = "Chapter 17 --- {Financial Risk Measurement for Financial Risk Management}",
editor = "George M. Constantinides and Milton Harris and Ren{\'e} M. Stulz",
publisher = "Elsevier",
year = "2013",
volume = "2, Part B",
pages = "1127-1220",
series = "Handbook of the Economics of Finance",
issn = "1574-0102",
doi = "\url{http://dx.doi.org/10.1016/B978-0-44-459406-8.00017-2}",
url = "http://www.sciencedirect.com/science/article/pii/B9780444594068000172",
}
\end{filecontents*}
\usepackage[margin=1.5in]{geometry}
\usepackage{natbib,har2nat,url}
\urlstyle{same}
\bibliographystyle{agsmdoi}
\begin{document}
\noindent
\citet{abcd:2013}
\bibliography{\jobname}
\end{document}

相关内容