texlive[62002] trunk: xindex (13feb22)

commits+karl at tug.org commits+karl at tug.org
Sun Feb 13 22:24:29 CET 2022


Revision: 62002
          http://tug.org/svn/texlive?view=revision&revision=62002
Author:   karl
Date:     2022-02-13 22:24:29 +0100 (Sun, 13 Feb 2022)
Log Message:
-----------
xindex (13feb22)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua
    trunk/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG
    trunk/Master/texmf-dist/doc/lualatex/xindex/README.md
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/buch.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo4.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf
    trunk/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex
    trunk/Master/texmf-dist/scripts/xindex/xindex.lua
    trunk/Master/texmf-dist/tex/latex/xindex/xindex.sty
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-AU.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-baselib.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-danteedition.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua
    trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua

Modified: trunk/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -6,11 +6,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL 1.3
 --
--- $Id: xindex.lua 21 2022-01-27 17:45:10Z hvoss $
+-- $Id: xindex.lua 22 2022-02-11 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
         xindex = xindex or { }
- local version = 0.36
+ local version = 0.40
 xindex.version = version
 --xindex.self = "xindex"
 
@@ -49,8 +49,10 @@
     -n,--noheadings 
     -a,--no_casesensitive
     -b,--no_labels
+    -i,--ignoreSpace
     -o,--output (default "")
-    -l,--language (default en)
+    -k --checklang               same as * star for checking aux file
+    -l,--language (default en)   or * for detecting the language from the aux file
     -p,--prefix (default L)
     -u,--use_UCA
     -s,--use_stdin
@@ -97,7 +99,9 @@
 
 local nInFiles = #args.files
 if not useStdInput then
-  --print(tostring(nInFiles).." input files are given!")
+  if vlevel == 3 then
+    print(tostring(nInFiles).." input file(s): ")
+  end
   inFiles = {}    --args.files as strings
   for i = 1,nInFiles do
     local file = args.files_name[i]
