使用 \textcite 或 \citeauthor 与 biblatex 时,如何让“et al.”以斜体显示

使用 \textcite 或 \citeauthor 与 biblatex 时,如何让“et al.”以斜体显示

我使用的biblatexchem-rscpackage 选项。我有时会使用 \textcite{<key>}\citeauthor{<key>}命令将作者姓名放入文本中。如果作者姓名较多,它会显示“Bloke et al.”,但我想让“et al.”以斜体显示。

我确信有一些通过重写部分命令来实现这一点的黑客方法。但我希望有一些相当直接和可靠的方法来实现这一点。

答案1

“et al.”对应于本地化键andothers。在大多数样式中,它由通用书目宏设置name:andothers。您可以重新定义此宏以将其包装\bibstring{andothers}在中\emph

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=chem-rsc]{biblatex}

\renewbibmacro*{name:andothers}{% Based on name:andothers from biblatex.def
  \ifboolexpr{
    test {\ifnumequal{\value{listcount}}{\value{liststop}}}
    and
    test \ifmorenames
  }
    {\ifnumgreater{\value{liststop}}{1}
       {\finalandcomma}
       {}%
     \andothersdelim\bibstring[\emph]{andothers}}
    {}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\textcite{companion} \citeauthor{companion}
\printbibliography
\end{document}

在此处输入图片描述

答案2

这是另一个例子,egregxpatch包派上了用场。无需复制粘贴name:andothersbibmacro 的全部内容,可以有选择地应用更改(如 Marco Daniel 所建议的):

\documentclass{article}

\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=chem-rsc]{biblatex}

\usepackage{xpatch}

\xpatchbibmacro{name:andothers}{%
  \bibstring{andothers}%
}{%
  \bibstring[\emph]{andothers}%
}{}{}

\addbibresource{biblatex-examples.bib}

\begin{document}
\textcite{companion} \citeauthor{companion}
\printbibliography
\end{document}

答案3

实现此目的的另一种方法如下:

\usepackage[maxnames=6,minnames=3]{biblatex}
\DefineBibliographyStrings{english}{%
    andothers = {\em et\addabbrvspace al\adddot}
}

您实际上可以控制整个文本及其样式,并且可以控制不同的语言。

答案4

如果您使用的是biblatexv3.17 (2022-01-25) 或更高版本,则可以使用 bibstring 格式集以斜体排版“et al.”

字符串格式集允许我们对字符串集应用额外的格式。例如,我们可以给出一组拉丁语术语并使用斜体。字符串集通常在 中按语言定义\DefineBibliographyExtras,因为它们的逻辑取决于实际翻译。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\DefineBibliographyExtras{british}{%
  \DeclareBibstringSet{latin}{andothers,ibidem}%
  \DeclareBibstringSetFormat{latin}{\mkbibemph{#1}}%
}
\UndefineBibliographyExtras{british}{%
  \UndeclareBibstringSet{latin}%
}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{aksin}

\printbibliography
\end{document}

“Lorem (Aksın et al. 2006)”中的斜体“et al.”

更多背景和讨论可参见https://github.com/plk/biblatex/pull/1028https://github.com/plk/biblatex/pull/1027https://github.com/plk/biblatex/issues/899

相关内容