diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/luatex/luamplib/NEWS | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf | bin | 153704 -> 154724 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luamplib/test-luamplib-plain.tex | 1 | ||||
-rw-r--r-- | Master/texmf-dist/source/luatex/luamplib/luamplib.dtx | 61 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luamplib/luamplib.lua | 29 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luamplib/luamplib.sty | 18 |
7 files changed, 90 insertions, 27 deletions
diff --git a/Master/texmf-dist/doc/luatex/luamplib/NEWS b/Master/texmf-dist/doc/luatex/luamplib/NEWS index 3e91c9cc67b..c39210cca1d 100644 --- a/Master/texmf-dist/doc/luatex/luamplib/NEWS +++ b/Master/texmf-dist/doc/luatex/luamplib/NEWS @@ -1,5 +1,12 @@ History of the luamplib package +2024/03/04 2.26.2 + * color expressions ('red!50') are supported with xcolor package only + +2024/03/04 2.26.1 + * attempt to support l3color: \mpcolor{color expression} + * cope with mp.report warning produced by 'message' under metafun + 2024/03/01 2.26.0 * when \mplibcachedir{<dir>} is not set, default cache directory will be in the following order: diff --git a/Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf b/Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf Binary files differindex 506ec49715c..dc0c89a4849 100644 --- a/Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf +++ b/Master/texmf-dist/doc/luatex/luamplib/luamplib.pdf diff --git a/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex b/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex index e3b04413361..c9e3dc8c7d1 100644 --- a/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex +++ b/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-latex.tex @@ -81,6 +81,7 @@ B\par\mplibforcehmode \mplibglobaltextext{disable}\par \mplibsetformat{metafun}% \begin{mplibcode} +message "Hello World!"; verbatimtex \moveright 0.4\hsize etex beginfig(0); path p; p:= fullcircle scaled 2cm yshifted .5cm; diff --git a/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-plain.tex b/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-plain.tex index b2be4bece1a..20773b280fe 100644 --- a/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-plain.tex +++ b/Master/texmf-dist/doc/luatex/luamplib/test-luamplib-plain.tex @@ -79,6 +79,7 @@ B\par\mplibforcehmode \mplibglobaltextext{disable}\par \mplibsetformat{metafun}% \mplibcode +message "Hello World!"; verbatimtex \moveright 0.4\hsize etex beginfig(0); path p; p:= fullcircle scaled 2cm yshifted .5cm; diff --git a/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx b/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx index 8bdbf884e4d..16ba791d78e 100644 --- a/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx +++ b/Master/texmf-dist/source/luatex/luamplib/luamplib.dtx @@ -85,7 +85,7 @@ See source file '\inFileName' for licencing and contact information. %<*driver> \NeedsTeXFormat{LaTeX2e} \ProvidesFile{luamplib.drv}% - [2024/03/01 v2.26.0 Interface for using the mplib library]% + [2024/03/04 v2.26.2 Interface for using the mplib library]% \documentclass{ltxdoc} \usepackage{metalogo,multicol,mdwlist,fancyvrb,xspace} \usepackage[x11names]{xcolor} @@ -153,7 +153,7 @@ See source file '\inFileName' for licencing and contact information. % \author{Hans Hagen, Taco Hoekwater, Elie Roux, Philipp Gesang and Kim Dohyun\\ % Maintainer: LuaLaTeX Maintainers --- % Support: \email{lualatex-dev@tug.org}} -% \date{2024/03/01 v2.26.0} +% \date{2024/03/04 v2.26.2} % % \maketitle % @@ -300,10 +300,15 @@ See source file '\inFileName' for licencing and contact information. % \textsf{color}/\textsf{xcolor} packages can be used inside mplibcode % enviroment (after |withcolor| operator), % though \textsf{luamplib} does not automatically load these -% packages. See the example code above. For spot colors, \textsf{(x)spotcolor} +% packages. See the example code above. For spot colors, +% \textsf{colorspace}, \textsf{spotcolor} % (in PDF mode) and \textsf{xespotcolor} (in DVI mode) packages are supported % as well. % +% From v2.26.1, \textsf{l3color} is also supported by the command +% \cs{mpcolor}, color expressions (|red!50|) being supported with +% \textsf{xcolor} package only. +% % \paragraph{\cs{mplibnumbersystem}} % Users can choose |numbersystem| option since v2.4. % The default value |scaled| can be changed to |double| or |decimal| @@ -451,8 +456,8 @@ See source file '\inFileName' for licencing and contact information. luatexbase.provides_module { name = "luamplib", - version = "2.26.0", - date = "2024/03/01", + version = "2.26.2", + date = "2024/03/04", description = "Lua package to typeset Metapost with LuaTeX's MPLib.", } @@ -978,17 +983,33 @@ end % Make |color| or |xcolor|'s color expressions usable, % with \cs{mpcolor} or |mplibcolor|. These commands should be used % with graphical objects. +% +% Attempt to support l3color as well. % \begin{macrocode} -local mplibcolor_fmt = [[\begingroup\let\XC@mcolor\relax]].. +local mplibcolorfmt = { + xcolor = [[\begingroup\let\XC@mcolor\relax]].. + [[\def\set@color{\global\mplibtmptoks\expandafter{\current@color}}]].. + [[\color %s\endgroup]], + l3color = [[\begingroup\color_if_exist:nTF %s]].. + [[{\def\__color_select:N #1{\expandafter\__color_select:nn #1}]].. + [[\def\__color_backend_select:nn #1#2{\global\mplibtmptoks{#1~#2}}]].. + [[\color_select:n %s}]].. + [[{\let\XC@mcolor\relax]].. [[\def\set@color{\global\mplibtmptoks\expandafter{\current@color}}]].. - [[\color %s \endgroup]] + [[\color %s}\endgroup]], +} local function process_color (str) if str then if not str:find("{.-}") then str = format("{%s}",str) end - run_tex_code(mplibcolor_fmt:format(str), catat11) + local myfmt = luamplib.cctabexplat and mplibcolorfmt.l3color or mplibcolorfmt.xcolor + local mod = str:match("(.-){.*}") + if mod and mod ~= "" then + myfmt = mplibcolorfmt.xcolor + end + run_tex_code(myfmt:format(str,str,str), luamplib.cctabexplat or catat11) return format('1 withprescript "MPlibOverrideColor=%s"', texgettoks"mplibtmptoks") end return "" @@ -1069,6 +1090,8 @@ mp = mp or {} local mp = mp mp.mf_path_reset = mp.mf_path_reset or function() end mp.mf_finish_saving_data = mp.mf_finish_saving_data or function() end +mp.report = mp.report or info + % \end{macrocode} % @@ -1289,10 +1312,6 @@ local function process_mplibcode (data, instancename) data = format("\n%s\n%s\n%s\n",everymplib, data, everyendmplib) data = data:gsub("\r","\n") - data = data:gsub("\\mpcolor%s+(.-%b{})","mplibcolor(\"%1\")") - data = data:gsub("\\mpdim%s+(%b{})", "mplibdimen(\"%1\")") - data = data:gsub("\\mpdim%s+(\\%a+)","mplibdimen(\"%1\")") - data = data:gsub(btex_etex, function(str) return format("btex %s etex ", -- space luamplib.verbatiminput and str or protect_expansion(str)) @@ -2059,7 +2078,7 @@ luamplib.colorconverter = colorconverter \else \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{luamplib} - [2024/03/01 v2.26.0 mplib package for LuaTeX] + [2024/03/04 v2.26.2 mplib package for LuaTeX] \ifx\newluafunction\@undefined \input ltluatex \fi @@ -2252,9 +2271,21 @@ luamplib.colorconverter = colorconverter % so the following lines are not needed for most cases. % But the macros will be expanded when they are used in another macro. % \begin{macrocode} -\def\mpdim#1{ mplibdimen("#1") } +\def\mpdim#1{ runscript("luamplibdimen{#1}") } +\ifdefined\IfDocumentMetadataTF + \IfDocumentMetadataTF{ + \newcatcodetable\catcodetable@explat + \directlua{ luamplib.cctabexplat = \the\allocationnumber } + \begingroup + \ExplSyntaxOn + \catcode`@=11 + \savecatcodetable\catcodetable@explat + \ExplSyntaxOff + \endgroup + }{} +\fi \def\mpcolor#1#{\domplibcolor{#1}} -\def\domplibcolor#1#2{ mplibcolor("#1{#2}") } +\def\domplibcolor#1#2{ runscript("luamplibcolor{#1{#2}}") } % \end{macrocode} % % MPLib's number system. Now |binary| has gone away. diff --git a/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua b/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua index 0d2cc763dad..e2be1fae2b6 100644 --- a/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua +++ b/Master/texmf-dist/tex/luatex/luamplib/luamplib.lua @@ -11,8 +11,8 @@ luatexbase.provides_module { name = "luamplib", - version = "2.26.0", - date = "2024/03/01", + version = "2.26.2", + date = "2024/03/04", description = "Lua package to typeset Metapost with LuaTeX's MPLib.", } @@ -395,16 +395,30 @@ local function process_tex_text (str) return "" end -local mplibcolor_fmt = [[\begingroup\let\XC@mcolor\relax]].. +local mplibcolorfmt = { + xcolor = [[\begingroup\let\XC@mcolor\relax]].. [[\def\set@color{\global\mplibtmptoks\expandafter{\current@color}}]].. - [[\color %s \endgroup]] + [[\color %s\endgroup]], + l3color = [[\begingroup\color_if_exist:nTF %s]].. + [[{\def\__color_select:N #1{\expandafter\__color_select:nn #1}]].. + [[\def\__color_backend_select:nn #1#2{\global\mplibtmptoks{#1~#2}}]].. + [[\color_select:n %s}]].. + [[{\let\XC@mcolor\relax]].. + [[\def\set@color{\global\mplibtmptoks\expandafter{\current@color}}]].. + [[\color %s}\endgroup]], +} local function process_color (str) if str then if not str:find("{.-}") then str = format("{%s}",str) end - run_tex_code(mplibcolor_fmt:format(str), catat11) + local myfmt = luamplib.cctabexplat and mplibcolorfmt.l3color or mplibcolorfmt.xcolor + local mod = str:match("(.-){.*}") + if mod and mod ~= "" then + myfmt = mplibcolorfmt.xcolor + end + run_tex_code(myfmt:format(str,str,str), luamplib.cctabexplat or catat11) return format('1 withprescript "MPlibOverrideColor=%s"', texgettoks"mplibtmptoks") end return "" @@ -462,6 +476,7 @@ mp = mp or {} local mp = mp mp.mf_path_reset = mp.mf_path_reset or function() end mp.mf_finish_saving_data = mp.mf_finish_saving_data or function() end +mp.report = mp.report or info catcodes = catcodes or {} local catcodes = catcodes @@ -653,10 +668,6 @@ local function process_mplibcode (data, instancename) data = format("\n%s\n%s\n%s\n",everymplib, data, everyendmplib) data = data:gsub("\r","\n") - data = data:gsub("\\mpcolor%s+(.-%b{})","mplibcolor(\"%1\")") - data = data:gsub("\\mpdim%s+(%b{})", "mplibdimen(\"%1\")") - data = data:gsub("\\mpdim%s+(\\%a+)","mplibdimen(\"%1\")") - data = data:gsub(btex_etex, function(str) return format("btex %s etex ", -- space luamplib.verbatiminput and str or protect_expansion(str)) diff --git a/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty b/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty index d2810d80e9c..10c267429ac 100644 --- a/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty +++ b/Master/texmf-dist/tex/luatex/luamplib/luamplib.sty @@ -14,7 +14,7 @@ \else \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{luamplib} - [2024/03/01 v2.26.0 mplib package for LuaTeX] + [2024/03/04 v2.26.2 mplib package for LuaTeX] \ifx\newluafunction\@undefined \input ltluatex \fi @@ -147,9 +147,21 @@ }% } \fi -\def\mpdim#1{ mplibdimen("#1") } +\def\mpdim#1{ runscript("luamplibdimen{#1}") } +\ifdefined\IfDocumentMetadataTF + \IfDocumentMetadataTF{ + \newcatcodetable\catcodetable@explat + \directlua{ luamplib.cctabexplat = \the\allocationnumber } + \begingroup + \ExplSyntaxOn + \catcode`@=11 + \savecatcodetable\catcodetable@explat + \ExplSyntaxOff + \endgroup + }{} +\fi \def\mpcolor#1#{\domplibcolor{#1}} -\def\domplibcolor#1#2{ mplibcolor("#1{#2}") } +\def\domplibcolor#1#2{ runscript("luamplibcolor{#1{#2}}") } \def\mplibnumbersystem#1{\directlua{ local t = "#1" if t == "binary" then t = "decimal" end |