默认情况下,BibLaTeX 中的作者年份样式在最后一位作者前使用单词“and”。我希望在文内引用中保留这个,但希望在参考书目和括号引用中用“和”符号 (&) 替换“and”。
例如,我想要以下内容:
In-text citation: Smith and John (2013)
Parenthetical citation: (Smith & John, 2013)
Bibliography: Smith, A.B. & John, C.D. (2013)...
我该怎么做?我找到了另一个答案,其中指定了如何将所有“and”实例转换为“&”符号,但我无法找到如何仅将参考书目和括号内的引文更改为“&”符号(而不是文内引文):
答案1
使用链接答案中的代码,您可以执行以下操作。
要在参考书目中替换,您只需在里面插入该代码and
即可:&
\AtBeginBibliography
\AtBeginBibliography{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}
我认为第二个请求稍微复杂一些。假设您使用\parencite
括号引用,您可以按以下方式重新定义该命令:
\let\origparencite\parencite
\renewrobustcmd{\parencite}{%
\AtNextCite{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}%
\origparencite%
}
\AtNextCite
确保and
更改为&
仅针对当前引用命令。
MWE(借用自链接答案):
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\AtBeginBibliography{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}
\let\origparencite\parencite
\renewrobustcmd{\parencite}{%
\AtNextCite{%
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}%
}%
\origparencite%
}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A. and Buthor, B. and Cuthor, C.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Normal citation: \cite{A01}.
Parenthetical citation: \parencite{A01}.
Normal citation: \cite{A01}.
\printbibliography
\end{document}
输出:
答案2
使用当前版本biblatex
(使用 v3.16 [2020-12-31] 测试,但基本内容已经存在于 v3.4 [2016-05-10] 中),您可以使用上下文相关的分隔符接口。
\parencite
要将参考书目中的“and”更改为“&”,请使用以下命令
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
\DeclareDelimFormat[bib,parencite]{finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
Normal citation: \cite{sigfridsson}.
Parenthetical citation: \parencite{sigfridsson}.
Textual citation: \textcite{sigfridsson}.
\printbibliography
\end{document}
我应该指出,根据上下文,作者之间的分隔符不同,这是 APA 样式的一个特点。如果您正在寻找完整的 APA 样式,您可能需要查看biblatex-apa
。
\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Normal citation: \cite{sigfridsson}.
Parenthetical citation: \parencite{sigfridsson}.
Textual citation: \textcite{sigfridsson}.
\printbibliography
\end{document}