Lỗi biên dịch khi sử dụng màu trong fontspec
Trong một chủ đề khác [tại đây] [1] Tôi không thể biên dịch mã và chúng tôi phát hiện ra rằng đó là do 'màu sắc'.
Khi tôi sử dụng mã này ...
\documentclass{standalone}
\newcommand\fsname{Shobhika}
\usepackage{fontspec}
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}[Colour=0000ff]\begin{document}
test
\end{document}
... đang xảy ra lỗi sau:
! Lỗi LaTeX: Thiếu \ begin {document}. l.4 ... ntfamily \ fsnsk [Script = Devanagari] {\ fsname} [Color = 0000ff] \ begin {docum ...
Khi tôi rời [Colour=0000ff]xa ...
\documentclass{standalone}
\newcommand\fsname{Shobhika}
\usepackage{fontspec}
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}
\begin{document}
test
\end{document}
... thì biên dịch là ok. Những người khác không gặp vấn đề đó và có thể biên dịch mã này với màu sắc. Phông chữ chúng tôi đã thử nghiệm và đang hoạt động tốt. Vấn đề ở đâu?
Trả lời
MWE của bạn có thể được biên dịch tốt với bản phân phối TeX cập nhật.
Nhưng lỗi của bạn chỉ ra rằng điều đó [Colour=0000ff]không được coi là một đối số cho \newfontfamily. Trong đối số tùy chọn trong quá khứ cho \newfontfamilyđi trước tên font chữ, nhưng nó đã được thay đổi trong một thời gian trước đây để đưa các đối số tùy chọn sau khi tên font.
Tôi nghi ngờ rằng bạn đang chạy một phiên bản cũ fontspeckhông hỗ trợ đặt đối số tùy chọn sau tên phông chữ.
Bạn có thể xác nhận điều này bằng cách thêm \listfilesvào đầu tài liệu TeX của mình. Điều này sẽ khiến TeX xuất ra fontspecphiên bản của bạn .
Phiên bản fontspec (đang làm việc) của tôi là 2019/10/19 v2.7d.
Nếu điều này được chứng minh là đúng, thì giải pháp là cập nhật bản phân phối TeX của bạn.
Trong thời gian chờ đợi, một giải pháp là sử dụng:
\newfontfamily\fsnsk[Script=Devanagari, Colour=0000ff]{\fsname}
Sau khi cập nhật, bạn có thể nên sử dụng:
\newfontfamily\fsnsk{\fsname}[Script=Devanagari, Colour=0000ff]
thay vì đặt một tùy chọn trước tên phông chữ và một tùy chọn sau.