Obtendo o erro "Formato da fonte indefinido" - explique a solução?

Obtendo o erro "Formato da fonte indefinido" - explique a solução?

Ao compilar meu documento, recebo o erro.

Font shape `TS1/TeXGyreTermes(0)/m/n' undefined
(Font)  using `TS1/cmr/m/n' instead.

Isso não impede que meu documento seja compilado corretamente, mas é muito chato receber esse aviso.
Já descobri que consigo consertar com o comando: \DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}olhando a documentação do pacote obsoleto substitutefontacimaaqui.

com este MWE você pode reproduzir o erro:

\documentclass{scrreprt}

\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}

\usepackage{gensymb}
\usepackage{textcomp}
\usepackage{scrlayer-scrpage}


\begin{document}

asdf

\end{document}


como você pode ver, vem da combinação dos pacotes da árvore \usepackage{gensymb} \usepackage{textcomp}e \usepackage{scrlayer-scrpage}
se eu usar apenas gensymbrecebo o aviso:

Not defining \perthousand.
Not defining \micro.

que pode ser corrigido com o uso do pacote, textcompmas está produzindo o erro inicial.
alguém pode me explicar por que isso está acontecendo e o que o comando \DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}está realmente fazendo?

Responder1

Não use pacotes textcompor gensymbpara codificações tex herdadas com fontspec para fontes unicode. –

A codificação T1 tem apenas 256 caracteres, então a codificação TS1 foi adicionada para permitir uma fonte extra, permitindo outros 256 caracteres, mas você está usando fontes TeX Gyre codificadas em TU (Unicode) que podem ter vários milhares de caracteres em uma fonte, então não, elas não são apenas não é necessário que eles sejam, como você vê, prejudiciais e quebrem a configuração do Unicode.

Em versões recentes, o látex textcompnem é útil no látex clássico de 8 bits ou no pdflatex, pois é essencialmente pré-carregado e as fontes codificadas em TS1 estão disponíveis por padrão.

informação relacionada