参考书目只显示 nd 而不是年份 (Overleaf + pdfLaTeX)

参考书目只显示 nd 而不是年份 (Overleaf + pdfLaTeX)

我目前正在写论文,由于我已经有近 30 个来源,我想使用温哥华/数字书目样式而不是 APA。但是,当我尝试使用其中任何一种时,我都会遇到一些问题。两者都不显示我的 bib 条目的年份,尽管它们存在于我的 .bib 文件中。

亚太心理学协会 (美国心理学会)

温哥华 (温哥华)

数字 (数字)

这是我的 main.tex 中的代码。请注意,我没有亲自编写 documentclass 或 main,我添加了一些东西,但我不是创建者。

\usepackage[
style=apa,
backend=biber,
sortcites=true,
sorting=none,
url=true,
doi=true,
hyperref=false,
backref=false,
natbib=false,
]{biblatex}

\newcommand{\mkbibnodate}{n\adddot d\adddot}
\AtEveryCitekey{\iffieldundef{labelyear}{\restorefield{labelyear}{\mkbibnodate}}{}}
\AtEveryBibitem{\iffieldundef{labelyear}{\restorefield{year}{\mkbibnodate}}{}}

\DeclareLanguageMapping{dutch}{dutch-apa}
\DefineBibliographyStrings{dutch}{andothers = {et al.}}

\addbibresource{bib.bib}
\setlength{\bibitemsep}{1.5 \itemsep}

这是图片中可以看到的参赛号码

@book{kleinwoud_stapersma,
author = {Hans {Klein Woud} and D. Stapersma},
title = {{Design of Propulsion and Electric Power Generation Systems}},
edition = {},
pages = {},
year = {2002},
isbn = {978-1-902536-47-9},
URL = {},
publisher = {IMarEST, Institute of Marine Engineering, Science and Technology}
}

有谁知道什么可能导致这个问题,我该怎么做才能解决这个问题?如果我需要提供更多信息,请告诉我。

我发现这个问题。这里的问题是缺少,。我检查了我的 .bib,所有,{}都存在。我没有遇到任何错误,除了一条警告,指出我的 bib 条目中的 ISBN 无效。

提前致谢!

答案1

正如评论中提到的,问题确实是您的n.d.代码。但是,如果您只是删除这些行,那么对于没有日期的来源,您将看不到n.d.任何内容。

您查看的是labelyear,它不是按数字样式使用的,只有yearis 。它确实是按 apa 样式使用的,但即使在那里也出了问题;当labelyear未定义时(通常是这样),year将使用 then ,但您没有检查是否year已定义。

无论如何,这应该可以解决问题:

\AtEveryBibitem{
    \iffieldundef{year}{
        \restorefield{year}{\mkbibnodate}
    }{}
}
\AtEveryCitekey{%
    \iffieldundef{year}{%
        \restorefield{year}{\mkbibnodate}%
    }{}%
}

请注意,百分号可防止引用括号中出现多余的空格。它们会注释掉行末的换行符,否则该换行符会转换为空格。

这个回答对你有帮助吗?

相关内容