Liam Huang submitted an update to the
xecjk
package.
Version: 3.10.4
License: lppl1.3c
Summary description: Typeset CJK in XeLaTeX
Announcement text:
------------------------------------------------------------------------
This release introduces a unified command-boundary capture/register
framework that replaces numerous ad-hoc mechanisms for handling
inter-character spacing around boxes, color changes, hyperlinks,
and third-party commands.
It also fixes several boundary and glue-handling bugs.
NEW FEATURES
- New command-boundary capture/register framework that determines
the visible head/tail character class of boxes, opaque node streams,
and commands with no visible output, and restores inter-character
boundaries accordingly (#992).
- New experimental `experiment/boundary-register` interface allowing
expert users to register custom commands into the unified
command-boundary framework (#1010).
- New dedicated inline-math boundary class that separately handles
end-of-formula spacing and post-formula source spaces in argument
contexts, enabling registered commands to restore left/right
boundaries with correct direct-formula source-space semantics (#1002).
- New `\@@_glue_check_expire_stale:` routine: when the top-level
recovery chain finds an empty node list, it clears stale pending
state, preventing `\g_@@_glue_check_pending_bool` from surviving
across `\hbox`/`\setbox` boundaries (#996).
- `siunitx` compatibility: `\unit`, `\qty`, `\num` and v2 legacy names
`\si`, `\SI` are registered as fixed Default head/tail stream captures,
fixing space loss at unit-command boundaries in CJK context (#1000).
BUG FIXES
- Fixed range parsing of default endpoints in `\@@_check_num_range:nnNN`.
- Boundary-to-CJK source-space check now uses the same
`\@@_skip_if_interword:N` test as the Default direction;
explicit glue whose natural width differs from the current
inter-word space is no longer replaced by `\CJKglue` (#996).
- box/wrapped-box capture now rebuilds boundaries as Default head/tail
when a box has emitted visible content (non-zero width, non-zero
height or depth, with a terminal char/rule/math/kern node) but
no character class was observed. Math and `\vrule` etc. that do
not trigger interchar transitions are no longer misidentified
as "no visible output" (#998).
- Default marker replay now synchronises `\spacefactor` with the
outer list; post-transparent processing also relocates the marker
together with its candidate glue, fixing right-boundary spacing
when `xCJKecglue` is enabled and a trailing uppercase letter or
`\null` inside a box obscures the boundary suffix (#1003).
- Invisible nodes separating a real space from a marker in a
normal stream now cause the marker to expire (direct-formula
semantics) and preserve the original ordering of intermediate
glue and nodes (#1002).
- Fixed nested `ulem`/xeCJKfntef underline commands: only the
outermost invocation now starts a stream capture, preventing
per-nesting state leakage on the capture stack (#992).
DOCUMENTATION
- Clarified that `xCJKecglue` also controls source spaces adjacent
to inline math (#1002).
- Documented in the user manual that TeX cannot distinguish source
spaces from certain explicit glue, and provided a zero-width
`\kern` workaround (#992).
- Added Boundary→CJK direction note: certain explicit glue may
also be replaced by `CJKglue` (#996).
INTERNAL CHANGES
- Allowed the Boundary-to-Default recovery path to tentatively
remove trailing source inter-word glue that has no infinite-order
stretch but does have shrink; if a CJK marker is found beneath,
it is replaced by `\CJKecglue`, completing symmetric command-boundary
handling with the Default-to-CJK direction (#992).
- Command-boundary framework now manages `xeCJKfntef`, box commands,
and color commands; removed the legacy fallback that guessed
hlist/whatsit categories via a global tl.
The glue branch now only accepts immediately adjacent
xeCJK markers (#992).
- Removed the dedicated color pending boolean; color push/pop and
box output are now handled by transparent/wrapped-box capture (#992).
- Wrapped the kernel-private `\@imakebox` and `\@iframebox` `[#1][#2]#3`
signatures to register `\makebox`/`\framebox`; this wrapper must
be updated if the kernel changes that signature (#992).
- Migrated link-annotation entry saving and tail-anchor replay to
unified stream capture, restoring boundaries on both sides
according to the link's actual visible head/tail class (#992).
- Registered `\set@color` and `\reset@color` as transparent captures;
removed the dedicated color push/pop marker save/replay branch (#992).
- Registered `l3color` color push/pop entries as transparent captures;
removed the corresponding dedicated marker protection branch (#992).
- Migrated `\HD@target` to unified transparent capture, restoring
marker and source-space state on both sides (#992).
- Wrapped `\Url@z`'s full formatting phase in a fixed Default
head/tail stream capture; removed the #880 dedicated drain (#992).
- Migrated `\verb` from the entry drain (which assumed Western output)
to unified stream capture, restoring boundaries according to
verbatim's actual head/tail class (#992).
- Registered `\eqref` as fixed Default head/tail and `\cs` as fixed
Default head-only stream captures; codedoc/doc meta internal
adapters now directly wrap a fixed Default stream, removing the
dedicated drain and covering all its public call sites (#992).
- Registered kernel `\@setref` (or `hyperref`-saved `\real@setref`)
as auto stream capture, replacing the #991 dedicated saved-node/replay
patch with the unified framework.
- Changed `\blx@pagetracker` from a one-way state drain to transparent
capture, making write whatsits transparent to the actual visible
boundaries on both sides (#992).
- Integrated xeCJKfntef underline commands, native `ulem` entries
(e.g. `\uline`), `\xeCJKfntefon`, and standalone symbol commands
into stream capture; internal pending is now published through
the framework's unified helper; removed fntef-specific tail-state
restoration and pending setup (#992).
- Measurement-time box isolation for decorative symbols now uses
the framework's nestable pause zones, simultaneously saving and
restoring marker and pending state (#992).
- Connected `\lstinline`'s delimiter, active-character, and brace
scanning paths to auto stream capture, making all four source-space
combinations around color switches consistent with direct input (#992).
Source code: https://github.com/CTeX-org/ctex-kit
Issue tracker: https://github.com/CTeX-org/ctex-kit/issues
------------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/xecjk
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/xetex/latex/xecjk/
------------------------------------------------------------------------
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
Matthew Lorig submitted the
concrete-vec
package.
Version:
License:
Summary description: Concrete text and mathematics as outlines, with a synthetic
bold weight
Announcement text:
--------------------------------------------------------------------------------
concrete-vec – Concrete text and mathematics as outlines, with a bold weight
concrete-vec typesets a document in Knuth's Concrete fonts with two properties
the existing Concrete packages do not jointly provide: every glyph, in text and
in mathematics, is a vector outline rather than a bitmap; and a bold weight is
available, synthesised by stroking, in both text and mathematics.
It is a thin configuration layer over ccfonts, mathastext and pdfrender, and
targets pdflatex. Text is set in T1-encoded Concrete (vector via cm-super);
mathematics reuses the Concrete text font through mathastext, so math letters,
digits and operators are Concrete outlines too. Bold is produced by stroking
glyph outlines: the package patches \bfseries so bold works in headings, tables
and list labels, and provides \bd{...}, a single command that bolds in both
modes — ordinary bold in text, and in mathematics an in-place stroke that
thickens any symbol (Latin or Greek) while preserving its shape, so \bd{x} keeps
its italic and \bd{\pi} gives a bold pi.
This is the first release.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org
More information is at
https://ctan.org/pkg/concrete-vec
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Erik Braun
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 .
Liam Huang submitted an update to the
CTeX
package.
Version: 2.6.4
License: lppl1.3c
Summary description: LaTeX classes and packages for Chinese typesetting
Announcement text:
------------------------------------------------------------------------
This release fixes one font mapping issue.
BUG FIXES
- `macnew`: The regular upright glyph for Song (宋体) now uses Songti SC Regular (#994).
Source code: https://github.com/CTeX-org/ctex-kit
Issue tracker: https://github.com/CTeX-org/ctex-kit/issues
------------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/ctex
The package’s files themselves can be inspected at
https://mirrors.ctan.org/language/chinese/ctex/
------------------------------------------------------------------------
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
Gérard Dubard submitted the
texecole
package.
Version: 1.0 2026-07-23
License: gpl3+
Summary description: A French-prose document composition language
Announcement text:
------------------------------------------------------------------------
English:
texecole is a new LuaLaTeX document class for teachers who want
print-ready worksheets without writing LaTeX.
Documents are written in a French-only prose tag language (no anglicisms),
which the class translates to LaTeX at compile time.
It covers layout frames and grids, tables, images, a math mini-language
(fractions, sums, integrals, derivatives, matrices), function plotting,
plane and solid geometry, and statistics/probability diagrams.
An internal computation engine handles most needs;
Python (SymPy/SciPy) can be used for extended symbolic and numeric
computation.
French:
texecole est une nouvelle classe LuaLaTeX construite autour d'un
langage de balises en prose française (sans anglicisme), traduit
en LaTeX à la compilation.
Elle s'adresse à toute personne produisant des documents scientifiques,
techniques ou pédagogiques : élèves, étudiants, enseignants, chercheurs,
ingénieurs, auteurs de documentation.
Elle couvre les cadres et grilles, les tableaux, les images,
un mini-langage mathématique (fractions, sommes, intégrales,
dérivées, matrices), les graphiques de fonctions, la géométrie
plane et les solides, ainsi que les statistiques et probabilités.
Un moteur de calcul interne couvre l'essentiel des besoins ;
Python (SymPy/SciPy) peut être utilisé pour le calcul formel et
numérique étendu.
------------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/texecole
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/luatex/latex/texecole/
------------------------------------------------------------------------
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
Cédric Pierquet submitted an update to the
tkz-grapheur
package.
Version: 0.31d 2026-07-23
License: lppl1.3c
Summary description: A LaTeX package with tools for graph plotting (and TikZ)
Announcement text:
--------------------------------------------------------------------------------
New features: automatic "nice numbers" axis step computation (GradsAuto), the
turnkey \MiniGraphiqueTkz environment for compact plots, and the
\TracerNuageSuiteAuto wrapper for recursive sequences.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/graphics/pgf/contrib/tkz-grapheur
More information is at
https://ctan.org/pkg/tkz-grapheur
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Erik Braun
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 .
Alan J. Cain submitted an update to the
lua-list-hyphen
package.
Version: 0.42.1 2026-07-23
License: lppl1.3c
Summary description: Per-language listing of hyphenated words for LuaLaTeX
Announcement text:
--------------------------------------------------------------------------------
New features:
- checking hyphenations against per-language dictionaries of valid divisions (or allowlists).
- visual flagging of hyphenations in the document as valid/invalid/ambiguous/unknown.
- most options can be applied either globally or per-language.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/luatex/latex/lua-list-hyphen
More information is at
https://ctan.org/pkg/lua-list-hyphen
--------------------------------------------------------------------------------
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.
Antoine Missier submitted an update to the
mathgreeks
package.
Version: 1.3 2026-07-23
License: lppl1.3c
Summary description: Use different Greek letter fonts in math mode
Announcement text:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/latex/contrib/mathgreeks
More information is at
https://ctan.org/pkg/mathgreeks
--------------------------------------------------------------------------------
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 .
Marei Peischl submitted an update to the
ZUGFeRD
package.
Version: 0.13 2026-07-23
License: lppl1.3c
Summary description: ZUGFeRD and Faktur-X invoicing using LaTeX
Announcement text:
--------------------------------------------------------------------------------
ZUGFeRD v0.13
* Bugfix release: XMP Metadata to use the pdfmeta/xmp hook
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/latex/contrib/zugferd
More information is at
https://ctan.org/pkg/zugferd
--------------------------------------------------------------------------------
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
JuliaMono
package.
Version: 0.06c 2026-07-23
License: lppl1.3 ofl
Summary description: Support for the TrueType font JuliaMono
Announcement text:
--------------------------------------------------------------------------------
Update to font version 0.63.2 (see https://github.com/cormullion/juliamono)
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/fonts/juliamono
More information is at
https://ctan.org/pkg/juliamono
--------------------------------------------------------------------------------
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 .
erhard Schaden submitted the
linguexx
package.
Version: 1.0
License: lppl1.3c
Summary description: Typesetting linguistic examples and glosses
Announcement text:
--------------------------------------------------------------------------------
Linguexx is a standalone LaTeX package for typesetting linguistic examples – a
reimplementation of Wolfgang Sternefeld's no-longer maintained linguex that
provides nearly all of its commands. It runs on pdfLaTeX, XeLaTeX and LuaLaTeX.
When the document enables LaTeX's tagging code, linguexx tags its output
(numbered examples, cross-references, and interlinear glosses alike) as
accessible objects in the PDF structure tree.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/latex/contrib/linguexx
More information is at
https://ctan.org/pkg/linguexx
--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Erik Braun
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 .