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, fontspec
die das Laden xunicode
standardmäßig gestoppt haben. Der relevante Code in frenchb.ldf
ist
\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 \ifBunicode
Bedingung ist wahr, wenn die verwendete Engine entweder XeTeX oder LuaTeX ist; in diesem Fall wird nichts unternommen, wenn \DeclareUTFcharacter
definiert ist, vorausgesetzt, dies bedeutet, dass fontspec
geladen wurde. Dies ist der falsche Test, da nur geprüft wird, ob xunicode
geladen 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 fontspec
nicht laden .luainputenc
Sie können das silence
Paket verwenden, um diese unechte Warnung zu beseitigen, bis babel-french
es aktualisiert wird und beispielsweise nach sucht \setmainfont
.
Aktualisieren
Mit babel-french
Version 3.2g, veröffentlicht am 30.01.2017, sollte das Problem behoben sein. In den Anmerkungen der .dtx
Datei 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 fontspec
gezielt geprüft wird.
fontspec
Das Laden danach ist hierdurch jedoch nicht mehr möglich (wie zuvor) babel
.