2016 年,我付出了巨大努力,获得了创建符合特定要求的文档所需的所有设置。现在,我重新使用我的设置来创建新文档。我必须实施一些较小的修复、一些弃用的参数和诸如此类的东西,没有什么大不了的。看起来一切都运行良好。
但有一件事让我很困扰。我使用 footcite,在输出中我需要在年份周围加括号。我的旧设置被忽略了(它在 2016 年肯定有效)。输出和我预期的一样,但年份周围的括号不见了。从那时起发生了什么变化?
% Klammern um das Jahr in der Fußnote
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\mkbibparens{%
\printfield{labelyear}%
\printfield{extrayear}}}}}
我的 biblatex 设置如下
\usepackage[
defernumbers=true,
backend=biber,
minnames=1,
maxnames=1,
ibidtracker=context,
bibstyle=numeric,
citestyle=authoryear,
sorting=nyt,
url=false,
isbn=false,
hyperref=true,
urldate=comp,
dateabbrev=false,
sortlocale=de]{biblatex}
非常感谢!
答案1
与您肯定相关的一个变化是 bibmacrocite:labelyear+extrayear
被重命名为cite:labeldate+extradate
(https://github.com/plk/biblatex/commit/189d90db9dbe94dd08f47261e79df09e2a37c66a,https://github.com/plk/biblatex/commit/320f114d493ca7fa310c559c3a48b5912282fa22)。相关近期名称变更列表可参见https://github.com/plk/biblatex/wiki/Name-Changes。
日期处理的其他一些方面也发生了变化,因此代码的现代化版本可能如下所示
\DeclareFieldFormat{citelabeldate}{\mkbibparens{#1}}
\renewbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{\printtext[citelabeldate]{\printlabeldateextra}}}}
使用其中一种样式可以获得类似的效果biblatex-ext
,
\DeclareInnerCiteDelims{cite}{\bibopenparen}{\bibcloseparen}
我应该补充一点,混合bibstyle=numeric,
和citestyle=authoryear,
会导致参考书目中出现多余的数字,这些数字与文档中的任何其他编号无关(引用与不是使用这些数字,它们是作者年份)。
该选项hyperref=true,
通常并不比默认选项更好hyperref=auto,
。这两个选项的唯一区别在于,true
如果未加载包,则会发出警告hyperref
。使用这两个选项时,只有当包hyperref
已加载时才会添加链接。这两种设置都不会自动加载包hyperref
。
很少需要设置sortlocale=de
,sortlocale
将自动从文档语言设置中推断出来。