插入参考书目时出现问题

插入参考书目时出现问题

我正在尝试使用 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类似);amsfontsamssymb
  • 如果提供您的文档类的包(在 CTAN 意义上)加载了这些包,则不要加载这些包natmove
  • 绝不如果你的类的文档告诉你,它修改这些包的行为(natbib);
  • 不要加载试图做同样的事情或精确控制文档的同一方面的包,除非您确信它们是兼容的 - 如果出现异常,请将这些包放在您的嫌疑人列表的较高位置(,,,achemso.cls等等)。cite.stynatmove.stynatbib.sty

读取控制台输出。警告和错误旨在向您提供有关错误的信息。它们并不总是能很好地做到这一点,但有时确实如此。例如,一个错误告诉我不要\bibliographystyle{}在文档中使用。解释该消息不需要特别了解 TeX 或 LaTeX。错误还表明和存在问题natmove.stycite.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}

相关内容