texlive[61224] trunk: luafindfont (5dec21)

commits+karl at tug.org commits+karl at tug.org
Sun Dec 5 22:11:41 CET 2021


Revision: 61224
          http://tug.org/svn/texlive?view=revision&revision=61224
Author:   karl
Date:     2021-12-05 22:11:40 +0100 (Sun, 05 Dec 2021)
Log Message:
-----------
luafindfont (5dec21)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/luafindfont/luafindfont.lua
    trunk/Master/texmf-dist/doc/man/man1/luafindfont.1
    trunk/Master/texmf-dist/doc/man/man1/luafindfont.man1.pdf
    trunk/Master/texmf-dist/doc/support/luafindfont/CHANGELOG
    trunk/Master/texmf-dist/doc/support/luafindfont/README.md
    trunk/Master/texmf-dist/doc/support/luafindfont/luafindfont-doc.pdf
    trunk/Master/texmf-dist/doc/support/luafindfont/luafindfont-doc.tex
    trunk/Master/texmf-dist/scripts/luafindfont/luafindfont.lua

Modified: trunk/Build/source/texk/texlive/linked_scripts/luafindfont/luafindfont.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/luafindfont/luafindfont.lua	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Build/source/texk/texlive/linked_scripts/luafindfont/luafindfont.lua	2021-12-05 21:11:40 UTC (rev 61224)
@@ -8,7 +8,7 @@
 --       AUTHOR:  Herbert Voß  (C) 2021-11-27
 -----------------------------------------------------------------------
         luafindfont = luafindfont or { }
