由于反斜杠,LaTeX 无法解析我的 bib 文件中的期刊名称

由于反斜杠,LaTeX 无法解析我的 bib 文件中的期刊名称

我从 NASA ADS(天体物理学文章查找工具)下载了各种 bibtex 参考资料。它们都用反斜杠来引用期刊名称,就像代码一样。例如,皇家天文学会月刊上的一篇文章是这样说的:

journal = {\mnras},

不幸的是,LaTeX 似乎无法处理这种形式的期刊名称。但由于所有下载的引文都是相同的,我假设 LaTeX 一定有办法读取它。如果是这样,我该怎么做?

附言:我目前正在使用以下链接中的 .bst 文件来读取参考资料,我认为问题就出在这里:ftp://ftp.edpsciences.org/pub/aa/bibtex/aa.bst

答案1

欢迎来到特克斯

BibTeX 的基本工作原理是读取.bib并使用.bst-file 进行处理。然后,Bib(La)TeX.bbl根据文件指令创建一个 LaTeX 文件(带有扩展名) ,通常由具有大量 s 的环境.bst组成。例如,-file 告诉 BibTeX 该条目应包含在环境中。thebibliography\bibitem.bstjournalthebibliography

如果日记帐分录中存在未定义的控制序列,则在包含\mnras该文件时,LaTeX 将会发出抱怨。.bbl

作为NASA ADS 常见问题解答说:

请注意,我们的 BibTeX 条目使用了AASTeX 宏定义最受欢迎的天文学杂志。如果您不使用AASTeX 软件包那么你需要包括这些宏在你的 LaTeX 源中。

简而言之,你所要做的就是下载内容这个文件,将其另存为aas_macros.sty,然后写入\usepackage{aas_macros}你的序言中。


在“一般”情况下,为了解决经验错误,我怀疑最容易行动方案是,正如@mico 在评论中所建议的那样,仅将未定义的控制序列定义为您希望它显示的内容,例如\providecommand\mnras{Monthly Notices of the Royal Astronomical Society}。(\providecommand就像\newcommand但如果命令已经存在则不会执行任何操作)。

如果你想显示实际的反斜杠,就像问题标题建议,那么您可以使用例如 来转义所述反斜杠\textbackslash;例如替换\mnras\textbackslash mnras。在这种情况下,它将在您的参考文本中显示“\mnras”。

如果您想重新定义反斜杠在 bibtex 中的行为方式,那么您将面临一场冒险,并且您可能需要花一两天的时间来完成此操作。

相关内容