ข้อผิดพลาดรันไทม์ลาเท็กซ์กับคอมไพเลอร์ Xelatex

สภาพแวดล้อม: ubuntu18.04 + texlive-2020 + texstudio

ฉันติดตั้ง texlive สำเร็จแล้วและทดสอบด้วย latex -v ; xelatex -v และพวกมันก็ใช้ได้ดี และใน texstudio ฉันกำหนดค่า texstudio ด้วยพาธ latex, pdflatex, xelatex และ lualatex เสร็จแล้ว

นี่คือรหัสลาเท็กซ์ของฉันซึ่งอ่านง่ายมาก:

\documentclass{article}

\usepackage{xeCJK}

\begin{document}
    
    hello,你好
    
\end{document}

อย่างไรก็ตาม เมื่อฉันคอมไพล์ด้วย xelatex ฉันพบข้อผิดพลาดดังกล่าว: (ฉันสร้างมันด้วยคอมไพเลอร์ pdflatex และมันทำงานได้ดีหากไม่มีภาษาจีน)

expl3.sty error: line 148

File ended while scanning use of \__sys_tmp:w. { \sys_load_backend:n { } }

Missing number, treated as zero. { \sys_load_backend:n { } }

Missing = inserted for \ifnum. { \sys_load_backend:n { } }

Missing number, treated as zero. { \sys_load_backend:n { } }

xeCJK.sty error:

TeX capacity exceeded, sorry [save size=80000]. \xeCJKResetCharClass

และฉันเห็นตัวอย่างข้อมูล expl3.sty บรรทัด 148:

{ \sys_load_backend:n { } }

เนื่องจากไม่มีข้อผิดพลาดในวงเล็บหรือข้อผิดพลาดทางไวยากรณ์ ข้อผิดพลาดนี้เกิดขึ้นได้อย่างไร (ฉันเชื่อว่าข้อผิดพลาดที่มากเกินไปอาจเกิดจากข้อผิดพลาดอื่นๆ) บันทึกการสร้างลาเท็กซ์ของฉัน:

(/usr/local/texlive/2020/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
(/usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2021-01-09 L3 programming layer (loader) 

(/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
File: l3backend-xetex.def 2020-01-29 L3 backend support: XeTeX

(|extractbb --version))
Runaway argument?
\q_stop <\__int_eval:w \c_zero_int \__int_eval_end: \exp_after:wN \use_ii:nnn \
ETC.
! File ended while scanning use of \__sys_tmp:w.
<inserted text> 
                \par 
l.148   { \sys_load_backend:n { } }
                                   
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.

! Missing number, treated as zero.
<to be read again> 
                   \__kernel_tl_set:Nx 
l.148   { \sys_load_backend:n { } }
                                   
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)

! Missing = inserted for \ifnum.
<to be read again> 
                   \__kernel_tl_set:Nx 
l.148   { \sys_load_backend:n { } }
                                   
I was expecting to see `<', `=', or `>'. Didn't.

! Missing number, treated as zero.
<to be read again> 
                   \__kernel_tl_set:Nx 
l.148   { \sys_load_backend:n { } }
                                   
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)

)
Package: xeCJK 2020/10/19 v3.8.6 Typesetting CJK scripts with XeLaTeX

(/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
Package: l3keys2e 2020-10-27 LaTeX2e option processing using LaTeX3 keys
)
(/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.st
y
Package: xtemplate 2020-10-27 L3 Experimental prototype document functions
\l__xtemplate_tmp_dim=\dimen139
\l__xtemplate_tmp_int=\count181
\l__xtemplate_tmp_muskip=\muskip16
\l__xtemplate_tmp_skip=\skip49
) (/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
Package: xparse 2020-10-27 L3 Experimental document command parser

(/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.
tex))
\l__xeCJK_tmp_int=\count182
\l__xeCJK_tmp_box=\box47
\l__xeCJK_tmp_dim=\dimen140
\l__xeCJK_tmp_skip=\skip50
 (/usr/local/texlive/2020/texmf-dist/tex/latex/ctex/ctexhook.sty
Package: ctexhook 2020/10/19 v2.5.5 Document and package hooks (CTEX)
)
\g__xeCJK_space_factor_int=\count183
\l__xeCJK_begin_int=\count184
\l__xeCJK_end_int=\count185
\c__xeCJK_CJK_class_int=\XeTeXcharclass1
\c__xeCJK_FullLeft_class_int=\XeTeXcharclass2
\c__xeCJK_FullRight_class_int=\XeTeXcharclass3
\c__xeCJK_HalfLeft_class_int=\XeTeXcharclass4
\c__xeCJK_HalfRight_class_int=\XeTeXcharclass5
\c__xeCJK_NormalSpace_class_int=\XeTeXcharclass6
\c__xeCJK_CM_class_int=\XeTeXcharclass7
\c__xeCJK_HangulJamo_class_int=\XeTeXcharclass8

! TeX capacity exceeded, sorry [save size=80000].
<argument> ..._xeCJK_begin_int =\l__xeCJK_tmp_int 
                                                  \int_incr:N \l__xeCJK_begi...
