1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
--
-- This is file `fontspec.lua',
-- generated with the docstrip utility.
--
-- The original source files were:
--
-- fontspec-lua.dtx (with options: `lua')
-- ------------------------------------------------
-- The FONTSPEC package for XeLaTeX/LuaLaTeX
-- (C) 2004--2016 Will Robertson and Khaled Hosny
-- License information appended.
-- ------------------------------------------------
fontspec = fontspec or {}
local fontspec = fontspec
fontspec.module = {
name = "fontspec",
version = "2.5",
date = "2016/01/30",
description = "Advanced font selection for LuaLaTeX.",
author = "Khaled Hosny, Philipp Gesang, Will Robertson",
copyright = "Khaled Hosny, Philipp Gesang, Will Robertson",
license = "LPPL"
}
local err, warn, info, log = luatexbase.provides_module(fontspec.module)
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)
local check_script = luaotfload.aux.provides_script
local check_language = luaotfload.aux.provides_language
local check_feature = luaotfload.aux.provides_feature
local function tempswatrue() tex.sprint([[\FontspecSetCheckBoolTrue ]]) end
local function tempswafalse() tex.sprint([[\FontspecSetCheckBoolFalse]]) end
function fontspec.check_ot_script(fnt, script)
if check_script(font.id(fnt), script) then
tempswatrue()
else
tempswafalse()
end
end
function fontspec.check_ot_lang(fnt, lang, script)
if check_language(font.id(fnt), script, lang) then
tempswatrue()
else
tempswafalse()
end
end
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 check_feature(font.id(fnt), script, lang, feat) then
tempswatrue()
else
tempswafalse()
end
end
local get_math_dimension = luaotfload.aux.get_math_dimension
function fontspec.mathfontdimen(fnt, str)
local mathdimens = get_math_dimension(fnt, str)
if mathdimens then
fontspec.sprint(mathdimens)
fontspec.sprint("sp")
else
fontspec.sprint("0pt")
end
end
-- ------------------------------------------------
-- Copyright 2004--2016 Will Robertson <wspr81@gmail.com>
-- Copyright 2009--2013 Khaled Hosny <khaledhosny@eglug.org>
--
-- Distributable under the LaTeX Project Public License, version 1.3c or higher.
-- The latest version of this license is at: http://www.latex-project.org/lppl.txt
--
-- This work is "maintained" by Will Robertson.
-- It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec-example.tex.
-- And the derived files: fontspec*.sty,fontspec.lua, and fontspec.pdf.
-- ------------------------------------------------
--
-- End of file `fontspec.lua'.
|