如何使用 unsrtnat 书目样式隐藏月份条目

如何使用 unsrtnat 书目样式隐藏月份条目

我的 .bib 文件中的条目在date={year--month--day}格式和打印的参考书目中有一个字段:1999 年 4 月例如。我希望它简单1999

您如何用unsrtnat参考书目风格来做到这一点?

我尝试在文件中找到条目,unsrtnat.bst但更改format.date函数也不起作用。您有什么想法吗?

编辑:format.date将功能从以下位置更改:

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

到:

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

但它没有用

答案1

要修改unsrtnat参考书目样式以忽略与月份相关的信息,我建议您采取以下步骤:

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

  • 在文本编辑器中打开unsrtnat-nomonth.bst。(您用来修改 tex 文件的编辑器就可以了。

  • 找到函数format.date。(它应该从文件的第 417 行开始。)它应该如下所示:

    FUNCTION {format.date}
    { year duplicate$ empty$
        { "empty year in " cite$ * warning$
           pop$ "" }
        'skip$
      if$
      month empty$
        'skip$
        { month
          " " * swap$ *
        }
      if$
      extra.label *
    }
    
  • month empty$删除从到 第二行 的行if$。修改后的函数应如下所示:

    FUNCTION {format.date}
    { year duplicate$ empty$
        { "empty year in " cite$ * warning$
           pop$ "" }
        'skip$
      if$
      extra.label *
    }
    
  • 将文件保存unsrtnat-nomonth.bst到主 tex 文件所在的目录或 BibTeX 搜索的目录中。如果选择第二个选项,请确保也更新 TeX 发行版的文件名数据库。

  • 在主 tex 文件中,更改\bibliographystyle{unsrtnat}\bibliographystyle{unsrtnat-nomonth}。然后,再运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。

祝您 BibTeX 愉快!

完整的 MWE(unsrtnat-nomonth.bst设置如前文所述)

在此处输入图片描述

如果unsrtnat使用 而不是unsrtnat-nomonth,则会得到:

在此处输入图片描述

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{xyz,
  author  = "X",
  title   = "Y",
  journal = "Z",
  year    = 3001,
  month   = "January",
  date    = "11-11-3001",
}
\end{filecontents}
\bibliographystyle{unsrtnat-nomonth}
\usepackage{natbib}
\begin{document}
\nocite{*}
\bibliography{mybib}
\end{document} 

相关内容