![参考列表:使用 biblatex 消除公司名称后的点](https://linux22.com/image/295050/%E5%8F%82%E8%80%83%E5%88%97%E8%A1%A8%EF%BC%9A%E4%BD%BF%E7%94%A8%20biblatex%20%E6%B6%88%E9%99%A4%E5%85%AC%E5%8F%B8%E5%90%8D%E7%A7%B0%E5%90%8E%E7%9A%84%E7%82%B9.png)
\documentclass[12pt,ngerman,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,style=apa]{biblatex}
\usepackage[german=quotes]{csquotes}
\usepackage[locale=US]{siunitx}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\addbibresource{Test.bib}
\begin{document}
Test cite \parencite{Duden.2014}.
\printbibliography
\end{document}
我想引用:
@Misc{Duden.2014,
Title = {{E}valuation},
Author = {Duden},
Year = {2014},
Url = {http://www.duden.de/rechtschreibung/Evaluation},
Urldate = {2014-06-18}
}
在参考书目中,结果是(忽略 a,这是由于多次引用 Duden):
我怎样才能消除 Duden 后面不需要的点?问题出现在所有不引用作者(如 Mustermann, M. (2014))的具体情况下……但引用公司/机构。
答案1
重新定义 bib 宏的 APA 样式author
添加了这个句号,所以我们必须重新定义它:
\documentclass[12pt,ngerman,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,style=apa, firstinits = false]{biblatex}
\usepackage[german=quotes]{csquotes}
\usepackage[locale=US]{siunitx}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\usepackage{filecontents}
\begin{filecontents}{Test.bib}
@Misc{Duden.2014,
Title = {{E}valuation},
Author = {Duden},
Year = {2014},
Url = {http://www.duden.de/rechtschreibung/Evaluation},
Urldate = {2014-06-18}
}
\end{filecontents}
\addbibresource{Test.bib}
\renewbibmacro*{author}{%
\ifnameundef{author}
{\usebibmacro{labeltitle}}
{\printnames[apaauthor][-\value{listtotal}]{author}%
\setunit*{\addspace}%
\printfield{nameaddon}%
\ifnameundef{with}
{}
{\setunit{}\addspace\mkbibparens{\printtext{\bibstring{with}\addspace}%
\printnames[apaauthor][-\value{listtotal}]{with}}
}}%
\setunit*{\addspace}\newblock%% <- Changed here
\usebibmacro{labelyear+extrayear}}
\begin{document}
Test cite \parencite{Duden.2014}.
\nocite{*}
\printbibliography
\end{document}