французский: Добавьте \usepackage{fontspec} в преамбулу вашего документа

французский: Добавьте \usepackage{fontspec} в преамбулу вашего документа

Рассмотрим входные данные

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

Независимо от того, какая из двух строк, включая пакет fontspec, включена, предупреждение

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

выводится в журнал при компиляции с помощью xelatex или lualatex.

Выходной файл, кажется, в порядке. Предупреждение ложное?

Версии:

  • XeTeX 3.14159265-2.6-0.99996 (TeX Live 2016)
  • LuaTeX версии 0.95.0 (TeX Live 2016)
  • LaTeX2e <2017/01/01> патч уровня 1
  • Вавилон 2016/04/23 3.9r
  • Шрифтспецификация 2017/01/24 v2.5d

решение1

Это следствие недавних изменений, fontspecкоторые прекратили загрузку xunicodeпо умолчанию. Соответствующий код frenchb.ldfв

\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

Условие \ifBunicodeистинно, когда используемый движок — XeTeX или LuaTeX; в этом случае ничего не делается, если \DeclareUTFcharacterопределено, предполагая, что это означает, fontspecчто было загружено. Это неправильный тест, потому что он просто проверяет, xunicodeзагружено ли , а не fontspec. Поскольку этот пакет больше его не загружает, тест возвращает false, поэтому выдается предупреждение, потому что вы не загружаете luainputenc, конечно.

Вы можете использовать silenceпакет, чтобы избавиться от этого ложного предупреждения, пока babel-frenchон не будет обновлен для поиска, скажем, \setmainfont.


Обновлять

С babel-frenchверсией 3.2g, выпущенной 2017/01/30, проблема должна быть исправлена. В примечаниях файла .dtxмы видим

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

это показывает, что сопровождающие уже знали о проблеме. Теперь тест

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

поэтому загрузка fontspecпроверяется специально.

Однако это не позволяет (как это было раньше) загружать файлы fontspecпосле babel.

Связанный контент