当前位置:   article > 正文

springer期刊提供的LaTex模板参考文献格式为作者+年份时的顺序问题_sn-article

sn-article

问题

在有些期刊投稿时,需要使用作者+年份的参考文献格式来写。如下所示:
在这里插入图片描述
从Springer官网下载的LATEX格式(https://www.springernature.com/gp/authors/campaigns/latex-author-support)编译报错,且无法显示参考文献或参考文献的年份在最后。

解决步骤

1. 在sn-article.tex中找到如下语句:

在这里插入图片描述
将这行注释,并将上一行取消注释
在这里插入图片描述

2. 复制bst/sn-basic.bst,并粘贴到与.tex同一级下

在这里插入图片描述

3. 查找刚粘贴的sn-basic.bst文件里的两个SORT并注释!(1708行和1761行)

% SORT
STRINGS { last.label next.extra }
INTEGERS { last.extra.num number.label }
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'last.extra.num :=
  #0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}
FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}
EXECUTE {initialize.extra.label.stuff}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {bib.sort.order}
{ sort.label
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}
ITERATE {bib.sort.order}
% SORT
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

4. 在sn-jnl.cls中,找到如下语句:

\if@Spr@basic@refstyle%
\if@Numbered@refstyle%
  \usepackage[numbers,sort&compress]{natbib}%
  \gdef\NumBib{YES}%
\else%
 \usepackage[authoryear]{natbib}%
  \gdef\NumBib{NO}%
\fi%
  \bibliographystyle{sn-basic}%
  \setlength{\bibsep}{1em}%
  \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}%
\fi%
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注释其中以下语句

 % \usepackage[authoryear]{natbib}%
 % \gdef\NumBib{NO}%
  • 1
  • 2

并替换为:

 \usepackage[authoryear]{natbib}%
  \gdef\NumBib{YES}%
  • 1
  • 2

完整如下:

\if@Spr@basic@refstyle%
\if@Numbered@refstyle%
  \usepackage[numbers,sort&compress]{natbib}%
  \gdef\NumBib{YES}%
\else%
 % \usepackage[authoryear]{natbib}%
 % \gdef\NumBib{NO}%
 	 \usepackage[authoryear]{natbib}%
	  \gdef\NumBib{YES}%
\fi%
  \bibliographystyle{sn-basic}%
  \setlength{\bibsep}{1em}%
  \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}%
\fi%
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

5. 在tex文件的\end{document}前面添加

% 参考文献表号从[1]改为1.
\makeatletter
\renewcommand\@biblabel[1]{#1.}
\makeatother

\bibliography{sn-bibliography}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6. 编译运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/545114
推荐阅读
相关标签
  

闽ICP备14008679号