![由于反斜杠,LaTeX 无法解析我的 bib 文件中的期刊名称](https://linux22.com/image/388383/%E7%94%B1%E4%BA%8E%E5%8F%8D%E6%96%9C%E6%9D%A0%EF%BC%8CLaTeX%20%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E6%88%91%E7%9A%84%20bib%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E6%9C%9F%E5%88%8A%E5%90%8D%E7%A7%B0.png)
我从 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
.bst
journal
thebibliography
如果日记帐分录中存在未定义的控制序列,则在包含\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 中的行为方式,那么您将面临一场冒险,并且您可能需要花一两天的时间来完成此操作。