今天,我改用 biblatex 进行书目管理,而不是 rsc/natbib(为了某些布局)。现在有几个问题我想解决,但我不知道该怎么做。
- 使用
style=chem-rsc
,我得到的是括号中的引用,而我想要的是方括号。设置citestyle=numeric-comp
适用于文本,但不适用于出版物列表。 - 一些用于 backref 的自定义字体,但使用时
backrefpage = {\it\footnotesize Cited on page}
不设置实际引用页码的字体(参见 MWE)。 - 我想要带下划线的 doi,因此我使用了之前的一个问题中提出的解决方案(带下划线的 doi 和 rsc 软件包),但现在 doi 超出了框架的范围。
- 我正在寻找一种方法来删除引用文章的最后一页,例如
“I. Hung 和 [...] 204, 256,DOI:...”
, 代替
“I. Hung 和 [...] 204, 256-265,DOI:...”
以下是 MWE:
\documentclass[twoside,10pt,a4paper]{report}
\usepackage{fontspec}
\usepackage{soul}
\usepackage{filecontents}
\usepackage[top=3cm,bottom=3cm,left=4cm,right=4cm,showframe]{geometry}
\usepackage[linktoc=all,
hidelinks,
bookmarksnumbered,
xetex]{hyperref}
\usepackage[hyperref=true,
url=true,
doi=true,
natbib=true,
backref=true,
backrefstyle=three,
backend=biber,
refsegment=chapter,
citestyle=numeric-comp,
style=chem-rsc,
maxcitenames=5,
date=year,
block=none,
maxbibnames=100]{biblatex}
%%%%%%
\DefineBibliographyStrings{english}{%
backrefpage = {\it\footnotesize Cited on page}, % for single page number
backrefpages = {\it\footnotesize Cited on pages} % for multiple page numbers
}
%%%%%% doi souligné
\newcommand*\doiformat[1]{\ul{#1}}
\DeclareFieldFormat{doi}{%
\mkbibacro{DOI}\addcolon\space
\ifhyperref
{\href{http://dx.doi.org/#1}{\doiformat{#1}}}
{\doiformat{#1}}}
\begin{filecontents}{\jobname.bib}
@Article{hung2010practical,
Title = {On the practical aspects of recording wideline QCPMG NMR spectra},
Author = {Hung, Ivan and Gan, Zhehong},
Journal = {J. Magn. Reson.},
Year = {2010},
Number = {2},
Pages = {256--265},
Volume = {204},
Doi = {10.1016/j.jmr.2010.03.001},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text.\cite{hung2010practical}
\printbibliography
\end{document}
答案1
对于您的第一个请求chem-rsc
甚至定义了一个名为的选项biblabel
,我们可以将其设置brackets
为获取方括号。
处理 pageref 问题的最佳方式可能是
\DeclareFieldFormat{pagerefformat}{\mkbibparens{\footnotesize\mkbibemph{#1}}}
\renewbibmacro*{pageref}{%
\iflistundef{pageref}
{}
{\printtext[pagerefformat]{%
\ifnumgreater{\value{pageref}}{1}
{\bibstring{backrefpages}\ppspace}
{\bibstring{backrefpage}\ppspace}%
\printlist[pageref][-\value{listtotal}]{pageref}}}}
值得庆幸的是,chem-rsc
还有一个选项可以仅显示第一页,它可以通过选项激活pageranges=false
。
所以我们可以加载
\usepackage[style=chem-rsc,
biblabel=brackets,
pageranges=false,
]{biblatex}