在另一个线程[这里][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]
而不是在字体名称之前放置一个选项,在字体名称之后放置另一个选项。