summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-11-23 03:01:10 +0000
committerNorbert Preining <norbert@preining.info>2022-11-23 03:01:10 +0000
commit815cebb06d1054b263303b39da2b399828b116c3 (patch)
tree057b1c00ff0fd80e37b126da4fd2f425e7cd679a /macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
parentd8e47184a9a1a04b1aa016bb4a56d066b8940805 (diff)
CTAN sync 202211230301
Diffstat (limited to 'macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl')
-rw-r--r--macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl86
1 files changed, 75 insertions, 11 deletions
diff --git a/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl b/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
index 1293e08090..b4d35eb15f 100644
--- a/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
+++ b/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
@@ -1,24 +1,29 @@
%D \module
%D [ file=t-lua-widow-control,
-%D version=2.2.2, %%version
+%D version=3.0.0, %%version
%D title=lua-widow-control,
%D subtitle=\ConTeXt module for lua-widow-control,
%D author=Max Chernoff,
-%D date=2022-08-23, %%dashdate
+%D date=2022-11-22, %%dashdate
%D copyright=Max Chernoff,
%D license=MPL-2.0+,
%D url=https://github.com/gucci-on-fleek/lua-widow-control]
\startmodule[lua-widow-control]
\unprotect
+% Preliminaries
\installnamespace{lwc}
-\installcommandhandler \????lwc {lwc} \????lwc
+\installswitchcommandhandler \????lwc {lwc} \????lwc
+% Set up the options
\newdimen\lwc_emergency_stretch
+\newdimen\lwc_draft_offset
\newcount\lwc_max_cost
-\appendtoks
+
+\starttexdefinition lwc_set_parameters
\lwc_emergency_stretch=\lwcparameter{emergencystretch}
+ \lwc_draft_offset=\lwcparameter{draftoffset}
\doifelse{\lwcparameter{\c!state}}\v!start{
\lwc_enable
@@ -28,7 +33,18 @@
\lwc_debug{\lwcparameter{debug}}
- \lwc_draft{\lwcparameter{draft}}
+ \doif{\lwcparameter{draft}}\v!start{
+ \setlwcparameter{showcosts}{\v!start}
+ \setlwcparameter{showcolours}{\v!start}
+ }
+
+ \doif{\lwcparameter{draft}}\v!stop{
+ \setlwcparameter{showcosts}{\v!stop}
+ \setlwcparameter{showcolours}{\v!stop}
+ }
+
+ \lwc_show_costs{\lwcparameter{showcosts}}
+ \lwc_show_colours{\lwcparameter{showcolours}}
\lwc_nobreak{\lwcparameter{nobreak}}
@@ -55,22 +71,69 @@
\stopsetups
\setups[*default]
-\to\everysetuplwc
+\stoptexdefinition
+% Load the main Lua file
\ctxloadluafile{lua-widow-control}
-\setuplwc[
+% Define the presets
+\definelwc[default][
emergencystretch=3em,
- \c!state=\v!start,
- debug=\v!stop,
- draft=\v!stop,
+ maxcost=2147483647,
+ nobreak=keep,
orphanpenalty=1,
widowpenalty=1,
brokenpenalty=1,
+]
+
+\definelwc[strict][
+ emergencystretch=0pt,
+ maxcost=5000,
+ nobreak=warn,
+ widowpenalty=1,
+ orphanpenalty=1,
+ brokenpenalty=1,
+]
+
+\definelwc[balanced][
+ emergencystretch=1em,
+ maxcost=10000
nobreak=keep,
- maxcost=2147483647,
+ widowpenalty=500,
+ orphanpenalty=500,
+ brokenpenalty=500,
]
+% Set up the default options
+\setuplwc[
+ \c!state=\v!start,
+ debug=\v!stop,
+ draft=,
+ showcosts=\v!stop,
+ showcolours=\v!stop,
+ draftoffset=1in,
+]
+
+\setuplwc[default]
+
+\appendtoks
+ \ifcase\lwcsetupmode
+ % can't happen
+ \or % \setuplwc[name][key=value]
+ \ifx\previouslwc\currentlwc
+ \let\currentlwc\currentlwc
+ \lwc_set_parameters
+ \fi
+ \or % \setuplwc[key=value]
+ \let\currentlwc\previouslwc
+ \lwc_set_parameters
+ \or % \setuplwc[name]
+ \glet\currentlwc\currentlwc % global
+ \lwc_set_parameters
+ \fi
+\to \everysetuplwc
+
+\lwc_set_parameters
% Here, we enable font expansion/contraction. It isn't strictly necessary for
% \lwc/'s functionality; however, it is required for the
@@ -97,6 +160,7 @@
\fi%
}
+% Add the default patches
\prependtoks\lwc_patch_pre\to\everybeforesectionheadhandle % Sectioning
\prependtoks\lwc_patch_post\to\everyaftersectionheadhandle