texlive[61587] Master/texmf-dist: luamplib (12jan22)

commits+karl at tug.org commits+karl at tug.org
Wed Jan 12 22:19:47 CET 2022


Revision: 61587
          http://tug.org/svn/texlive?view=revision&revision=61587
Author:   karl
Date:     2022-01-12 22:19:46 +0100 (Wed, 12 Jan 2022)
Log Message:
-----------
luamplib (12jan22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/luatex/luamplib/NEWS
    trunk/Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf
    trunk/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex
    trunk/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx
    trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua
    trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty

Modified: trunk/Master/texmf-dist/doc/luatex/luamplib/NEWS
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luamplib/NEWS	2022-01-12 21:19:30 UTC (rev 61586)
+++ trunk/Master/texmf-dist/doc/luatex/luamplib/NEWS	2022-01-12 21:19:46 UTC (rev 61587)
@@ -1,5 +1,11 @@
                        History of the luamplib package
 
+2022/01/12 2.23.0
+    In parellel with the functionality introduced at previous version,
+    \everymplib (\everyendmplib as well, of course) supports
+    optional argument of named MetaPost instance, affecting only those
+    mplibcode environments of the same name.
+
 2022/01/09 2.22.0
     * Sergey Slyusarev (@jemmybutton) has suggested and contributed
     a new feature for LaTeX mplibcode environment, which now supports

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

Modified: trunk/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex	2022-01-12 21:19:30 UTC (rev 61586)
+++ trunk/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex	2022-01-12 21:19:46 UTC (rev 61587)
@@ -169,12 +169,13 @@
 \vskip 2\baselineskip
 \mplibcodeinherit{disable}%
 
+\everymplib[instanceOne]{beginfig(1);}
+\everyendmplib[instanceOne]{endfig;}
+
 \begin{mplibcode}[instanceOne]
-beginfig(1);
 a := 1cm;
 draw fullcircle scaled a;
 draw btex a circle with $d=a$ etex shifted (a,0);
-endfig;
 \end{mplibcode}%
 Current instance name is: \currentmpinstancename \vskip 2\baselineskip
 
@@ -213,10 +214,8 @@
 Current instance name is: \currentmpinstancename (should be empty) \vskip 2\baselineskip
 
 \begin{mplibcode}[instanceOne]
-beginfig(1);
 draw unitsquare scaled a;
 draw btex a square with side $=a$, inherited from the same instance etex shifted (3/2a, 1/2a);
-endfig;
 \end{mplibcode}%
 Current instance name is: \currentmpinstancename \vskip 2\baselineskip
 

Modified: trunk/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx
===================================================================
--- trunk/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx	2022-01-12 21:19:30 UTC (rev 61586)
+++ trunk/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx	2022-01-12 21:19:46 UTC (rev 61587)
@@ -85,7 +85,7 @@
 %<*driver>
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{luamplib.drv}%
-  [2022/01/09 v2.22.0 Interface for using the mplib library]%
+  [2022/01/12 v2.23.0 Interface for using the mplib library]%
 \documentclass{ltxdoc}
 \usepackage{metalogo,multicol,mdwlist,fancyvrb,xspace}
 \usepackage[x11names]{xcolor}
@@ -153,7 +153,7 @@
 % \author{Hans Hagen, Taco Hoekwater, Elie Roux, Philipp Gesang and Kim Dohyun\\
 % Maintainer: LuaLaTeX Maintainers ---
 % Support: \email{lualatex-dev at tug.org}}
-% \date{2022/01/09 v2.22.0}
+% \date{2022/01/12 v2.23.0}
 %
 % \maketitle
 %
@@ -269,9 +269,9 @@
 %
 % \paragraph{\cs{everymplib}, \cs{everyendmplib}}
 %   Since v2.3, new macros \cs{everymplib} and \cs{everyendmplib} redefine
-%   token lists \cs{everymplibtoks} and \cs{everyendmplibtoks} respectively,
+%   the lua table containing MetaPost code
 %   which will
-%   be automatically inserted at the beginning and ending of each mplib code.
+%   be automatically inserted at the beginning and ending of each |mplibcode|.
 %   \begin{verbatim}
 %     \everymplib{ beginfig(0); }
 %     \everyendmplib{ endfig; }
@@ -374,6 +374,17 @@
 %   \item  When an instance names is set,
 %     respective |\currentmpinstancename| is set.
 %   \end{itemize}
+%   In parellel with this functionality, v2.23 and after supports
+%   optional argument of instance name for \cs{everymplib} and
+%   \cs{everyendmplib}, affecting only those |mplibcode| environments
+%   of the same name.
+%   Unnamed \cs{everymplib} affects not only those instances with no name,
+%   but also those with name but with no corresponding \cs{everymplib}.
+%   Syntax is:
+%   \begin{verbatim}
+%     \everymplib[instanceName]{...}
+%     \everyendmplib[instanceName]{...}
+%   \end{verbatim}
 %
 % \paragraph{\cs{mplibglobaltextext}}
 %   To inherit |btex ... etex| labels as well as metapost variables,
@@ -435,8 +446,8 @@
 
 luatexbase.provides_module {
   name          = "luamplib",
-  version       = "2.22.0",
-  date          = "2022/01/09",
+  version       = "2.23.0",
+  date          = "2022/01/12",
   description   = "Lua package to typeset Metapost with LuaTeX's MPLib.",
 }
 
@@ -1258,6 +1269,9 @@
   end
 end
 
+luamplib.everymplib    = { [""] = "" }
+luamplib.everyendmplib = { [""] = "" }
+
 local function process_mplibcode (data, instancename)
 %    \end{macrocode}
 %
@@ -1265,8 +1279,10 @@
 %    \begin{macrocode}
   legacy_mplibcode_reset()
 
-  local everymplib    = texgettoks'everymplibtoks'    or ''
-  local everyendmplib = texgettoks'everyendmplibtoks' or ''
+  local everymplib    = luamplib.everymplib[instancename] or
+                        luamplib.everymplib[""]
+  local everyendmplib = luamplib.everyendmplib[instancename] or
+                        luamplib.everyendmplib[""]
   data = format("\n%s\n%s\n%s\n",everymplib, data, everyendmplib)
   data = data:gsub("\r","\n")
 
@@ -2040,7 +2056,7 @@
 \else
   \NeedsTeXFormat{LaTeX2e}
   \ProvidesPackage{luamplib}
-    [2022/01/09 v2.22.0 mplib package for LuaTeX]
+    [2022/01/12 v2.23.0 mplib package for LuaTeX]
   \ifx\newluafunction\@undefined
   \input ltluatex
   \fi
@@ -2124,7 +2140,7 @@
 }
 \long\def\mplibdocode#1\endmplibcode{%
   \endgroup
