我使用 pdfLaTeX 和 bibLaTeX,并以 biber 为后端。在我的参考书目中,我想将所有作者或编辑的姓氏加粗;但@collection
如果条目是@incollection
则不加粗编辑的姓氏。换句话说,我希望将参考书目条目中以 开头的所有名字的姓氏加粗,但不加粗可能跟在条目标题后面的名字。我找到了一个类似的问题及其解决方案:以粗体显示 biblatex 书目中第一作者的姓氏。
我怎样才能实现这样的结果?由于我对深入的 LaTeX 的了解非常有限,而且我无法自己更改解决方案(上面提到的)中给出的宏,所以我希望有人有解决方案。
答案1
此解决方案现已更新为biblatex
>= 3.3,请参阅 3.3 之前版本的编辑历史。
我按照我的解决方案以粗体显示 biblatex 书目中第一作者的姓氏,但所有作者均以粗体显示。唯一的变化是现在始终以 为单位显示\renewcommand*{\mkbibnamelast}[1]{\mkbibbold{##1}}
,而不仅限于名字。
\DeclareNameAlias{sortname}{family-given-fb}
\DeclareNameFormat{family-given-fb}{%
\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
平均能量损失
\documentclass{article}
\usepackage[style=authoryear,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareNameAlias{sortname}{family-given-fb}
\DeclareNameFormat{family-given-fb}{%
\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
\begin{document}
\cite{sigfridsson,gaonkar:in,brandt}
\printbibliography
\end{document}
如果您使用不使用的数字样式,sortname
您还需要
\DeclareNameAlias{author}{family-given-fb}
\DeclareNameAlias{editor}{family-given-fb}
\DeclareNameAlias{translator}{family-given-fb}