Aurghyadip Kundu submitted the
modernclassnotes
package.
Version: 1.0.0 2026-07-26
License: lppl1.3c mit
Summary description: Typesetting course notes, lecture handouts, and assignment worksheets
Announcement text:
------------------------------------------------------------------------
The modernclassnotes package (v1.0.0) is now available on CTAN.
modernclassnotes provides a modern, clean, and highly customizable
LaTeX document class and package designed for university professors,
lecturers, researchers, and students to typeset course notes,
lecture handouts, and assignment worksheets.
Key Features of v1.0.0:
- Three Specialized Document Modes:
* mode=notes: Full course manuals with automated lecture tracking (\lecture).
* mode=handout: Compact single-lecture summary handouts with metadata banners.
* mode=worksheet: Homework assignments and problem sets with togglable
solution keys (showsolutions=true/false).
- 7 Built-in Color Palettes: ocean, nord, midnight, emerald, burgundy,
amethyst, and mono.
- Comprehensive Callouts: Environments for mathematical theorems,
explanatory remarks, tips, code blocks, and assessment solutions.
- Zero Heavy Dependencies: Native box engine ensuring fast compilation
across TeX Live, MiKTeX, and Overleaf.
------------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/modernclassnotes
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/modernclassnotes/
------------------------------------------------------------------------
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 LaTeX Project Team submitted an update to the
tagpdf
package.
Version: 1.0d 2026-07-25
License: lppl1.3c
Summary description: Code for PDF tagging using pdfLaTeX and LuaLaTeX
Announcement text:
------------------------------------------------------------------------
### Fixed
- (tagpdf-backend) softhyphen=artifact has no effect for T1 fonts
(https://github.com/latex3/tagpdf/issues/138)
- (tagpdf-backend) real space code of lualatex errors if the space
is directly at the begin of the document,
https://github.com/latex3/tagging-project/issues/1494
- improved some expl3 syntax (as found with explcheck)
------------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/tagpdf
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/latex/contrib/tagpdf/
------------------------------------------------------------------------
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
Alan J. Cain submitted an update to the
lua-list-hyphen
package.
Version: 0.42.7 2026-07-25
License: lppl1.3c
Summary description: Per-language listing of hyphenated words for LuaLaTeX
Announcement text:
--------------------------------------------------------------------------------
Corrections and improvements to documentation.
--------------------------------------------------------------------------------
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
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 .
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
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 .