编译器:XeLaTeX
Bibliography.bib
我有一个包含以下代码的文件:
@misc{Bacterial_Classification,
author = "Franklin D. Lowy",
title = "Bacterial Classification, Structure and Function",
howpublished = {\url{https://api.semanticscholar.org/CorpusID:49963607 (accessed: Columbia University, 2008)}},
keywords = "Basics of Bacteria"
}
@article{Mass_Spectrometry,
author = "Anja Freiwald
and Sacsha Sauer",
title = "Phylogenetic classification and identification of bacteria by mass spectrometry",
journal = "Nat Protoc",
volume = "4",
number = "5",
pages = "732-742",
year = "2009, doi: https://doi.org/10.1038/nprot.2009.37",
DOI = "https://doi.org/10.1038/nprot.2009.37",
keywords = "Spectrometry"
}
在main.tex
我希望参考书目的最终文件中,我有以下代码:
\pagestyle{plain}
\nocite{*}
\bibliographystyle{ieeetr}
\renewcommand{\refname}{REFERENCES}
\phantomsection
\addcontentsline{toc}{section}{REFERENCES}
\bibliography{Bibliography.bib}
\clearpage
那么,我已经按照 IEEE 格式编写了,对吗?在 IEEE 格式中,参考文献按引用在文档正文中出现的顺序出现。“参考文献列表条目应按照论文正文中引用来源的顺序排列,从 [1] 开始,然后按数字升序排列,从最低数字到最高数字。参考文献列表条目不按作者或来源标题的字母顺序排列。“
我提到Bacterial_Classification
第一的作为\cite{Bacterial_Classification}
和然后我提到 Mass_Spectrometry 是\cite{Mass_Spectrometry}
在 pdf 的结果输出中,在最后一节的参考文献中,它们看起来像这样:
[1] A. Freiwald 和 S. Sauer,“通过质谱法对细菌进行系统发育分类和鉴定”,Nat Protoc,第 4 卷,第 5 期,第 732-742 页,2009 年,doi:https://doi.org/10.1038/nprot.2009.37。
[2] FD Lowy,“细菌的分类、结构和功能。”https://api.semanticscholar.org/ 语料库ID:49963607(访问日期:哥伦比亚大学,2008 年)。
Mass_Spectrometry
如果我删除( )的引用,\cite{Mass_Spectrometry}
那么引用当然会排在第二位(因为 1)这是文件中的顺序.bib
,并且 2)无论哪种方式我都有引用Bacterial_Classification
),但如果我再次引用它(我重复后的引用Bacterial_classification
)它将再次排在第一位……
为什么会发生这种情况?第二个引用在文本中也首先出现,编号为 [1],而第一个引用在文本中第二个出现,编号为 [2]。我该如何解决这个问题?
PS:如果我用确切地相同的序言可以解决问题……我快要疯了。是我的文本中有什么导致了这个问题吗?怎么会这样?这不是代码……我实际上只是用复制/粘贴相同的序言创建了一个新文档,并且我只在阶段中写了参考书目代码\begin{document} \end{document}
。
PS2:(已编辑)我刚刚发现问题是我有很多.tex
文件。我的意思是我有主文件,但我有.tex
每个章节的文件。因此,当我在其他.tex
文件中引用参考书目而不是在主文件中引用参考书目时,参考文献就会出现仅有的按字母顺序。
我该如何修复这个问题?我的代码中必须包含什么以及在哪里?
答案1
请帮自己一个大忙,不要再使用非常过时的ieeetr
参考书目样式。如果您改用IEEEtran
参考书目样式,则参考书目条目将按照它们在\cite
文档正文中的命令中出现的顺序进行排序。
在下面的代码中,请注意我已经替换
howpublished = {\url{https://api.semanticscholar.org/CorpusID:49963607 (accessed: Columbia University, 2008)}},
和
url = "https://api.semanticscholar.org/CorpusID:49963607",
year = 2008,
note = "Accessed: Columbia University",
即,IEEEtran
bib 样式知道一个名为的字段url
。
% !TEX TS-program = xelatex
\documentclass{article}
\begin{filecontents}[overwrite]{Bibliography.bib}
@misc{Bacterial_Classification,
author = "Franklin D. Lowy",
title = "Bacterial Classification, Structure and Function",
url = "https://api.semanticscholar.org/CorpusID:49963607",
year = 2008,
note = "Accessed: Columbia University",
keywords = "Basics of Bacteria"
}
@article{Mass_Spectrometry,
author = "Anja Freiwald and Sascha Sauer",
title = "Phylogenetic classification and identification of bacteria by mass spectrometry",
journal = "Nat Protoc",
volume = "4",
number = "5",
pages = "732-742",
year = "2009",
url = "https://doi.org/10.1038/nprot.2009.37",
keywords = "Spectrometry"
}
\end{filecontents}
\usepackage{cite} % classic citation management package for numeric citation call-outs
\bibliographystyle{IEEEtran} % <-- not 'ieeetr', please
\usepackage{xurl} % allow line breaks at arbitrary points in a URL string
\begin{document}
\noindent
\cite{Bacterial_Classification}, \cite{Mass_Spectrometry}
\bibliography{Bibliography}
\end{document}