LuaLatex: Langue 'Pashto' non disponible pour la police (fontspec) 'Amiri-Regular' avec le script 'Arabic'

Nov 30 2020

Pour faire suite à ma question car Urduj'ai maintenant la question pour les autres langues comme Pashtoet Persian. Je suis l'exemple et la doc et j'ai le MWE suivant:

\documentclass{article}
\usepackage{fontspec}
\usepackage[shorthands=off,bidi=basic,english, ngerman]{babel}
\babelprovide[import=ur,mapdigits]{urdu}
\babelfont[urdu]{rm}[Renderer=HarfBuzz]{Amiri}
\babelprovide[import=ps]{pashto}
\babelfont[pashto]{rm}[Renderer=HarfBuzz]{Amiri}
\babelprovide[import=fa]{persian}
\babelfont[persian]{rm}[Renderer=HarfBuzz]{Amiri}

\begin{document}
My urdu test
\selectlanguage{urdu}

    یہ ایک جملہ ہے
{\selectlanguage{pashto}رآورد نفوس کشورد هېواد د و ګړو اټکل1398 [}Estimated Population of Afghanistan 1398 (2019/2020)],     
{\selectlanguage{persian} رآورد نفوس کشورد هېواد د و ګړو اټکل1398 [}Estimated Population of Afghanistan 2020], 

\end{document}

j'utilise

This is LuaHBTeX, Version 1.12.0 (TeX Live 2020/TeX Live for SUSE Linux)  (format=lualatex 2020.11.26) 

et recevez les avertissements suivants:

Language 'Pashto' not available for font(fontspec) 'Amiri-Regular' with script 'Arabic'.
Language 'Persian' not available for font(fontspec) 'Amiri-Regular' with script 'Arabic'.

Puisque cela fonctionne bien car Urduje n'ai aucune idée de la façon d'éviter ces avertissements? Ou comment faire une meilleure configuration? Des indices?

Réponses

2 Davislor Nov 30 2020 at 15:13

L'avertissement est inoffensif, mais vous pouvez le supprimer en chargeant la police avec Language=Default, par exemple

\documentclass{article}
\usepackage[bidi=basic, nil]{babel}
\usepackage{fontspec}

\defaultfontfeatures{ Renderer=HarfBuzz, 
                      Scale=MatchUppercase, 
                      Ligatures=TeX }

\babelfont{rm}
          [Ligatures=Common, Scale=1.0]{Libertinus Serif}    
\babelprovide[import=ur, mapdigits, main]{urdu}
\babelfont[urdu]{rm}
          {Amiri}
\babelprovide[import=ps]{pashto}
\babelfont[pashto]{rm}
          [Language=Default]{Amiri}
\babelprovide[import=fa]{persian}
\babelfont[persian]{rm}
          [Language=Default]{Amiri}

\babeltags{pashto=pashto}
\babeltags{persian=persian}
\babeltags{urdu=urdu}

Il serait peut-être intéressant de déclarer l'anglais pour le texte LTR, tel que «Population of Afghanistan». Les \babeltagsdéclarations vous permettent d'écrire à la \textpashto{...}place de {\selectlanguage{pashto}...}.