
Al compilar mi documento me sale el error.
Font shape `TS1/TeXGyreTermes(0)/m/n' undefined
(Font) using `TS1/cmr/m/n' instead.
No impide que mi documento se compile correctamente, pero es realmente molesto recibir esta advertencia.
Ya descubrí que puedo solucionarlo con el comando: \DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}
mirando la documentación del paquete substitutefont
obsoletoaquí.
con este MWE puedes reproducir el error:
\documentclass{scrreprt}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\usepackage{gensymb}
\usepackage{textcomp}
\usepackage{scrlayer-scrpage}
\begin{document}
asdf
\end{document}
como puede ver, proviene de la combinación de los paquetes del árbol \usepackage{gensymb} \usepackage{textcomp}
y \usepackage{scrlayer-scrpage}
si solo lo uso, gensymb
aparece la advertencia:
Not defining \perthousand.
Not defining \micro.
lo cual se puede solucionar con el uso del paquete textcomp
, pero esto produce el error inicial.
¿Alguien puede explicarme por qué sucede esto y qué \DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}
está haciendo realmente el comando?
Respuesta1
No utilice paquetes textcomp
o gensymb
para codificaciones tex heredadas con fontspec para fuentes Unicode. –
La codificación T1 solo tiene 256 caracteres, por lo que se agregó la codificación TS1 para permitir una fuente adicional, por lo que se permiten otros 256 caracteres, pero estás usando fuentes TeX Gyre codificadas con TU (Unicode) que pueden tener varios miles de caracteres en una fuente, así que no, no son solo No es necesario, como puede ver, son dañinos y rompen la configuración Unicode.
En versiones recientes de látex textcomp
ni siquiera es útil en látex clásico de 8 bits o pdflatex, ya que está esencialmente precargado y las fuentes codificadas TS1 están disponibles de forma predeterminada.