我正在尝试使用 achemso 包来制作参考书目,但遇到了参考文献问题。但我无法在生成的 pdf 中看到任何内容。这是我使用的包
\begin{filecontents}{\jobname.bib}% and this is my bib file
@article{1,
title={Resistance of Neisseria gonorrhoeae to antimicrobial hydrophobic agents is modulated by the mtrRCDE efflux system},
author={Hagman, Kayla E and Pan, Wubin and Spratt, Brian G and Balthazar, Jacqueline T and Judd, Ralph C and Shafer, William M},
journal={Microbiology},
volume={141},
number={3},
pages={611--622},
year={1995},
publisher={Microbiology Society}
}
\end{filecontents}
\documentclass[journal=jacsat, layout=singlecolumn]{achemso}
\setkeys{acs}{articletitle=true}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\usepackage{xkeyval}
\usepackage{cite}
\usepackage{amstext}
\usepackage{csvsimple}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{refstyle}
\usepackage{amstext}
\usepackage{gensymb}
\usepackage{upgreek}
\usepackage{natmove}
\usepackage{natbib}
\usepackage{array}
\title{title}
\begin{document}
\bibliographystyle{achemso}
\bibliography{\jobname}
\end{document}
有人能指出问题出在哪里吗?谢谢
答案1
坦白说,你的序言很乱。我强烈怀疑你实际上并不知道为什么要加载 MWE 中包含的至少一半的包(它们根本不相关)。这很重要,因为在这种情况下往往会发生错误、神秘的怪异现象和其他暗淡而令人沮丧的事情。
您没有提到编译错误,这很奇怪,因为即使进行了明显的更正,我还是无法毫无错误地编译您的代码。所以我不确定这是否有用,因为我不确定我是否重现了您遇到的问题。即使没有,您也应该清理序言。
以下是一些一般准则:
- 根据需要加载任意数量的包仅此而已;
- 如果不确定是否需要某个包,请注释掉加载并测试;
- 永远不要加载同一个包两次;
- 不要加载已被其他包加载的包,至少当这种关系是第一个包存在的理由时,例如
amstext
与正是因为您可能想在不使用后者的情况下使用前者——在加载后者时它没有任何用处(对于和也amsmath
类似);amsfonts
amssymb
- 如果提供您的文档类的包(在 CTAN 意义上)加载了这些包,则不要加载这些包
natmove
; - 绝不如果你的类的文档告诉你,它修改这些包的行为(
natbib
); - 不要加载试图做同样的事情或精确控制文档的同一方面的包,除非您确信它们是兼容的 - 如果出现异常,请将这些包放在您的嫌疑人列表的较高位置(,,,
achemso.cls
等等)。cite.sty
natmove.sty
natbib.sty
读取控制台输出。警告和错误旨在向您提供有关错误的信息。它们并不总是能很好地做到这一点,但有时确实如此。例如,一个错误告诉我不要\bibliographystyle{}
在文档中使用。解释该消息不需要特别了解 TeX 或 LaTeX。错误还表明和存在问题natmove.sty
,cite.sty
但解释这些问题需要更多的经验。但文档 ( texdoc natmove
) 用非常简单的术语告诉了我很多信息:例如,这achemso
会修改natbib
,并且可能需要调整.bib
文件以获得最佳效果。我推荐它。
我在下面评论了我对你的 MWE 的修改。结果产生
\begin{filecontents}{\jobname.bib}
@article{hagman1995,
title={Resistance of Neisseria gonorrhoeae to antimicrobial hydrophobic agents is modulated by the mtrRCDE efflux system},
author={Hagman, Kayla E and Pan, Wubin and Spratt, Brian G and Balthazar, Jacqueline T and Judd, Ralph C and Shafer, William M},
journal={Microbiology},
volume={141},
number={3},
pages={611--622},
year={1995},
publisher={Microbiology Society}
}
\end{filecontents}
\documentclass[journal=jacsat, layout=singlecolumn]{achemso}% loads natbib, natmove
\setkeys{acs}{articletitle=true}
\usepackage[latin1]{inputenc}% are you really using latin1 input encoding? why? consider switching to utf8.... - not relevant for MWE
\usepackage[english]{babel}% better to specify the variant e.g. british - not relevant for MWE - also there's a weird interaction such that \cite cannot be the first thing in the document if this is loaded (but it is fine otherwise)
% \usepackage{xkeyval}% why are you loading this in a document?
% don't load cite - use achemso's facilities
\usepackage{csvsimple}% not relevant for MWE
\usepackage{amsmath}% includes amstext - not relevant for MWE
\usepackage{amssymb}% includes amsfonts - not relevant for MWE
\usepackage{graphicx}% not relevant for MWE
\usepackage{refstyle}% not relevant for MWE
\usepackage{gensymb}% not relevant for MWE
\usepackage{upgreek}% not relevant for MWE
\usepackage{array}% not relevant for MWE
\usepackage{hyperref}% should be loaded LATE - only packages which you know require later loading should be loaded later - not relevant for MWE
\title{title}% required for MWE
\begin{document}
Some content\cite{hagman1995}% don't use bibkeys such as '1' but something meaningful; 'Some content' added for compatibility with use of babel (see above)
% don't specify another bibstyle command - the class already does this
\bibliography{\jobname}
\end{document}