使用 biblatex 和 verbose-trad2 样式,我想反转姓氏和名字的顺序用于内联引用。
默认行为是:
John DOE,标题、地点:出版商、年份
对于内联引用(在我的情况下,在带有命令的脚注中footcite
)和:
DOE,John,标题,地点:出版商,年份
在文档末尾的参考书目中。
我希望内联引用和最终引用都采用以下格式(类似于参考书目样式)。
DOE,John,标题,地点:出版商,年份
PS:有一些问题比较接近(例如这个),但仅限于最终的参考书目(没有内联引用)。\DeclareNameAlias{sortname}{last-first}
仅适用于结束引用(而不是内联引用)。
答案1
您还必须设置default
,因为 * 中的 cite 命令verbose-trad2
是临时设置的\DeclareNameAlias{sortname}{default}
(默认情况下为default
)\DeclareNameAlias{default}{given-family}
。
因此只需发出
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
在序言中。请注意,default
在其他几个地方也使用了,因此此更改也会影响参考书目。如果您想要仅影响引文的修改,请参见下文。
数学家协会
\documentclass{article}
\usepackage[style=verbose-trad2, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
\begin{document}
A\footcite{wilde}
B\footcite{cicero}
\printbibliography
\end{document}
给出
* 代码可以在 中找到verbose-trad2.cbx
,下面的第六行是有问题的代码。
\newbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\global\toggletrue{cbx:fullcite}%
\printtext[bibhypertarget]{%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}
这向我们展示了一个不同的解决方案
\DeclareNameAlias{sortname}{family-given}
\renewbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\global\toggletrue{cbx:fullcite}%
\printtext[bibhypertarget]{%
\usedriver
{}
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}
但当然更长。效果略有不同,因为这只会影响长引文中的名称格式,而不会影响其他任何地方。
编辑如果您使用的是过时的版本,请参阅 3.3 之前代码的编辑历史biblatex
。参见Biblatex 3.3 名称格式。