书法 tikz 库出现未定义序列错误

书法 tikz 库出现未定义序列错误

以下 MWE 来自calligraphy手册(第 9 页),其中Joseph Wright 的解决方法对于库中已过时函数的使用:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage{expl3}
\ExplSyntaxOn
\int_zero_new:N \g__prg_map_int 
\ExplSyntaxOff
\usetikzlibrary{decorations,calligraphy}
\begin{document}
\tikz \calligraphy [copperplate] (0,0) .. controls
+(1,−1) and +(−1,1) .. ++(3,0) [this stroke
style={light,taper=start}] +(0,0) .. controls
+(1,−1) and +(−1,1) .. ++(3,0) [this stroke
style={heavy}] +(0,0) .. controls +(1,−1) and
+(−1,1) .. ++(3,0) [this stroke
style={light,taper=end}] ;
\end{document}

但是,我收到以下编译错误:

! Undefined control sequence.
\GenericError  ...                                
                                                    #4  \errhelp \@err@     ...
l.20 style={light,taper=end}] ;

?

最好的解决方法或修复方法是什么?我意识到 是\GenericError定义的,正如latexdef所说的那样。事实上,它给出了一个使用 的定义\@err@。因此,大概\@err@应该在 被\GenericError调用之前定义,但事实并非如此。但这些都不能真正解释为什么我在手册的代码中遇到错误。

该库还依赖于 ,\__prop_split:cnTF它被定义为 的变体\__prop_split:NnTF。但是,我在 中找不到它interface3,pdf。另一方面,它在 中l3kernel/expl3-code.tex,所以我猜它应该可以工作?

答案1

这里的问题是这些符号:它们是不是'hyphen-minus' ( -)。由于 LaTeX2e 2018 及以后版本启用了 UTF-8 支持作为 pdfTeX 的标准,因此您收到一个有点神秘的错误。在扩展上下文中,(非 ASCII)UTF-8 字符在这种方案下会产生一些奇怪的结果,但它从来都不是“正确的”。用标准连字符替换字符可以解决这个问题。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage{expl3}
\ExplSyntaxOn
\int_zero_new:N \g__prg_map_int 
\ExplSyntaxOff
\usetikzlibrary{decorations.pathreplacing,calligraphy}
\begin{document}
\tikz \calligraphy [copperplate] (0,0) .. controls +(1,-1) and +(-1,1) .. ++(3,0) [this stroke
style={light,taper=start}] +(0,0) .. controls
+(1,-1) and +(-1,1) .. ++(3,0) [this stroke
style={heavy}] +(0,0) .. controls +(1,-1) and
+(-1,1) .. ++(3,0) [this stroke
style={light,taper=end}] ;
\end{document}

在此处输入图片描述

相关内容