clefval.sty:!包 inputenc 错误:无效的 UTF-8 字节“A0

clefval.sty:!包 inputenc 错误:无效的 UTF-8 字节“A0

升级到 TeX Live 2020 后,我们的一个投影仪演示文稿出现了这个错误。

我一直在尝试追踪无效字节的来源,并将范围缩小到我们(自定义)Beamer 样式中的一个宏。但是该文件不包含非 ASCII 字符(因此不包含无效的 utf-8 字符)。

演示文稿文件本身确实包含一些非 ASCII 重音字符,但删除它们并不能消除错误。

这让我很困惑。我甚至不知道如何解释错误消息。字节是什么"A0?是吗0xa0?双引号有什么特殊含义吗?

编辑:我设法将其归结为以下内容:

\documentclass{article}

\usepackage{clefval}

\TheKey{j}{Joe}

\begin{document}
\TheValue{j}
\end{document}

会给:

! Package inputenc Error: Invalid UTF-8 byte "A0.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.11     \TheValue{j}

我敢打赌这就是 clefval.sty 中的问题:

\nfss@text{\reset@font\bfseries^^a0????}%

答案1

clefval软件包已更新;当前版本为 0.1,发布于 2020/07/27。diff新旧版本之间的 A 显示

10,11c10,11
< %% Copyright (C) 2004 Y. Henel, le TeXnicien de surface
< %% <[email protected]>
---
> %% Copyright (C) 2004, 2020 Y. Henel, le TeXnicien de surface
> %% <[email protected]>
14c14
< %% the LaTeX Project Public License, either version 1.2 of this license
---
> %% the LaTeX Project Public License, either version 1.3c of this license
20,23c20,21
< %% and version 1.2 or later is part of all distributions of LaTeX version
< %% 1999/12/01 or later.
< %%%% Copyright (C) 2004 by Josselin Noirel
< %%%%   and Yvon Henel <[email protected]>
---
> %%%% Copyright (C) 2004, 2020 by Josselin Noirel
> %%%% and Yvon Henel aka Le TeXnicien de surface
26,27c24,25
< \def\fileversion{v0}
< \def\filedate{2004/05/22}
---
> \def\fileversion{v0.1}
> \def\filedate{2020/07/27}
30a29
>
34c33
<   \nfss@text{\reset@font\bfseries^^a0????}%
---
>   \nfss@text{\reset@font\bfseries[?? #2 ??]}%

最后一行是关键。

该错误不再产生。

答案2

这应该可以作为解决方法(您也可以只重置 ^^a0 的 catcode)

\documentclass{article}


\UseRawInputEncoding
\usepackage{clefval}
\usepackage[utf8]{inputenc}

\TheKey{j}{Joe}

\begin{document}
\TheValue{j} 
\end{document}

相关内容