ข้อผิดพลาดในการคอมไพล์เมื่อใช้สีใน fontspec

Jan 03 2020

ในชุดข้อความอื่น [ที่นี่] [1] ฉันรวบรวมรหัสไม่ได้และเราพบว่าเป็นเพราะ "สี"

เมื่อฉันใช้รหัสนี้ ...

\documentclass{standalone} 
\newcommand\fsname{Shobhika} 
\usepackage{fontspec} 
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}[Colour=0000ff]\begin{document} 
test 
\end{document}

... เกิดข้อผิดพลาดต่อไปนี้:

! LaTeX Error: Missing \ begin {document} l.4 ... ntfamily \ fsnsk [Script = เทวนาครี] {\ fsname} [color = 0000ff] \ begin {เอกสาร ...

เมื่อฉันจาก[Colour=0000ff]ไป ...

\documentclass{standalone} 
\newcommand\fsname{Shobhika} 
\usepackage{fontspec} 
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}
\begin{document} 
test 
\end{document}

... แล้วการเรียบเรียงก็โอเค คนอื่นไม่มีปัญหานั้นและสามารถรวบรวมรหัสนี้ด้วยสีได้ แบบอักษรที่เราทดสอบและใช้งานได้ดี ปัญหาอยู่ที่ไหน

คำตอบ

1 DavidPurton Jan 04 2020 at 17:38

MWE ของคุณสามารถรวบรวมได้ดีด้วยการแจกจ่าย TeX ที่เป็นปัจจุบัน

แต่ผิดพลาดของคุณแสดงให้เห็นว่าจะไม่ได้รับการรักษาเป็นอาร์กิวเมนต์สำหรับ[Colour=0000ff] \newfontfamilyในอดีตอาร์กิวเมนต์ที่เป็นทางเลือกสำหรับ\newfontfamilyไปก่อนชื่อแบบอักษร แต่มีการเปลี่ยนแปลงเมื่อไม่นานมานี้เพื่อใส่อาร์กิวเมนต์ที่เป็นทางเลือกหลังชื่อแบบอักษร

ฉันสงสัยว่าคุณกำลังเรียกใช้เวอร์ชันเก่าfontspecซึ่งไม่สนับสนุนการใส่อาร์กิวเมนต์เสริมหลังชื่อแบบอักษร

คุณสามารถยืนยันได้โดยเพิ่ม\listfilesที่ด้านบนของเอกสาร TeX สิ่งนี้จะทำให้ TeX ส่งออกfontspecเวอร์ชันของคุณ

ของฉัน (ทำงาน) รุ่น fontspec 2019/10/19 v2.7dคือ

หากเป็นเช่นนั้นวิธีแก้ปัญหาคืออัปเดตการแจกจ่าย TeX ของคุณ

ในระหว่างนี้วิธีแก้ปัญหาคือการใช้:

\newfontfamily\fsnsk[Script=Devanagari, Colour=0000ff]{\fsname}

เมื่ออัปเดตแล้วคุณควรใช้:

\newfontfamily\fsnsk{\fsname}[Script=Devanagari, Colour=0000ff]

แทนที่จะใส่หนึ่งตัวเลือกก่อนชื่อแบบอักษรและอีกตัวเลือกหนึ่ง