Biblatex 期刊名称非斜体

Biblatex 期刊名称非斜体

我想使用 biblatex 将期刊名称改为非斜体。有没有办法使用 DeclareFieldFormat 来实现这一点?

我可以使用 DeclareFieldFormat 将文章名称改为斜体,并且我想以类似的方式将期刊名称改为非斜体。我使用

\documentclass[11pt]{amsart}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage{graphicx}
\usepackage[style=alphabetic, backend=biber, giveninits=true]{biblatex}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=2, strside=left, ifnames=1]{labelname}
\field[strwidth=1, strside=left]{labelname}
}
    }
\DeclareFieldFormat{extraalpha}{#1}
\DeclareNameAlias{author}{first-last}
\renewbibmacro{in:}{}
\DefineBibliographyExtras{english}{%
\renewcommand*{\finalnamedelim}{\addcomma\addspace}%
}
\DeclareFieldFormat[article]{title}{\textit{#1}}
\DeclareFieldFormat{citetitle}{\textit{#1}}
\DeclareFieldFormat*[article]{title}{\textit{#1}}
\DeclareFieldFormat[article,book]{title}{\textit{#1}}
\DeclareFieldFormat*[article]{citetitle}{\textit{#1}}
\DeclareFieldFormat[article,book, thesis]{citetitle}{\textit{#1}}
\bibliography{sample}


\begin{document}
\printbibliography
\end{document}

当我运行这个程序时,sample.bib 中的所有期刊名称(文章)都以斜体显示。

答案1

内部journal调用字段journaltitle(准确地说,调用字段journaltitle,并且journal只是自动重新映射到的别名journal)。因此,您需要重新定义字段格式journaltitle

\DeclareFieldFormat{journaltitle}{#1\isdot}

我还建议你使用

\mkbibitalic

而不是在指令\textit中。如果您想允许在斜体和直立字体之间切换,\DeclareFieldFormat也可以使用。\mkbibemph


在 MWE 中,您似乎误用了 的带星号版本。带星号的版本会清除所有类型特定的格式,因此直接使用可选的类型参数似乎是多余的。带有和\DeclareFieldFormat重新定义的整个块可能可以压缩为titlecitetitle

\DeclareFieldFormat*{title}{\mkbibitalic{#1}}
\DeclareFieldFormat*{citetitle}{\mkbibitalic{#1}}

\DeclareNameAlias{author}{first-last}应替换为

\DeclareNameAlias{author}{given-family}

但这应该是默认设置,所以根本没有必要。


最后,finalnamedelim通常不需要重新定义\DefineBibliographyExtras,而现在应该使用上下文敏感的分隔符接口重新定义。对于你的情况,我猜最干净的方法是

\DeclareDelimAlias{finalnamedelim}{multinamedelim}

相关内容