l.656 \xeCJKResetCharClass
                          
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

 
Here is how much of TeX's memory you used:
 973 strings out of 477220
 23745 string characters out of 5830450
 300467 words of memory out of 5000000
 20745 multiletter control sequences out of 15000+600000
 403438 words of font info for 28 fonts, out of 8000000 for 9000
 1348 hyphenation exceptions out of 8191
 67i,0n,75p,234b,80001s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.

ดังนั้นคำถามของฉันคือ:

  1. \sys_load_backend คืออะไร มันเป็นคำหลักหรือเปล่า
  2. ไฟล์ expl3.sty เสียหรือไม่? ถ้าเป็นเช่นนั้นฉันจะแก้ไขได้อย่างไร?
  3. เงื่อนไขที่เลวร้ายที่สุด: ฉันจำเป็นต้องรีเซ็ต texlive หรือไม่? แม้ว่าฉันจะได้ทำสิ่งนี้สองครั้ง :(

person switchsyj    schedule 01.02.2021    source แหล่งที่มา
comment
ตัวอย่างของคุณใช้ได้ดีสำหรับฉันด้วย texlive ที่ทันสมัย คุณสามารถแสดงไฟล์ .log ที่สมบูรณ์ของคุณได้หรือไม่   -  person samcarter_is_at_topanswers.xyz    schedule 01.02.2021
comment
ดูเหมือนว่าการติดตั้งของคุณเสียหาย ฉันจะพยายามติดตั้งใหม่/ซ่อมแซม/กำหนดค่า texlive บนระบบของคุณใหม่   -  person rubenvb    schedule 01.02.2021


คำตอบ (3)


ฉันได้แก้ไขปัญหานี้แล้วโดยการเพิ่ม TexLive ให้กับความเข้าใจเส้นทางของ TexStudio:

  1. เปิด Configure TeXstudio... จากเมนูตัวเลือกแบบเลื่อนลง
  2. ทำเครื่องหมายแสดงตัวเลือกขั้นสูง
  3. ไปที่ส่วนสร้าง
  4. ใน Build Options กรอกไดเร็กทอรี TeXLive bin ในช่อง Commands ($PATH)
person z3wood    schedule 11.06.2021

ฉันยังใช้เวอร์ชันตัวติดตั้ง miktex บน win10 และฉันได้รับข้อผิดพลาดเหมือนกับ @Mark วิธีแก้ปัญหาของฉันนั้นง่ายมาก: เรียกใช้ Texworks ด้วยสิทธิ์ของผู้ดูแลระบบ นี่จะแก้ไขปัญหาได้

person Tau Chan    schedule 02.07.2021

ฉันใช้ miktex portable บน win10 และฉันได้รับข้อผิดพลาดเหมือนกัน นี่คือสิ่งที่ฉันพบ:

  1. \sys_load_backend ไม่ใช่สิ่งสำคัญ แต่เป็น __sys_tmp:w แทน รหัสนี้สามารถพบได้ในไฟล์ l3backend-xetex.def และนำไปสู่วิธีแก้ปัญหา ดูด้านล่าง
  2. ไม่ expl3.sty ไม่เสียหาย การเกิดขึ้นของไฟล์นี้เป็นเพียงอาการเท่านั้น แต่ไม่มีความสัมพันธ์กับข้อผิดพลาดและสาเหตุของปัญหา
  3. ฉันคิดว่าไม่จำเป็นต้องรีเซ็ตการติดตั้ง ไฟล์บันทึกข้อผิดพลาดของฉันให้ข้อมูลเพิ่มเติมนี้แก่ฉัน ซึ่งนำไปสู่เหตุผลที่แท้จริง:

ไฟล์: l3backend-xetex.def 2021-03-18 รองรับแบ็กเอนด์ L3: XeTeX ())
อาร์กิวเมนต์ที่ควบคุมไม่ได้? Der Befehl extractbb ist entweder falsch geschrieben หรือ konnte ni\ETC ! ไฟล์สิ้นสุดขณะสแกนการใช้ __sys_tmp:w

l3backend-xetex.def มี __sys_tmp:w และใกล้เคียงมากกับการเรียก extractbb.exe ซึ่งเห็นได้ชัดว่าไม่สามารถพบได้ในอุปกรณ์พกพาของฉัน การติดตั้ง. ฉันแก้ไขด้วยวิธีของเขา: เพิ่มเส้นทางแบบเต็มเพื่อ extractbb.exe ให้กับตัวแปรสภาพแวดล้อมระบบ windows ของคุณ (เทียบเท่าในยูนิกซ์) จากนั้นมันก็ไม่สามารถพกพาได้อีกต่อไป แต่อย่างน้อยมันก็ใช้งานได้ หวังว่าสิ่งนี้จะได้รับการแก้ไข...

person Mark    schedule 10.04.2021
comment
สวัสดีมาร์ค! ฉันเห็นว่าคุณแค่พยายามช่วยเหลือ แต่นี่ไม่ได้ตอบคำถามเดิม เมื่อคุณมีชื่อเสียงเพียงพอ และคุณต้องการเพียงแบ่งปันความรู้ และคุณคิดว่านี่คือสิ่งที่ผู้คนจำนวนมากขึ้นจะได้รับประโยชน์จาก คุณควรพิจารณาทำโพสต์ถามตอบ - person Andreas Storvik Strauman; 11.04.2021