% 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 } %%version \_namespace{lwc} \_clubpenalty=1 \_widowpenalty=1 \_displaywidowpenalty=1 \_brokenpenalty=1 \_newdimen\lwcemergencystretch \lwcemergencystretch=3em \_newdimen\lwcdraftoffset \lwcdraftoffset=1in \_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 \_def\lwcdraft#1{% \.show_costs{#1}% \.show_colours{#1}% } \_let\lwcshowcosts=\.show_costs \_let\lwcshowcolours=\.show_colours \_let\iflwc=\.if_enabled \_let\lwcnobreak=\.nobreak \_endnamespace \_endcode