我想删除年份和页数之间的逗号,例如:
(TAPLEY 等 2004:13-19)而不是
(TAPLEY 等,2004,:13-19)
这是我第一次使用 biblatex,代码如下:
\documentclass[10pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[citestyle=authoryear, bibstyle = apa, backend=biber, natbib=true, hyperref=true]{biblatex}
\addbibresource{Test.bib}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
\DefineBibliographyStrings{ngerman}{
andothers = {{et\,al\adddot}}}
\renewcommand*{\nameyeardelim}{\space}
\DefineBibliographyStrings{ngerman}{
and = {{\&}}}
\DefineBibliographyStrings{ngerman}{
pages = {{:}}}
\begin{document}
\parencite[13-19]{Tapley.2004}
\end{document}
Test.bib 条目如下所示:
@article{Tapley.2004,
author = {Tapley, B. D. and Bettadpur, S. and Watkins, M. and Reigber, C.},
year = {2004},
title = {The gravity recovery and climate experiment: Mission overview and early results},
pages = {1-1000},
volume = {31},
number = {9},
journal = {Geophysical Research Letters},
}
答案1
使用
\documentclass[10pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[citestyle=authoryear, bibstyle = apa, backend=biber, natbib=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\DefineBibliographyStrings{ngerman}{
andothers = {et\,al\adddot},
}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}
\DeclareDelimFormat{nameyeardelim}{\space}
\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\begin{document}
\parencite[13-19]{sigfridsson}
\end{document}
引文和后注之间的标点符号由 控制\postnotedelim
。您只需将其设置为冒号和空格即可。然后,您需要隐藏页码。最好通过调整字段格式来完成此操作,而不是粗暴地重新定义 bibstring pages
。
类似的事情也适用于要用 & 符号替换的“and”。重新定义finalnamedelim
而不是 的 bibstring and
。
我也改成\mkbibnamelast
,\mkbibnamefamily
看看Biblatex 3.3 名称格式\DeclareDelimFormat
此外,使用 它也是一个好主意nameyeardelim
。
请注意,该组合citestyle=authoryear, bibstyle = apa
不符合 APA 规则。由于biblatex-apa
它是专门为实现 APA 的要求而设计的,因此通常不建议在具有不同要求的文档中使用它。biblatex-apa
修改起来非常困难。
最后,hyperref=true
它本身不启用超链接。您仍然需要加载hyperref
。实际上,hyperref=true
它比默认的几乎没有优势hyperref=auto
。两者之间的唯一区别是,如果未加载,它true
会发出警告。hyperref