! 程序包 inputenc 错误: Unicode 字符 (U+2009) (细空格)

! 程序包 inputenc 错误: Unicode 字符 (U+2009) (细空格)

当我尝试编译我的文档时,我收到一个错误,这让我很抓狂。我有一个 bib 文件中的大量引用,但我总是收到上面列出的错误,这(我的理解)意味着我的 bib 文件中有很细的空格,但我不知道它们应该在哪里,而且文件太大,无法检查每个空格。我已经更正了任何存在的 ä、ö、ü 等,所以一定是空格的问题。我使用引用工具直接从文章中复制了 bib 参考资料,也许这就是问题所在?但我觉得自己写引用很愚蠢。

再次出现错误:错误:!包 inputenc 错误:Unicode 字符 (U+2009)(inputenc) 未设置为用于 LaTeX。有关解释,请参阅 inputenc 包文档。输入 H 可立即获得帮助.... ...bliography[heading=bibempty,type=article]

我已经通过 biber 运行它很多次(它没有给我任何错误),删除了 aux、bbl 和 bcf 文件,多次检查 bib 文件中的奇数间距以找出这些细间距的位置,但我找不到错误。

这个问题的最佳解决办法是什么?

我不知道如何使用超过 1000 行的大型 bib 文件制作正确的 MWE,抱歉。以下是我使用的软件包:

\documentclass[12pt,fleqn,xcolor=dvipsnames]{book}
\usepackage[top=3cm,bottom=3cm,left=3cm,right=3cm,headsep=10pt,a4paper]{geometry} % Page margins
\usepackage[table]{xcolor}
\usepackage{graphicx}
\graphicspath{{Pictures/}}
\usepackage{tikz}
\usepackage[english,german]{babel}
\usepackage{enumitem}
\usepackage{avant}
\usepackage{mathptmx}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=numeric,citestyle=numeric,sorting=nyt,sortcites=true,autopunct=true,babel=hyphen,hyperref=true,abbreviate=false,backref=true,backend=biber]{biblatex}
\usepackage{titletoc}
\usepackage{fancyhdr} 
\usepackage{amsmath,amsfonts,amssymb,amsthm}

\begin{document}

\end{document}

我的 bib 文件中也有符号 (%),以便知道我引用了文章的哪些行。这会导致问题吗?例如:

%[ab] In patients with NYHA class II or III CHF and LVEF of 35 percent or less, amiodarone has no favorable effect on survival, whereas single-lead, shock-only ICD therapy reduces overall mortality by 23 percent.
@article{doi:10.1056/NEJMoa043399,
author = {Bardy, Gust H. and Lee, Kerry L. and Mark, Daniel B.  and Poole, Jeanne E. and Packer, Douglas L. and Boineau, Robin  and Domanski, Michael and Troutman, Charles and Anderson, Jill  and Johnson, George and McNulty, Steven E. and Clapp-Channing, Nancy and Davidson-Ray, Linda D. and Fraulo, Elizabeth S. and Fishbein, Daniel P. and Luceri, Richard M. and Ip,  John H.},
title = {Amiodarone or an Implantable Cardioverter-Defibrillator for Congestive Heart Failure},
journal = {New England Journal of Medicine},
volume = {352},
number = {3},
pages = {225-237},
year = {2005},
doi = {10.1056/NEJMoa043399},
note ={PMID: 15659722},
URL = {https://doi.org/10.1056/NEJMoa043399},
eprint = {https://doi.org/10.1056/NEJMoa043399}
}

答案1

感谢您的快速回答!

我下载了 Notepad++,并试图弄清楚如何找到 Unicode Char,但显然我对该程序太不熟悉,无法弄清楚(也许有点太不耐烦了)。但感谢这个选择,我可能会在以后对我的文章进行最后改进时重新考虑它。

目前我不认为我打算将窄间距改为全间距,因为它只在我的参考书目中(因此没有人会关心间距有多宽),而且由于我不断添加引文,这可能是一个永无止境的故事。我不知道有多少自动引文有这样的字符,我不想浪费时间去纠正它们,只为微小的视觉改进。

\DeclareUnicodeCharacter{2009}{\,} 

运行良好,非常感谢!我的文件现在编译起来没有问题,而且我不会再遇到任何问题。

答案2

感谢这是一篇旧帖子,但它在谷歌上排名很高,所以我想补充一点,从 VS Code 1.63 开始,会自动突出显示不可见的 Unicode 字符,例如U+2009

https://code.visualstudio.com/updates/v1_63

感谢 Mark 在 SO 上指出这一点:https://stackoverflow.com/a/70164173/12155200

相关内容