![如何合并 bibtex 编号和问题?](https://linux22.com/image/326442/%E5%A6%82%E4%BD%95%E5%90%88%E5%B9%B6%20bibtex%20%E7%BC%96%E5%8F%B7%E5%92%8C%E9%97%AE%E9%A2%98%EF%BC%9F.png)
我有以下内容:
合并是个好主意吗
第 1 期[6] 中的数字 76(1)
(这样与[7]更加一致)还是说这不是好的引用风格?
所以我喜欢用数字与问题 当且仅当如果没有定义数字?这可能吗?
使用以下设置:
\usepackage[
backend=biber,
%citestyle = alphabetic,
%bibstyle = ieee-alphabetic,
sortlocale=en_US,
sorting=nyt,
backref=true,
hyperref=true,
firstinits=true,
style=numeric,%style=alphabetic,
defernumbers=true,
isbn=false,
%eid=true,
doi=true,
%series=true,
eprint=false,
bibencoding = utf8
]{biblatex}
\renewcommand*{\mkbibnamefirst}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameaffix}[1]{\textsc{#1}}
\DeclareFieldFormat{eid}{Art.\addnbspace#1}
\DeclareFieldFormat{issue}{Iss.\addnbspace#1}
\DeclareFieldFormat{volume}{Vol.\addnbspace#1}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\AtEveryBibitem{%
\ifentrytype{article}{%
\clearfield{month}%
\clearfield{day}%+
}{%
}%
}
% http://tex.stackexchange.com/questions/154864/biblatex-use-doi-only-if-there-is-no-url
% only URL if no DOI otherwise DOI
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:doi}
{\printfield{doi}}
{}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\iftoggle{bbx:url}
{\iffieldundef{doi}{\usebibmacro{url+urldate}}{}}
{}}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit
}
\renewbibmacro*{institution+location+date}{%
\printlist{institution}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit
}
\renewbibmacro*{organization+location+date}{%
\printlist{institution}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit
}
% makes volume of journal bold and adds colon
\DeclareFieldFormat[article]{volume}{\textbf{#1}}
答案1
文档biblatex
对该领域有以下评价issue
(第 19 页):
期刊的期号。此字段适用于各期号以“春季”或“夏季”等名称而非月份或数字标识的期刊。由于期号的位置与
month
和类似number
,因此此字段也适用于双期和其他特殊情况。
number
因此,在这种情况下您应该使用字段
@article{PhysRevE.76.011301,
title = {Force transmission in a packing of pentagonal particles},
author = {Azéma, Emilien and Radjaï, Farhang and Peyroux, Robert and Saussine, Gilles},
journal = {Phys. Rev. E},
volume = {76},
number = {1},
pages = {011301},
date = {2007-07},
doi = {10.1103/PhysRevE.76.011301},
}
如果你不能这样做(但你真的应该这样做),你可以使用 Biber 的源映射来为你做到这一点
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=issue, match=\regexp{\A(\d+)\Z}, final]
\step[fieldset=number, fieldvalue={$1}]
\step[fieldset=issue, null]
}
}
}
如果前者仅包含数字,则将其复制issue
到该字段,然后删除该字段。number
issue
平均能量损失
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{PhysRevE.76.011301,
title = {Force transmission in a packing of pentagonal particles},
author = {Azéma, Emilien and Radjaï, Farhang and Peyroux, Robert and Saussine, Gilles},
journal = {Phys. Rev. E},
volume = {76},
issue = {1},
pages = {011301},
date = {2007-07},
doi = {10.1103/PhysRevE.76.011301},
}
@article{PhysRevE.86.031303,
title = {Discrete simulation of dense flows of polyhedral grains down a rough inclined plane},
author = {Azéma, Emilien and Descantes, Yannick and Roquet, Nicolas and Roux, Jean-Noël and Chevoir, François},
journal = {Phys. Rev. E},
volume = {86},
number = {3},
pages = {031303},
date = {2012-06},
doi = {10.1103/PhysRevE.86.031303},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=issue, match=\regexp{\A(\d+)\Z}, final]
\step[fieldset=number, fieldvalue={$1}]
\step[fieldset=issue, null]
}
}
}
\begin{document}
\nocite{*}
\printbibliography
\end{document}