最近升级了TexLive2020,\input
打包一个子文件时,出现“Improper alphabetic constant”的错误standalone
,如果直接把子文件内容放到主文件中是没有问题的,如果子文件是普通文件,没有\begin{document}...\end{document}
.
该文件使用旧版 TexLive2019 编译成功。如果我将类更改为article
,似乎就可以了。但我用中文书写,ctexart
类更方便。请帮忙。
这是 MWE。主文件:
% !TeX encoding = UTF-8
\documentclass{ctexart}
\usepackage{standalone}
\usepackage{tikz}
\begin{document}
\input{G105}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (1,1);
\fill[gray] (O) |- (A) -- cycle;
\end{tikzpicture}
\end{document}
子文件:G105.tex
% !TeX encoding = UTF-8
\documentclass[class=ctexart]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (1,1);
\fill[gray] (O) |- (A) -- cycle;
\end{tikzpicture}
\end{document}
答案1
这是一个类似的问题https://tex.stackexchange.com/a/568498/2388但这里有独立的,没有子文件。
通过在加载文件之前清空钩子,您可以避免该问题(我不得不使用 fandol 字体集,因为对我来说这是默认错误):
\documentclass[fontset=fandol]{ctexart}
\usepackage{standalone}
\usepackage{tikz}
\begin{document}
%\ShowHook{env/document/before}
\RemoveFromHook{env/document/before}[xeCJK]
\input{G105}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (1,1);
\fill[gray] (O) |- (A) -- cycle;
\end{tikzpicture}
\end{document}