-   local version = 0.04
+   local version = 0.05
 luafindfont.version = version
 
 --[[
@@ -48,6 +48,9 @@
 local args_info = 0
 local args_max_string = 90
 
+local otfinfo_arg
+local fontNo = 0
+
 local i = 1
 while i <= #arg do
   if arg[i] == "-h" or arg[i] == "--help" then
@@ -69,14 +72,18 @@
   elseif arg[i] == "-n" or arg[i] == "--nosymbolicnames" then
     args_nosymbolicnames = 1
   elseif arg[i] == "-o" or arg[i] == "--otfinfo" then
-    local fontNr = tonumber(arg[i+1])
-    if fontNr then
-      args_otfinfo = fontNr
-      i = i + 1
-    else
-      print("Option -o needs a following fontnumber!")
-      args_otfinfo = 0
+    local o_arg = arg[i+1]
+    otfinfo_arg = "i"
+    fontNo = tonumber(o_arg)
+    if not fontNo then                      -- combination: No and Arg
+      fontNo = tonumber(string.match(o_arg,"%d+"))
+      otfinfo_arg = string.match(o_arg,"%a+")
+      if not fontNo then
+        print("Option -o needs a following fontnumber!")
+        fontNo = 0
+      end
     end
+    i = i + 1
   elseif arg[i] == "-i" or arg[i] == "--info" then
     local fontNr = tonumber(arg[i+1])
     if fontNr then
@@ -107,15 +114,20 @@
 end
 
 local vlevel = args_verbose
-local otfinfo = args_otfinfo
+--local otfinfo = args_otfinfo
 local info = args_info
 local noSymbolicNames = args_nosymbolicnames
 local maxStrLength = args_max_string
-local font_str = args_font
+local font_str = args_font:lower():gsub("%s+", ""):split("&")
+if #font_str == 1 then font_str[2] = "" end
 
 local luaVersion = _VERSION
 print("We are using "..luaVersion)
-print('Looking for font \"'..font_str..'\"')
+if #font_str > 1 then
+  print('Looking for font \"'..font_str[1]..' & '..font_str[2]..'\"')
+else
+  print('Looking for font \"'..font_str[1]..'\"')
+end
 
 function getFileParts(fullpath,part)
   local path, file, ext = string.match(fullpath, "(.-)([^/]-([^%.]+))$")
@@ -274,7 +286,7 @@
 local l_max = {1, 1, 1}
 for i, v in ipairs(fontDataMap) do 
   if v["familyname"] then
-      if string.find (v["familyname"], font_str, 1, true) or (font_str == "*") then
+      if (string.find (v["familyname"]:lower(), font_str[1], 1, true)  and string.find (v["basename"]:lower(), font_str[2], 1, true) ) or (font_str == "*") then
 --	print(string.format("%2d. %30s %20s  %50s",j,v["basename"],v["familyname"],v["fullpath"])) 
         fontList[#fontList+1] = v
         local fullpath = getFileParts(v["fullpath"],"path")  -- strip file name
@@ -295,7 +307,7 @@
 local Fontname = "Fontname"
 local Path = "Path"
 local SymbolicName = "Symbolic Name"
-local lfdNr = "Nr."
+local lfdNr = "No."
 if (font_str ~= "*") and not noSymbolicNames then
     print(string.format("%4s %"..l_max[1].."s %"..l_max[2].."s  %"..l_max[3].."s",lfdNr,Fontname,SymbolicName,Path)) 
   else
@@ -314,11 +326,12 @@
   end
 end
 
-if otfinfo > 0 then
+if fontNo > 0 then
   print()
-  print("Run otfinfo:"..otfinfo)
-  local font = fontList[otfinfo]["fullpath"]
-  local exrun = io.popen("otfinfo -i \""..font.."\"", 'r') -- ".." font may have spaces
+  print("Run otfinfo -"..otfinfo_arg..": "..fontNo)
+  local font = fontList[fontNo]["fullpath"]
+  print("otfinfo -"..otfinfo_arg.." \""..font.."\"")
+  local exrun = io.popen("otfinfo -"..otfinfo_arg.." \""..font.."\"", 'r') -- ".." font may have spaces
   local output = exrun:read('*all')
   print(output)
   exrun:close()

Modified: trunk/Master/texmf-dist/doc/man/man1/luafindfont.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/luafindfont.1	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Master/texmf-dist/doc/man/man1/luafindfont.1	2021-12-05 21:11:40 UTC (rev 61224)
@@ -1,6 +1,6 @@
 .\" Manpage for luafindfont.
 .\" Contact hvoss at tug.org to correct errors or typos.
-.TH luafindfont 1 "29 nov 2021" "0.04" "luafindfont man page"
+.TH luafindfont 1 "04 dec 2021" "0.05" "luafindfont man page"
 .SH NAME
 luafindfont
 \- retrieve font informations of all installed system and TeX fonts.
@@ -13,7 +13,10 @@
 .IP -h,--help
 obvious ... :-)
 .IP -o,--otfinfo (default 0)
-Use the program otfinfo for the font with the given number
+Use the program otfinfo for the font with the given number. The number
+can be followed by an optional argument for otfinfo, e.g. -o 2f, list
+all features for font no 2. Without an additional character, otfinfo is
+called with -i
 .IP -i,--info (default 0)
 List the given fontstyles (regular, bold, italic, bolditalic)
 for the font with the given number
@@ -23,6 +26,10 @@
 The maximum of the stringlength of the full path of fonts
 .IP -n,--nosymbolicnames
 The fontlist contains only fontfile and fontpath
+.IP <fontname> 
+Can be a substring, e.g. times,  or a combination of two substrings 
+which act like a boolean and, e.g. "times & bold" (must be in quotes). 
+All strings are not case sensitive. Upper and lowercase can be mixed.
 .SH EXAMPLES
 
 $ luafindfont libertinssans
@@ -90,7 +97,7 @@
 
 .nf
 .ft CW
-bash-3.2$ ./luafindfont.lua -n minion
+bash-3.2$ luafindfont -n minion
 We are using Lua 5.3
 Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfload-names
  Nr.                 Fontname                                   Path

Modified: trunk/Master/texmf-dist/doc/man/man1/luafindfont.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/support/luafindfont/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/support/luafindfont/CHANGELOG	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Master/texmf-dist/doc/support/luafindfont/CHANGELOG	2021-12-05 21:11:40 UTC (rev 61224)
@@ -1,3 +1,6 @@
+0.05  2021-12-04  - use always lowercase for internal search
+                  - allow combined search like  "times & bold"
+                  - allow additional argument for otfinfo
 0.04  2021-11-29  - rename the lua file to luafindfont
                   - do not use xindex-lapp, handle the options by
                     standard arg field

Modified: trunk/Master/texmf-dist/doc/support/luafindfont/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/support/luafindfont/README.md	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Master/texmf-dist/doc/support/luafindfont/README.md	2021-12-05 21:11:40 UTC (rev 61224)
@@ -28,7 +28,7 @@
 -luafindfont -i 3 -m 50 arial
 ```
 
-## copyright
+## Copyright
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
 %% of this license or (at your option) any later version.

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

Modified: trunk/Master/texmf-dist/doc/support/luafindfont/luafindfont-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/luafindfont/luafindfont-doc.tex	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Master/texmf-dist/doc/support/luafindfont/luafindfont-doc.tex	2021-12-05 21:11:40 UTC (rev 61224)
@@ -1,4 +1,4 @@
- %% $Id: findfont-doc.tex 16 2021-11-07 19:42:57Z hvoss $
+ %% $Id: luafindfont-doc.tex 341 2021-12-05 10:38:08Z herbert $
 %
 \listfiles\setcounter{errorcontextlines}{100}
 \documentclass[paper=a4,fontsize=11pt,DIV=14,parskip=half-,
@@ -77,7 +77,7 @@
 \def\setVersion#1{\setVVersion#1!!}
 \def\setVVersion#1=#2!!{\def\luafindfontVersion{#2}} 
 
-\setVersion{version = 0.04}%  can be automatically changed by perl
+\setVersion{version = 0.05}%  can be automatically changed by perl
 
 \setkeys{dtk}{cleanup=true,force}
 
@@ -92,6 +92,7 @@
 
 \vfill
 Thanks to: \\
+Gerhard Bachmaier;
 Rolf Niepraschk;
 \clearpage
 
@@ -100,9 +101,9 @@
 \FF is a  program for searching installed fonts which are usable for \LuaLaTeX\ and \XeLaTeX.
 The already existing Lua program \Lprog{luaotfload-tool} can also be used for searching, but
 the search-interface is somewhat cryptic and too complex for a user, who wants only to know
-if a font is present or not. And if present, wher can it be found. For example:
+if a font is present or not. And if present, where can it be found. For example:
 
-\begin{verbatim}
+\begin{Verbatim}[frame=lines,label=luaotfload-tool]
 H-MacBook:~ voss$ 
 H-MacBook:~ voss$ luaotfload-tool --find=times
 luaotfload | resolve : Font "times" found!
@@ -112,13 +113,13 @@
 luaotfload | resolve : Font "times new roman" found!
 luaotfload | resolve : Resolved file name "/System/Library/Fonts/Supplemental/Times New Roman.ttf"
 H-MacBook:~ voss$ 
-\end{verbatim}
+\end{Verbatim}
 
-But this are not \emph{all} Times fonts. Compare it with the output of \Lprog{luafindfont},
+But that are not \emph{all} Times fonts. Compare it with the output of \Lprog{luafindfont},
 where the searchname \emph{times} must only be a part of a longer name:
 
-\begin{verbatim}
-bash-3.2$ ./luafindfont.lua times
+\begin{Verbatim}[frame=lines,label=luafindfont times]
+bash-3.2$ luafindfont times
 We are using Lua 5.3
 Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfload-names
  Nr.                         Fontname      Symbolic Name                                 Path
@@ -146,9 +147,11 @@
   22.    TimesNewRomanPSStd-BoldIt.otf timesnewromanpsstd     /Users/voss/Library/Fonts/Times/
   23.    TimesNewRomanPSStd-Italic.otf timesnewromanpsstd     /Users/voss/Library/Fonts/Times/
   24.   TimesNewRomanPSStd-Regular.otf timesnewromanpsstd     /Users/voss/Library/Fonts/Times/
-\end{verbatim}
+\end{Verbatim}
 
+%$
 
+
 \subsection{Syntax}
 
 The \Index{syntax} is 
@@ -158,9 +161,8 @@
 where \verb|[...]|  are optional \Index{argument}s, either in short or
 long form which, of course, can be mixed:
 
-\begin{verbatim}
+\begin{Verbatim}[frame=lines,label=Parameter]
   parameter handling
-    -q,--quiet
     -h,--help
     -o,--otfinfo (default 0)
     -i,--info (default 0)
@@ -168,7 +170,7 @@
     -v...          Verbosity output
     -m,--max_string (default 90)
     <font> (string)  
-\end{verbatim}
+\end{Verbatim}
 
 For example:
 
@@ -179,12 +181,12 @@
 \end{verbatim}
 
 \begin{enumerate}
-\item \texttt{-q}: quiet; 
 \item \texttt{-m <columns>}: How many columns are used for the font with full path. This can be really long, but with e.g. \verb|-m 50| 
-the length is limited to 50 characters.
-\item \texttt{-o <number>}: For the font with the given number from the font list the program \Lprog{otfinfo} is called
-    for some generell font informations.
-\item \texttt{-i <number>}: For the font with the given number from the font list the existing font styles are listed.
+the length is limited to 50 characters and in the middle of the long name there will be \ldots, representing the missing characters.
+\item \texttt{-o <number[character]>}: For the font with the given number from the font list the program \Lprog{otfinfo} is called
+    for some generell font informations. An additional optional argument for \Lprog{otfinfo} (only one character) must follow directly the fontnumber
+    (see also section~\ref{otfinfo})
+\item \texttt{-i <number>}: For the font with the given number from the font list the existing other corresponding font styles are listed.
 \end{enumerate}
 
 \section{How it works}
@@ -193,6 +195,104 @@
 characters and must not be the complete name. A \verb|time| for finding all fonts with
 time in its names is sufficiant.
 
+
+\subsection{Fontname}
+The fontname can only be a substring of the  complete filename. It is not case sensitive, \texttt{Myriad} and \texttt{myriad}
+are the same. It is possible to combine two search strings which will act like a boolean \texttt{and}. A search with
+\texttt{"Myriad \& bold"} (in quotes)  will list all files which have \texttt{myriad} \emph{and} \texttt{bold} in its name.
+
+
+\subsection{Option \texttt{-o}}\label{otfinfo}
+This needs an installed program \Lprog{otfinfo}, which should be the default for all \TeX\ distributions.
+This program lists some useful informations of a given fontnumber. The fontnumber can be combined by an
+additional character for different outputs. For example \texttt{-o 2f} lists the features of the font number 2
+in the list. The order makes no difference:  \texttt{-o f2} prints  the same. If there is no output then the font has no such
+informations defined!
+
+The possible options are (i is the default):
+
+\begin{Verbatim}[frame=lines,label=otfinfo]
+  s   Report font’s supported scripts.
+  f   Report font’s GSUB/GPOS features.
+  z   Report font’s optical size information.
+  p   Report font’s PostScript name.
+  a   Report font’s family name.
+  v   Report font’s version information.
+  i   Report font’s names and designer/vendor info.
+  g   Report font’s glyph names.
+  t   Report font’s OpenType tables.
+\end{Verbatim}
+
+
+\begin{Verbatim}[frame=lines,label=luafindfont -o 2f "myriad \& semibold"]
+bash-3.2$ luafindfont -o 2f "myriad & semibold"
+We are using Lua 5.3
+Looking for font "myriad & semibold"
+Check for file /usr/local/texlive/2021/texmf-var/luatex-cache/generic/names/luaotfload-names
+ No.                        Fontname Symbolic Name                                  Path
+   1.          MyriadPro-Semibold.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   2.      MyriadPro-SemiboldCond.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   3.    MyriadPro-SemiboldCondIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   4.        MyriadPro-SemiboldIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   5.    MyriadPro-SemiboldSemiCn.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   6.  MyriadPro-SemiboldSemiCnIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   7.   MyriadPro-SemiboldSemiExt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   8. MyriadPro-SemiboldSemiExtIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+
+Run otfinfo -f: 2
+otfinfo -f "/Users/voss/Library/Fonts/MyriadPro/MyriadPro-SemiboldCond.otf"
+aalt	Access All Alternates
+case	Case-Sensitive Forms
+cpsp	Capital Spacing
+dnom	Denominators
+fina	Terminal Forms
+frac	Fractions
+kern	Kerning
+liga	Standard Ligatures
+lnum	Lining Figures
+numr	Numerators
+onum	Oldstyle Figures
+ordn	Ordinals
+pnum	Proportional Figures
+sinf	Scientific Inferiors
+sups	Superscript
+tnum	Tabular Figures
+zero	Slashed Zero
+\end{Verbatim}
+
+if no parameter is given, then \texttt{-i} is assumed.
+
+
+\subsection{Option \texttt{-i}}
+For a given font number \texttt{luafindfont} will list the font styles which were found by the font search
+and which correspond to the font number. This is useful if a fontname doesn't has the style in its name or
+only in short form.
+
+\begin{Verbatim}[frame=lines,label=luafindfont -i 4 "myriad \& semibold"]
+bash-3.2$ luafindfont -i 4 "myriad & semibold"
+We are using Lua 5.3
+Looking for font "myriad & semibold"
+Check for file /usr/local/texlive/2021/texmf-var/luatex-cache/generic/names/luaotfload-names
+ No.                        Fontname Symbolic Name                                  Path
+   1.          MyriadPro-Semibold.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   2.      MyriadPro-SemiboldCond.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   3.    MyriadPro-SemiboldCondIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   4.        MyriadPro-SemiboldIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   5.    MyriadPro-SemiboldSemiCn.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   6.  MyriadPro-SemiboldSemiCnIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   7.   MyriadPro-SemiboldSemiExt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+   8. MyriadPro-SemiboldSemiExtIt.otf myriadpro  /Users/voss/Library/Fonts/MyriadPro/
+
+Font: myriadpro
+
+Fonttype otf(system) --> | Regular | Bold | Italic | BoldItalic |
+\end{Verbatim}
+
+For the font number 4 there also exists a Regular, Bold, and a Italic font. The font no 4 itself
+is a BoldItalic version.
+
+
+
 \section{Examples}
 
 \begin{Verbatim}

Modified: trunk/Master/texmf-dist/scripts/luafindfont/luafindfont.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/luafindfont/luafindfont.lua	2021-12-05 21:11:16 UTC (rev 61223)
+++ trunk/Master/texmf-dist/scripts/luafindfont/luafindfont.lua	2021-12-05 21:11:40 UTC (rev 61224)
@@ -8,7 +8,7 @@
 --       AUTHOR:  Herbert Voß  (C) 2021-11-27
 -----------------------------------------------------------------------
         luafindfont = luafindfont or { }
-   local version = 0.04
+   local version = 0.05
 luafindfont.version = version
 
 --[[
@@ -48,6 +48,9 @@
 local args_info = 0
 local args_max_string = 90
 
+local otfinfo_arg
+local fontNo = 0
+
 local i = 1
 while i <= #arg do
   if arg[i] == "-h" or arg[i] == "--help" then
@@ -69,14 +72,18 @@
   elseif arg[i] == "-n" or arg[i] == "--nosymbolicnames" then
     args_nosymbolicnames = 1
   elseif arg[i] == "-o" or arg[i] == "--otfinfo" then
-    local fontNr = tonumber(arg[i+1])
-    if fontNr then
-      args_otfinfo = fontNr
-      i = i + 1
-    else
-      print("Option -o needs a following fontnumber!")
-      args_otfinfo = 0
+    local o_arg = arg[i+1]
+    otfinfo_arg = "i"
+    fontNo = tonumber(o_arg)
+    if not fontNo then                      -- combination: No and Arg
+      fontNo = tonumber(string.match(o_arg,"%d+"))
+      otfinfo_arg = string.match(o_arg,"%a+")
+      if not fontNo then
+        print("Option -o needs a following fontnumber!")
+        fontNo = 0
+      end
     end
+    i = i + 1
   elseif arg[i] == "-i" or arg[i] == "--info" then
     local fontNr = tonumber(arg[i+1])
     if fontNr then
@@ -107,15 +114,20 @@
 end
 
 local vlevel = args_verbose
-local otfinfo = args_otfinfo
+--local otfinfo = args_otfinfo
 local info = args_info
 local noSymbolicNames = args_nosymbolicnames
 local maxStrLength = args_max_string
-local font_str = args_font
+local font_str = args_font:lower():gsub("%s+", ""):split("&")
+if #font_str == 1 then font_str[2] = "" end
 
 local luaVersion = _VERSION
 print("We are using "..luaVersion)
-print('Looking for font \"'..font_str..'\"')
+if #font_str > 1 then
+  print('Looking for font \"'..font_str[1]..' & '..font_str[2]..'\"')
+else
+  print('Looking for font \"'..font_str[1]..'\"')
+end
 
 function getFileParts(fullpath,part)
   local path, file, ext = string.match(fullpath, "(.-)([^/]-([^%.]+))$")
@@ -274,7 +286,7 @@
 local l_max = {1, 1, 1}
 for i, v in ipairs(fontDataMap) do 
   if v["familyname"] then
-      if string.find (v["familyname"], font_str, 1, true) or (font_str == "*") then
+      if (string.find (v["familyname"]:lower(), font_str[1], 1, true)  and string.find (v["basename"]:lower(), font_str[2], 1, true) ) or (font_str == "*") then
 --	print(string.format("%2d. %30s %20s  %50s",j,v["basename"],v["familyname"],v["fullpath"])) 
         fontList[#fontList+1] = v
         local fullpath = getFileParts(v["fullpath"],"path")  -- strip file name
@@ -295,7 +307,7 @@
 local Fontname = "Fontname"
 local Path = "Path"
 local SymbolicName = "Symbolic Name"
-local lfdNr = "Nr."
+local lfdNr = "No."
 if (font_str ~= "*") and not noSymbolicNames then
     print(string.format("%4s %"..l_max[1].."s %"..l_max[2].."s  %"..l_max[3].."s",lfdNr,Fontname,SymbolicName,Path)) 
   else
@@ -314,11 +326,12 @@
   end
 end
 
-if otfinfo > 0 then
+if fontNo > 0 then
   print()
-  print("Run otfinfo:"..otfinfo)
-  local font = fontList[otfinfo]["fullpath"]
-  local exrun = io.popen("otfinfo -i \""..font.."\"", 'r') -- ".." font may have spaces
+  print("Run otfinfo -"..otfinfo_arg..": "..fontNo)
+  local font = fontList[fontNo]["fullpath"]
+  print("otfinfo -"..otfinfo_arg.." \""..font.."\"")
+  local exrun = io.popen("otfinfo -"..otfinfo_arg.." \""..font.."\"", 'r') -- ".." font may have spaces
   local output = exrun:read('*all')
   print(output)
   exrun:close()



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