% % \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,euenc} \ProcessOptions* % \end{macrocode} % % % % % \subsection{Encodings} % % Soon to be the default, with a just-in-case check: % \begin{macrocode} \tl_set:Nn \g_fontspec_encoding_tl {TU} \file_if_exist:nF {tuenc.def} { \bool_set_true:N \g_@@_euenc_bool } \bool_if:NT \g_@@_euenc_bool { % \tl_set:Nn \g_fontspec_encoding_tl {EU1} % \tl_set:Nn \g_fontspec_encoding_tl {EU2} } % \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 \normalsize % to overcome the encoding changing the current font size % \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