renewed \ProcessOptions*

Linas Stonys lstonys at
Thu Nov 23 22:28:31 CET 2023

I noticed that \ProcessOptions* acts different  in TL2019 and TL2023. In 
older Tl if option is global (used in \documentclass)
then inside package it only evaluate that option  if it declared inside 
package. Now the behavior is changed.  If you declare
option in style file and do not use \ProcessOptions then these options 
will be processed in other package (in next \ProcessOptions* ).
For example  I use same options for many classes and I put them in 
separate style file (*myoptions.sty*) an load it in the class with .
There is only one option
and in the class file I add
so I expect to compile normally but with TL2023 I'll get  "\IamBug 
undefined error" because showbug option
will be executed not in class but in the inside class I loaded package 

HERE is the \ProcessOptions* responsible macro
\def\@xprocess at ptions{%
        % *\@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}% 
TL2019 was this*
*\@ifundefined{ds@\detokenize\expandafter{\CurrentOption}}{}{% % TL2023 *
           \@use at ption
           \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
*good enough to test is global option in  current packages options?
*Here is min example files

%\input myoptions.sty
\expandafter\show\csname simplepackage.sty-h@@k\endcsname % here it 
shows ->.
\expandafter\show\csname simplepackage.sty-h@@k\endcsname % here it 
shows ->\IamBug \expandafter \let \csname unprocessedoptions-\@currname 
.\@currext \endcsname \relax .

Is it a bug in \ProcessOptions* and it will be changed to previous version?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the tex-live mailing list.