我将卷/号样式改为“vol. X, n° Y”。它适用于article
条目,但不适用于periodical
条目。我不明白为什么?
这是一个 MWE:
\documentclass[a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\usepackage[style=authoryear,backend=biber]{biblatex}
\addbibresource{biblio_mwe.bib}
%Remplace les points par des virgules dans la biblio
\renewcommand{\newunitpunct}[0]{\addcomma\addspace}
\DefineBibliographyStrings{french}{%
volume = {vol\adddot},%
volumes = {vol\adddot},%
jourvol = {vol\adddot},%
}
%On supprime "in" de la présentation des articles (mais pas des inbook, etc.)
\renewbibmacro{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
%On passe de "vol.numero" à ", vol. XX, n° XY"
\DeclareFieldFormat[article,periodical,inreference]{number}{\bibstring{number}~#1}
\DeclareFieldFormat[article,periodical,inreference]{volume}{\bibstring{volume}~#1}
\renewbibmacro*{volume+number+eid}{%
\setunit*{\addcomma\space}% NEW
\printfield{volume}%
% \setunit*{\adddot}% DELETED
\setunit*{\addcomma\space}% NEW
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
附有 bib 文档:
@periodical{periodical,
title = {Journal},
issuetitle = {Issue Title},
volume = {284},
number = {5411},
date = {1999},
langid = {english},
}
@article{article,
title = {Article Title},
author = {Author},
journaltitle = {Journal Title},
volume = {3},
number = {1},
date = {2013},
pages = {33-67},
langid = {english},
}
我只是希望期刊条目看起来像文章条目(用逗号和空格而不是句点)。
答案1
volume
由于某种原因,打印和number
的宏@periodical
不使用volume+number+eid
。但我们可以做到。
\renewbibmacro*{title+issuetitle}{%
\usebibmacro{periodical}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}