Fontspec no Overleaf tem problemas com arquivos .fontspec

Fontspec no Overleaf tem problemas com arquivos .fontspec

Estou tentando usar uma fonte fora do padrão (Figueira) no Overleaf, mantendo o diretório principal o mais limpo possível. O diretório fica assim:

font/
    Figtree-Bold.otf
    Figtree-BoldItalic.otf
    Figtree-Italic.otf
    Figtree-Regular.otf
Figtree.fontspec
main.tex

main.texse parece com isso:

\documentclass{article}

\usepackage[quiet, no-math]{fontspec}
\usepackage[warnings-off={mathtools-colon, mathtools-overbracket}]{unicode-math}
\usepackage{firamath-otf}% set up main math font

\setmainfont{Figtree}
\setmathfont{Figtree-Regular}[range=up/{latin,Latin,num}]
\setmathfont{Figtree-Italic}[range=it/{latin,Latin}]
\setmathfont{Figtree-Bold}[range=bfup/{latin,Latin,num}]
\setmathfont{Figtree-BoldItalic}[range=bfit/{latin,Latin}]

\begin{document}
test $1 + 1 = 2$
\end{document}

e Figree.fontspecfica assim:

\defaultfontfeatures[Figtree]{
Path = font/,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic%
}

O documento no verso está disponível aqui:No verso MWE

O documento não compila com LuaLaTeX, dizendo que "Figtree-Regular" não foi encontrado. Também tentei com XeLaTeXmas parece que a compilação nem termina. No entanto, isso compila sem problemas na minha configuração local (TeXShop no Mac). Eu tenho duas perguntas:

  1. Por que o Overleaf não consegue encontrar o Figtree-Regular?
  2. Idealmente, o Figree.fontspecarquivo também estaria em font/, mas isso faz com que o compilador não encontre a fonte Figtree completamente. Presumo que seja porque não consegue encontrar o .fontspecarquivo. Existe uma maneira de corrigir isso?editar:conforme mencionado nos comentários de David, não há razão para esperar esse comportamento. Observei esse comportamento apenas em uma configuração local onde o .fontspecarquivo estava em um "local texmf padrão".

Responder1

Você precisa passar o nome da fonte correto se quiser que o arquivo .fontspec seja respeitado. \setmathfont{Figtree-Regular}procurará Figtree-Regular.fontspec, não por Figtree.fontspec. Da mesma forma, o conteúdo do arquivo .fontspec precisa especificar \defaultfontfeatures[Figtree-Regular]{...}se você deseja que ele tenha algum efeito, \defaultfontfeatures[Figtree]{...}afeta apenas cargas de \setmathfont{Figtree}(ou \setmainfont{Figtree}etc.), e não nada com Figtree-Regular.

Se você não quiser criar tantos arquivos, você pode alternativamente colocar todos os \defaultfontfeaturescomandos dentro de um arquivo Figtree.fontspec. Isso não será lido automaticamente quando você carregar, por exemplo Figtree-Regular, mas contanto que você carregue Figtreeprimeiro, ele já estará carregado.

Por exemplo, se você colocar em Figtree.fontspec:

\defaultfontfeatures[Figtree-Bold]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree-BoldItalic]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree]{
  Path = font/,
  Extension = .otf,
  UprightFont = *-Regular,
  BoldFont = *-Bold,
  ItalicFont = *-Italic,
  BoldItalicFont = *-BoldItalic%
}
\defaultfontfeatures[Figtree-Italic]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree-Regular]{
  Path = font/,
  Extension = .otf,
}

então seu exemplo funciona.

informação relacionada