Biblatex:没有作者的引文的标题和年份之间没有逗号

Biblatex:没有作者的引文的标题和年份之间没有逗号

我研究过这个问题,但没有找到正确的解决方案。我有一个没有作者的在线资源,因此使用 APA 样式,biblatex 会生成:(“文章标题”2009},没有逗号。但该样式要求在标题和年份之间有一个逗号。我想我需要类似这样的内容:

\AtBeginBibliography{%
\renewcommand*{\nonameyeardelim}{\addcomma\space}}

但它不起作用。

Here is a minimal example:

\documentclass[man,]{apa6}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=apa,natbib=true]{biblatex}
\usepackage{float} 
\usepackage{graphicx}
\addbibresource{example.bib}
\DeclareLanguageMapping{american}{american-apa}
%\AtBeginDocument{\renewcommand\nonameyeardelim}{\addcomma\space}
%\AtBeginDocument{\renewcommand*{\nonameyeardelim}{\addcomma\space}}
\AtBeginBibliography{%
  \renewcommand*{\nonameyeardelim}{\addcomma\space}}


\title{Title}
\shorttitle{Short Title}

\author{Tom  }
\affiliation{University of Ignorance}

\date{May 28, 2017}

\abstract{This paper is meant to illustrate a problem I have with Latex     
}
\keywords{ignorance}

\begin{document}
\maketitle
\section{Introduction}
I want to cite this \citep{vicodin}.  


\printbibliography[heading=bibnumbered] 


\end{document}

最小的 bib 文件(example.bib)将是这样的:

@Online{vicodin,
  title = {Life Without Vicodin?},
  year  = {2009},
  date  = {2009-07-02},
  url   = {http://nymag.com/news/intelligencer/topic/57770/},
}

注意:当我重现上面最小示例中的错误时,我注意到参考文献在最后的参考文献列表中正确出现,但在内联引用中仍然没有逗号。

答案1

如果你想用逗号来表示所有内容,

\renewcommand*{\nonameyeardelim}{\addcomma\space}

就够了。你不需要钩子\AtBeginBibliography

但实际上这里并不需要biblatex-apa使用的引用宏\nameyeardelim,它被设置\addcomma\spaceapa.cbx

不过,您这里的问题有所不同。


由于美国标点符号和标题结尾的问号,您没有看到逗号。

对于american(美式英语)biblatex用法\uspunctuation,这涉及将标点符号移到引号内。所以你有

“无忧无虑”一般是指“没有烦恼,没有忧虑”。

而不是(英国风格/“逻辑”标点符号)

“Carefree”一般意为“没有烦恼、没有忧虑”。

这也是这里的情况。逗号移到了引号内。而不是(英国)

“没有维柯丁的生活?”,2009年

你会(美国)

*“没有维柯丁的生活?”,2009 年

但双标点符号是不可接受的,引号胜出(它更重要),所以你会得到

“没有维柯丁的生活?” 2009

尝试在标题中删除问号并检查输出。

如果你不想使用美国标点符号,请发出

\DefineBibliographyExtras{american}{\stdpunctuation}

相关内容