以下是 mwe:
% !TEX encoding = UTF-8 Unicode
% !TEX program = lualatex
% !BIB program = biber
\begin{filecontents}[overwrite]{\jobname.bib}
@article{a,
author = {Smith, John},
title = {Title of the contribution},
journaltitle = {Journaltitle},
date = {2000},
}
@article{b,
author = {Smith, Jack},
title = {Title of the contribution},
journaltitle = {Journaltitle},
date = {2000},
}
\end{filecontents}
\documentclass{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{\jobname.bib}
\DeclareUniquenameTemplate{
\namepart[use=true, base=true]{prefix}
\namepart[base=true]{family}
\namepart[disambiguation=full]{given}
}
\begin{document}
\autocite{a}
\autocite{b}
\autocite{a}
\printbibliography
\end{document}
如您所见,简短的引用定义没有消除标签名称歧义的可能性。
能找到解决办法吗?谢谢
答案1
选项提供了名称消歧义uniquename
功能,但verbose
样式默认不启用此功能。因此您必须自行执行此操作
\documentclass{article}
\usepackage[style=verbose, uniquename=true]{biblatex}
\DeclareUniquenameTemplate{
\namepart[use=true, base=true]{prefix}
\namepart[base=true]{family}
\namepart[disambiguation=full]{given}
}
\begin{filecontents}{\jobname.bib}
@article{a,
author = {Smith, John},
title = {Title of the contribution},
journaltitle = {Journaltitle},
date = {2000},
}
@article{b,
author = {Smith, Jack},
title = {Title of the contribution},
journaltitle = {Journaltitle},
date = {2000},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem\autocite{a}
ipsum\autocite{b}
dolor\autocite{a}
\printbibliography
\end{document}