texlive[73385] Master/texmf-dist: skdoc (9jan25)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 9 22:07:59 CET 2025


Revision: 73385
          https://tug.org/svn/texlive?view=revision&revision=73385
Author:   karl
Date:     2025-01-09 22:07:59 +0100 (Thu, 09 Jan 2025)
Log Message:
-----------
skdoc (9jan25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/skdoc/README
    trunk/Master/texmf-dist/doc/latex/skdoc/skdoc.pdf
    trunk/Master/texmf-dist/source/latex/skdoc/skdoc.dtx
    trunk/Master/texmf-dist/tex/latex/skdoc/skdoc.cls

Modified: trunk/Master/texmf-dist/doc/latex/skdoc/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/skdoc/README	2025-01-09 21:07:51 UTC (rev 73384)
+++ trunk/Master/texmf-dist/doc/latex/skdoc/README	2025-01-09 21:07:59 UTC (rev 73385)
@@ -1,6 +1,6 @@
 %% skdoc documentation class
 %%
-%% Copyright (C) 2012-2020 by Simon Sigurdhsson <sigurdhsson at gmail.com>
+%% Copyright (C) 2012-2025 by Simon Sigurdhsson <sigurdhsson at gmail.com>
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -17,7 +17,7 @@
 %% This work consists of the files skdoc.dtx
 %% and the derived filebase skdoc.cls.
 
-This is version 1.5d of the skdoc document class. It is designed to
+This is version 1.5e of the skdoc document class. It is designed to
 generate both documentation and derivative files using only LaTeX,
 i.e. without using docstrip and ins/dtx files.
 

Modified: trunk/Master/texmf-dist/doc/latex/skdoc/skdoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/skdoc/skdoc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/skdoc/skdoc.dtx	2025-01-09 21:07:51 UTC (rev 73384)
+++ trunk/Master/texmf-dist/source/latex/skdoc/skdoc.dtx	2025-01-09 21:07:59 UTC (rev 73385)
@@ -1,7 +1,7 @@
 % \iffalse
 %% skdoc documentation class
 %%
-%% Copyright (C) 2012-2020 by Simon Sigurdhsson <sigurdhsson at gmail.com>
+%% Copyright (C) 2012-2025 by Simon Sigurdhsson <sigurdhsson at gmail.com>
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -73,7 +73,7 @@
 %</driver>
 %<class>\ProvidesExplClass{skdoc}
 %<*class>
-    {2020/11/16}{1.5d}{skdoc documentation class}
+    {2025/01/08}{1.5e}{skdoc documentation class}
 %</class>
 %
 %<*driver>
@@ -132,7 +132,7 @@
 % {}{\small\pagemark}
 % \pagestyle{skdoc-class}
 %
-% \version{1.5d}
+% \version{1.5e}
 % \changes{1.0}{Initial version}
 % \changes{1.1}{Added support for syntax highlighting using \pkg{minted}}
 % \changes{1.1a}{Deprecate the use of \pkg{bibtex} in favour of \pkg{biblatex}}
@@ -148,6 +148,7 @@
 % \changes{1.5b}{Track \pkg{expl3} changes (thanks to Phelype Oleinik). Replace \pkg{opensans} option \opt{osfigures} with \opt{oldstyle} (\#40)}
 % \changes{1.5c}{Replace \pkg{scrpage} package with \pkg{scrlayer-scrpage} (thanks to Daniel Wunderlich)}
 % \changes{1.5d}{Use compatibiltiy levels for \pkg{scrartcl} (\#44)}
+% \changes{1.5e}{Fix incompatibilities with \pkg{glossaries} (\#47). Use \pkg{minted2} instead of \pkg{minted}}
 % \iffalse
 %%% Don't forget to update the version number and release date of
 %%% the package declaration on line 76!
@@ -221,8 +222,8 @@
 % \label{ssec:option:highlight}
 % The \opt{highlight} option enables or disabled syntax highlighting
 % of the implementation code. Highlighting is performed using
-% \pkg{minted}, and falls back to no highlighting if there is no
-% \cs{write18} access, if \pkg{minted} is unavailable or if the
+% \pkg{minted2}, and falls back to no highlighting if there is no
+% \cs{write18} access, if \pkg{minted2} is unavailable or if the
 % \texttt{pygmentize} binary can't be found.
 % \Notice{On non-unix platforms, the test for \texttt{pygmentize}
 % will likely fail. Therefore, syntax highlighting is not supported
@@ -471,7 +472,7 @@
 %
 % Since the \env{example} environment is based on the same mechanisms
 % as \env{MacroCode}, (mostly) the same typesetting properties apply.
-% In particular, the code will be highlighted if \pkg{minted} is
+% In particular, the code will be highlighted if \pkg{minted2} is
 % available. \Notice{Since the backend utilizes \cs{verbatim}, the
 % usual caveats apply. In particular, leaving whitespace before
 % \cs{end}\marg{example} will result in an extra newline at the end
@@ -679,7 +680,7 @@
 % sensitivity to whitespace, for instance). As detailed by the
 % description of the \opt{highlight} option (on page
 % \pageref{ssec:option:highlight}), the environment will highlight
-% the code using \pkg{minted} if possible. Multiple \meta{key}s are
+% the code using \pkg{minted2} if possible. Multiple \meta{key}s are
 % allowed, and the code will be written to all corresponding files.
 %
 % \subsubsection{Hiding the implementation}
@@ -827,7 +828,7 @@
 % Set up some booleans used throughout the code.
 % \begin{macro}{\g__skdoc_use_minted_bool}
 % The \texttt{use_minted} boolean keeps track of wether we're using
-% \pkg{minted} or not. The default value is \emph{false}.
+% \pkg{minted2} or not. The default value is \emph{false}.
 %    \begin{macrocode}
 \bool_new:N\g__skdoc_use_minted_bool
 \bool_gset_false:N\g__skdoc_use_minted_bool
@@ -925,10 +926,10 @@
 %    \end{macrocode}
 %
 % \subsection{Special case: syntax highlighting}
-% We support syntax highlighting through \pkg{minted}, but only if
+% We support syntax highlighting through \pkg{minted2}, but only if
 % we're running with unrestricted \cs{write18} access \emph{and}
 % there exists a suitable executable (\texttt{pygmentize}). Since
-% \pkg{minted} bails out without \cs{write18} access, we have to test
+% \pkg{minted2} bails out without \cs{write18} access, we have to test
 % that before even loading it.
 %
 % \subsubsection{A simple \cs{write18} test}
@@ -1017,7 +1018,7 @@
 % \end{macro*}
 %
 % Using the macros defined above, we can test for both \cs{write18}
-% and \texttt{pygmentize}, loading \pkg{minted} and setting a flag
+% and \texttt{pygmentize}, loading \pkg{minted2} and setting a flag
 % if both exist. If the option \opt{highlight} was supplied and set
 % to \texttt{false}, we do nothing.
 %    \begin{macrocode}
@@ -1027,17 +1028,17 @@
             \__skdoc_if_pygmentize:TF{
                 \bool_gset_true:N\g__skdoc_use_minted_bool
 %    \end{macrocode}
-% Since \pkg{minted} (through \pkg{fancyvrb}) loads \pkg{lineno}, and something
+% Since \pkg{minted2} (through \pkg{fancyvrb}) loads \pkg{lineno}, and something
 % above already defines \cs{c at linenumber}, we have to resort to a bit of a hack
-% before we actually load \pkg{minted}.
+% before we actually load \pkg{minted2}.
 %    \begin{macrocode}
                 \cs_undefine:N\c at linenumber
                 \cs_undefine:N\cl at linenumber
                 \cs_undefine:N\p at linenumber
                 \cs_undefine:N\thelinenumber
-                \RequirePackage{minted}
+                \RequirePackage{minted2}
 %    \end{macrocode}
-% Now that we have \pkg{minted}, we redefine the style of the line
+% Now that we have \pkg{minted2}, we redefine the style of the line
 % numbers to match what we have further down for the non-highlighted
 % mode.
 %    \begin{macrocode}
@@ -1216,7 +1217,7 @@
                 \def\PYZlb{[}
                 \def\PYZrb{]}
 %    \end{macrocode}
-% If there's no \texttt{pygmentize}, no \cs{write18} or no \pkg{minted},
+% If there's no \texttt{pygmentize}, no \cs{write18} or no \pkg{minted2},
 % we display a warning message and proceed without highlighting.
 %    \begin{macrocode}
             }{
@@ -1321,7 +1322,7 @@
     \__skdoc_if_print_code:T{
         \bool_if:NTF\g__skdoc_use_minted_bool{
 %    \end{macrocode}
-% If we're using \pkg{minted}, we set a few options ans open the
+% If we're using \pkg{minted2}, we set a few options ans open the
 % output file.
 %    \begin{macrocode}
             \bool_if:NF\g__skdoc_in_example_bool{
@@ -1341,7 +1342,7 @@
         }
         \bool_if:NF\g__skdoc_in_example_bool{
 %    \end{macrocode}
-% In all non-example code, \pkg{minted} or not, we output a small
+% In all non-example code, \pkg{minted2} or not, we output a small
 % marker showing what file we are writing to.
 %    \begin{macrocode}
             \marginnote{
@@ -1372,7 +1373,7 @@
             \bool_if:NTF\g__skdoc_use_minted_bool{
 %    \end{macrocode}
 % ...but if we're using minted, \enquote{a lot more} consists of also
-% writing the line to the file used by \pkg{minted}.
+% writing the line to the file used by \pkg{minted2}.
 %    \begin{macrocode}
                 \iow_now:Nx\minted at code{\the\verbatim at line}%
             }{
@@ -1440,15 +1441,15 @@
     \__skdoc_if_print_code:T{
         \bool_if:NTF\g__skdoc_use_minted_bool{
 %    \end{macrocode}
-% If we're using \pkg{minted}, we still have to actually print the code.
+% If we're using \pkg{minted2}, we still have to actually print the code.
 % We begin with closing the output file.
 %    \begin{macrocode}
             \iow_close:N\minted at code%
 %    \end{macrocode}
-% A few spacing fixes are applied. Since \pkg{minted} uses
+% A few spacing fixes are applied. Since \pkg{minted2} uses
 % \pkg{fancyvrb}, these negative \cs{vspace}s are derived from the
 % \pkg{fancyvrb} documentation \parencite[pp.~46--47]{Rahtz10}. What
-% we want to do is to offset the spacing produced by \pkg{minted}, so
+% we want to do is to offset the spacing produced by \pkg{minted2}, so
 % that we are in control.
 %    \begin{macrocode}
             \bool_if:NF\g__skdoc_in_example_bool{
@@ -1457,7 +1458,7 @@
                 \vspace*{-\parskip}
             }
 %    \end{macrocode}
-% Now, the internal \pkg{minted} macro \cs{minted at pygmentize} is called
+% Now, the internal \pkg{minted2} macro \cs{minted at pygmentize} is called
 % to highlight and typeset the code, and the temporary file is removed.
 %    \begin{macrocode}
             \minted at pygmentize{latex}%
@@ -1469,7 +1470,7 @@
             \vspace*{-\partopsep}
         }{
 %    \end{macrocode}
-% If we aren't using \pkg{minted}, we hack spaces with \cs{@esphack}
+% If we aren't using \pkg{minted2}, we hack spaces with \cs{@esphack}
 % instead.
 %    \begin{macrocode}
             \bool_if:NF\g__skdoc_in_example_bool{\@esphack}%
@@ -1976,7 +1977,7 @@
 %    \end{macrocode}
 % The code coffin is now filled, after clearing it. It'll get filled
 % with the contents of the verbatim environment, typeset like other
-% \env{MacroCode} environments in the document (\emph{i.e.} \pkg{minted}
+% \env{MacroCode} environments in the document (\emph{i.e.} \pkg{minted2}
 % if possible).
 %    \begin{macrocode}
     \coffin_clear:N\l__skdoc_example_code_coffin
@@ -2610,7 +2611,7 @@
 % our own \pkg{glossaries} style.
 %    \begin{macrocode}
 \newglossarystyle{docindex}{
-    \glossarystyle{indexgroup}
+    \setglossarystyle{indexgroup}
     \renewcommand*{\glspostdescription}{\unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}
     \renewenvironment{theglossary}{
         \bool_gset_true:N\g__skdoc_no_index_bool
@@ -2622,10 +2623,7 @@
         \end{multicols}
         \bool_gset_false:N\g__skdoc_no_index_bool
     }
-    \renewcommand*{\glossaryentryfield}[5]{
-        \item\glsentryitem{##1}\glstarget{##1}{##2}
-            \ifx\relax##4\relax\else\space(##4)\fi
-            ##3\glspostdescription\space ##5}
+    \renewcommand*{\glstreenamefmt}[1]{##1}
     \renewcommand*{\glsgroupheading}[1]{
         \IfStrEq{##1}{default}{
             \item{\descfont\glssymbolsgroupname}
@@ -2753,6 +2751,8 @@
 % \changes{1.4a}{Unconditionally add version \enquote{parent} to
 %   circumvent strange behaviour by \pkg{glossaries}. Also, gobble
 %   page numbers for similar reasons}
+% \changes{1.5e}{Added an extra intermediate layer of macros
+%   (\cs{@changes}) to force expansion of \cs{skdoc at macroname@stylized}}
 %    \begin{macrocode}
 \DeclareDocumentCommand\changes{mm}{%
     \@bsphack
@@ -2763,28 +2763,33 @@
         nonumberlist=true
     }
     \ifx\skdoc at macroname@key\@empty
-        \newglossaryentry{#1-general}{
-            type=changes,
-            description={\generalname{}:~#2},
-            parent={#1},
-            sort={0},
-            nonumberlist=true
-        }
-        \glsadd[types=changes,format=@gobble]{#1-general}
+        \exp_args:Ne\@changes{\generalname}{!general}{#1}{#2}
     \else
-        \newglossaryentry{#1-\skdoc at macroname@key}{
-            type=changes,
-            description={\skdoc at macroname@stylized{}:~#2},
-            parent={#1},
-            sort={\skdoc at macroname@key},
-            nonumberlist=true
-        }
-        \glsadd[types=changes,format=@gobble]{#1-\skdoc at macroname@key}
+        \exp_args:Nee\@changes{\skdoc at macroname@stylized}{\skdoc at macroname@key}{#1}{#2}
     \fi
     \@esphack
 }
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\@changes}[2]
+%   {A prefix prepended to the change log message}
+%   {An internal key used for sorting changes within each version}
+%   {The version in which the changes were made}
+%   {A short description of the changes}
+%    \begin{macrocode}
+\DeclareDocumentCommand\@changes{mmmm}{%
+    \newglossaryentry{#3-#2}{
+        type=changes,
+        name={#1},
+        description={#4},
+        parent={#3},
+        sort={#2},
+        nonumberlist=true
+    }
+    \glsadd[types=changes,format=@gobble]{#3-#2}
+}
+%    \end{macrocode}
+% \end{macro}
 %
 % \subsubsection{Displaying the changelog}
 % Displaying the changelog is equally simple. We begin by defining
@@ -2791,7 +2796,7 @@
 % our own \pkg{glossaries} style.
 %    \begin{macrocode}
 \newglossarystyle{changelog}{
-    \glossarystyle{altlist}
+    \setglossarystyle{altlist}
     \renewenvironment{theglossary}{
         \bool_gset_true:N\g__skdoc_no_index_bool
         \begin{multicols}{2}\begin{description}
@@ -2799,15 +2804,16 @@
         \end{description}\end{multicols}
         \bool_gset_false:N\g__skdoc_no_index_bool
     }
-    \renewcommand*{\glossaryentryfield}[5]{
+    \renewcommand*{\glossentry}[2]{
         \par\vspace{5\p@}\relax
-        \item[\glsentryitem{##1}\glstarget{##1}{##2}]
-                    \mbox{}\par\nobreak\@afterheading
+        \item[\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}]
+            \mbox{}\par\nobreak\@afterheading
     }
-    \renewcommand{\glossarysubentryfield}[6]{%
+    \renewcommand*{\subglossentry}[3]{
         \par\hspace*{\itemindent}
-        \glssubentryitem{##2}%
-        \glstarget{##2}{\strut}##4\glspostdescription\space ##6
+        \glssubentryitem{##2}\glstarget{##2}{\strut}%
+        \glossentryname{##2}:~\glossentrydesc{##2}%
+        \glspostdescription\space ##3
     }
 }
 %    \end{macrocode}
@@ -2939,7 +2945,7 @@
     }%
     \IfNoValueTF{#1}{}{\keys_set:nn{skdoc at package}{#1}}%
     \def\@package{#2}%
-    \title{The~\textbf{\pkg*{\@package}}~package}%
+    \title{The~\textbf{\textsf{\@package}}~package}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2999,6 +3005,7 @@
 \DeclareDocumentCommand\thepkg{}{\thepackage}
 %    \end{macrocode}
 % \end{macro}
+% \changes{1.5e}{Always expand \cs{@title} when setting metadata}
 % Additionally we define \cs{skdocpdfsettings}, which is also used
 % by \cs{maketitle}, to include PDF metadata if the documentation
 % is being compiled using \hologo{pdfLaTeX}.
@@ -3007,7 +3014,7 @@
     \def\skdocpdfsettings{%
         \hypersetup{%
             pdfauthor   = {\@author\space<\@plainemail>},
-            pdftitle    = {\@title},
+            pdftitle    = {\text_purify:n{\@title}},
             pdfsubject  = {Documentation~of~LaTeX~package~\@package},
             pdfkeywords = {\@package,~LaTeX,~TeX}
         }%

Modified: trunk/Master/texmf-dist/tex/latex/skdoc/skdoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/skdoc/skdoc.cls	2025-01-09 21:07:51 UTC (rev 73384)
+++ trunk/Master/texmf-dist/tex/latex/skdoc/skdoc.cls	2025-01-09 21:07:59 UTC (rev 73385)
@@ -8,7 +8,7 @@
 %% 
 %% skdoc documentation class
 %%
-%% Copyright (C) 2012-2020 by Simon Sigurdhsson <sigurdhsson at gmail.com>
+%% Copyright (C) 2012-2025 by Simon Sigurdhsson <sigurdhsson at gmail.com>
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,7 @@
 %% and the derived filebase skdoc.cls.
 \RequirePackage{expl3}
 \ProvidesExplClass{skdoc}
-    {2020/11/16}{1.5d}{skdoc documentation class}
+    {2025/01/08}{1.5e}{skdoc documentation class}
 \PassOptionsToPackage{log-declarations=false}{xparse}
 \LoadClass[ DIV7,
             headings=big,
@@ -130,7 +130,7 @@
                 \cs_undefine:N\cl at linenumber
                 \cs_undefine:N\p at linenumber
                 \cs_undefine:N\thelinenumber
-                \RequirePackage{minted}
+                \RequirePackage{minted2}
                 \renewcommand{\theFancyVerbLine}{
                     \sffamily\tiny\textcolor{lightgray}{
                     \oldstylenums{\arabic{FancyVerbLine}}}
@@ -1050,7 +1050,7 @@
     \underline{\hyperup{#1}}
 }
 \newglossarystyle{docindex}{
-    \glossarystyle{indexgroup}
+    \setglossarystyle{indexgroup}
     \renewcommand*{\glspostdescription}{\unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}
     \renewenvironment{theglossary}{
         \bool_gset_true:N\g__skdoc_no_index_bool
@@ -1062,10 +1062,7 @@
         \end{multicols}
         \bool_gset_false:N\g__skdoc_no_index_bool
     }
-    \renewcommand*{\glossaryentryfield}[5]{
-        \item\glsentryitem{##1}\glstarget{##1}{##2}
-            \ifx\relax##4\relax\else\space(##4)\fi
-            ##3\glspostdescription\space ##5}
+    \renewcommand*{\glstreenamefmt}[1]{##1}
     \renewcommand*{\glsgroupheading}[1]{
         \IfStrEq{##1}{default}{
             \item{\descfont\glssymbolsgroupname}
@@ -1129,28 +1126,25 @@
         nonumberlist=true
     }
     \ifx\skdoc at macroname@key\@empty
-        \newglossaryentry{#1-general}{
-            type=changes,
-            description={\generalname{}:~#2},
-            parent={#1},
-            sort={0},
-            nonumberlist=true
-        }
-        \glsadd[types=changes,format=@gobble]{#1-general}
+        \exp_args:Ne\@changes{\generalname}{!general}{#1}{#2}
     \else
-        \newglossaryentry{#1-\skdoc at macroname@key}{
-            type=changes,
-            description={\skdoc at macroname@stylized{}:~#2},
-            parent={#1},
-            sort={\skdoc at macroname@key},
-            nonumberlist=true
-        }
-        \glsadd[types=changes,format=@gobble]{#1-\skdoc at macroname@key}
+        \exp_args:Nee\@changes{\skdoc at macroname@stylized}{\skdoc at macroname@key}{#1}{#2}
     \fi
     \@esphack
 }
+\DeclareDocumentCommand\@changes{mmmm}{%
+    \newglossaryentry{#3-#2}{
+        type=changes,
+        name={#1},
+        description={#4},
+        parent={#3},
+        sort={#2},
+        nonumberlist=true
+    }
+    \glsadd[types=changes,format=@gobble]{#3-#2}
+}
 \newglossarystyle{changelog}{
-    \glossarystyle{altlist}
+    \setglossarystyle{altlist}
     \renewenvironment{theglossary}{
         \bool_gset_true:N\g__skdoc_no_index_bool
         \begin{multicols}{2}\begin{description}
@@ -1158,15 +1152,16 @@
         \end{description}\end{multicols}
         \bool_gset_false:N\g__skdoc_no_index_bool
     }
-    \renewcommand*{\glossaryentryfield}[5]{
+    \renewcommand*{\glossentry}[2]{
         \par\vspace{5\p@}\relax
-        \item[\glsentryitem{##1}\glstarget{##1}{##2}]
-                    \mbox{}\par\nobreak\@afterheading
+        \item[\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}]
+            \mbox{}\par\nobreak\@afterheading
     }
-    \renewcommand{\glossarysubentryfield}[6]{%
+    \renewcommand*{\subglossentry}[3]{
         \par\hspace*{\itemindent}
-        \glssubentryitem{##2}%
-        \glstarget{##2}{\strut}##4\glspostdescription\space ##6
+        \glssubentryitem{##2}\glstarget{##2}{\strut}%
+        \glossentryname{##2}:~\glossentrydesc{##2}%
+        \glspostdescription\space ##3
     }
 }
 \newglossary{changes}{gls}{glo}{Changes}
@@ -1231,7 +1226,7 @@
     }%
     \IfNoValueTF{#1}{}{\keys_set:nn{skdoc at package}{#1}}%
     \def\@package{#2}%
-    \title{The~\textbf{\pkg*{\@package}}~package}%
+    \title{The~\textbf{\textsf{\@package}}~package}%
 }
 \DeclareDocumentCommand\ctan{m}{%
     \def\@ctan{\url{http://www.ctan.org/pkg/#1}}%
@@ -1254,7 +1249,7 @@
     \def\skdocpdfsettings{%
         \hypersetup{%
             pdfauthor   = {\@author\space<\@plainemail>},
-            pdftitle    = {\@title},
+            pdftitle    = {\text_purify:n{\@title}},
             pdfsubject  = {Documentation~of~LaTeX~package~\@package},
             pdfkeywords = {\@package,~LaTeX,~TeX}
         }%



More information about the tex-live-commits mailing list.