提问于:
浏览数:
1703
## 编译环境
操作系统
* [x] Windows 10
* [ ] macOS
* [ ] Linux
`若需勾选,请把[ ]改成[x]`
Tex发行版
* [x] TexLive `年份` 2020
* [ ] MikTeX `版本号`
* [ ] CTeX
`若需勾选,请把[ ]改成[x]`
## 我的问题
用input插入standalone子文件,用xeLaTex编译后显示"Improper alphabetic constant"。
之前用TexLive2019没有问题,换电脑装TexLive2020后出现问题。
将子文件内容直接复制在主文件中没有问题。
不用standalone宏包,插入一般文件也没有问题。
何解?
update: 将文件类型改为article就没问题了,用ctexart就有问题。
主文件
```markdown
% !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
```markdown
% !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}
```
update2:
在TeX.SE上有人回答了
[https://tex.stackexchange.com/a/583054/235052](https://tex.stackexchange.com/a/583054/235052)
```markdown
\documentclass[fontset=fandol]{ctexart}
\usepackage{standalone}
\usepackage{tikz}
\begin{document}
%\ShowHook{env/document/before}
\RemoveFromHook{env/document/before}[xeCJK] %emptying the hook before loading the file
\input{G105}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (1,1);
\fill[gray] (O) |- (A) -- cycle;
\end{tikzpicture}
\end{document}
```
1 回答
0
是 `xeCJK` 的问题
- 用中文就别用 `standalone` 宏包
- 用 `standalone` 宏包就别用中文
------------
https://github.com/CTeX-org/forum/issues/186
-
回复 sikouhjw :那是不是改回TL2019的CTex宏集就可以了? – mathhero 2021-02-12 19:25 回复
-
回复 mathhero :「为什么」的部分,因为 CTeX 宏集会更新。 – sikouhjw 2021-02-12 18:29 回复
-
那有什么替代办法吗?为什么TL2019没问题,升级到TL2020就出问题? – mathhero 2021-02-12 16:33 回复
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。