The LaTeX Project Team submitted an update to the
l3kernel
package.
Version: 2026-04-28
License: lppl1.3c
Summary description: LaTeX3 programming conventions
Announcement text:
--------------------------------------------------------------------------------
## [2026-04-28]
### Added
- `\c_max_intarray_int`
### Changed
- Remove `\@setfontsize` in `\text_expand:n`
- Support Japanese input for string conversion in upTeX (issue \#1880)
- Update function variant generators to handle inputted variants that are
identical to its base form (issue \#1038)
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/latex/required/l3kernel
More information is at
https://ctan.org/pkg/l3kernel
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Manfred Lotz
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs .
Herbert Voß submitted an update to the
pst-barcode
package.
Version: 0.22
License: lppl
Summary description:
Announcement text:
--------------------------------------------------------------------------------
0.22 2026-05-14 - fix for wrong number of lines 15->17
0.21 2026-03-30
- Alias option handling was simplified and improved.
- The text rendering system was generalised to support up to 9 independent text groups. The existing text and extratext options are retained as aliases.
- The position of the whitespace guards for EAN/UPC symbols was simplified and better aligned with the text.
- The position of the whitespace guards for standalone EAN/UPC addons was fixed.
- The text{x,y}align=justify options were fixed for the linear and matrix renderers.
- The text processing for the Code 39 Extended and Code 93 Extended encoders was fixed.
- The text renderer now centres each character using stringwidth and pathbbox for font-independent alignment in the direct text positioning path.
- Text offsets were adjusted for EAN/UPC-based symbologies and addons to account for ink-centre anchoring. Non-EAN encoders with per-character text placement were converted to use centre-aligned single string rendering.
- FMLY was added to the encoder metadata.
- The C API and SWIG bindings were expanded with support for lazy loading of resource bodies.
- Input validation was hardened across all encoders, including data length checks, empty data rejection, and implementation limit guards for large allocations.
- The renderers now validate their input structures and the text renderer handles single-character justify alignment correctly.
- All resources now clean up the dictionary stack when an error is raised, preventing dict stack leaks in caller contexts.
- Renderer error handling was improved: correct graphics state restoration, operand stack cleanup for invalid colors, and redundant gsave/grestore removal from composite rendering paths.
- Raw mode input validation was improved for Code 128, Code 16K, Data Matrix, PosiCode, Ultracode, PDF417 and Micro PDF417, including ^NNN format and codeword range checks.
- Data exceeding the maximum symbol capacity is now rejected during encoding for QR Code, Data Matrix, Code One, PDF417 and JAB Code.
- Codablock F, Code 16K and the matrix renderer now handle large symbols without overflowing the operand stack.
- GS1 input validation was improved for DataBar Expanded, DataBar Stacked Omnidirectional, GS1 Composite Component and GS1 North American Coupon.
- JAB Code now validates eclevel, mask, colors, rows and columns options. PRNG constants now avoid integer literals exceeding the signed 32-bit range.
- PDF417 and Micro PDF417: Fixed text submode optimizer crash with long all-text inputs by increasing the sentinel value used in the Viterbi cost comparison.
- JAB Code: Fixed crash in slave symbol mode where metadata encoding referenced an undefined variable.
- The AusPost encoder now supports FCC 87 (Routing) and FCC 92 (Redirection) barcodes.
- The renderers now support a `default_inkspread` global context setting.
- The GS1 AI linter was realigned with the latest release of the GS1 Syntax Dictionary.
- User option validation was improved for the Codablock F, Code 16K, Code 49, Micro PDF417 and PDF417 encoders.
- User option validation was improved for the linear, matrix and maximatrix renderers.
- The encoder for DotCode was fixed to ensure a minimum symbol dimension when the opposite dimension is large.
- The performance of the PDF417, Micro PDF417, Code One, OneCode, Data Matrix and GS1 Composite Component encoders was improved.
- The time to generate error correction polynomials was improved using a FIFO cache for the QR Code, Data Matrix, PDF47, Micro PDF417, MaxiCode, Dot Code, Han Xin and Ultracode symbologies.
- The performance of the Code 128, Codablock F, Posicode and Code 16K encoders was improved.
- Stack leaks during error handling were fixed for the Data Matrix, PDF417, Micro PDF417, ISBN, ISMN, AusPost and Telepen symbologies.
- The performance of generating the error correction codewords for AusPost symbols was improved.
- Several stack leaks were fixed for GS1 AI and DL data processing.
- The debug and dontdraw options of all encoders must now be enabled using a pair of global switches.
- The performance of generating the error correction codewords for Aztec Code, Han Xin Code, QR Code, Data Matrix, Code One, Maxicode, PDF417, Micro PDF417, Ultracode symbols was improved.
- The Ultracode encoder was fixed so that colours are correctly selected for rendering.
- The performance of the matrix renderer was further improved.
- Common colour handling code was factored out of the renderers into its own resource.
- The performance of the matrix renderer was significantly improved.
- The QR Code encoder performance was enhanced by precalculating the mask function patterns and applying them simultaneously to the data bitstream.
- A mechanism to "preload" the lazy variables via global context was added.
- Switch from loadctx/unloadctx mechanism to a more direct method of preloading static state, with lazy initialisation.
- The Two-Track Pharmacode encoder's text positioning was fixed.
- The USPS Intelligent Mail encoder's text positioning was fixed.
- Common text rendering code was factored out of the linear and matrix renderers into its own resource.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/graphics/pstricks/contrib/pst-barcode
More information is at
https://ctan.org/pkg/pst-barcode
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Manfred Lotz
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs .
Oberdiek Package Support Group submitted an update to the
tabularht
bundle.
Version: 2026-05-13
License: lppl1.3c
Summary description: Tabular extensions originally submitted by Heiko Oberdiek
Announcement text:
----------------------------------------------------------------------
Update to tabularht to maintain compatibility with the June 2026 LaTeX release.
tabularht and tabularkv have been removed from the Oberdiek bundle and are now maintained at
https://github.com/ho-tex/tabularht/
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/tabularht
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/tabularht/
------------------------------------------------------------------------
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 https://ctan.org/lugs
The Oberdiek Package Support Group submitted an update to the
oberdiek
bundle.
Version: 2026-05-13
License: lppl1.3c
Summary description: A bundle of packages submitted by Heiko Oberdiek
Announcement text:
----------------------------------------------------------------------
Update to the oberdiek bundle:
No changes other tha removing tabularht and tabularkv packages
which are now distributed separately.
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/oberdiek
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/oberdiek/
------------------------------------------------------------------------
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 https://ctan.org/lugs
Stephan Lukasczyk submitted an update to the
dtk-bibliography
package.
Version: 2026-02
License: lppl1.3c
Summary description: Bibliography of “Die TeXnische Komödie”
Announcement text:
--------------------------------------------------------------------------------
Add the articles from DTK 2/2026.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/info/dtk-bibliography
More information is at
https://ctan.org/pkg/dtk-bibliography
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Manfred Lotz
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs .
Naam Mohamed submitted the
na-cover
package.
Version: 1.0
License: lppl1.3c
Summary description: Custom artistic covers and borders for educational documents and magazines
Announcement text:
----------------------------------------------------------------------
The na-cover package provides 12 unique geometric designs for creating professional covers using TikZ. It supports XeLaTeX and Arabic typesetting.
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/na-cover
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/na-cover/
----------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Vincent Goulet
----------------------------------------------------------------------
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs
Fabian Fuchs submitted an update to the
beamer-varbox
package.
Version: 2026-05-12
License: lppl gpl
Summary description: Provide beamer boxes with variable size corners
Announcement text:
----------------------------------------------------------------------
Updated and improved documentation of the package.
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/beamer-varbox
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/beamer-contrib/beamer-varbox/
----------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Vincent Goulet
----------------------------------------------------------------------
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs
Vít Starý Novotný submitted an update to the
expltools
package.
Version: 2026-05-12
License: lppl1.3c gpl2+
Summary description: Development tools for expl3 programmers
Announcement text:
--------------------------------------------------------------------------------
## expltools 2026-05-12
### explcheck v0.21.0
#### New features
This version of explcheck has implemented the following new features:
- Add command-line option `--inline-config`. (suggested by @muzimuzhi in #203,
added in #211)
This option accepts a TOML string that is treated as a config file,
overriding any options specified in config files. The option may be specified
repeatedly; when the same Lua option appears in multiple TOML strings, later
occurrences take precedence.
With this option, you can set ad-hoc Lua options without creating a config
file. For example, to disable the Lua option `stop_early_when_confused`, you
can write `--inline-config defaults.stop_early_when_confused=false`.
- Support specifying Lua options at the top level of the config file.
(suggested by @muzimuzhi in #203, added in #211)
This allows you to omit the `[defaults]` section from your config file. For
example, the following is now a complete valid config file:
``` toml
max_line_length = 120
ignored_issues = ["w100", "S"]
```
This also simplifies the use of the `--inline-config` command-line option:
you can now write `--inline-config stop_early_when_confused=false` without
the previously required `defaults.` prefix.
- Change the semantics of the Lua options
`max_reaching_definition_inner_loops` and
`max_reaching_definition_outer_loops` to perform a partial reaching
definition analysis when the limits are exceeded. (#212, 975f91d)
Previously, exceeding either limit would cause explcheck to abort the
analysis. Now, processing only aborts when the number of reaching definition
loops exceeds the theoretical upper bounds, which indicates a bug. By
contrast, when the limits specified by these options are exceeded, explcheck
now continues with a partial analysis. This may lead to false positive issues
reported by the flow analysis, but can also greatly improve performance.
#### Fixes
This version of explcheck has fixed the following problems:
- Do not report issue W429 (Defined an unexpandable function as unprotected)
for restricted-expandable functions. (e507747)
- Fix potentially untrue assertion predicates in the flow analysis. (reported
by @muzimuzhi in #208, fixed in #209)
- Do not expect the `statements` key in all segments. (#212)
Some segment types such as `BOOLEAN_EXPRESSION` only contain `calls`, not
`statements`.
#### Deprecations
This version of explcheck has deprecated the following features and scheduled
them for removal in v1.0.0:
- Rename the Lua option `config_file` to `config_files` and deprecate
`config_file`. (#211)
- Deprecate the command-line option `--expl3-detection-strategy`. (#211)
If you rely on this option, you may set it using `--inline-config`. For
example, you would replace `--expl3-detection-strategy always` with
`--inline-config 'expl3_detection_strategy = "always"'.
#### Continuous integration
This version of explcheck has made the following changes to our continuous
integration (CI):
- Run the flow analysis on the whole TeX Live in the CI. (#208, #210, #212,
975f91d, 59be8c3)
- Cancel previous CI run from the same branch or pull request. (cae310d)
- Do not run the CI when tags are pushed. (d88b2f1, 8c7a960)
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/support/expltools
More information is at
https://ctan.org/pkg/expltools
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Manfred Lotz
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs .
Udo Wermuth submitted the
plain-grid
package.
Version: 1.0 2026-05-05
License: gpl3+
Summary description: Four sets of macros for typesetting on a baseline grid
Announcement text:
----------------------------------------------------------------------
Macros on top of plain.tex that support an author to write documents
obeying a baseline grid.
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/plain-grid
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/plain/contrib/plain-grid/
------------------------------------------------------------------------
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 https://ctan.org/lugs
Dohyun Kim submitted an update to the
luamplib
package.
Version: 2.41.2 2026-05-12
License: gpl2
Summary description: Use LuaTeX’s built-in MetaPost interpreter
Announcement text:
----------------------------------------------------------------------
* new optional macro for shading: withshadingmatrix
* new optional macros for fading: withfadestep, withfadefraction,
withfadeextend, withfadematrix
* new option for \mplibgroup: asgroup="wrapped"
* fix the issue #63 (previous version was faulty with codeinherit)
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/luamplib
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/luatex/generic/luamplib/
------------------------------------------------------------------------
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 https://ctan.org/lugs