ข้อผิดพลาดในการคอมไพล์เมื่อใช้สีใน fontspec
ในชุดข้อความอื่น [ที่นี่] [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}
... แล้วการเรียบเรียงก็โอเค คนอื่นไม่มีปัญหานั้นและสามารถรวบรวมรหัสนี้ด้วยสีได้ แบบอักษรที่เราทดสอบและใช้งานได้ดี ปัญหาอยู่ที่ไหน
คำตอบ
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]
แทนที่จะใส่หนึ่งตัวเลือกก่อนชื่อแบบอักษรและอีกตัวเลือกหนึ่ง