我在 latex 中使用标准样式,并想覆盖它,以从 Type 中删除引号Conference
。在我的 bbx 文件中,我使用:
\RequireBibliographyStyle{standard}
我以为我可以使用下面的方法来删除所有引号。但那不起作用。
\DeclareFieldFormat{title}{#1}
答案1
biblatex
的字段格式允许特定类型的自定义。biblatex
打印字段时,它首先检查当前条目的条目类型是否设置了特殊格式;如果是,则使用特定类型的格式,否则biblatex
将返回该字段的通用格式。标准样式大量使用此方案,通常为具有不同输出的类型定义通用格式和特定类型的格式。
“通用”格式用 定义\DeclareFieldFormat{<field>}{<format code>}
,类型特定格式用定义\DeclareFieldFormat[<types>]{<field>}{<format code>}
。星号形式\DeclareFieldFormat*{<field>}{<format code>}
重置所有类型特定定义,然后仅定义通用格式。
如果直接使用\DeclareFieldFormat{<field>}{<format code>}
没有达到预期效果,则可能需要使用特定于类型的格式。只有在样式实现时仔细检查才能确定。
字段格式title
使用特定于类型的格式,默认值可以在biblatex.def
,第 524-530 行并且是
\DeclareFieldFormat{title}{\mkbibemph{#1}}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\mkbibquote{#1\isdot}}
\DeclareFieldFormat
[suppbook,suppcollection,suppperiodical]
{title}{#1}
这意味着标题通常用 格式化\mkbibemph
(基本上\emph
,通常会给出斜体,如果嵌套则切换回直立),但第二个定义中列出的类型使用引号(\mkbibquote
),而第三个定义中列出的类型没有特殊格式。
示例书目如下@suppcollection
(安克与梅勒), @book
(马龙), @incollection
(松树) 和@article
(西格弗里德森和赖德) 的标题格式如下(添加颜色只是为了更容易在视觉上区分不同的行/组,第一个为红色,第二个为蓝色,最后一个为绿色)。
和
\DeclareFieldFormat{title}{#1}
只有没有特定定义的类型的格式才会改变。特别是,不会删除引号,因为这些引号是由特定类型的指令添加的;相反,您可以将标题从强调字体更改为正常字体(例如@book
,,@online
...)。
在我们上面的例子中,只有红色标题@book
马龙从斜体变为无格式。
和
\DeclareFieldFormat*{title}{#1}
在应用新格式之前,您会清除所有类型特定的格式。这意味着现在所有类型都使用正常/当前字体:没有引号,也没有添加强调。
在本例中,所有条目都具有相同的字段格式,不添加任何格式。(所有标题都以相同的颜色显示,因为它们都共享一个通用的字段格式。)
和
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
您只需更改那些带有引号的字段格式即可将其丢失。
在示例中,@incollection
和@article
条目的蓝色标题删除了引号。
平均能量损失
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertinus}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
% double quotes for British English
\DeclareQuoteAlias[american]{english}{british}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@suppcollection{anker,
author = {Anker, Elizabeth S. and Meyler, Bernadette},
pages = {1--30},
publisher = {Oxford University Press},
editor = {Anker, Elizabeth S. and Meyler, Bernadette},
booktitle = {New Directions in Law and Literature},
title = {Introduction},
year = {2017},
location = {New York},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{sigfridsson,maron,anker,pines}
\printbibliography
\end{document}
至于为什么默认行为是这样的,我只能提供以下观察。
不同类型的作品的标题格式不同,这并不是 所独有的biblatex
。众所周知的 APA 格式(https://apastyle.apa.org/style-grammar-guidelines/references/elements-list-entry#title) 和芝加哥风格 (https://www.chicagomanualofstyle.org/tools_citationguide/citation-guide-2.html) 也呈现出类似的模式。
粗略地说,biblatex
将独立作品的标题(@book
s、@collection
s、整个期刊等)格式化为斜体,而仅构成整体一部分的从属作品(@inbook
、、、等)的标题则用引号格式化。我喜欢这样想:如果您浏览本地图书馆,您会在书籍@incollection
或@article
期刊的封面或书脊上找到斜体标题,并且通常无需打开书即可阅读。通常只有在打开书并查看目录或相关论文/章节/部分后才能找到引号中的标题。