입력을 고려하십시오
\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 라이브 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
로드되었다고 가정하고 정의된 경우 아무 작업도 수행되지 않습니다. 이는 xunicode
가 로드되었는지 확인하는 것이 아니라 로드되었는지 만 확인하기 때문에 잘못된 테스트입니다 fontspec
. 이 패키지는 더 이상 로드되지 않으므로 테스트에서 false를 반환하므로 luainputenc
당연히 로드되지 않기 때문에 경고가 발생합니다.
패키지를 사용하여 가 업데이트될 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
.