这个问题导致了一个新的方案的出现:
biblatex-nejm
日记新英格兰医学杂志(NEJM) 对参考文献有以下要求。我找不到标准样式文件。最接近的匹配是什么?我如何根据此进行自定义?
在引用中,它看起来像1–3, 7, 8
句子末尾的(没有方括号)。
对于参考书目,当作者人数为六人或更少时,列出所有作者;当作者人数为七人或以上时,列出前三位,然后列出et al.
以下是文章类型的示例:
Shapiro AMJ、Lakey JRT、Ryan EA 等。使用无糖皮质激素免疫抑制方案对 7 名 1 型糖尿病患者进行胰岛移植。N Engl J Med 2000;343:230-8。
编辑1:
问题 1
此篇文章的 bib 条目:
@ARTICLE{Shapiro2000,
author = { Shapiro, A M J and Lakey, J R T and Ryan, E A and Lisa Schreiber and Jon Smith and Allan Jones and Cathy Smith},
title = { Islet transplantation in seven patients with type 1 diabetes mellitus using a glucocorticoid-free immunosuppressive regimen},
journal = { N Engl J Med },
year = {2000},
volume = {343},
pages = {230-8} }
我已经修复了作者初始的问题。现在它是
新英格兰医学杂志2000;343:230-8。
我需要帮助。我非常感谢您的时间和帮助。
问题2
在参考书目中,如何才能得到“1。”而不是“1“?
编辑2:
问题 3
期刊名称不应该是斜体。我们可以改正吗?
问题 4
假设书目项目中有一个输入字段number = {2}
,我们如何防止它出现在参考书目中?
解决方案 5
来自@的提示步调一致:
请谷歌::biblatex
删除参考书目中姓氏和名字之间的逗号
terseinits=true
似乎不工作backend=biber
当我移除时backend=biber
,它terseinits=true
开始工作。
非常感谢@马可
答案1
编辑(2011 年 8 月 31 日 17:00 CET) 我构建了一个小包,可供您使用:
\usepackage[style=nejm,backend=biber]{biblatex}
该包包括对该威胁的修改和 NEJM 的示例。
该包裹目前在 CTAN 上。
编辑(30.08.11 09:00 CET)现在所有 5 个问题都已在代码中实现。
terseinits=true
与 biber 配合使用。您还需要选项firstinits=true
现在我使用 bib-entry韓國修改样式numeric
\documentclass[english]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{Shapiro2000,
author = { Shapiro, A M J and Lakey, J R T and Ryan, E A and Lisa Schreiber and Jon Smith and Allan Jones and Cathy Smith},
title = { Islet transplantation in seven patients with type 1 diabetes mellitus using a glucocorticoid-free immunosuppressive regimen},
journal = { N Engl J Med },
year = {2000},
number={2},
volume = {343},
pages = {230-8}}
\end{filecontents}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[style=numeric,%
minnames=3, maxnames=6,%
terseinits=true,%
firstinits=true,
backend=biber]{biblatex}
\renewrobustcmd*{\bibinitperiod}{\addspace}
\renewbibmacro*{name:last-first}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifpunctmark{'}{}{\bibnamedelimc}}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}}%remove \addcomma
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
% \ifblank{#2#3}{}{\addcomma}%%commented
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
\ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
%Name-scheme in thebibliography
\DeclareNameAlias{default}{last-first}
%cite without brackets
\DeclareCiteCommand{\cite}%[\mkbibbrackets]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
%no bracktes in thebibliography
\DeclareFieldFormat{labelnumberwidth}{#1}
%no pp
\DeclareFieldFormat{pages}{#1}
%no In by journal name:
\newbibmacro*{in:}{}
%Order year;volume:page
\renewbibmacro*{issue+date}{%
\printtext{%
% \printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}}%
\newunit}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\usebibmacro{issue+date}%
\setunit*{\addsemicolon}
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
% \usebibmacro{issue+date}%
\setunit{\addcomma\space}%
\usebibmacro{issue}%
\newunit}
\renewcommand*{\bibpagespunct}{\addcolon}
%Journalname roman
\DeclareFieldFormat*{journaltitle}{#1}
%no number
\newbibmacro*{volume+number+eid}{%
\printfield{volume}%
% \setunit*{\adddot}%
% \printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\addbibresource{\jobname}
\begin{document}
\cite{Shapiro2000}
\printbibliography
\end{document}
答案2
很抱歉这么长时间后才挖掘这个问题,但我认为我可以做出一些贡献。
我使用过这个问题产生的包,发现它有一些问题。我设法修复了它们,我想也许其他人也可以使用它。我尝试在包页面上添加评论,但网站不起作用(ajax 请求返回 404)。
我的更改与 minnames 有关,我将其设置为 6(但这可能不是其他人想要的),但更重要的是,我修复了因其他软件包的更改而引起的一些问题。
如果它对任何人有帮助,我会在这里添加更新版本。如果您需要将 minnames 改回 3,这应该足够简单。
%% Copyright (C) 2011 by Marco Daniel
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Marco Daniel.
%%
%% This work consists of the files nejm.bbx, nejm.cbx, biblatex-nejm.tex
%% and biblatex-nejm.pdf
%%$Id: nejm.bbx 28 2011-09-09 17:17:01Z marco $
%%$Rev: 28 $
%%$Author: marco $
%%$Date: 2011-09-09 19:17:01 +0200 (Fr, 09. Sep 2011) $
\def\biblatexnejmversionbbx{v0.4}
\def\biblatexnejmpackagenamebbx{nejm.bbx}
\def\biblatexnejmsvnbbx$#1: #2 #3 #4-#5-#6 #7 #8${#4/#5/#6\space }
\ProvidesFile{nejm.bbx}[\biblatexnejmsvnbbx$Id: nejm.bbx 28 2011-09-09 17:17:01Z marco $ \biblatexnejmversionbbx: \biblatexnejmpackagenamebbx]
%use numeric.cbx as base
%Warning if backend isn't biber
\RequireBiber[2]
%need style:
\RequireBibliographyStyle{standard}
%set options to biblatex
\ExecuteBibliographyOptions
{
isbn = false ,
labelnumber = true ,
minnames = 6 ,
maxnames = 6 ,
firstinits = true ,
terseinits = true ,
sorting = none ,
% language = nejm ,
}
%provide original option
\providebool{bbx:subentry}
\DeclareBibliographyOption{subentry}[true]{%
\setbool{bbx:subentry}{#1}}
\providetoggle{bbx:articledoi}
\DeclareBibliographyOption{articledoi}[false]{%
\settoggle{bbx:articledoi}{#1}}
\providetoggle{bbx:articlein}
\DeclareBibliographyOption{articlein}[false]{%
\settoggle{bbx:articlein}{#1}}
\providetoggle{bbx:printlang}
\DeclareBibliographyOption{printlang}[false]{%
\settoggle{bbx:printlang}{#1}}
%specify language
\DeclareListFormat{language}{%
\iftoggle{bbx:printlang}{%
\usebibmacro{list:delim}{%
\ifbibstring{#1}%
{\bibxstring{#1}}%
{\ifbibstring{lang#1}%
{\bibxstring{lang#1}}%
{#1}}}%
\ifbibstring{#1}%
{\bibstring{#1}}%
{\ifbibstring{lang#1}%
{\bibstring{lang#1}}%
{#1}}%
\usebibmacro{list:andothers}%
}{}%
}
%format date -- only year printed
\@ifpackageloaded{babel}{%
\edef\blx@tempa{\bbl@main@language}%
}{%
\edef\blx@tempa{\blx@languagename}%
}
\DefineBibliographyExtras{\blx@tempa}{%
%<year><month><day>
\protected\def\mkbibdatelong#1#2#3{%
\stripzeros{\thefield{#1}}%
}%
\protected\def\mkbibdateshort#1#2#3{%
\mkdatezeros{\thefield{#1}}%
}%
}
%Set environment
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}
\defbibenvironment{shorthands}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{\hss##1}}}
{\endlist}
{\item}
%%
\DeclareBibliographyDriver{set}{%
\entryset
{\ifbool{bbx:subentry}
{\printfield[bibentrysetcount]{entrysetcount}%
\setunit*{\addnbspace}}
{}}
{}%
\newunit\newblock
\usebibmacro{setpageref}%
\finentry}
%remove punctuation and space after initials -- require biber
\renewrobustcmd*{\bibinitperiod}{}
%separator printed before the pages field
\renewcommand*{\bibpagespunct}{\addcolon}
%no bracktes in thebibliography and add dot
\DeclareFieldFormat{labelnumberwidth}{#1\adddot}
%not formating pages
\DeclareFieldFormat*{pages}{#1}
%not formated journaltitle
\DeclareFieldFormat*{journaltitle}{#1}
%not formated title
\DeclareFieldFormat*{title}{#1}
% %Set name format
\DeclareNameAlias{default}{last-first}
\DeclareNameAlias{sortname}{last-first}
% %Not needed??
\DeclareNameAlias{author}{last-first}
\DeclareNameAlias{editor}{last-first}
\DeclareNameAlias{translator}{last-first}
%remove comma between familyname and firstname
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifpunctmark{'}{}{\bibnamedelimc}}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}}%remove \addcomma
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
% \ifblank{#2#3}{}{\addcomma}%%commented
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
\ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
%option articledoi -- no doi / eprint / url in article
\newbibmacro*{doi+eprint+url-use}{%
\iftoggle{bbx:doi}%
{\printfield{doi}}%
{}%
\newunit\newblock
\iftoggle{bbx:eprint}%
{\usebibmacro{eprint}}%
{}%
\newunit\newblock
\iftoggle{bbx:url}%
{\usebibmacro{url+urldate}}%
{}%
}
\renewbibmacro*{doi+eprint+url}{%
\ifentrytype{article}%
{%
\iftoggle{bbx:articledoi}%
{\usebibmacro{doi+eprint+url-use}}{}%
}{\usebibmacro{doi+eprint+url-use}
}%
}
%no bibstring in in article:
\renewbibmacro*{in:}{%
\ifentrytype{article}%
{\iftoggle{bbx:articlein}{\printtext{\bibstring{in}\intitlepunct}}{}}%
{\printtext{\bibstring{in}\intitlepunct}}%
}
%no number in ouput of bibliography
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
% \setunit*{\adddot}%
\iffieldundef{number}{}{(\printfield{number})}%
\setunit{\addcomma\space}%
\printfield{eid}}
\renewbibmacro*{date}{%
\printfield{year}%
\iffieldundef{month}{}{\space\printfield{month}}}%
%Order year;volume:page
\renewbibmacro*{issue+date}{%
\printtext{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}}%
\newunit}
\renewbibmacro*{journal+issuetitle}{%
% author2: \usebibmacro{author} ;\space
\usebibmacro{journal}%
\setunit*{\addspace}%
\usebibmacro{issue+date}%
\setunit*{\addsemicolon}
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\setunit{\addcomma\space}%
\usebibmacro{issue}%
\newunit}
\endinput
如果对这个更新版本有足够的需求,我愿意想办法让更改更加深思熟虑(例如,在某种支持版本控制的存储库中添加包,并使我的更改更清晰,可能还会添加关于理由的评论)。
不过我已经有一段时间没有做这件事了,所以我需要一段时间才能重新理解我做了什么以及为什么这样做。