% % \section{Opening code} % % \iffalse % \begin{macrocode} %<*fontspec&(xetexx|luatex)> % \end{macrocode} % \fi % % \subsection{Package options} % % \begin{macrocode} \DeclareOption{cm-default} { \@@_warning:n {cm-default-obsolete} } \DeclareOption{math}{\bool_set_true:N \g_@@_math_bool} \DeclareOption{no-math}{\bool_set_false:N \g_@@_math_bool} \DeclareOption{config}{\bool_set_true:N \g_@@_cfg_bool} \DeclareOption{no-config}{\bool_set_false:N \g_@@_cfg_bool} \DeclareOption{euenc}{\bool_set_true:N \g_@@_euenc_bool} \DeclareOption{tuenc}{\bool_set_false:N \g_@@_euenc_bool} \DeclareOption{quiet} { \msg_redirect_module:nnn { fontspec } { warning } { info } \msg_redirect_module:nnn { fontspec } { info } { none } } \DeclareOption{silent} { \msg_redirect_module:nnn { fontspec } { warning } { none } \msg_redirect_module:nnn { fontspec } { info } { none } } \ExecuteOptions{config,math,tuenc} \ProcessOptions* % \end{macrocode} % % % % % \subsection{Encodings} % % Soon to be the default, with a just-in-case check: % \begin{macrocode} \bool_if:NF \g_@@_euenc_bool { \file_if_exist:nTF {tuenc.def} { \cs_if_exist:cF {T@TU} { \@@_warning:n {tu-clash} \DeclareFontEncoding{TU}{}{} \DeclareFontSubstitution{TU}{lmr}{m}{n} } } { \@@_warning:n {tu-missing} \bool_set_true:N \g_@@_euenc_bool } } \bool_if:NTF \g_@@_euenc_bool { % \tl_set:Nn \g_fontspec_encoding_tl {EU1} % \tl_set:Nn \g_fontspec_encoding_tl {EU2} } { \tl_set:Nn \g_fontspec_encoding_tl { TU } } % \end{macrocode} % % \begin{macrocode} \tl_set:Nn \rmdefault {lmr} \tl_set:Nn \sfdefault {lmss} \tl_set:Nn \ttdefault {lmtt} \RequirePackage[\g_fontspec_encoding_tl]{fontenc} \tl_set_eq:NN \UTFencname \g_fontspec_encoding_tl % for xunicode if needed % \end{macrocode} % To overcome the encoding changing the current font size, but only if a class has been loaded first: % \begin{macrocode} \tl_if_in:NnT \@filelist {.cls} { \normalsize } % \end{macrocode} % Dealing with a couple of the problems introduced by \pkg{babel}: % \begin{macrocode} \tl_set_eq:NN \cyrillicencoding \g_fontspec_encoding_tl \tl_set_eq:NN \latinencoding \g_fontspec_encoding_tl \AtBeginDocument { \tl_set_eq:NN \cyrillicencoding \g_fontspec_encoding_tl \tl_set_eq:NN \latinencoding \g_fontspec_encoding_tl } % \end{macrocode} % That latin encoding definition is repeated to suppress font warnings. % Something to do with \cmd\select@language\ ending up in the \texttt{.aux} % file which is read at the beginning of the document. % % \begin{macrocode} \bool_if:NT \g_@@_euenc_bool { % \cs_set_eq:NN \fontspec_tmp: \XeTeXpicfile % \cs_set:Npn \XeTeXpicfile {} \RequirePackage{xunicode} % \cs_set_eq:NN \XeTeXpicfile \fontspec_tmp: } % \end{macrocode} % % \iffalse % \begin{macrocode} % % \end{macrocode} % \fi