%%^^A%% fontspec-lua.dtx -- part of FONTSPEC % % \section{Lua module} % % \begin{macrocode} %<*lua> % \end{macrocode} % \begin{macrocode} local err, warn, info, log = luatexbase.provides_module(fontspec.module) % \end{macrocode} % Some utility functions % \begin{macrocode} fontspec.log = log or (function (s) luatexbase.module_info("fontspec", s) end) fontspec.warning = warn or (function (s) luatexbase.module_warning("fontspec", s) end) fontspec.error = err or (function (s) luatexbase.module_error("fontspec", s) end) % \end{macrocode} % % We need a catcode table for tex.sprint(). See issue \#230. % TODO: probably time to get rid of the backwards compatibility here: % \begin{macrocode} local latex if luatexbase.registernumber then latex = luatexbase.registernumber("catcodetable@latex") else latex = luatexbase.catcodetables.CatcodeTableLaTeX end % \end{macrocode} % % The following are the function that get called from \TeX\ end. % \begin{macrocode} local function tempswatrue() tex.sprint(latex,[[\FontspecSetCheckBoolTrue ]]) end local function tempswafalse() tex.sprint(latex,[[\FontspecSetCheckBoolFalse]]) end % \end{macrocode} % % \begin{macrocode} function fontspec.check_ot_script(fnt, script) if luaotfload.aux.provides_script(font.id(fnt), script) then tempswatrue() else tempswafalse() end end % \end{macrocode} % % \begin{macrocode} function fontspec.check_ot_lang(fnt, lang, script) if luaotfload.aux.provides_language(font.id(fnt), script, lang) then tempswatrue() else tempswafalse() end end % \end{macrocode} % % \begin{macrocode} function fontspec.check_ot_feat(fnt, feat, lang, script) for _, f in ipairs { "+trep", "+tlig", "+anum" } do if feat == f then tempswatrue() return end end if luaotfload.aux.provides_feature(font.id(fnt), script, lang, feat) then tempswatrue() else tempswafalse() end end % \end{macrocode} % % \begin{macrocode} function fontspec.mathfontdimen(fnt, str) local mathdimens = luaotfload.aux.get_math_dimension(fnt, str) if mathdimens then tex.sprint(-2,mathdimens) tex.sprint(-2,"sp") else tex.sprint(-2,"0pt") end end % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % /© % ------------------------------------------------ % The FONTSPEC package % ------------------------------------------------ % Copyright 2022-2023 The LaTeX project % Copyright 2004-2022 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): . % ------------------------------------------------ % ©/