New on CTAN: lua-widow-control

CTAN Announcements ctan-ann at
Mon Oct 11 10:21:24 CEST 2021

Max Chernoff submitted the



Version:  1.0.0 2021-10-09
License:  other-free cc-by-sa-4

Summary description:  Automatically remove widows and orphans from any document

Announcement text:
 Lua-widow-control is a Plain TeX/LaTeX/ConTeXt package that
 removes widows and orphans without any user intervention.
 Using the power of LuaTeX, it does so without stretching
 any glue or shortening any pages.
 Instead, lua-widow-control automatically lengthens a paragraph
 on a page where a widow or orphan would otherwise occur.

 Unmodified TeX has very few ways of preventing widows and orphans.
 In documents with figures, section headings, and equations, TeX
 can stretch the vertical glue between items in order to prevent
 widows and orphans, but many documents have no figures or headings.
 TeX can also shorten the page by 1 line, but this will give each
 page a different length which can make a document look uneven.
 The typical solution is to strategically insert \looseness=1,
 but this requires manual editing every time that the document
 is edited. Lua-widow-control is essentially an automation of
 the \looseness method: it uses Lua callbacks to find "stretchy"
 paragraphs, then it lengthens them to remove widows and orphans.

 Lua-widow-control is compatible with all LuaTeX-based formats.
 All that is required is to load the package at the start of
 your document. To load:
   - Plain LuaTeX: \input lua-widow-control
   - LuaLaTeX: \usepackage{lua-widow-control}
   - ConTeXt (LMTX): \usemodule[lua-widow-control]


The package’s Catalogue entry can be viewed at

The package’s files themselves can be inspected at


   Thanks for the upload.

     For the CTAN Team
    Petra Rübe-Pugliese


CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see

More information about the Ctan-ann mailing list