自然风格的书目

自然风格的书目

我需要根据《自然》的要求调整我的参考书目风格。

以下是参考列表中需要包含的内容:

39. Lucas, A., Mangeney, A., Mège, D., & Bouchut, F. Influence of the scar geometry on landslide dynamics and deposits: Application to martian landslides. J. Geophys. Res. - Planets, **116**, E10001, (2011).

目前,我有一些非常接近的东西:

[39] Lucas A., Mangeney A., Mège D., & Bouchut F. Influence of the scar geometry on landslide dynamics and deposits: Application to martian landslides. J. Geophys. Res. - Planets, **116**, E10001, (2011).

但是,我需要在每个名字和首字母后加一个逗号,并将 [39] 改为 39。

基本上我目前使用

\usepackage[superscript]{cite}

\bibliographystyle{unsrt}

我想我需要编辑 unsrt(即制作自己的副本然后编辑它)。实际上,我已经更改了它,以便获得“and”而不是“&”符号,以及括号中的所有年份,而 unsrt 则不是这种情况。我快要成功了,但说实话,我有点卡住了。

以下是 bst 文件的样子,大家可以看到,在原始的 unsrt.bst 中已经添加了符号和括号中的年份:

 FUNCTION {format.date}
 { year empty$
{ month empty$
    { "" }
    { "there's a month but no year in " cite$ * warning$
      month
    }
  if$
}
{ month empty$
     { "(" year * ")" * }
      {month " "  * "(" year * }
  if$
}
  if$
}


 FUNCTION {format.names}
 { 's :=
   #1 'nameptr :=
   s num.names$ 'numnames :=
   numnames 'namesleft :=
   { namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
  nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
            { "," * }
            'skip$
          if$
          t "others" =
            { "{\it et~al.}" * }
            { " \& " * t * }
          if$
        }
      if$
    }
    't
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=
}
while$
 }

那么我应该如何更改 format.name 函数以便在每个姓氏和首字母后添加“,”?bst 对我来说真的很神秘。

谢谢你的帮助!

答案1

好的,现在可以正常工作,因为我将 bst 文件更改如下:

 FUNCTION {format.names}
  { 's :=
 #1 'nameptr :=
 s num.names$ 'numnames :=
numnames 'namesleft :=
  { namesleft #0 > }
 %   { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=  % TDS
 { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first
   nameptr #1 >
     { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
            { "," * }
            'skip$
          if$
          t "others" =
            { " et~al." * }
            { " \& " * t * }
          if$
        }
      if$
    }
    't
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=
}
while$
}

仍然需要研究编号的格式(即 [])。

相关内容