有没有方法biblatex
可以更改输出中参考书目字段的顺序?我使用 样式是trad-abbrv
因为缩写(natbib
我也使用abbrvnat
,因为我非常喜欢它)。我现在想打印期刊后的年份,然后打印出期刊、编号和页码。当前trad-abbrv
按以下顺序打印:
- 作者
- 标题
- 杂志
- 体积
- 数字
- 年
平均能量损失
\documentclass{article}
\usepackage[backend=biber, style = trad-abbrv, citestyle = numeric-comp]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
% Name
\renewcommand{\labelnamepunct}{\addcolon\space}
% Title
\DeclareFieldFormat*{title}{\enquote{#1}\isdot}
\DeclareFieldFormat*{journaltitle}{\mkbibemph{#1},}
% Volume
\DeclareFieldFormat*{volume}{#1}
% Number
\DeclareFieldFormat*{number}{\mkbibparens{#1}}
% Pages
\DeclareFieldFormat*{pages}{\space#1\space}
\renewcommand*{\bibpagespunct}{\addspace}
% Year
\DeclareFieldFormat{date}{\textbf{#1}}
\begin{filecontents}{\jobname.bib}
@article{Yablokov2009,
author = {Yablokov, V Ya and Smel'tsova, I L and Zelyaev, I A and Mitrofanova, S V},
doi = {10.1134/S1070363209080209},
issn = {1070-3632},
journal = {Russ. J. Gen. Chem.},
number = {8},
pages = {1704--1706},
title = {{Studies of the Rates of Thermal Decomposition of Glycine, Alanine, and Serine}},
volume = {79},
year = {2009}
}
\end{filecontents}
\begin{document}
\noindent\cite{Yablokov2009}
\printbibliography
\end{document}
答案1
要将年份移到期刊名称后面,您可以将其添加到journal+issuetitle
宏的定义中,然后从宏中删除issue+date-parens
。这两个宏的原始定义可以在 中找到trad-standard.bbx
。
\documentclass{article}
\usepackage[backend=biber, style = trad-abbrv, citestyle = numeric-comp]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
% Name
\renewcommand{\labelnamepunct}{\addcolon\space}
% Title
\DeclareFieldFormat*{title}{\enquote{#1}\isdot}
\DeclareFieldFormat*{journaltitle}{\mkbibemph{#1},}
% Volume
\DeclareFieldFormat*{volume}{#1}
% Number
\DeclareFieldFormat*{number}{\mkbibparens{#1}}
% Pages
\DeclareFieldFormat*{pages}{\space#1\space}
\renewcommand*{\bibpagespunct}{\addspace}
% Year
\DeclareFieldFormat{date}{\textbf{#1}}
\begin{filecontents}{\jobname.bib}
@article{Yablokov2009,
author = {Yablokov, V Ya and Smel'tsova, I L and Zelyaev, I A and Mitrofanova, S V},
doi = {10.1134/S1070363209080209},
issn = {1070-3632},
journal = {Russ. J. Gen. Chem.},
number = {8},
pages = {1704--1706},
title = {{Studies of the Rates of Thermal Decomposition of Glycine, Alanine, and Serine}},
volume = {79},
year = {2009}
}
\end{filecontents}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\usebibmacro{date}% NEW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommaunit*%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addcomma\space}}%
\usebibmacro{volume+number+pages+eid}%
\newcommaunit
%\setunit{\addspace}%
\usebibmacro{issue+date-parens}%
\setunit*{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\renewbibmacro*{issue+date-parens}{%
\iffieldundef{issue}%
{%
% \usebibmacro{date}
}%
{\printfield{issue}%
\newcommaunit*%
% \usebibmacro{date}
}%
\newunit}
\begin{document}
\noindent\cite{Yablokov2009}
\printbibliography
\end{document}