französisch: Fügen Sie \usepackage{fontspec} zur Präambel Ihres Dokuments hinzu

französisch: Fügen Sie \usepackage{fontspec} zur Präambel Ihres Dokuments hinzu

Betrachten Sie die Eingabe

\documentclass{article}
\usepackage{fontspec}
\usepackage[french,main=american]{babel}
% \usepackage{fontspec}%%% Doesn't matter where you use fontspec
\begin{document}
Nothing.
\end{document}

Unabhängig davon, welche der beiden Zeilen, die das Fontspec-Paket enthalten, aktiviert ist, wird die Warnung

Package frenchb.ldf Warning: Add \usepackage{fontspec} to the 
(frenchb.ldf)                preamble of your document, on input line 5.

wird beim Kompilieren mit xelatex oder lualatex ins Protokoll gedruckt.

Die Ausgabedatei scheint in Ordnung zu sein. Ist die Warnung falsch?

Versionen:

  • XeTeX 3.14159265-2.6-0.99996 (TeX Live 2016)
  • LuaTeX Version 0.95.0 (TeX Live 2016)
  • LaTeX2e <01.01.2017> Patchebene 1
  • Babel 23.04.2016 3,9r
  • Fontspec 2017/01/24 v2.5d

Antwort1

Dies ist eine Folge der jüngsten Änderungen, fontspecdie das Laden xunicodestandardmäßig gestoppt haben. Der relevante Code in frenchb.ldfist

\ifFBunicode
   \ifdefined\DeclareUTFcharacter
   \else
      \@ifpackageloaded{luainputenc}{}%
        {\PackageWarning{frenchb.ldf}%
         {Add \protect\usepackage{fontspec} to the\MessageBreak
         preamble of your document,}%
        }%
   \fi
\else
  [...irrelevant part...]
\fi

Die \ifBunicodeBedingung ist wahr, wenn die verwendete Engine entweder XeTeX oder LuaTeX ist; in diesem Fall wird nichts unternommen, wenn \DeclareUTFcharacterdefiniert ist, vorausgesetzt, dies bedeutet, dass fontspecgeladen wurde. Dies ist der falsche Test, da nur geprüft wird, ob xunicodegeladen ist, nicht . Da dieses Paket es nicht mehr lädt, gibt der Test „false“ zurück, sodass die Warnung ausgegeben wird, weil Sie natürlich fontspecnicht laden .luainputenc

Sie können das silencePaket verwenden, um diese unechte Warnung zu beseitigen, bis babel-frenches aktualisiert wird und beispielsweise nach sucht \setmainfont.


Aktualisieren

Mit babel-frenchVersion 3.2g, veröffentlicht am 30.01.2017, sollte das Problem behoben sein. In den Anmerkungen der .dtxDatei sehen wir

\changes{v3.2g}{2017/01/24}{fontspec defines TU encoding now and
  no longer loads xunicode.sty. Test changed.}

Das zeigt, dass die Betreuer das Problem bereits kannten. Jetzt ist der Test

\ifFBunicode
  \@ifpackageloaded{fontspec}{}%
     {\@ifpackageloaded{luainputenc}{}%
         {\PackageWarning{frenchb.ldf}%
             {Add \protect\usepackage{fontspec} to the\MessageBreak
              preamble of your document, reported}%
         }%
     }
\else
[...irrelevant part...]
\fi

so dass die Beladung fontspecgezielt geprüft wird.

fontspecDas Laden danach ist hierdurch jedoch nicht mehr möglich (wie zuvor) babel.

verwandte Informationen