如何在 .bib 文件中定位有问题的字符

如何在 .bib 文件中定位有问题的字符

当我尝试将参考书目包含在文档中时,我收到了此消息\printbibliography

! Package inputenc Error: Unicode char \u8:‐ not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.174 ...rintbibliography[heading=subbibliography]

我想说问题出在我的 .bib 文件中的某些字符上。但如果我没有收到来自 Biber 的错误消息,我该如何找到有问题的字符?

答案1

这种问题很容易解决。

软件包inputenc会显示一个错误,向您提供有关文档中有问题的字符的信息。 在您的例子中,它是(U+2010 HYPHEN),有问题的行是\printbibliography[heading=subbibliography],这意味着您的.bib文件中有这样的字符。

使用编辑器的“搜索和替换”功能,将该字符替换为 可识别的字符inputenc,例如-(U+002D HYPHEN-MINUS),问题就解决了。

好的编辑器通常能够显示字符的 Unicode 代码。如果您的编辑器没有,而您又想知道该代码,那么您可以在网上找到很多用于此目的的工具。

一个例子是Unicode 字符查找器。将字符粘贴到那里,您将获得所有需要的信息。

在此处输入图片描述

答案2

这个问题解决了一个非常相似的问题: https://stackoverflow.com/questions/13596531/how-to-search-for-non-ascii-characters-with-bash-tools

看看答案建议

nonascii() { LANG=C grep --color=always '[^ -~]\+'; }

您将能够看到所有有问题的字符以红色显示,并且您可以添加额外的 grep 行。例如,您可以忽略 中的 UTF-8 Author,但在Pages字段中打印它。

相关内容