blob: ff26f856c5ff8ea6e5b07f25c3dabc914cc23c8c (
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
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
|
% lua-widow-control
% https://github.com/gucci-on-fleek/lua-widow-control
% SPDX-License-Identifier: MPL-2.0+
% SPDX-FileCopyrightText: 2022 Max Chernoff
\_codedecl\lwcenable{lua-widow-control <v2.2.0>} %%version
\_namespace{lwc}
\_clubpenalty=1
\_widowpenalty=1
\_displaywidowpenalty=1
\_brokenpenalty=1
\_newdimen\lwcemergencystretch
\lwcemergencystretch=3em
\_newcount\lwcmaxcost
\lwcmaxcost=2147483647
\_directlua{require "lua-widow-control"}
% Enable \lwc/ by default when the package is loaded.
\.enable
% Expansion of some parts of the document, such as section headings, is quite
% undesirable, so we'll disable \lwc/ for certain commands.
% We should only reenable \lwc/ at the end if it was already enabled.
\_newcount\.disable_count
\_def\.patch_pre{%
\.if_enabled%
\_advance\.disable_count by 1%
\.disable%
\_fi%
}
\_def\.patch_post{
\_ifnum\.disable_count>0%
\.enable%
\_advance\.disable_count by -1%
\_fi
}
\_def\.extractcomponents #1:#2->#3\STOP{%
\_def\.params{#2}%
\_def\.body{#3}%
}
\def\.disable_cmd#1{%
\_ifdefined#1%
\_ea\.extractcomponents\_meaning#1\STOP%
\_begingroup%
\_catcode`_=11%
\_expanded{%
\_noexpand\_scantokens{%
\_gdef\_noexpand#1\.params{%
\_noexpand\.patch_pre\.body\_noexpand\.patch_post%
}%
}%
}%
\_endgroup%
\_fi%
}
\.disable_cmd{\_printchap}
\.disable_cmd{\_printsec}
\.disable_cmd{\_printsecc}
% Make the commands public
\_let\lwcenable=\.enable
\_let\lwcdisable=\.disable
\_let\lwcdisablecmd=\.disable_cmd
\_let\lwcdebug=\.debug
\_let\lwcdraft=\.draft
\_let\iflwc=\.if_enabled
\_let\lwcnobreak=\.nobreak
\_endnamespace
\_endcode
|