![Biblatex:音量没有改变文本样式](https://linux22.com/image/461773/Biblatex%EF%BC%9A%E9%9F%B3%E9%87%8F%E6%B2%A1%E6%9C%89%E6%94%B9%E5%8F%98%E6%96%87%E6%9C%AC%E6%A0%B7%E5%BC%8F.png)
我正在尝试将样式的斜体部分更改chem-angew
为倾斜的文本,因为倾斜的文本中的数字比斜体中的数字更不有趣且更易读。
我使用了\DeclareFieldFormat{<field>}{<textstyle>{#1}}
,但它只会将期刊标题更改为倾斜文本,而不会更改卷数。我在这里做错了什么?
这是我正在使用的代码
\usepackage{inputenc}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=chem-angew,
]{biblatex}
%
\addbibresource{bib.bib}
\AtEveryBibitem{%
\clearfield{note}%
\clearfield{doi}
}
%
\DeclareFieldFormat{volume}{\textsl{#1}}
\DeclareFieldFormat{journaltitle}{\textsl{#1}}
答案1
\DeclareFieldFormat{volume}{\textsl{#1}}
没有达到预期的效果,因为chem-angew.bbx
有以下字段格式定义volume
(v1.1y 中第 101-104 页)
\DeclareFieldFormat*{volume}{%
\mkbibitalic{\bibstring{volume}~#1}%
}
\DeclareFieldFormat[article]{volume}{\mkbibitalic{#1}}
这意味着 s 具有特定于类型的格式@article
,因此\DeclareFieldFormat{volume}{\textsl{#1}}
适用于除@article
s 之外的所有类型。
尝试
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=chem-angew,
]{biblatex}
\DeclareFieldFormat{journaltitle}{\textsl{#1}}
\DeclareFieldFormat*{volume}{%
\textsl{\bibstring{volume}~#1}%
}
\DeclareFieldFormat[article]{volume}{\textsl{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
\printbibliography
\end{document}
为了保持一致性,您可能希望参考书目中的所有斜体都为\textsl
,这可以通过重新定义\mkbibitalics
和\mkbibemph
(以及它们的“内部定义”)来实现
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=chem-angew,
]{biblatex}
\makeatletter
\renewrobustcmd*{\mkbibitalic}{\textsl}
\protected\long\def\blx@imc@mkbibitalic#1{%
\textsl{#1}\blx@imc@setpunctfont\textsl}
\renewrobustcmd*{\mkbibemph}{\mkbibitalic}
\def\blx@imc@mkbibemph{\blx@imc@mkbibitalic}
\makeatother
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
\printbibliography
\end{document}