
ドキュメントをコンパイルするときにエラーが発生します。
Font shape `TS1/TeXGyreTermes(0)/m/n' undefined
(Font) using `TS1/cmr/m/n' instead.
ドキュメントが正しくコンパイルされるのを妨げているわけではありませんが、この警告が表示されるのは本当に迷惑です。
私はすでに、以下のコマンドで修正できることを発見しました。上記の\DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}
古いパッケージのドキュメントを参照してください。substitutefont
ここ。
この MWE を使用すると、エラーを再現できます。
\documentclass{scrreprt}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\usepackage{gensymb}
\usepackage{textcomp}
\usepackage{scrlayer-scrpage}
\begin{document}
asdf
\end{document}
ご覧のとおり、これはツリー パッケージの組み合わせから発生しており\usepackage{gensymb} \usepackage{textcomp}
、\usepackage{scrlayer-scrpage}
のみを使用するとgensymb
警告が表示されます。
Not defining \perthousand.
Not defining \micro.
これはパッケージの使用で修正できますtextcomp
が、これにより初期エラーが発生します。
なぜこれが発生するのか、コマンドは\DeclareFontFamilySubstitution{TS1}{\rmdefault}{udidot}
実際に何を実行しているのかを誰か説明してもらえますか?
答え1
Unicode フォントの fontspec を使用したレガシー TEX エンコーディングには、textcomp
またはパッケージを使用しないでください。 –gensymb
T1 エンコーディングには 256 文字しかないため、追加のフォントを許可してさらに 256 文字を許可する TS1 エンコーディングが追加されましたが、フォントに数千文字を含めることができる TU (Unicode) エンコードされた TeX Gyre フォントを使用しているため、それらは必要ないだけでなく、おわかりのように有害であり、Unicode 設定を破壊します。
最近の LaTeX リリースでは、textcomp
基本的にプリロードされており、TS1 エンコードされたフォントがデフォルトで使用できるため、従来の 8 ビット LaTeX または pdflatex でも役に立ちません。