Configurando fontes substitutas em versalete no fontspec

Configurando fontes substitutas em versalete no fontspec

A fonte Times New Roman no meu Mac não tem formato versalete. Então, quero definir TeX Gyre Termes como fonte substituta em versalete.

Usando TeX Gyre Termes como fonte principal

\documentclass{article}
\usepackage{fontspec}
\setmainfont{texgyretermes}%
  [
    Extension      = .otf,
    UprightFont    = *-regular,
    BoldFont       = *-bold,
    ItalicFont     = *-italic,
    BoldItalicFont = *-bolditalic
  ]
\begin{document}

hello
\textsc{hello}
\textbf{\textsc{hello}}
\textit{\textsc{hello}}

\end{document}

O resultado é satisfatório como pode ser visto abaixo:

insira a descrição da imagem aqui

Usando Times New Roman como fonte principal

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\begin{document}

hello
\textsc{hello}
\textbf{\textsc{hello}}
\textit{\textsc{hello}}

\end{document}

Como mostra o log, as formas da fonte estão todas m/scfaltando .b/scm/scit

insira a descrição da imagem aqui

Usando TeX Gyre Termes como substituto

De acordo com o manual fontspec, podemos definir o fallback em versalete da seguinte maneira:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}%
  [
    SmallCapsFont     = TeX Gyre Termes,
    SmallCapsFeatures = {Letters=SmallCaps}
  ]
\begin{document}

hello
\textsc{hello}
\textbf{\textsc{hello}}
\textit{\textsc{hello}}

\end{document}

O exemplo acima só pode ser compilado por lualatex(já que os usuários do macOS não podem usar fontes na árvore texmf pelo nome da fonte ao usar xelatex). No entanto, lualatextambém não pode dar o resultado satisfatório:

insira a descrição da imagem aqui

Depois de instalar a fonte TeX Gyre Termes em meu sistema, ela xelatextambém pode ser usada, mas o resultado é o mesmo da imagem acima.

Pergunta

Sem ter que instalar o TeX Gyre Termes no sistema, como definir a fonte substituta em versalete corretamente em ambos xelatexe lualatexpara usuários do macOS?

Responder1

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}%
  [
   BoldFeatures = 
     {SmallCapsFont={TeX Gyre Termes Bold},
      SmallCapsFeatures = {Letters=SmallCaps}} ,
   ItalicFeatures = 
    {SmallCapsFont={TeX Gyre Termes Italic},
     SmallCapsFeatures = {Letters=SmallCaps}} ,
  ]
\begin{document}

hello
\textsc{hello}
\textbf{\textsc{hello}}
\textit{\textsc{hello}}
\textbf{\textit{\textsc{hello}}}
\end{document}

insira a descrição da imagem aqui

No sistema onde as fontes na árvore texmf não podem ser encontradas pelo nome do arquivo, isso pode funcionar (não testado)

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}%
  [
   BoldFeatures = 
     {SmallCapsFont={texgyretermes-bold},
      SmallCapsFeatures = {Extension=.otf,Letters=SmallCaps}} ,
   ItalicFeatures = 
    {SmallCapsFont={texgyretermes-italic},
     SmallCapsFeatures = {Extension=.otf,Letters=SmallCaps}} ,
  ]
\begin{document}

hello
\textsc{hello}
\textbf{\textsc{hello}}
\textit{\textsc{hello}}
\textbf{\textit{\textsc{hello}}}
\end{document}

informação relacionada