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中,找到如下语句:

注释其中以下语句:

替换为:
-
\usepackage[authoryear]{natbib}%
-
\gdef\NumBib{YES}%
完整代码如下:

5. 在tex文件的\end{document}前面添加
-
\bibliographystyle{plain}
-
\bibliography{sn-bibliography} % 这里替换为您的 .bib 文件
-
-
\end{document}
6. 编译运行tex文件
注意注意:上述改完参考文献在文中会显示成 作者+年份
如果将正文中的参考文献格式改成【1】【15-18】引用格式,在该基础上进行补充:
7.打开sn-jnl.cls,替换内容
将以下代码
-
%\usepackage[authoryear]{natbib}%
-
%\gdef\NumBib{NO}%
替换为
-
\usepackage[numbers,sort&compress]{natbib}%
-
\gdef\NumBib{YES}%
8.5. 打开tex文件
导入并添加\usepackage{natbib}并重新编译,成功显示如下

二、解决步骤
问题:有空行,编译后的文件

1.找到并打开sn-jnl.cls文件,找到\if@Spr@basic@refstyle%下的 \setlength{\bibsep}{1em}%
-
\if@Spr@basic@refstyle%
-
\if@Numbered@refstyle%
-
\usepackage[numbers,sort&compress]{natbib}%
-
\gdef\NumBib{YES}%
-
\else%
-
%\usepackage[authoryear]{natbib}%
-
%\setcitestyle{aysep={}}
-
%\gdef\NumBib{NO}%
-
\usepackage[numbers,sort&compress]{natbib}%
-
\gdef\NumBib{YES}%
-
\fi%
-
\bibliographystyle{sn-basic}%
-
\setlength{\bibsep}{1em}%
-
\def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}%
-
\fi%
修改 \setlength{\bibsep}{1em}%为 \setlength{\bibsep}{0em}%,重新编译cls后重新编译tex文件
最后成功!!如下:


浙公网安备 33010602011771号