答案1
biblatex-nature
在 bibmacro 中强制使用斜体表示“et al.” name:andothers
(nature.bbx
,第 216-231 行于 v1.3d 中)
\renewbibmacro*{name:andothers}{%
\ifboolexpr
{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
test \ifmorenames
}
{
\ifnumgreater{\value{liststop}}{1}
{\finalandcomma}
{}%
\andothersdelim
\mkbibemph{\bibstring{andothers}}%
}
{}%
}
(这有点不符合习惯用法。\mkbibemph{\bibstring{andothers}}
更自然的是\bibstring[\mkbibemph]{andothers}
。或者更好的是,使用包装命令而不是裸命令\mkbibemph
。)
如果我们不想andothers
在跨语言中使用斜体字符串,我们将需要重新定义这个宏来摆脱\mkbibemph
。
\documentclass{article}
\usepackage[
backend=biber,
style=nature,
]{biblatex}
\renewbibmacro*{name:andothers}{%
\ifboolexpr
{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
test \ifmorenames
}
{
\ifnumgreater{\value{liststop}}{1}
{\finalandcomma}
{}%
\andothersdelim
\bibstring{andothers}%
}
{}%
}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \citeauthor{companion}
ipsum \textcite{aksin}
\printbibliography
\end{document}
答案2
你可以使用
\DefineBibliographyStrings{english}{andothers = {\upshape et al\adddot}}
以您喜欢的任何方式进行格式化et al.
(如果您使用英语以外的其他语言书写,请进行相应调整)。
请注意,我必须biblabel=brackets
从您的代码片段中删除它以避免引发错误。
\documentclass{article}
\usepackage[
%bibstyle=nature,
%citestyle=nature,
backend=bibtex,
style=nature,
%biblabel=brackets,
giveninits=true,
abbreviate=true,
doi=false,
eprint=true,
url=false,
isbn=false,
block=space,
natbib
]{biblatex}
\DefineBibliographyStrings{english}{andothers = {\upshape et al\adddot}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\citeauthor{companion}
\printbibliography
\end{document}