问题
一、从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文件