Erro de compilação ao usar cores em fontspec

Jan 03 2020

Em outro tópico [aqui] [1] não consegui compilar um código e descobrimos que é por causa da 'cor'.

Quando eu uso este código ...

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

... o seguinte erro está ocorrendo:

! Erro LaTeX: Faltando \ begin {document}. 1.4 ... ntfamily \ fsnsk [Script = Devanagari] {\ fsname} [Color = 0000ff] \ begin {docum ...

Quando eu for [Colour=0000ff]embora ...

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

... então a compilação está ok. Outros não têm esse problema e podem compilar esse código com cores. Fontes que testamos e estão funcionando bem. Onde está o problema?

Respostas

1 DavidPurton Jan 04 2020 at 17:38

Seu MWE pode ser compilado sem problemas com uma distribuição TeX atualizada.

Mas seu erro indica que [Colour=0000ff]não está sendo tratado como um argumento para \newfontfamily. No passado, os argumentos opcionais para \newfontfamilyiam antes do nome da fonte, mas foram alterados há algum tempo para colocar o argumento opcional após o nome da fonte.

Suspeito que você esteja executando uma versão antiga fontspecque não oferece suporte para colocar o argumento opcional após o nome da fonte.

Você pode confirmar isso adicionando \listfilesao início do seu documento TeX. Isso fará com que o TeX exiba sua fontspecversão.

Minha versão (de trabalho) do fontspec é 2019/10/19 v2.7d.

Se for esse o caso, a solução é atualizar sua distribuição TeX.

Enquanto isso, uma solução alternativa é usar:

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

Depois de atualizado, você provavelmente deve usar:

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

em vez de colocar uma opção antes do nome da fonte e outra depois.