Directory macros/luatex/generic/lua-widow-control
lua-widow-control
Lua-widow-control is a Plain TeX/LaTeX/ConTeXt/OpTeX 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 or columns. Instead, lua-widow-control automatically lengthens a paragraph on a page or column where a widow or orphan would otherwise occur.
Please see the package manual for usage details or the TUGboat or Zpravodaj articles for background information and discussion.
Usage
Installation
Lua-widow-control is included in TeX Live and MikTeX. Provided that you have an up-to-date installation, you should not need to explicitly install the package.
If you are using ConTeXt or want to manually install the package, you may download it from one of the below links:
Latest Release | Other Releases |
---|---|
GitHub | GitHub |
CTAN | |
ConTeXt Garden |
Usage
To load the package, add the relevant line to your preamble:
Macro Package | Code |
---|---|
LaTeX | \usepackage{lua-widow-control} |
ConTeXt | \usemodule[lua-widow-control] |
Plain TeX | \input lua-widow-control |
OpTeX | \load[lua-widow-control] |
Contributing
Please see CONTRIBUTING.md
.
Licence
Lua-widow-control is licensed under the Mozilla Public License, version 2.0 or greater. The documentation is additionally licensed under CC-BY-SA, version 4.0 or greater.
Please note that a compiled document is absolutely not considered to be an "Executable Form" as defined by the MPL. The use of lua-widow-control in a document does not place any obligations on the document's author or distributors. The MPL and CC-BY-SA licenses only apply to you if you distribute the lua-widow-control source code or documentation.
v3.0.1 (2024-03-11)
Download the contents of this package in one zip archive (1.3M).
lua-widow-control – Automatically remove widows and orphans from any document
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 and LuaMetaTeX-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:
\usemodule[lua-widow-control]
- OpTeX:
\load[lua-widow-control]
Package | lua-widow-control |
Support | https://github.com/gucci-on-fleek/lua-widow-control/discussions |
Bug tracker | https://github.com/gucci-on-fleek/lua-widow-control/issues |
Repository | https://github.com/gucci-on-fleek/lua-widow-control |
Version | 3.0.1 2024-03-11 |
Licenses | Free license not otherwise listed CC BY-SA 4.0 |
Copyright | 2021–2022 gucci-on-fleek |
Maintainer | Max Chernoff |
TDS archive | lua-widow-control.tds.zip |
Contained in | TeX Live as lua-widow-control MiKTeX as lua-widow-control |
Topics | Experimental LaTeX3 Layout LuaTeX |