From d3eb5a117030fe207ad30748d79b0bb0755529fd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 14 Apr 2022 19:47:46 +0000 Subject: lua-widow-control (14apr22) git-svn-id: svn://tug.org/texlive/trunk@63026 c570f23f-e606-0410-a88d-b1316a301751 --- .../optex/lua-widow-control/lua-widow-control.opm | 61 ++++++++++++++++++++-- 1 file changed, 56 insertions(+), 5 deletions(-) (limited to 'Master/texmf-dist/tex/optex/lua-widow-control') diff --git a/Master/texmf-dist/tex/optex/lua-widow-control/lua-widow-control.opm b/Master/texmf-dist/tex/optex/lua-widow-control/lua-widow-control.opm index 6ff62815835..d96bab6c026 100644 --- a/Master/texmf-dist/tex/optex/lua-widow-control/lua-widow-control.opm +++ b/Master/texmf-dist/tex/optex/lua-widow-control/lua-widow-control.opm @@ -3,7 +3,8 @@ % SPDX-License-Identifier: MPL-2.0+ % SPDX-FileCopyrightText: 2022 Max Chernoff -\_codedecl\lwcenable{lua-widow-control } %%version +\_codedecl\lwcenable{lua-widow-control } %%version +\_namespace{lwc} \_clubpenalty=1 \_widowpenalty=1 @@ -19,11 +20,61 @@ \_directlua{require "lua-widow-control"} % Define \TeX{} wrappers for Lua functions -\_def\lwcenable{\_directlua{lwc.enable_callbacks()}} -\_def\lwcdisable{\_directlua{lwc.disable_callbacks()}} -\_def\iflwc{\_directlua{lwc.if_lwc_enabled()}} +\_def\.enable{\_directlua{lwc.enable_callbacks()}} +\_def\.disable{\_directlua{lwc.disable_callbacks()}} +\_def\.iflwc{\_directlua{lwc.if_lwc_enabled()}} + +\_let\lwcenable=\.enable +\_let\lwcdisable=\.disable % Enable \lwc/ by default when the package is loaded. -\lwcenable +\.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{% + \.iflwc% + \_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% +} +\_let\lwcdisablecmd=\.disable_cmd + +\.disable_cmd{\_printchap} +\.disable_cmd{\_printsec} +\.disable_cmd{\_printsecc} +\_endnamespace \_endcode -- cgit v1.2.3