我正在写一份拨款申请,我被要求压缩我的参考书目,使其看起来像这样:
1. 史密斯,J.自然 7, 201-204 (1999).2.琼斯,B.细胞 17, 364-369 (2007). 3. Jackson, R. 等人.J 复合编织 三十二,123-190 (2010)。 4.Parker,P.等人。J 攀岩墙,10,17-21 (1973)。 [...]
仅显示第一作者姓名(后接 et al.)、期刊名称缩写和斜体、卷号加粗、无换行符,这样整个参考文献列表基本上就是一个巨大的段落(我知道,这很丑陋,但这就是我被要求做的),等等。
我使用 biblatex 是因为我需要在提案中间打印此参考书目,在这种情况下使用 biblatex 似乎最容易。是否有任何 biblatex 样式可以满足我的要求?或者如果做不到,使用 bibtex 样式,然后我会弄清楚如何在正确的位置打印参考书目?或者我需要弄清楚如何自己动手?
答案1
此解决方案采用的方法与 Oleg 的方法几乎相同,但它避免使用paralist
包,因为单段列表环境与biblatex
的数字引用标签格式并不完全一致。此处的文档还使用了贡献的样式包biblatex-nature
,但可以应用任何其他数字样式。
\documentclass{article}
\usepackage[style=nature,maxnames=1,uniquelist=false]{biblatex}
\usepackage[colorlinks]{hyperref}
% Some field suppression via options
\ExecuteBibliographyOptions{isbn=false,url=false,doi=false,eprint=false}
% One-paragraph bibliography environment
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}%
\ifentrytype{article}{% Suppress remaining fields/names/lists here
\clearfield{title}}{}}
{\setlength{\leftmargin}{0pt}%
\setlength{\topsep}{0pt}}%
\renewcommand*{\makelabel}[1]{##1}}
{\endlist}
{\mkbibitem}
% \mkbibitem just prints item label and non-breakable space
\makeatletter
\newcommand{\mkbibitem}{\@itemlabel\addnbspace}
\makeatother
% Add breakable space between bibliography items
\renewcommand*{\finentrypunct}{\addperiod\space}
% et al. string upright (nature style applies \mkbibemph)
\renewbibmacro*{name:andothers}{%
\ifboolexpr{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
test \ifmorenames
}
{\ifnumgreater{\value{liststop}}{1}{\finalandcomma}{}%
\andothersdelim
\bibstring{andothers}}
{}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\section{Section title}
Filler text \parencite{bertram,glashow,aksin}.
\printbibliography
\section{Section title}
Filler text.
\end{document}
答案2
这是标准样式的修改numeric
。如果您使用其他样式,则应进行相应修改。除 之外的条目类型也是如此@article
。
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{a1,
author = {Smith, J.},
journal = {Nature},
volume = {7},
pages = {201-204},
year = {1999},
}
@article{a2,
author = {Jones, B.},
journal = {Cell},
volume = {17},
pages = {364-369},
year = {2007},
}
@article{a3,
author = {Jackson, R. and others},
journal = {J Comp Bskt Weave},
volume = {32},
pages = {123-190},
year = {2010},
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{paralist}
\usepackage{xpatch}
\usepackage[style=numeric]{biblatex}
\addbibresource{\jobname.bib}
\defbibenvironment{bibliography}
{\inparaenum[ \printfield{labelnumber}.]}
{\endinparaenum}
{\item}
\DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}}
\DeclareFieldFormat{pages}{#1}
\DeclareNameAlias{default}{last-first}
\renewbibmacro{in:}{}
\xpatchbibmacro{journal+issuetitle}
{\usebibmacro{volume+number+eid}}
{\usebibmacro{volume+number+eid}%
\setunit{\addcomma\space}%
\printfield{pages}%
\clearfield{pages}}
{}{}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
正如 Audrey 所注意到的,它的biblatex-nature
风格更加简单。您只需要修改 bib 环境(因此xpatch
没有必要):
\defbibenvironment{bibliography}
{\inparaenum[ \printfield{labelnumber}.]}
{\endinparaenum}
{\clearfield{title}\item}
我还添加了清除不需要的字段的功能,在这种情况下仅此而已title
。
答案3
我修复了一些东西,我闲置了,所以格式可能不正确。您想要复制的样式不属于biblatex-chem但是如果你已经想好了引用风格(如何格式化参考书目),这仍然可能有帮助。(这是一个相当快速而粗略的解决方案。欢迎提出意见。)
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{foo,
title = {Foo},
publisher = {the Press},
year = {3000},
author = {the Foo and another foo and the bar},
}
@ARTICLE{baz,
author = {the Baz and another baz and the foo},
title = {Baz},
journal = {J. of Baz},
year = {3001},
volume = {1},
pages = {22},
}
@ARTICLE{buz,
author = {the Buz and the baz},
title = {Buz},
journal = {J. of Buz},
year = {3001},
volume = {1},
pages = {22},
}
@BOOK{bar,
title = {Bar},
publisher = {the Press},
year = {3002},
author = {the Bar and the foo},
}
\end{filecontents}
\documentclass[12pt,final]{scrreprt}
\usepackage[backend=biber,
style=chem-biochem,
maxcitenames=1,mincitenames=1,
]{biblatex}
\addbibresource{\jobname.bib}
\newcommand{\numberedfullcite}[1]{\cite{#1}~\fullcite{#1}}
\begin{document}
\leftline{\bfseries Bibliography:}
\noindent\numberedfullcite{foo} %
\numberedfullcite{baz} %
\numberedfullcite{buz} %
\numberedfullcite{bar}
\end{document}
它给: