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.