diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec-code-opening.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/fontspec/fontspec-code-opening.dtx | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opening.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opening.dtx new file mode 100644 index 00000000000..b067c2ff7bd --- /dev/null +++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opening.dtx @@ -0,0 +1,195 @@ +%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <wspr.io/fontspec> +% +% \section{Opening code} +% +% \iffalse +% \begin{macrocode} +%<*fontspec> +% \end{macrocode} +% \fi +% +% \subsection{Package options} +% +% \begin{macrocode} +\DeclareOption{cm-default} + { + \@@_warning:n {cm-default-obsolete} + } +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption {math} { \bool_gset_true:N \g_@@_math_bool } +\DeclareOption {no-math} { \bool_gset_false:N \g_@@_math_bool } +\DeclareOption {config} { \bool_gset_true:N \g_@@_cfg_bool } +\DeclareOption {no-config}{ \bool_gset_false:N \g_@@_cfg_bool } +\DeclareOption {euenc} { \bool_gset_true:N \g_@@_euenc_bool } +\DeclareOption {tuenc} { \bool_gset_false:N \g_@@_euenc_bool } +% \end{macrocode} +% +% \begin{macrocode} +\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 } + } +% \end{macrocode} +% +% \begin{macrocode} +\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_gset_true:N \g_@@_euenc_bool + } + } +\bool_if:NTF \g_@@_euenc_bool + { +%<XE> \tl_gset:Nn \g_fontspec_encoding_tl {EU1} +%<LU> \tl_gset:Nn \g_fontspec_encoding_tl {EU2} + } + { \tl_gset: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 + { +%<LU> \cs_set_eq:NN \fontspec_tmp: \XeTeXpicfile +%<LU> \cs_set:Npn \XeTeXpicfile {} + \RequirePackage{xunicode} +%<LU> \cs_set_eq:NN \XeTeXpicfile \fontspec_tmp: + } +% \end{macrocode} +% +% +% \subsection{Generic functions} +% +% \begin{macro}{\FontspecSetCheckBoolTrue} +% \begin{macro}{\FontspecSetCheckBoolFalse} +% These strange set functions are to simplify returning code from LuaTeX: +% \begin{macrocode} +\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l_@@_check_bool } +\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l_@@_check_bool } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_keys_set_known:nnN} +% \begin{macrocode} +\cs_new:Nn \@@_keys_set_known:nnN + { +%<debug> \typeout{:::: Keys~set:~{#1}~{#2} } + \keys_set_known:nnN {#1} {#2} #3 +%<debug> \typeout{:::: Leftover:~{#3} } + } +\cs_generate_variant:Nn \@@_keys_set_known:nnN {nx} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_int_mult_truncate:Nn} +% Missing in expl3, IMO. +% \begin{macrocode} +\cs_new:Nn \@@_int_mult_truncate:Nn + { + \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: } + } +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{\pkg{expl3} variants} +% +% \begin{macrocode} +\cs_generate_variant:Nn \int_set:Nn {Nv} +\cs_generate_variant:Nn \keys_set:nn {nx} +\cs_generate_variant:Nn \keys_set_known:nnN {nx} +\cs_generate_variant:Nn \prop_put:Nnn {Nxx} +\cs_generate_variant:Nn \prop_put:Nnn {NxV} +\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV} +\cs_generate_variant:Nn \prop_gput:Nnn {Nxn} +\cs_generate_variant:Nn \prop_get:NnNT {NxN} +\cs_generate_variant:Nn \prop_get:NnNTF {NxN} +\cs_generate_variant:Nn \str_if_eq:nnTF {nv} +\cs_generate_variant:Nn \tl_if_empty:nTF {x} +\cs_generate_variant:Nn \tl_if_empty:nF {x} +\cs_generate_variant:Nn \tl_if_empty:nF {f} +\cs_generate_variant:Nn \tl_if_eq:nnT {ox} +\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx} +% \end{macrocode} +% +% +% +% +% \iffalse +% \begin{macrocode} +%</fontspec> +% \end{macrocode} +% \fi + + +\endinput + +% /© +% ------------------------------------------------ +% The FONTSPEC package <wspr.io/fontspec> +% ------------------------------------------------ +% Copyright 2004-2019 Will Robertson, LPPL "maintainer" +% Copyright 2009-2015 Khaled Hosny +% Copyright 2013 Philipp Gesang +% Copyright 2013-2016 Joseph Wright +% ------------------------------------------------ +% This package is free software and may be redistributed and/or modified under +% the conditions of the LaTeX Project Public License, version 1.3c or higher +% (your choice): <http://www.latex-project.org/lppl/>. +% ------------------------------------------------ +% ©/ |