赞
踩
今天遇到的问题是latex引用参考文献的时候,想编译的结果为author et al.[1]的模样,但是出现(author?)[1],或者author [year],或者是后面参考文献的地方没有数字标识等等问题。
这些问题主要是从以下几个方面检查入手:
1.开头插入包的位置。
注意导入的包是natbib时,只导入一边就可以了。以下是option选项,按需添加。
authoryear
:作者-年份标注样式。numbers
:数字标注样式。super
:上标数字标注样式。square
:方括号标注样式。sort
:按作者姓氏的字母顺序对参考文献进行排序。longnamesfirst
:首次引用时列出所有作者的姓氏,而不是使用 et al. 简写.注意,authoryear添加上去最后编译的结果就是author [year]了,而不是你想要的author et al.[1]了。
2.正文引用的位置
注意引用的方法。
\citet{引用标签}
:用于产生作者-年份标注的引用。例如,\citet{Smith2021}
将生成 (Smith, 2021)。\citep{引用标签}
:用于产生带括号的作者-年份标注的引用。例如,\citep{Smith2021}
将生成 (Smith, 2021)。\cite{引用标签}
:用于产生数字标注的引用。例如,\cite{Smith2021}
将生成 [1]。\citeauthor{引用标签}
:用于仅产生作者的引用。例如,\citeauthor{Smith2021}
将生成 Smith。\citeyear{引用标签}
:用于仅产生年份的引用。例如,\citeyear{Smith2021}
将生成 2021。有的人使用\citet{...}后编译成 (author?)[1],这个原因是因为在最后\bibliographystyle{...}选用的格式不包括citet方法,不同的参考文献的格式有不同的字体格式,支持的引用方法也有不同。以下是我试过的错(我用的是爱斯维尔模板):
cas-model2-names和unsrtnat这两个参考文献的格式都有\citet的功能,出现(author?)是因为使用的格式中不包含这种方法,已知的不包含这种方法的参考文献格式有elsarticle-num和IEEE trans,另外在设置\usepackage[authoryear,sort,square,numbers]{natbib}时,authoryear会让编译出的引用变成. Jia et al.[2021],若想要 Jia et al.[1]如此,上面的选项参数中需要删掉authoryear,保留numbers。
3.最后的参考文献的部分
第一个是指定哪种参考文献的格式,这个看具体期刊的要求,后面的.bib文件是项目文件的参考文献数据库文件,也就是bibtex文件。
总而言之,引用方法,开头导入包时候的opotion设置,最后的参考文献格式的设置要对应上,否则就会出错。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。