新英格兰医学杂志 (NEJM) 的 Biblatex 样式文件

新英格兰医学杂志 (NEJM) 的 Biblatex 样式文件

这个问题导致了一个新的方案的出现:
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

如果对这个更新版本有足够的需求,我愿意想办法让更改更加深思熟虑(例如,在某种支持版本控制的存储库中添加包,并使我的更改更清晰,可能还会添加关于理由的评论)。

不过我已经有一段时间没有做这件事了,所以我需要一段时间才能重新理解我做了什么以及为什么这样做。

相关内容