可以通过以下方式省略 url
url=false
如何省略address
?
我尝试过address=false
但不是那样。
刚刚发现:
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\step[fieldset=address, null]
\step[fieldset=editor, null]
}
}
}
答案1
至少是标准样式
url=no,
是无效的,将产生类似以下的错误
! Package etoolbox Error: Invalid boolean value 'no'.
url
是布尔选项,只能取值true
或false
(也可以不带值出现,相当于传递值true
)。
与某些人持有的观点相反,这种观点不适用于所有字段,尽管这种观点时不时出现在各种 LaTeX 论坛以及本网站上。事实上,只有 、url
(isbn
以及issn
和isrn
)eprint
和related
字段可以用这种方式隐藏。所有其他字段都需要用不同的方法删除。
处理时要记住两件事address
。
address
实际上只是为了向后兼容 BibTeX 而提供的便利别名。Biberlocation
将 字段重新映射到 字段。内部biblatex
只知道location
而不知道address
。biblatex
区分三种类型的字段。名称列表、列表和(适当)字段。如果要清除“字段”,则\clear...
需要知道其类型并使用相应的\clear...
命令(\clearfield
、\clearlist
、\clearname
)。location
是一个列表。您可以biblatex
通过查阅biblatex
文档,特别是第 2.2 节输入字段。
有多种方法可以删除某个字段。
我完全摆脱address
/ 的首选方法location
是通过 Biber 源映射。源映射在应用字段别名之前执行,因此在之前address
重新映射到location
。因此,我们需要对null
和address
进行location
操作以确保address
/location
消失。
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\step[fieldset=address, null]
\step[fieldset=location, null]
}
}
}
此方法将完全删除字段的所有痕迹。Biber 将不会使用该字段来计算任何高级功能,如名称唯一性、标签...字段等,也不会将其传递给biblatex
。
一个稍微不那么漂亮的去除方法location
是
\DeclareListInputHandler{location}{\def\NewValue{}}
Biber 仍然会看到该场,并且可能会将其考虑在内进行计算,但biblatex
会简单地忽略它。
最后,你可以选择性地隐藏引文或参考书目中的字段
\AtEveryCitekey{\clearlist{location}}
\AtEveryBibitem{\clearlist{location}}
这样,数据就已经被 Biber 处理过了,并且可以用于标签和唯一性计算;原则上它也为人所知biblatex
,但是你告诉它暂时忘掉它。
总的来说,我认为尽早忽略一个字段是个好建议(特别是如果我们谈论的是名称或日期字段),但对于大多数涉及的意图和目的而言,location
这address
三种方法会产生相同的结果。