There is no LaTeX 3. The change that occurred was that the expl3
package which was initially conceived as "experimental latex 3" has been incorporated into the LaTeX format as a permanent stable enhancement, the "L3 programming layer".
On the terminal in every job, LaTeX reports this as:
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-02-05>
As a programming layer, you would not expect "end users" to be using this directly, but they will be using commands that are written using these commands.
Notable user level commands written in this L3 programming layer are
fontspec
so all the font handling in LuaTeX and XeTeX
siunitx
for consistent display of values and units.
ltcmd
(part of the LaTeX format, formerly xparse
) \NewDocumentCommand
and related constructs providing enhanced alternatives to \newcommand
The new hook system re-implementing hooks such as \AtBeginDocument
, with many more hooks allowing patching general commands, environments and packages via \AddToHook
.
The new keys system based on l3keys
package but providing a much enhanced keyval system, that is now available to package writers, both for commands and also in the latest release as a new key-val based package option system (this is very new and probably not used by any packages yet).
At a lower level, the format now includes other L3 programming layer modules that don't have user level interfaces yet but l3color
has the back end support for a color system along the lines of xcolor
, l3backend
has back end support for graphics inclusion which could allow a re-implementation of graphicx
, and support for linking which should allow build in support for features currently provided by hyperref
.
Currently a lot of work is being done to improved PDF accessibility tagging, all of which is written in the L3 programming layer, but it will finally not require much or any "end user" action at all. Their documents should just generate more accessible PDF due to internal enhancements.
The above code is all by LaTeX team members, but other packages by LaTeX contributors such as the new extended tables package, tabularray
are also written using more or less purely L3 code.
Note on your final PS regarding name parsing note that the L3 programming layer, like LaTeX2e is not a new executable. It is written in TeX, and runs on the same engines with the same primitive behaviour. So the catcode mechanism that underlies the basic TeX token parsing that governs the rules about the characters allowed in command names is unchanged. Making digits letters (catcode 11) so they are allowed in command names, makes it hard to use them in other constructs, and L3 can not change TeX.
expl3
programming layer was incorporated into the LaTeX2e kernel. LaTeX2e usage stays the same for end users (so much so that you didn't notice it :). Of course, moving forward, documentation will be updated to recommend newer and more powerful interfaces, but old things will still work for the forseeable future (forever, likely, given the backwards compatibility tradition in the TeX community)\ExpandArgs{c}\newcommand{blub123}[1]{Hallo #1!}
and then use it with\UseName{blub123}{world}
.