@@ -108,6 +112,9 @@
     else
       inFiles[#inFiles+1] = file
     end
+    if vlevel == 3 then
+      print(file)
+    end
   end  
 end
 
@@ -153,7 +160,7 @@
 
 writeLog(2,"xindex v."..version.." (c) Herbert Voß\n",-1)
 writeLog(1,"Verbose level = "..vlevel.."\n",1)
-writeLog(2,"Logfile:"..logfilename,1)
+writeLog(2,"Logfile:"..logfilename.."\n",1)
 
 writeLog(2,"Open outputfile "..outfilename,0)
 outFile = io.open(outfilename,"w+")
@@ -172,6 +179,13 @@
 
 -- writeLog(2,"Using input file: "..inFile.."\n",0)
 
+if args["ignoreSpace"] then
+  ignoreSpace = args["ignoreSpace"]
+else
+  ignoreSpace = false
+end
+writeLog(2,"ignore space for sorting: "..tostring(ignoreSpace).."\n",-1)
+
 labelPrefix = args.prefix
 writeLog(2,"Label prefix: "..labelPrefix.."\n",-1)
 
@@ -208,9 +222,57 @@
 
 -- esc_char..'%( is not needed because it can only appear after |
 
-language = "en" -- default language
+outFile = io.open(outfilename,"w+")
 
-language = string.lower(args["language"]):sub(1, 2)
+local aux_language = ""
+
+if args["checklang"] or (args["language"] == "*") then
+  writeLog(2,'Check language in aux file\n',0) 
+  -- \babel at aux{german}{}        package babel
+  -- \selectlanguage *[variant=german,spelling=new,]{german}   package polyglossia
+  local auxfile = inFiles[1]:split(".")[1]..".aux"
+  writeLog(2,auxfile.."\n",0) 
+  local auxlines = read_lines_from(auxfile)
+  for line = 1,#auxlines do
+    local str = auxlines[line]
+    if string.find(str, "selectlanguage") then        
+      str = str:match("{..+}$")   -- get last word {language}
+      aux_language = str:sub(2,(#str-1))
+      break
+    else
+      if string.find(str, "babel at aux{")  then        
+  --      print("Babel defunden: "..str)
+        str = str:match("{..+}$")   -- get last word {language}
+  --      print("Babel: "..str)
+        aux_language = str:sub(2,(#str-3))
+        break
+      end
+    end
+  end
+--  print(aux_language)
+  if #aux_language > 0 then
+--    print("find language")
+    for i,lang in pairs(indexheader) do
+      for j = 3,#lang do
+        if lang[j] == aux_language then
+          language = i
+        end
+      end
+    end
+  else
+    language = "en"
+  end
+  print("Detected language: "..language)
+else  
+  if args["language"] then
+    language = string.lower(args["language"]):sub(1, 2)
+  else
+    language = "en"
+  end
+end
+
+--print("Sprache:"..language)
+
 writeLog(2,"Language = "..language.."\n",1) 
 if (indexheader[language] == nil) then
   writeLog(2,'Corrected the unknown language "'..language..'" to "en"'.."\n",0) 

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG	2022-02-13 21:24:29 UTC (rev 62002)
@@ -1,3 +1,7 @@
+0.40  2022-02-12 - added -i,--ignoreSpace for sorting
+0.39  2022-02-12 - detect language in aux file
+0.38  2022-02-11 - modified setVersion.sh
+0.37  2022-02-08 - fix for doubled see entries if roman pagenumbers are set
 0.36  2022-02-07 - fix for introduced bug
 0.35  2022-01-22 - fix for escape character
                  - added language spain for folium pages and header

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/xindex/README.md	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/doc/lualatex/xindex/README.md	2022-02-13 21:24:29 UTC (rev 62002)
@@ -12,6 +12,7 @@
 * xindex-baselib.lua    -- base file
 * xindex-lib.lua        -- functions module
 * xindex-lapp.lua       -- read parameter
+* xindex-pretty.lua     -- pretty printing of tables for debugging
 * xindex-unicode.lua    -- list of Unicode categories
 
 The syntax of `xindex`
@@ -32,6 +33,7 @@
     -n,--noheadings 
     -a,--no_casesensitive
     -b,--no_labels
+    -i,--ignoreSpace
     -o,--output (default "")
     -l,--language (default en)
     -p,--prefix (default L)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/buch.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind	2022-02-13 21:24:29 UTC (rev 62002)
@@ -9,7 +9,7 @@
 \indexspace
 \textbf{D}\label{L-xindex-D}
 \nopagebreak[4]
-  \item {Downes}, Michael, {xxxvi}, {xxxvii}
+  \item {Downes}, Michael, {xxxvif}
 
 \indexspace
 \textbf{F}\label{L-xindex-F}

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/tests/demo4.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex	2022-02-13 21:24:29 UTC (rev 62002)
@@ -1,4 +1,4 @@
-%% $Id: xindex-doc.tex 20 2022-01-22 10:37:29Z hvoss $
+%% $Id: xindex-doc.tex 22 2022-02-07 12:18:15Z hvoss $
 %
 \listfiles\setcounter{errorcontextlines}{100}
 \documentclass[paper=a4,fontsize=11pt,DIV=14,parskip=half-,
@@ -81,7 +81,7 @@
 \def\setVersion#1{\setVVersion#1!!}
 \def\setVVersion#1=#2!!{\def\xIndexVersion{#2}} 
 
-\setVersion{version = 0.36}%  can be automatically changed by perl
+\setVersion{version = 0.40}%  can be automatically changed by perl
 
 \setkeys{dtk}{cleanup=true,force}
 
@@ -92,7 +92,7 @@
 \begin{document}
 \maketitle
 \thispagestyle{empty}
-\enlargethispage{1cm}
+%\enlargethispage{1cm}
 \tableofcontents
 
 \vfill
@@ -102,6 +102,7 @@
 Brian Dunn;
 Gonzalo Pesquero Serrano;
 Michal Hoftich;
+Mykel Kochenderfer;
 Frank Mittelbach;
 Heiko Oberdiek;
 Matteo Paolini;
@@ -109,7 +110,6 @@
 Florent Rougon;
 Martin Sievers;
 Simon Spiegel
-
 \clearpage
 
 \section{Introduction}
@@ -173,7 +173,9 @@
     [-a, --no_casesensitive ]             default is false
     [-b,--no_labels ]                     default is false
     [-n,--noheadings ]                    default is false
+    [-i,--ignoreSpace ]                   default is false
     [-o,--output ]                        default is <input>.ind
+    [-k,--checklang ]                     default ist false 
     [-l,--language ]                      default is en 
     [-p,--prefix]                         default L
     [-u,--use_UCA ]                       default is false
@@ -369,19 +371,20 @@
 The \Index{language} is only important for the first two headers in the output of the index data.
 They are by default \emph{Symbols} followed by \emph{Numbers}. In a new version of \Lprog{xindex}
 it will be customizable.
-The predefined language is »en« and currently the following languages are possible:
+The predefined language is »en« and currently the following languages which its alias are possible:
 
 \begin{Verbatim}[commandchars=\\<>]
 indexheader = { 
-  cs = {"Symboly", "Čísla"},
-  da = {"Symboler", "Tal"},
-  de = {"Symbole", "Zahlen"},
-  en = {"Symbols", "Numbers"},
-  es = {"Símbolos", "Números"},
-  fr = {"Symboles","Nombres"},
-  it = {"Simboli", "Numeri"},
-  \Japanese jp = {"シンボル","番号"},
-  \DejaVuMono no = {"Symboler","Tall"},
+  cs = {"Symboly", "Čísla", "czech"},
+  da = {"Symboler", "Tal", "danish"},
+  de = {"Symbole", "Zahlen", "austrian", "german", "germanb", "ngerman", "naustrian"},
+  en = {"Symbols", "Numbers", "english", "USenglish", "american", "UKenglish", "british", "canadian", "australian", "newzealand"},
+  es = {"Símbolos", "Números", "spanish"},
+  fr = {"Symboles","Nombres", "french", "francais", "canadien", "acadian"},
+  it = {"Simboli", "Numeri", "italian"},
+  \Japanese jp = {"シンボル","番号","japanese"},
+  \DejaVuMono nl = {"Symbolen", "Nummers", "dutch"},
+  no = {"Symboler","Tall", "norsk", "nynorsk"},
 }
 \end{Verbatim}
 
@@ -402,6 +405,7 @@
   lstOptions={columns=fixed}]{xindex}
 %! lualatex
 \documentclass{scrartcl}
+\usepackage[italian]{babel}
 \makeatletter
 \def\theindex{%    only for demonstration
   \section*{\indexname}
@@ -428,6 +432,55 @@
 \end{externalDocument}
 
 
+The following example was run with \verb|xindex -l "*" <file>.idx|. Then the language is detected from
+the \Lfile{aux} file. This is only possible if  package \Lpack{babel} or \Lpack{polyglossia} are used.
+
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  pages={1,2},
+  frame,
+  compiler=lualatex,
+  crop,
+  xindex,
+  xindexOptions=-l "*" -e "?",
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex
+\documentclass{scrartcl}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\makeatother
+%StartVisiblePreamble
+\usepackage[canadien]{babel}
+\usepackage{makeidx}\makeindex
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+\section{Escaping characters with ?}
+\begin{itemize}
+\item Exclamation mark ! \index{exclaim (?!)}
+\item Vertical bar| \index{Vertical bar (?|)}
+\item Doublequote \verb|"| \index{?"}
+\item Double doublequote \verb|""| \index{?"?"}
+\item At character @ \index{At (?@)}
+\end{itemize}
+Run \texttt{xindex} with \texttt{xindex -l "*" -e "?"}\index{123}
+\newpage
+\printindex
+\end{document}
+\end{externalDocument}
+
+Instead of using \verb|-l *| one can also use the parameter \verb|-k| or \verb|--checklang|.
+
+
+
+
 \section{Sorting}
 \subsection{Default sorting by a character table}
 The default sorting is unicode aware and uses a translation table for accented characters:
@@ -747,11 +800,205 @@
 by \Lprog{xindex}.
 
 
+\subsection{Case sensitive index entries}
+By default \textsf{foo} and \textsf{Foo} are two different entries and will handled differently
+by \Lprog{xindex}: \textsf{Foo} will be as an own entry \emph{before} \textsf{foo}. Let's see 
+a more complex example. In the index the entry \verb|xindex-DIN2.lua| is the first one of
+the \verb|xindex-???| series because uppercase letters are sorted before lowercase letters.
 
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  mpwidth=0.55\linewidth,
+  pages={2},
+  frame=false,
+  compiler=lualatex --shell-escape, 
+  crop,
+  xindex,
+%  xindexOptions=,
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex --shell-escape
+\documentclass{scrartcl}
+\usepackage{libertinus-otf}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\makeatother
+\begin{filecontents}[force,noheader]{\jobname.idx}
+\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{2}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{4}
+\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{6}
+\indexentry{xindex-newfile.lua file@\texttt  {xindex-newfile.lua} file|hyperpage}{6}
+\indexentry{xindex-DIN2.lua file@\texttt  {xindex-DIN2.lua} file|hyperpage}{6}
+\indexentry{xindex-cfg-common.cfg file@\texttt  {xindex-cfg-common.cfg} file|hyperpage}{9}
+\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{10}
+\indexentry{xindex-HAdW-eKO.lua file@\texttt  {xindex-HAdW-eKO.lua} file|hyperpage}{10}
+\indexentry{xindex-dtk.lua file@\texttt  {xindex-dtk.lua} file|hyperpage}{12}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{13}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{14}
+\indexentry{xindex-cfg-common.lua file@\texttt  {xindex-cfg-common.lua} file|hyperpage}{14}
+\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{15}
+\end{filecontents}
+%StartVisiblePreamble
+\usepackage{makeidx}
+\usepackage{hyperref}
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+foo\newpage
+\printindex
+\end{document}
+\end{externalDocument}
 
+
+
+The same example sorted with the \verb|-a| or \verb|--nocasesensitive| has another output: now
+\verb|xindex-cfg-common.lua| is the first one of the \verb|xindex-???| series.
+
+
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  mpwidth=0.55\linewidth,
+  pages={2},
+  frame=false,
+  compiler=lualatex --shell-escape, 
+  crop,
+  xindex,
+  xindexOptions=-a,
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex --shell-escape
+\documentclass{scrartcl}
+\usepackage{libertinus-otf}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\makeatother
+\begin{filecontents}[force,noheader]{\jobname.idx}
+\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{2}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{4}
+\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{6}
+\indexentry{xindex-newfile.lua file@\texttt  {xindex-newfile.lua} file|hyperpage}{6}
+\indexentry{xindex-DIN2.lua file@\texttt  {xindex-DIN2.lua} file|hyperpage}{6}
+\indexentry{xindex-cfg-common.cfg file@\texttt  {xindex-cfg-common.cfg} file|hyperpage}{9}
+\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{10}
+\indexentry{xindex-HAdW-eKO.lua file@\texttt  {xindex-HAdW-eKO.lua} file|hyperpage}{10}
+\indexentry{xindex-dtk.lua file@\texttt  {xindex-dtk.lua} file|hyperpage}{12}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{13}
+\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{14}
+\indexentry{xindex-cfg-common.lua file@\texttt  {xindex-cfg-common.lua} file|hyperpage}{14}
+\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{15}
+\end{filecontents}
+%StartVisiblePreamble
+\usepackage{makeidx}
+\usepackage{hyperref}
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+foo\newpage
+\printindex
+\end{document}
+\end{externalDocument}
+
+
+
+
+
+
+
+\subsection{Ignore space for sorting}
+By default \textsf{alpha sort} will be sorted \emph{before} \textsf{alphaA}:
+
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  mpwidth=0.55\linewidth,
+  pages={2},
+  frame=false,
+  compiler=lualatex --shell-escape, 
+  crop,
+  xindex,
+%  xindexOptions=,
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex --shell-escape
+\documentclass{scrartcl}
+\usepackage{libertinus-otf}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\makeatother
+%StartVisiblePreamble
+\usepackage{makeidx}\makeindex
+% default sorting 
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+Test
+\index{alpha sort}\index{alphaA}
+\newpage
+\printindex
+\end{document}
+\end{externalDocument}
+
+
+This can be changed with the optional argument \verb|-i| or \verb|--ignoreSpace|:
+
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  mpwidth=0.55\linewidth,
+  pages={2},
+  frame=false,
+  compiler=lualatex --shell-escape, 
+  crop,
+  xindex,
+  xindexOptions=-i,
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex --shell-escape
+\documentclass{scrartcl}
+\usepackage{libertinus-otf}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\makeatother
+%StartVisiblePreamble
+\usepackage{makeidx}\makeindex
+% sort with xindex -i <file>
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+Test
+\index{alpha sort}\index{alphaA}
+\newpage
+\printindex
+\end{document}
+\end{externalDocument}
+
+
+
 %\clearpage
 
-\section{Compressing pagenumbers}\label{Compressing}
+\subsection{Compressing pagenumber series}\label{Compressing}
 By default page sequences of an entry are compressed to 
 \begin{description}
 \item[8f] page 8 and 9
@@ -820,62 +1067,7 @@
 \end{externalDocument}
 
 
-
-\section{\texttt{hyperref}}
-
-Using the package \Lpack{hyperref} is no problem:
-
-\enlargethispage{2.5\normalbaselineskip}
-
-\begin{externalDocument}[
-%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
-  mpwidth=0.55\linewidth,
-  pages={3},
-  frame=false,
-  compiler=lualatex,
-  crop,
-  xindex,
-  xindexOptions=-l de,
-  force=true,
-  runs=2,code,docType=latex,
-  showFilename,
-  align=\centering,
-  lstOptions={columns=fixed}]{xindex}
-%! lualatex
-\documentclass[paper=a6]{scrartcl}
-\usepackage{multicol}
-\makeatletter
-\def\theindex{%    only for demonstration
-  \section*{\indexname}
-  \begin{multicols}{2}
-  \parskip\z@ \@plus .3\p@\relax \parindent\z@
-  \let\item\@idxitem}
-\def\endtheindex{\end{multicols}}
-\makeatother
-%StartVisiblePreamble
-\usepackage{makeidx}\makeindex
-\usepackage{hvindex}% for \Index
-\usepackage[colorlinks]{hyperref}
-%StopVisiblePreamble
-\pagestyle{empty}
-\begin{document}
-Sorted with \verb|-l DE|
-\Index{Österreich} \Index{Öresund} 
-\Index{Ostern} \Index{Ober} \Index{Oberin} 
-\Index{Österreich} \index{Öresund|textbf} 
-\Index{Ostern} \Index{Ober} \Index{Oberin} 
-\Index{Obstler} \Index{Öl} \Index{ölen} 
-\Index{Ödem} \Index{Oligarch} \Index{Oder} 
-\Index{oder} \index{Fluss!Oder|textit} 
-\Index{Oder|seealso{Fluss}} \Index{Göbel} 
-\Index{Goethe} \Index{Göthe} \Index{Götz} 
-\newpage\Index{Goldmann} \Index{Goethe}
-\newpage \printindex
-\end{document}
-\end{externalDocument}
-
-
-\section{Page argument}
+\subsection{Modify Pagenumber}
 Every page can be combined with an additional macro, like \verb=\index{foo|fbox}=, the page number
 will be set into a framebox. If we have on the same page the two commands:
 
@@ -930,6 +1122,8 @@
 
 
 
+
+
 \section{The config file}
 
 The main config file is \Lfile{xindex-cfg.lua} is used by default and loading it by the 
@@ -1245,9 +1439,62 @@
 
 
 
+\section{\texttt{hyperref}}
 
+Using the package \Lpack{hyperref} is no problem:
 
+\enlargethispage{2.5\normalbaselineskip}
 
+\begin{externalDocument}[
+%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
+  mpwidth=0.55\linewidth,
+  pages={3},
+  frame=false,
+  compiler=lualatex,
+  crop,
+  xindex,
+  xindexOptions=-l de,
+  force=true,
+  runs=2,code,docType=latex,
+  showFilename,
+  align=\centering,
+  lstOptions={columns=fixed}]{xindex}
+%! lualatex
+\documentclass[paper=a6]{scrartcl}
+\usepackage{multicol}
+\makeatletter
+\def\theindex{%    only for demonstration
+  \section*{\indexname}
+  \begin{multicols}{2}
+  \parskip\z@ \@plus .3\p@\relax \parindent\z@
+  \let\item\@idxitem}
+\def\endtheindex{\end{multicols}}
+\makeatother
+%StartVisiblePreamble
+\usepackage{makeidx}\makeindex
+\usepackage{hvindex}% for \Index
+\usepackage[colorlinks]{hyperref}
+%StopVisiblePreamble
+\pagestyle{empty}
+\begin{document}
+Sorted with \verb|-l DE|
+\Index{Österreich} \Index{Öresund} 
+\Index{Ostern} \Index{Ober} \Index{Oberin} 
+\Index{Österreich} \index{Öresund|textbf} 
+\Index{Ostern} \Index{Ober} \Index{Oberin} 
+\Index{Obstler} \Index{Öl} \Index{ölen} 
+\Index{Ödem} \Index{Oligarch} \Index{Oder} 
+\Index{oder} \index{Fluss!Oder|textit} 
+\Index{Oder|seealso{Fluss}} \Index{Göbel} 
+\Index{Goethe} \Index{Göthe} \Index{Götz} 
+\newpage\Index{Goldmann} \Index{Goethe}
+\newpage \printindex
+\end{document}
+\end{externalDocument}
+
+
+
+
 \section{Including \LaTeX\ commands into the \Lext{idx} file}
 The command \Lcs{addtocontents} doesn't work for the index file. With the \LaTeX\ package
 \Lpack{xindex} (same name as the Lua program \Lprog{xindex}) defines a macro \Lcs{writeidx}
@@ -1514,118 +1761,8 @@
 
 
 
-\section{Case sensitive index entries}
-By default \textsf{foo} and \textsf{Foo} are two different entries and will handled differently
-by \Lprog{xindex}: \textsf{Foo} will be as an own entry \emph{before} \textsf{foo}. Let's see 
-a more complex example. In the index the entry \verb|xindex-DIN2.lua| is the first one of
-the \verb|xindex-???| series because uppercase letters are sorted before lowercase letters.
 
-\begin{externalDocument}[
-%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
-  mpwidth=0.55\linewidth,
-  pages={2},
-  frame=false,
-  compiler=lualatex --shell-escape, 
-  crop,
-  xindex,
-%  xindexOptions=,
-  force=true,
-  runs=2,code,docType=latex,
-  showFilename,
-  align=\centering,
-  lstOptions={columns=fixed}]{xindex}
-%! lualatex --shell-escape
-\documentclass{scrartcl}
-\usepackage{libertinus-otf}
-\makeatletter
-\def\theindex{%    only for demonstration
-  \section*{\indexname}
-  \parskip\z@ \@plus .3\p@\relax \parindent\z@
-  \let\item\@idxitem}
-\makeatother
-\begin{filecontents}[force,noheader]{\jobname.idx}
-\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{2}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{4}
-\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{6}
-\indexentry{xindex-newfile.lua file@\texttt  {xindex-newfile.lua} file|hyperpage}{6}
-\indexentry{xindex-DIN2.lua file@\texttt  {xindex-DIN2.lua} file|hyperpage}{6}
-\indexentry{xindex-cfg-common.cfg file@\texttt  {xindex-cfg-common.cfg} file|hyperpage}{9}
-\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{10}
-\indexentry{xindex-HAdW-eKO.lua file@\texttt  {xindex-HAdW-eKO.lua} file|hyperpage}{10}
-\indexentry{xindex-dtk.lua file@\texttt  {xindex-dtk.lua} file|hyperpage}{12}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{13}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{14}
-\indexentry{xindex-cfg-common.lua file@\texttt  {xindex-cfg-common.lua} file|hyperpage}{14}
-\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{15}
-\end{filecontents}
-%StartVisiblePreamble
-\usepackage{makeidx}
-\usepackage{hyperref}
-%StopVisiblePreamble
-\pagestyle{empty}
-\begin{document}
-foo\newpage
-\printindex
-\end{document}
-\end{externalDocument}
 
-
-The same example sorted with the \verb|-a| or \verb|--nocasesensitive| has another output: now
-\verb|xindex-cfg-common.lua| is the first one of the \verb|xindex-???| series.
-
-
-\begin{externalDocument}[
-%  grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule},
-  mpwidth=0.55\linewidth,
-  pages={2},
-  frame=false,
-  compiler=lualatex --shell-escape, 
-  crop,
-  xindex,
-  xindexOptions=-a,
-  force=true,
-  runs=2,code,docType=latex,
-  showFilename,
-  align=\centering,
-  lstOptions={columns=fixed}]{xindex}
-%! lualatex --shell-escape
-\documentclass{scrartcl}
-\usepackage{libertinus-otf}
-\makeatletter
-\def\theindex{%    only for demonstration
-  \section*{\indexname}
-  \parskip\z@ \@plus .3\p@\relax \parindent\z@
-  \let\item\@idxitem}
-\makeatother
-\begin{filecontents}[force,noheader]{\jobname.idx}
-\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{2}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{4}
-\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{6}
-\indexentry{xindex-newfile.lua file@\texttt  {xindex-newfile.lua} file|hyperpage}{6}
-\indexentry{xindex-DIN2.lua file@\texttt  {xindex-DIN2.lua} file|hyperpage}{6}
-\indexentry{xindex-cfg-common.cfg file@\texttt  {xindex-cfg-common.cfg} file|hyperpage}{9}
-\indexentry{xindex-cfg.lua file@\texttt  {xindex-cfg.lua} file|hyperpage}{10}
-\indexentry{xindex-HAdW-eKO.lua file@\texttt  {xindex-HAdW-eKO.lua} file|hyperpage}{10}
-\indexentry{xindex-dtk.lua file@\texttt  {xindex-dtk.lua} file|hyperpage}{12}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{13}
-\indexentry{xindex program@\texttt  {xindex} program|hyperpage}{14}
-\indexentry{xindex-cfg-common.lua file@\texttt  {xindex-cfg-common.lua} file|hyperpage}{14}
-\indexentry{xindex package@\texttt  {xindex} package|hyperpage}{15}
-\end{filecontents}
-%StartVisiblePreamble
-\usepackage{makeidx}
-\usepackage{hyperref}
-%StopVisiblePreamble
-\pagestyle{empty}
-\begin{document}
-foo\newpage
-\printindex
-\end{document}
-\end{externalDocument}
-
-
-
-
 \section{Automatic index creation}
 With package \Lpack{xindex} one can define several different index files, e.\,g.
 an \Index{index of names}. With the optional argument \Loption{imakeidx} the package itself loads  \Lpack{imakeidx}

Modified: trunk/Master/texmf-dist/scripts/xindex/xindex.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/xindex/xindex.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/scripts/xindex/xindex.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -6,11 +6,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL 1.3
 --
--- $Id: xindex.lua 21 2022-01-27 17:45:10Z hvoss $
+-- $Id: xindex.lua 22 2022-02-11 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
         xindex = xindex or { }
- local version = 0.36
+ local version = 0.40
 xindex.version = version
 --xindex.self = "xindex"
 
@@ -49,8 +49,10 @@
     -n,--noheadings 
     -a,--no_casesensitive
     -b,--no_labels
+    -i,--ignoreSpace
     -o,--output (default "")
-    -l,--language (default en)
+    -k --checklang               same as * star for checking aux file
+    -l,--language (default en)   or * for detecting the language from the aux file
     -p,--prefix (default L)
     -u,--use_UCA
     -s,--use_stdin
@@ -97,7 +99,9 @@
 
 local nInFiles = #args.files
 if not useStdInput then
-  --print(tostring(nInFiles).." input files are given!")
+  if vlevel == 3 then
+    print(tostring(nInFiles).." input file(s): ")
+  end
   inFiles = {}    --args.files as strings
   for i = 1,nInFiles do
     local file = args.files_name[i]
@@ -108,6 +112,9 @@
     else
       inFiles[#inFiles+1] = file
     end
+    if vlevel == 3 then
+      print(file)
+    end
   end  
 end
 
@@ -153,7 +160,7 @@
 
 writeLog(2,"xindex v."..version.." (c) Herbert Voß\n",-1)
 writeLog(1,"Verbose level = "..vlevel.."\n",1)
-writeLog(2,"Logfile:"..logfilename,1)
+writeLog(2,"Logfile:"..logfilename.."\n",1)
 
 writeLog(2,"Open outputfile "..outfilename,0)
 outFile = io.open(outfilename,"w+")
@@ -172,6 +179,13 @@
 
 -- writeLog(2,"Using input file: "..inFile.."\n",0)
 
+if args["ignoreSpace"] then
+  ignoreSpace = args["ignoreSpace"]
+else
+  ignoreSpace = false
+end
+writeLog(2,"ignore space for sorting: "..tostring(ignoreSpace).."\n",-1)
+
 labelPrefix = args.prefix
 writeLog(2,"Label prefix: "..labelPrefix.."\n",-1)
 
@@ -208,9 +222,57 @@
 
 -- esc_char..'%( is not needed because it can only appear after |
 
-language = "en" -- default language
+outFile = io.open(outfilename,"w+")
 
-language = string.lower(args["language"]):sub(1, 2)
+local aux_language = ""
+
+if args["checklang"] or (args["language"] == "*") then
+  writeLog(2,'Check language in aux file\n',0) 
+  -- \babel at aux{german}{}        package babel
+  -- \selectlanguage *[variant=german,spelling=new,]{german}   package polyglossia
+  local auxfile = inFiles[1]:split(".")[1]..".aux"
+  writeLog(2,auxfile.."\n",0) 
+  local auxlines = read_lines_from(auxfile)
+  for line = 1,#auxlines do
+    local str = auxlines[line]
+    if string.find(str, "selectlanguage") then        
+      str = str:match("{..+}$")   -- get last word {language}
+      aux_language = str:sub(2,(#str-1))
+      break
+    else
+      if string.find(str, "babel at aux{")  then        
+  --      print("Babel defunden: "..str)
+        str = str:match("{..+}$")   -- get last word {language}
+  --      print("Babel: "..str)
+        aux_language = str:sub(2,(#str-3))
+        break
+      end
+    end
+  end
+--  print(aux_language)
+  if #aux_language > 0 then
+--    print("find language")
+    for i,lang in pairs(indexheader) do
+      for j = 3,#lang do
+        if lang[j] == aux_language then
+          language = i
+        end
+      end
+    end
+  else
+    language = "en"
+  end
+  print("Detected language: "..language)
+else  
+  if args["language"] then
+    language = string.lower(args["language"]):sub(1, 2)
+  else
+    language = "en"
+  end
+end
+
+--print("Sprache:"..language)
+
 writeLog(2,"Language = "..language.."\n",1) 
 if (indexheader[language] == nil) then
   writeLog(2,'Corrected the unknown language "'..language..'" to "en"'.."\n",0) 

Modified: trunk/Master/texmf-dist/tex/latex/xindex/xindex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xindex/xindex.sty	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/latex/xindex/xindex.sty	2022-02-13 21:24:29 UTC (rev 62002)
@@ -1,6 +1,6 @@
 %% This is file `xindex.sty',
 %%
-%% Copyright (C) 2019-
+%% Copyright (C) 2018-2021
 %% Herbert Voss
 %%
 %% It may be distributed and/or modified under the

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-AU.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-AU.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-AU.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -9,7 +9,7 @@
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-AU'] = {
-      version = 0.33,
+      version = 0.40,
       comment = "configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -9,7 +9,7 @@
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-DIN2'] = {
-      version = 0.33,
+      version = 0.35,
       comment = "configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,13 +5,13 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-HAdW-eKO.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-HAdW-eKO.lua 13 2021-08-15 10:49:40Z hvoss $
 -----------------------------------------------------------------------
 --
 -- configuration for index files of the Heidelberger Akademie der Wissenschaften
 
 if not modules then modules = { } end modules ['xindex-HAdW-eKO'] = {
-      version = 0.35,
+      version = 0.34,
       comment = "configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,10 +5,10 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-base.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-base.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
-local info = { version = 0.35 } 
+local info = { version = 0.40 } 
 
 -- check config
 if pageNoPrefixDel ~= "" then 
@@ -293,7 +293,7 @@
             end
             indLines = indLines + 1
           end
-        end
+        end  -- not no_headings
         oldChar = currentChar
       end
       if specialItemOutput then

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-baselib.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-baselib.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-baselib.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-baselib.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-baselib.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-baselib'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "base library  to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",
@@ -128,6 +128,15 @@
   return ret
 end
 
+function toNumber(s) -- number as string or a roman number to arabic number
+  if s == nil then return s end
+  if type(s) == "number" then return s end   -- it is already a number
+  local rnum = romanToNumber(s)              -- check if roman
+  if rnum then return rnum end               -- if yes, return converted roman
+  return tonumber(s)                         -- return string to number
+end
+
+--[[
 function string:split()
    local sep, fields = " ", {}
    local pattern = string.format("([^%s]+)", sep)
@@ -134,7 +143,22 @@
    self:gsub(pattern, function(c) fields[#fields+1] = c end)
    return fields
 end
+]]
 
+function string:split(s)
+   local D
+   if not s then 
+     D = '%s'
+   else
+     D = tostring(s)
+   end
+   local sep, fields = " ", {}
+   local pattern = string.format("([^"..D.."]+)", sep)
+   self:gsub(pattern, function(c) fields[#fields+1] = c end)
+   return fields
+end
+
+
 function shellsort(a)
     local inc = math.ceil( #a / 2 )
     while inc > 0 do

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-cfg-common.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-cfg-common.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-cfg-common'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",
@@ -17,17 +17,66 @@
 }
 
 indexheader = { 
-  cs = {"Symboly", "Čísla"},
-  da = {"Symboler", "Tal"},
-  de = {"Symbole", "Zahlen"},
-  en = {"Symbols", "Numbers"},
-  es = {"Símbolos", "Números"},
-  fr = {"Symboles","Nombres"},
-  it = {"Simboli", "Numeri"},
-  jp = {"シンボル","番号"},
-  no = {"Symboler","Tall"},
+  cs = {"Symboly", "Čísla", "czech"},
+  da = {"Symboler", "Tal", "danish"},
+  de = {"Symbole", "Zahlen", "austrian", "german", "germanb", "ngerman", "naustrian"},
+  en = {"Symbols", "Numbers", "english", "USenglish", "american", "UKenglish", "british", "canadian", "australian", "newzealand"},
+  es = {"Símbolos", "Números", "spanish"},
+  fr = {"Symboles","Nombres", "french", "francais", "canadien", "acadian"},
+  it = {"Simboli", "Numeri", "italian"},
+  jp = {"シンボル","番号", "japanese"},
+  nl = {"Symbolen", "Nummers", "dutch"},
+  no = {"Symboler","Tall", "norsk", "nynorsk"},
 }
 
+--[[   babel
+afrikaans
+azerbaijani 
+basque
+breton
+bulgarian
+catalan
+croatian
+czech
+danish
+dutch
+english, USenglish, american, UKenglish, british, canadian, australian, newzealand
+esperanto
+estonian
+finnish
+french, francais, canadien, acadian
+galician
+austrian, german, germanb, ngerman, naustrian
+greek, polutonikogreek
+hebrew
+icelandic
+indonesian (bahasa, indon, bahasai) 
+interlingua
+irish
+italian
+latin
+lowersorbian
+malay, melayu (bahasam)
+samin
+norsk, nynorsk
+polish
+portuguese
+brazilian (portuges, brazil)
+romanian
+russian
+scottish
+spanish
+slovak
+slovene
+swedish
+serbian
+turkish
+ukrainian
+uppersorbian
+welsh
+]]
+
+
 folium = { 
   cs = {"f.", "ff."},
   da = {"f", "ff"},
@@ -37,6 +86,7 @@
   fr = {"\\,sq.","\\,sqq."},
   it = {"f", "ff"},
   jp = {"シンボル","番号"},
+  nl = {"f.", "ff."},
   no = {"\\,f.","\\,ff."},
 }
 

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-cfg-uca.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-cfg-uca.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-cfg-lua'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "configuration to xindex-cfg-uca.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-cfg.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-cfg.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-cfg'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "main configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-danteedition.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-danteedition.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-danteedition.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -9,7 +9,7 @@
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-cfg'] = {
-      version = 0.36,
+      version = 0.40,
       comment = "configuration file for the DANTE Edition",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-dtk.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-dtk.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-cfg'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "DTK configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-lib.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-lib.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-lib'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "main library  to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",
@@ -311,8 +311,8 @@
     end
   end
   -- last data line
+--  require 'xindex-pretty'.dump(newList)   -- only for internal dump
   newList[#newList]["pages"] = deletePageDups(newList[#newList]["pages"]) 
---  require 'xindex-pretty'.dump(newList)   -- only for internal dump
   return newList
 end
 
@@ -354,14 +354,14 @@
 function compressPageList(pages) --  called with (v["pages"])
   writeLog(1,"compressPageList: we have "..#pages.." pages for this entry\n",2)
 --  require 'xindex-pretty'.dump(pages)   -- only for internal dump
-  pages = deletePageDups(pages)  -- delete duplicate page numners with same special
+  pages = deletePageDups(pages)  -- delete duplicate page numbers with same special
   local str
   if #pages == 1 then -- only one pageno
     return pages
   end  -- only one pageno
   if #pages == 2 then  -- only two pages
-    if tonumber(pages[1]["number"]) and tonumber(pages[2]["number"]) then
-      if ((tonumber(pages[2]["number"]) - tonumber(pages[1]["number"])) == 1) and (pages[1]["special"] == pages[2]["special"]) then 
+    if toNumber(pages[1]["number"]) and toNumber(pages[2]["number"]) then
+      if ((toNumber(pages[2]["number"]) - toNumber(pages[1]["number"])) == 1) and (pages[1]["special"] == pages[2]["special"]) then 
         if fCompress then
           pages[1]["number"] = pages[1]["number"]..page_folium[1]  
           pages[2] = nil
@@ -392,8 +392,8 @@
   end
 if args_v then   print ("compressPageList: more than two pages for the entry\n") end
   for i=startIndex,#pages do
-    if tonumber(pages[i-1]["number"]) and tonumber(pages[i]["number"]) then  -- de we have something like 17--31 in the current list
-      if ((tonumber(pages[i]["number"])-tonumber(pages[i-1]["number"])) == 1) and 
+    if (toNumber(pages[i-1]["number"]) and toNumber(pages[i]["number"])) then  -- do we have two arabic or two roman numbers?
+      if ((toNumber(pages[i]["number"])-toNumber(pages[i-1]["number"])) == 1) and 
          (pages[i]["special"] == pages[i-1]["special"])  then   -- something like 12, 13 with identical |\special
         series[#series+1] = pages[i]--         page difference is 1, add page to series
       elseif (#series == 1) then    --     no -f page -> only one page -> output
@@ -529,10 +529,18 @@
   end
   if no_caseSensitive then
     A = NormalizedUpper(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!',' ')) -- replace! by empty
-    a["SortKey"] = A
+    if ignoreSpace then
+      a["SortKey"] = A:gsub("%s+", "") -- remove spaces
+    else
+      a["SortKey"] = A
+    end
   else  
     A = NormalizedChars(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!',' ')) -- replace! by empty
-    a["SortKey"] = A
+    if ignoreSpace then
+      a["SortKey"] = A:gsub("%s+", "")-- remove spaces
+    else
+      a["SortKey"] = A
+    end
   end
   -- return A
 end
@@ -754,12 +762,12 @@
 
 function itemOutput(last, v, hyperpage)
   local lastItems = last
---  print (tostring("test: "),v["Entry"],lastItems[1],lastItems[2],lastItems[3],type(lastItems[1]),#lastItems)
+  --print (tostring("test: "),v["Entry"],lastItems[1],lastItems[2],lastItems[3],type(lastItems[1]),#lastItems)
   local currentItems = {}
   local Entry = v["Entry"]
   local mainEntry = getItem(Entry,0)  -- save current main letter
   local lastmainEntry = last[1]       -- save last main letter
---  require 'xindex-pretty'.dump(v)   -- only for internal dump
+  --require 'xindex-pretty'.dump(v)   -- only for internal dump
   local str
   local excl = select(2,string.gsub(Entry,"!","!")) -- Number of !
   writeLog(1,"itemOutput(): We have entry "..Entry.."\n",2)

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -6,11 +6,11 @@
 --     MODIFIED:  Sveinung Heggen (2020-01-02)
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-norsk.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-norsk.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-no'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -3,11 +3,11 @@
 -- Also provides a sandboxed Lua table reader and
 -- a function to present large numbers in human-friendly format.
 --
--- $Id: xindex-pretty.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-pretty.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-pretty'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "dump a Lua table for debugging",
        author = "Steve Donovan",
     copyright = "Steve Donovan",

Modified: trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua	2022-02-13 14:23:47 UTC (rev 62001)
+++ trunk/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua	2022-02-13 21:24:29 UTC (rev 62002)
@@ -5,11 +5,11 @@
 --       AUTHOR:  Herbert Voß
 --      LICENSE:  LPPL1.3
 --
--- $Id: xindex-yannis.lua 19 2022-01-22 09:59:15Z hvoss $
+-- $Id: xindex-yannis.lua 22 2022-02-07 12:18:15Z hvoss $
 -----------------------------------------------------------------------
 
 if not modules then modules = { } end modules ['xindex-yannis'] = {
-      version = 0.35,
+      version = 0.40,
       comment = "main configuration to xindex.lua",
        author = "Herbert Voss",
     copyright = "Herbert Voss",



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