フランス語: 文書のプリアンブルに \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パッケージを含む2行のどちらが有効になっているかに関係なく、警告

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 のいずれかである場合、条件は true になります。この場合、 が定義されている場合は何も行われません。\DeclareUTFcharacterこれは がロードされていることを意味すると想定されます。これは、がロードされているかどうかをチェックするだけで、 ではないfontspecため、間違ったテストです。このパッケージは をロードしなくなったため、テストは false を返します。したがって、もちろんをロードしていないため、警告が発行されます。xunicodefontspecluainputenc

が更新されて、たとえば を検索するsilenceまで、この誤った警告を取り除くために パッケージを使用できます。babel-french\setmainfont


アップデート

2017/01/30にリリースされたバージョン3.2gでは、この問題は修正されているはずです。ファイルbabel-frenchの注記には、.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

関連情報