升级到 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}