summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/ligtype/ligtype.sty
blob: f98ec53fdc6c2fd76bba579538d2257685bae5d8 (plain)
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
% Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de

% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any later
% version. The latest version of this license is in

%    http://www.latex-project.org/lppl.txt

% and version 1.3c or later is part of all distributions of
% LaTeX version 2009/09/24 or later.

% The ligtype package makes use of the German language
% ligature suppression rules of the selnolig package by
% Mico Loretan. The selnolig package can be downloaded at

%    https://www.ctan.org/pkg/selnolig

% and may be distributed and/or modified under the
% conditions of the LaTeX Project Public License.

\ProvidesPackage{ligtype}[2022/06/11 v0.1a Comprehensive ligature suppression functionalities]
\RequirePackage{ifluatex,luatexbase}

\ifluatex
    \directlua{require ( "ligtype.lua" )}

    \def\ligtypeon{\directlua{ligtype_on()}}
    \def\ligtypeoff{\directlua{ligtype_off()}}

    \ligtypeon

    \newcommand\nolig[2]{%
        \directlua{%
            ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", true )%
        }%
    }
    \newcommand\keeplig[2]{%
        \directlua{%
            ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", false )%
        }%
    }

    \DeclareOption{noshortf}{\directlua{ligtype_no_short_f()}}
    \DeclareOption{allshortf}{\directlua{ligtype_all_short_f()}}
    \DeclareOption{makemarks}{\directlua{ligtype_make_marks()}}
    \DeclareOption{kerntest}{\AtEndDocument{\directlua{ligtype_write_ligs()}}}
    \DeclareOption{nodefault}{\directlua{ligtype_no_default()}}
    \ProcessOptions
\else
    \errhelp{Compile with LuaLaTeX to be able to use the "ligtype" package.}
    \errmessage{Package "ligtype" error: This package requires LuaLaTeX!}
\fi