
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 substitutefont
acimaaqui.
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 gensymb
recebo o aviso:
Not defining \perthousand.
Not defining \micro.
que pode ser corrigido com o uso do pacote, textcomp
mas 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 textcomp
or gensymb
para 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 textcomp
nem é ú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.