在字体规格中使用颜色时出现编译错误

在字体规格中使用颜色时出现编译错误

在另一个线程[这里][1]中,我无法编译代码,我们发现这是因为“颜色”造成的。

当我使用此代码时...

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

...发生以下错误:

!LaTeX 错误:缺少 \begin{document}。l.4 ...ntfamily\fsnsk[Script=Devanagari]{\fsname}[ Colour=0000ff]\begin{docum...

当我离开时[Colour=0000ff]......

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

... 那么编译就没问题了。其他人没有这个问题,可以编译带颜色的代码。我们测试过的字体运行良好。问题出在哪里?

答案1

使用最新的 TeX 发行版可以完美地编译您的 MWE。

但您的错误表明[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]

而不是在字体名称之前放置一个选项,在字体名称之后放置另一个选项。

相关内容