Biblatex:无法从文档序言中获取新的 BibliographyOption 来工作

Biblatex:无法从文档序言中获取新的 BibliographyOption 来工作

我正在尝试在 biblatex 中添加一个用户选项,以在两种显示 DOI 的方式之间进行选择,但如果该选项是由用户在序言中发出的,则我无法使该选项生效。

为了说明我的问题,我准备了下面的 MWE。test.bbx样式加载authoryear.bbx并添加选项compactdois。如果我在 bbx 文件中将选项设置为 true(viaExecuteBibliographyOptions或 via settoggle),DOI 实际上会以紧凑的方式显示。但是以三种方式(作为包选项、viaExecuteBibliographyOptions或 via settoggle)中的任何一种在文档序言中发出命令都不起作用。

我做错了什么?我希望能够在文档序言中设置该选项,而不是在样式中一劳永逸地设置bbx

梅威瑟:

\documentclass{minimal}

\begin{filecontents}{\jobname.bib}
@Article{abbott-1997-NoteNatureWater,
  author       = {Abbott, Barbara},
  title        = {A Note on the Nature of {\emph{Water}}},
  journal      = {Mind},
  year         = 1997,
  volume       = 106,
  number       = 422,
  pages        = {311-319},
  doi          = {10.1093/mind/106.422.311}
}
\end{filecontents}

\begin{filecontents}{test.bbx}
\RequireBibliographyStyle{authoryear}

\newtoggle{test:compactdois}
\DeclareBibliographyOption[boolean]{compactdois}[true]{%
  \settoggle{test:compactdois}{#1}}

% \ExecuteBibliographyOptions{compactdois}                       % works
% \settoggle{test:compactdois}{true}                             % works

\iftoggle{test:compactdois}%
{\DeclareFieldFormat{doi}{%
    \mkbibacro{DOI}\addcolon\space{#1}}}
{\DeclareFieldFormat{doi}{%
    \url{https://doi.org/#1}}}
\end{filecontents}

\usepackage[backend=biber,bibstyle=test]{biblatex}
%\usepackage[backend=biber,bibstyle=test,compactdois]{biblatex}  % no effect

% \ExecuteBibliographyOptions{compactdois}                       % no effect
% \settoggle{test:compactdois}{true}                             % no effect

\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}

\printbibliography[heading=none]

\end{document}

相关内容