这个问题与这个。该问题的可接受答案是将全局参数传递给biblatex
包。
我不明白的是,要\printbibliography
使用不同的选项进行调用需要做什么?比如说,一个书目打印有doi
信息,而下一个没有。
那么,如何更改document
环境内的包选项?
答案1
一般情况下,您无法biblatex
在文档中本地设置 的全局选项。某些选项可以基于每个类型或每个条目进行设置(从 3.13 版开始)biblatex
可以在以下范围内设置更多选项:https://github.com/plk/biblatex/pull/866,https://github.com/plk/biblatex/pull/877),但这与在文档内切换一个选项不同。请注意,某些选项值会传递到后端,因此无法动态更改,因为它们需要在整个文档中固定。
但是, DOI、ISBN 选项的内部实现eprint
可以很容易地在本地更改。这些选项是通过etoolbox
切换按钮实现的(参见standard.bbx
,第 4-21 页)。调用选项doi
、isbn
、eprint
或url
as几乎相当于将名称的切换related
设置为。<option>=<value>
bbx:<option>
<value>
因此,你可以尝试类似
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson}
\printbibliography[title=\refname\ with DOI]
\begingroup
\togglefalse{bbx:doi}
\printbibliography[title=\refname\ without DOI]
\endgroup
\printbibliography[title=\refname\ with DOI again]
\end{document}
请注意,如果您想在本地(区域性)禁用文档中的某些功能,这是一个可行的解决方案。如果您想隐藏某些条目的 DOI,对于具有特定属性的条目(例如,对于特定类型的条目),那么有更自然的方法可以做到这一点(例如,使用每个类型的选项、源映射或测试)。