-  \directlua{luamplib.process_mplibcode([===[\unexpanded{#1}]===])}%
+  \directlua{luamplib.process_mplibcode([===[\unexpanded{#1}]===],"")}%
   \endgroup
 }
 \else
@@ -2186,30 +2202,47 @@
 \newtoks\mplibtmptoks
 %    \end{macrocode}
 %
-%    \cs{everymplib} \& \cs{everyendmplib}: macros redefining
-%    \cs{everymplibtoks} \& \cs{everyendmplibtoks} respectively
+%    \cs{everymplib} \& \cs{everyendmplib}: macros resetting
+%    |luamplib.every(end)mplib| tables
 %
 %    \begin{macrocode}
-\newtoks\everymplibtoks
-\newtoks\everyendmplibtoks
 \protected\def\everymplib{%
   \begingroup
   \mplibsetupcatcodes
   \mplibdoeverymplib
 }
-\long\def\mplibdoeverymplib#1{%
-  \endgroup
-  \everymplibtoks{#1}%
-}
 \protected\def\everyendmplib{%
   \begingroup
   \mplibsetupcatcodes
   \mplibdoeveryendmplib
 }
-\long\def\mplibdoeveryendmplib#1{%
-  \endgroup
-  \everyendmplibtoks{#1}%
-}
+\ifcsname ver at luamplib.sty\endcsname
+  \newcommand\mplibdoeverymplib[2][]{%
+    \endgroup
+    \directlua{
+      luamplib.everymplib["#1"] = [===[\unexpanded{#2}]===]
+    }%
+  }
+  \newcommand\mplibdoeveryendmplib[2][]{%
+    \endgroup
+    \directlua{
+      luamplib.everyendmplib["#1"] = [===[\unexpanded{#2}]===]
+    }%
+  }
+\else
+  \long\def\mplibdoeverymplib#1{%
+    \endgroup
+    \directlua{
+      luamplib.everymplib[""] = [===[\unexpanded{#1}]===]
+    }%
+  }
+  \long\def\mplibdoeveryendmplib#1{%
+    \endgroup
+    \directlua{
+      luamplib.everyendmplib[""] = [===[\unexpanded{#1}]===]
+    }%
+  }
+\fi
 %    \end{macrocode}
 %
 %    Allow \TeX\ dimen/color macros. Now |runscript| does the job,

Modified: trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua	2022-01-12 21:19:30 UTC (rev 61586)
+++ trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua	2022-01-12 21:19:46 UTC (rev 61587)
@@ -11,8 +11,8 @@
 
 luatexbase.provides_module {
   name          = "luamplib",
-  version       = "2.22.0",
-  date          = "2022/01/09",
+  version       = "2.23.0",
+  date          = "2022/01/12",
   description   = "Lua package to typeset Metapost with LuaTeX's MPLib.",
 }
 
@@ -642,11 +642,16 @@
   end
 end
 
+luamplib.everymplib    = { [""] = "" }
+luamplib.everyendmplib = { [""] = "" }
+
 local function process_mplibcode (data, instancename)
   legacy_mplibcode_reset()
 
-  local everymplib    = texgettoks'everymplibtoks'    or ''
-  local everyendmplib = texgettoks'everyendmplibtoks' or ''
+  local everymplib    = luamplib.everymplib[instancename] or
+                        luamplib.everymplib[""]
+  local everyendmplib = luamplib.everyendmplib[instancename] or
+                        luamplib.everyendmplib[""]
   data = format("\n%s\n%s\n%s\n",everymplib, data, everyendmplib)
   data = data:gsub("\r","\n")
 

Modified: trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty	2022-01-12 21:19:30 UTC (rev 61586)
+++ trunk/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty	2022-01-12 21:19:46 UTC (rev 61587)
@@ -14,7 +14,7 @@
 \else
   \NeedsTeXFormat{LaTeX2e}
   \ProvidesPackage{luamplib}
-    [2022/01/09 v2.22.0 mplib package for LuaTeX]
+    [2022/01/12 v2.23.0 mplib package for LuaTeX]
   \ifx\newluafunction\@undefined
   \input ltluatex
   \fi
@@ -58,7 +58,7 @@
 }
 \long\def\mplibdocode#1\endmplibcode{%
   \endgroup
-  \directlua{luamplib.process_mplibcode([===[\unexpanded{#1}]===])}%
+  \directlua{luamplib.process_mplibcode([===[\unexpanded{#1}]===],"")}%
   \endgroup
 }
 \else
@@ -110,26 +110,43 @@
     end
 }}
 \newtoks\mplibtmptoks
-\newtoks\everymplibtoks
-\newtoks\everyendmplibtoks
 \protected\def\everymplib{%
   \begingroup
   \mplibsetupcatcodes
   \mplibdoeverymplib
 }
-\long\def\mplibdoeverymplib#1{%
-  \endgroup
-  \everymplibtoks{#1}%
-}
 \protected\def\everyendmplib{%
   \begingroup
   \mplibsetupcatcodes
   \mplibdoeveryendmplib
 }
-\long\def\mplibdoeveryendmplib#1{%
-  \endgroup
-  \everyendmplibtoks{#1}%
-}
+\ifcsname ver at luamplib.sty\endcsname
+  \newcommand\mplibdoeverymplib[2][]{%
+    \endgroup
+    \directlua{
+      luamplib.everymplib["#1"] = [===[\unexpanded{#2}]===]
+    }%
+  }
+  \newcommand\mplibdoeveryendmplib[2][]{%
+    \endgroup
+    \directlua{
+      luamplib.everyendmplib["#1"] = [===[\unexpanded{#2}]===]
+    }%
+  }
+\else
+  \long\def\mplibdoeverymplib#1{%
+    \endgroup
+    \directlua{
+      luamplib.everymplib[""] = [===[\unexpanded{#1}]===]
+    }%
+  }
+  \long\def\mplibdoeveryendmplib#1{%
+    \endgroup
+    \directlua{
+      luamplib.everyendmplib[""] = [===[\unexpanded{#1}]===]
+    }%
+  }
+\fi
 \def\mpdim#1{ mplibdimen("#1") }
 \def\mpcolor#1#{\domplibcolor{#1}}
 \def\domplibcolor#1#2{ mplibcolor("#1{#2}") }



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