texlive[72885] Master/texmf-dist: fvextra (18nov24)

commits+karl at tug.org commits+karl at tug.org
Mon Nov 18 22:05:24 CET 2024


Revision: 72885
          https://tug.org/svn/texlive?view=revision&revision=72885
Author:   karl
Date:     2024-11-18 22:05:24 +0100 (Mon, 18 Nov 2024)
Log Message:
-----------
fvextra (18nov24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/fvextra/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/fvextra/fvextra.pdf
    trunk/Master/texmf-dist/source/latex/fvextra/fvextra.dtx
    trunk/Master/texmf-dist/tex/latex/fvextra/fvextra.sty

Modified: trunk/Master/texmf-dist/doc/latex/fvextra/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fvextra/CHANGELOG.md	2024-11-18 21:04:23 UTC (rev 72884)
+++ trunk/Master/texmf-dist/doc/latex/fvextra/CHANGELOG.md	2024-11-18 21:05:24 UTC (rev 72885)
@@ -1,6 +1,14 @@
 # Changelog
 
 
+## v1.10.0 (2024/11/17)
+
+*  Replaced `FancyVerbBufferIndex` counter with `\FancyVerbBufferIndex` macro
+   to prevent issues with commands and environments such as `\text` from
+   `amsmath` that modify counter behavior.
+
+
+
 ## v1.9.0 (2024/10/16)
 
 *  Replaced buffer length counters with macros to prevent issues with

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

Modified: trunk/Master/texmf-dist/source/latex/fvextra/fvextra.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fvextra/fvextra.dtx	2024-11-18 21:04:23 UTC (rev 72884)
+++ trunk/Master/texmf-dist/source/latex/fvextra/fvextra.dtx	2024-11-18 21:05:24 UTC (rev 72885)
@@ -26,7 +26,7 @@
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{fvextra}
 %<*package>
-    [2024/10/16 v1.9.0 fvextra - extensions and patches for fancyvrb]
+    [2024/11/17 v1.10.0 fvextra - extensions and patches for fancyvrb]
 %</package>
 %
 %<*driver>
@@ -819,7 +819,7 @@
 %
 % Below is an extended example that demonstrates what is possible with |VerbatimBuffer| combined with |\VerbatimInsertBuffer|.  This uses |\ifdefstring| from the \pkg{etoolbox} package.
 % \begin{itemize}
-% \item |\setformatter| defines an empty |\formatter| macro.  Then it loops over the lines in a buffer looking for a line containing only the text ``red''.  If this is found, it redefines |\formatter| to |\color{red}|.  |FancyVerbBufferIndex| is a counter that is always available for buffer looping.  |\FancyVerbBufferLength| is the default macro containing the buffer length (number of lines).  |\FancyVerbBufferLineName| contains the base name for buffer line macros (default |FancyVerbBufferLine|).
+% \item |\setformatter| defines an empty |\formatter| macro.  Then it loops over the lines in a buffer looking for a line containing only the text ``red''.  If this is found, it redefines |\formatter| to |\color{red}|.  |\FancyVerbBufferIndex| is a macro that is always available for buffer looping.  |\FancyVerbBufferLength| is the default macro containing the buffer length (number of lines).  |\FancyVerbBufferLineName| contains the base name for buffer line macros (default |FancyVerbBufferLine|).
 % \item |afterbuffer| involves two steps:  (1) |\setformatter| loops through the buffer and defines |\formatter| based on the buffer contents, and (2) |\VerbatimInsertBuffer| typesets the buffer, using |formatcom=\formatter| to format the text based on whether any line contains only the text ``red''.
 % \end{itemize}
 %
@@ -826,12 +826,12 @@
 %\begin{tcblisting}{oversize=5em}
 %\def\setformatter{%
 %  \def\formatter{}%
-%  \setcounter{FancyVerbBufferIndex}{1}%
-%  \loop\unless\ifnum\value{FancyVerbBufferIndex}>\FancyVerbBufferLength\relax
+%  \def\FancyVerbBufferIndex{1}%
+%  \loop\unless\ifnum\FancyVerbBufferIndex>\FancyVerbBufferLength\relax
 %    \expandafter\let\expandafter\bufferline
-%      \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+%      \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
 %    \ifdefstring{\bufferline}{red}{\def\formatter{\color{red}}}{}%
-%    \stepcounter{FancyVerbBufferIndex}%
+%    \edef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}%
 %  \repeat}
 %
 %\begin{VerbatimBuffer}[
@@ -853,12 +853,12 @@
 %\end{VerbatimBuffer}
 %
 %\def\formatter{}
-%\setcounter{FancyVerbBufferIndex}{1}
-%\loop\unless\ifnum\value{FancyVerbBufferIndex}>\exbufflen\relax
+%\def\FancyVerbBufferIndex{1}
+%\loop\unless\ifnum\FancyVerbBufferIndex>\exbufflen\relax
 %  \expandafter\let\expandafter\bufferline
-%    \csname exbuff\arabic{FancyVerbBufferIndex}\endcsname
+%    \csname exbuff\FancyVerbBufferIndex\endcsname
 %  \ifdefstring{\bufferline}{red}{\def\formatter{\color{red}}}{}
-%  \stepcounter{FancyVerbBufferIndex}
+%  \edef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}
 %\repeat
 %
 %\VerbatimInsertBuffer[
@@ -880,12 +880,12 @@
 % This is the macro that adds lines to the buffer.  The default is designed to create a truly verbatim buffer via |\detokenize|.  This can be customized if you wish to use \fancyvrb\ options related to catcodes to create a buffer that is only partially verbatim (that contains macros).
 % \begin{Verbatim}[gobble=2, fontsize=\small]
 % \def\FancyVerbDefaultBufferer#1{%
-%   \expandafter\xdef\csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname{%
+%   \expandafter\xdef\csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname{%
 %     \detokenize{#1}}}
 % \end{Verbatim}
 % A custom |bufferer| must take a single argument |#1| (a line of the environment text) and ultimately store the processed line in a macro called
 % \begin{Verbatim}[gobble=2]
-% \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+% \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
 % \end{Verbatim}
 % This macro must be defined globally, so |\xdef| or |\gdef| is necessary (this does not interfere with scoping from |globalbuffer|).  Otherwise, there are no restrictions.  The |\xdef| and |\detokenize| in the default definition guarantee that the buffer consists only of the literal text from the environment, but this is not required for a custom |bufferer|.
 %
@@ -4042,10 +4042,10 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{FancyVerbBufferIndex}
+% \begin{macro}{\FancyVerbBufferIndex}
 % Current index in buffer during buffering.  This is given a |FancyVerb*| macro name since it may be accessed by the user in defining custom |bufferer|.
 %    \begin{macrocode}
-\newcounter{FancyVerbBufferIndex}
+\def\FancyVerbBufferIndex{0}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -4055,7 +4055,7 @@
 \define at key{FV}{bufferer}{%
   \let\FV at Bufferer=#1\relax}
 \def\FancyVerbDefaultBufferer#1{%
-  \expandafter\xdef\csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname{%
+  \expandafter\xdef\csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname{%
     \detokenize{#1}}}
 \fvset{bufferer=\FancyVerbDefaultBufferer}
 %    \end{macrocode}
@@ -4127,7 +4127,7 @@
   \FV at UseKeyValues
   \setcounter{FancyVerbBufferLine}{\FV at bufferlengthmacro}%
   \let\c at FancyVerbLine\c at FancyVerbBufferLine
-  \setcounter{FancyVerbBufferIndex}{\FV at bufferlengthmacro}%
+  \xdef\FancyVerbBufferIndex{\FV at bufferlengthmacro}%
   \ifbool{FV at globalbuffer}%
    {\global\booltrue{FV at globalbuffer@tmp}}%
    {\global\boolfalse{FV at globalbuffer@tmp}%
@@ -4136,7 +4136,9 @@
     \global\let\FancyVerbBufferLineName at tmp\FancyVerbBufferLineName}%
   \global\let\FV at afterbuffer@tmp\FV at afterbuffer
   \FV at DefineWhiteSpace
-  \def\FV at ProcessLine{\stepcounter{FancyVerbBufferIndex}\FV at Bufferer}%
+  \def\FV at ProcessLine{%
+    \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}%
+    \FV at Bufferer}%
   \let\FV at FontScanPrep\relax
   \let\@noligs\relax
   \FancyVerbDefineActive
@@ -4143,8 +4145,8 @@
   \FancyVerbFormatCom
   \FV at Scan}
 \def\FVE at VerbatimBuffer{%
-  \expandafter\xdef\FV at bufferlengthmacro{\theFancyVerbBufferIndex}%
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \expandafter\xdef\FV at bufferlengthmacro{\FancyVerbBufferIndex}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup
   \@esphack
   \begingroup
@@ -4198,21 +4200,21 @@
 \def\VerbatimInsertBuffer at def@FV at Line#1{%
   \FVExtraRetokenizeVArg{\def\FV at Line}{}{#1}}
 \def\FancyVerbGetLine at VerbatimInsertBuffer{%
-  \ifnum\value{FancyVerbBufferIndex}>\FV at bufferlengthmacro\relax
+  \ifnum\FancyVerbBufferIndex>\FV at bufferlengthmacro\relax
     \global\let\FV at EnvironName\relax
     \let\next\relax
   \else
-    \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+    \ifcsname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \expandafter\let\expandafter\FV at Line@Buffer
-        \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+        \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \expandafter\VerbatimInsertBuffer at def@FV at Line\expandafter{\FV at Line@Buffer}%
       \def\next{\FV at PreProcessLine\FV at GetLine}%
-      \stepcounter{FancyVerbBufferIndex}%
+      \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}%
     \else
       \def\next{%
         \PackageError{fvextra}%
          {Buffer with line macro named
-          "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
+          "\FancyVerbBufferLineName\FancyVerbBufferIndex" does not exist}%
          {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
       }%
     \fi
@@ -4224,9 +4226,9 @@
   \let\FV at CheckScan\relax
   \let\FV at Environment\FV at Environment@InsertBuffer
   \let\FancyVerbGetLine\FancyVerbGetLine at VerbatimInsertBuffer
-  \setcounter{FancyVerbBufferIndex}{1}%
+  \gdef\FancyVerbBufferIndex{1}%
   \VerbatimInsertBuffer at i{#1}%
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup
   \@doendpe}
 \begingroup
@@ -4252,15 +4254,15 @@
   \begingroup
   \def\FV at KeyValues{#1}%
   \FV at UseKeyValues
-  \setcounter{FancyVerbBufferIndex}{\FV at bufferlengthmacro}%
+  \xdef\FancyVerbBufferIndex{\FV at bufferlengthmacro}%
   \expandafter\xdef\FV at bufferlengthmacro{0}%
-  \loop\unless\ifnum\value{FancyVerbBufferIndex}<1\relax
+  \loop\unless\ifnum\FancyVerbBufferIndex<1\relax
     \expandafter\global\expandafter\let
-      \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+      \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \FV at Undefined
-    \addtocounter{FancyVerbBufferIndex}{-1}%
+    \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex-1\relax}%
   \repeat
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup}
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/tex/latex/fvextra/fvextra.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fvextra/fvextra.sty	2024-11-18 21:04:23 UTC (rev 72884)
+++ trunk/Master/texmf-dist/tex/latex/fvextra/fvextra.sty	2024-11-18 21:05:24 UTC (rev 72885)
@@ -20,7 +20,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{fvextra}
-    [2024/10/16 v1.9.0 fvextra - extensions and patches for fancyvrb]
+    [2024/11/17 v1.10.0 fvextra - extensions and patches for fancyvrb]
 \RequirePackage{etoolbox}
 \RequirePackage{fancyvrb}
 \RequirePackage{upquote}
@@ -1272,11 +1272,11 @@
 \define at key{FV}{afterbuffer}{%
   \def\FV at afterbuffer{#1}}
 \fvset{afterbuffer=}
-\newcounter{FancyVerbBufferIndex}
+\def\FancyVerbBufferIndex{0}
 \define at key{FV}{bufferer}{%
   \let\FV at Bufferer=#1\relax}
 \def\FancyVerbDefaultBufferer#1{%
-  \expandafter\xdef\csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname{%
+  \expandafter\xdef\csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname{%
     \detokenize{#1}}}
 \fvset{bufferer=\FancyVerbDefaultBufferer}
 \define at key{FV}{bufferlengthname}{%
@@ -1315,7 +1315,7 @@
   \FV at UseKeyValues
   \setcounter{FancyVerbBufferLine}{\FV at bufferlengthmacro}%
   \let\c at FancyVerbLine\c at FancyVerbBufferLine
-  \setcounter{FancyVerbBufferIndex}{\FV at bufferlengthmacro}%
+  \xdef\FancyVerbBufferIndex{\FV at bufferlengthmacro}%
   \ifbool{FV at globalbuffer}%
    {\global\booltrue{FV at globalbuffer@tmp}}%
    {\global\boolfalse{FV at globalbuffer@tmp}%
@@ -1324,7 +1324,9 @@
     \global\let\FancyVerbBufferLineName at tmp\FancyVerbBufferLineName}%
   \global\let\FV at afterbuffer@tmp\FV at afterbuffer
   \FV at DefineWhiteSpace
-  \def\FV at ProcessLine{\stepcounter{FancyVerbBufferIndex}\FV at Bufferer}%
+  \def\FV at ProcessLine{%
+    \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}%
+    \FV at Bufferer}%
   \let\FV at FontScanPrep\relax
   \let\@noligs\relax
   \FancyVerbDefineActive
@@ -1331,8 +1333,8 @@
   \FancyVerbFormatCom
   \FV at Scan}
 \def\FVE at VerbatimBuffer{%
-  \expandafter\xdef\FV at bufferlengthmacro{\theFancyVerbBufferIndex}%
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \expandafter\xdef\FV at bufferlengthmacro{\FancyVerbBufferIndex}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup
   \@esphack
   \begingroup
@@ -1371,21 +1373,21 @@
 \def\VerbatimInsertBuffer at def@FV at Line#1{%
   \FVExtraRetokenizeVArg{\def\FV at Line}{}{#1}}
 \def\FancyVerbGetLine at VerbatimInsertBuffer{%
-  \ifnum\value{FancyVerbBufferIndex}>\FV at bufferlengthmacro\relax
+  \ifnum\FancyVerbBufferIndex>\FV at bufferlengthmacro\relax
     \global\let\FV at EnvironName\relax
     \let\next\relax
   \else
-    \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+    \ifcsname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \expandafter\let\expandafter\FV at Line@Buffer
-        \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+        \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \expandafter\VerbatimInsertBuffer at def@FV at Line\expandafter{\FV at Line@Buffer}%
       \def\next{\FV at PreProcessLine\FV at GetLine}%
-      \stepcounter{FancyVerbBufferIndex}%
+      \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex+1\relax}%
     \else
       \def\next{%
         \PackageError{fvextra}%
          {Buffer with line macro named
-          "\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}" does not exist}%
+          "\FancyVerbBufferLineName\FancyVerbBufferIndex" does not exist}%
          {Check bufferlinename, bufferlengthname, and globalbuffer settings}%
       }%
     \fi
@@ -1397,9 +1399,9 @@
   \let\FV at CheckScan\relax
   \let\FV at Environment\FV at Environment@InsertBuffer
   \let\FancyVerbGetLine\FancyVerbGetLine at VerbatimInsertBuffer
-  \setcounter{FancyVerbBufferIndex}{1}%
+  \gdef\FancyVerbBufferIndex{1}%
   \VerbatimInsertBuffer at i{#1}%
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup
   \@doendpe}
 \begingroup
@@ -1417,15 +1419,15 @@
   \begingroup
   \def\FV at KeyValues{#1}%
   \FV at UseKeyValues
-  \setcounter{FancyVerbBufferIndex}{\FV at bufferlengthmacro}%
+  \xdef\FancyVerbBufferIndex{\FV at bufferlengthmacro}%
   \expandafter\xdef\FV at bufferlengthmacro{0}%
-  \loop\unless\ifnum\value{FancyVerbBufferIndex}<1\relax
+  \loop\unless\ifnum\FancyVerbBufferIndex<1\relax
     \expandafter\global\expandafter\let
-      \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+      \csname\FancyVerbBufferLineName\FancyVerbBufferIndex\endcsname
       \FV at Undefined
-    \addtocounter{FancyVerbBufferIndex}{-1}%
+    \xdef\FancyVerbBufferIndex{\the\numexpr\FancyVerbBufferIndex-1\relax}%
   \repeat
-  \setcounter{FancyVerbBufferIndex}{0}%
+  \gdef\FancyVerbBufferIndex{0}%
   \endgroup}
 \def\FV at Command#1#2{%
   \FVExtra at ifstarVArg



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