springer期刊提供的LaTex模板参考文献问题

原网址 :https://blog.csdn.net/qq_58524586/article/details/149167555

 

问题

  一、从Springer官网下载的LATEX格式https://www.springernature.com/gp/authors/campaigns/latex-author-support)编译报错,且无法显示参考文献(显示[?])或参考文献的年份在最后。

二、参考文献格式每两条中间有空行

首先前期感谢大佬的一篇解决方案,链接springer期刊提供的LaTex模板参考文献格式为作者+年份时的顺序问题_sn-article-CSDN博客

一、解决步骤

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

将这行注释,并取消注释“\documentclass[sn-basic]{sn-jnl}”,如图

2. 复制bst文件夹下的sn-basic.bst,并粘贴到与.tex同一级下,如图:

3. 查找刚粘贴的sn-basic.bst文件里的两个SORT并注释!(ctrl+f查找)

我的文件是1729和1782行

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

注释其中以下语句:

替换为:

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

完整代码如下:

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

  1.  
    \bibliographystyle{plain}
  2.  
    \bibliography{sn-bibliography} % 这里替换为您的 .bib 文件
  3.  
     
  4.  
    \end{document}
 

6. 编译运行tex文件

 

注意注意:上述改完参考文献在文中会显示成  作者+年份

如果将正文中的参考文献格式改成【1】【15-18】引用格式,在该基础上进行补充:

7.打开sn-jnl.cls,替换内容

将以下代码

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

替换为

  1.  
    \usepackage[numbers,sort&compress]{natbib}%
  2.  
    \gdef\NumBib{YES}%
 

8.5. 打开tex文件

导入并添加\usepackage{natbib}并重新编译,成功显示如下

二、解决步骤

问题:有空行,编译后的文件

1.找到并打开sn-jnl.cls文件,找到\if@Spr@basic@refstyle%下的 \setlength{\bibsep}{1em}%

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

修改 \setlength{\bibsep}{1em}%为 \setlength{\bibsep}{0em}%,重新编译cls后重新编译tex文件

最后成功!!如下:

 
posted @ 2026-01-30 16:26  MaskerFan  阅读(2)  评论(0)    收藏  举报