使用 BibLaTeX 将参考书目和括号引文中的“and”替换为“&”

使用 BibLaTeX 将参考书目和括号引文中的“and”替换为“&”

默认情况下,BibLaTeX 中的作者年份样式在最后一位作者前使用单词“and”。我希望在文内引用中保留这个,但希望在参考书目和括号引用中用“和”符号 (&) 替换“and”。

例如,我想要以下内容:

In-text citation: Smith and John (2013)
Parenthetical citation: (Smith & John, 2013)
Bibliography: Smith, A.B. & John, C.D. (2013)...

我该怎么做?我找到了另一个答案,其中指定了如何将所有“and”实例转换为“&”符号,但我无法找到如何仅将参考书目和括号内的引文更改为“&”符号(而不是文内引文):

在 biblatex 中的引文和参考书目中使用与号 &

答案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}

正常引用:Sigfridsson and Ryde 1998。//括号引用:(Sigfridsson & Ryde 1998)。//文本引用:Sigfridsson and Ryde(1998)。//Sigfridsson, Emma & Ulf Ryde(1998)。


我应该指出,根据上下文,作者之间的分隔符不同,这是 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}

正常引用:Sigfridsson and Ryde, 1998。//括号引用:(Sigfridsson & Ryde, 1998)。//文本引用:Sigfridsson and Ryde (1998)。//Sigfridsson, E., & Ryde, U. (1998)。

相关内容