diff options
author | Karl Berry <karl@freefriends.org> | 2021-07-08 20:40:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-07-08 20:40:01 +0000 |
commit | 978793de51ad5f130ee33fdef66fefda3e6ab451 (patch) | |
tree | 9ef1c6be3518e42626cbeae1e4fcfe92dcd6206d /Master | |
parent | 25a24631fbe10fe90cf1ad034188184b32363a27 (diff) |
xindex (8jul21)
git-svn-id: svn://tug.org/texlive/trunk@59875 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
19 files changed, 659 insertions, 35 deletions
diff --git a/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG b/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG index bf199a2f3f4..f3ae68df9a1 100644 --- a/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG +++ b/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG @@ -1,3 +1,4 @@ +0.30 2021-07-07 - added otional argument -b for no label setting in the <index>.ind 0.29 2021-07-05 - don't use language specific names for the labels - use math.max() - check for language specific folium pages and not only "f", "ff" diff --git a/Master/texmf-dist/doc/lualatex/xindex/README.md b/Master/texmf-dist/doc/lualatex/xindex/README.md index 70f0bd970da..59a639ac7ab 100644 --- a/Master/texmf-dist/doc/lualatex/xindex/README.md +++ b/Master/texmf-dist/doc/lualatex/xindex/README.md @@ -25,6 +25,7 @@ possible options are (short,long): -e,--escapechar (default ") -n,--noheadings -a,--no_casesensitive + -b,--no_label -o,--output (default "") -l,--language (default en) -p,--prefix (default L) diff --git a/Master/texmf-dist/doc/lualatex/xindex/scripts/xindex-yannis.lua b/Master/texmf-dist/doc/lualatex/xindex/scripts/xindex-yannis.lua new file mode 100644 index 00000000000..2ef45e43606 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/scripts/xindex-yannis.lua @@ -0,0 +1,262 @@ +----------------------------------------------------------------------- +-- FILE: xindex-yannis.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +-- +-- $Id: xindex-yannis.lua 4 2021-07-07 07:25:04Z hvoss $ +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-yannis'] = { + version = 0.30, + comment = "main configuration to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +itemPageDelimiter = "," -- Hello, 14 +compressPages = true -- something like 12--15, instaead of 12,13,14,15. the |( ... |) syntax is still valid +fCompress = false -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 +minCompress = 2 -- 14--17 or +rangeSymbol = "-" -- 14-17 instead of -- +numericPage = true -- for non numerical pagenumbers, like "VI-17" +sublabels = {"", "-\\,", "--\\,", "---\\,"} -- for the (sub(sub(sub-items first one is for item +pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -- not used !!! +indexOpening = "" -- commands after \begin{theindex} +idxnewletter = "\\textbf" -- Only valid if -n is not set + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +alphabet_lower = { -- for sorting + { 'α', 'ά', 'ὰ', 'ᾶ', 'ἀ', 'ἄ', 'ἂ', 'ἆ', 'ἁ', 'ἅ', 'ἃ', 'ἇ', 'ᾳ', 'ᾴ', 'ᾲ', 'ᾷ', 'ᾀ', 'ᾄ', 'ᾂ', 'ᾆ', 'ᾁ', 'ᾅ', 'ᾃ', 'ᾇ' }, + { 'β', 'ϐ' }, + { 'γ' }, + { 'δ' }, + { 'ε', 'έ', 'ὲ', 'ἐ', 'ἔ', 'ἒ', 'ἑ', 'ἕ', 'ἓ' }, + { 'ζ' }, + { 'η', 'ή', 'ὴ', 'ῆ', 'ἠ', 'ἤ', 'ἢ', 'ἦ', 'ἡ', 'ἥ', 'ἣ', 'ἧ', 'ῃ', 'ῄ', 'ῂ', 'ῇ', 'ᾐ', 'ᾔ', 'ᾒ', 'ᾖ', 'ᾑ', 'ᾕ', 'ᾓ', 'ᾗ' }, + { 'θ' }, + { 'ι', 'ί', 'ὶ', 'ῖ', 'ἰ', 'ἴ', 'ἲ', 'ἶ', 'ἱ', 'ἵ', 'ἳ', 'ἷ', 'ϊ', 'ΐ', 'ῒ', 'ῗ' }, + { 'κ' }, + { 'λ' }, + { 'μ' }, + { 'ν' }, + { 'ξ' }, + { 'ο', 'ό', 'ὸ', 'ὀ', 'ὄ', 'ὂ', 'ὁ', 'ὅ', 'ὃ' }, + { 'π' }, + { 'ρ' }, + { 'σ', 'ς' }, + { 'τ' }, + { 'υ', 'ύ', 'ὺ', 'ῦ', 'ὐ', 'ὔ', 'ὒ', 'ὖ', 'ὑ', 'ὕ', 'ὓ', 'ὗ', 'ϋ', 'ΰ', 'ῢ', 'ῧ' }, + { 'φ' }, + { 'χ' }, + { 'ψ' }, + { 'ω', 'ώ', 'ὼ', 'ῶ', 'ὠ', 'ὤ', 'ὢ', 'ὦ', 'ὡ', 'ὥ', 'ὣ', 'ὧ', 'ῳ', 'ῴ', 'ῲ', 'ῷ', 'ᾠ', 'ᾤ', 'ᾢ', 'ᾦ', 'ᾡ', 'ᾥ', 'ᾣ', 'ᾧ' }, + { 'a', 'á', 'à', 'ä', 'å', 'æ', }, + { 'b' }, + { 'c', 'ç' }, + { 'd' }, + { 'e', 'é', 'è', 'ë' }, + { 'f' }, + { 'g' }, + { 'h' }, + { 'i', 'í', 'ì', 'ï' }, + { 'j' }, + { 'k' }, + { 'l' }, + { 'm' }, + { 'n', 'ñ' }, + { 'o', 'ó', 'ò', 'ö', 'ø', 'œ'}, + { 'p' }, + { 'q' }, + { 'r' }, + { 's', 'š', 'ß' }, + { 't' }, + { 'u', 'ú', 'ù', 'ü' }, + { 'v' }, + { 'w' }, + { 'x' }, + { 'y', 'ý', 'ÿ' }, + { 'z', 'ž' }, + { 'а' }, + { 'б' }, + { 'в' }, + { 'г', 'ѓ' }, + { 'д' }, + { 'е', 'ё' }, + { 'ж' }, + { 'з' }, + { 'и', 'і' }, + { 'й' }, + { 'к' }, + { 'л' }, + { 'м' }, + { 'н' }, + { 'о' }, + { 'п' }, + { 'р' }, + { 'с' }, + { 'т' }, + { 'у' }, + { 'ф' }, + { 'х' }, + { 'ц' }, + { 'ч' }, + { 'ш' }, + { 'щ' }, + { 'ъ' }, + { 'ы' }, + { 'ь' }, + { 'э' }, + { 'ю' }, + { 'я' }, +} +alphabet_upper = { -- for sorting + { 'Α', 'Ά', 'Ἀ', 'Ἄ', 'Ἂ', 'Ἆ', 'Ἁ', 'Ἅ', 'Ἃ', 'Ἇ', 'ᾼ', 'ᾈ', 'ᾌ', 'ᾊ', 'ᾎ', 'ᾉ', 'ᾍ', 'ᾋ', 'ᾏ' }, + { 'Β' }, + { 'Γ' }, + { 'Δ' }, + { 'Ε', 'Έ', 'Ἐ', 'Ἔ', 'Ἒ', 'Ἑ', 'Ἕ', 'Ἓ' }, + { 'Ζ' }, + { 'Η', 'Ή', 'Ἠ', 'Ἤ', 'Ἢ', 'Ἦ', 'Ἡ', 'Ἥ', 'Ἣ', 'Ἧ', 'ῌ', 'ᾘ', 'ᾜ', 'ᾚ', 'ᾞ', 'ᾙ', 'ᾝ', 'ᾟ' }, + { 'Θ' }, + { 'Ι', 'Ί', 'Ἰ', 'Ἴ', 'Ἲ', 'Ἶ', 'Ἱ', 'Ἵ', 'Ἳ', 'Ἷ', 'Ϊ' }, + { 'Κ' }, + { 'Λ' }, + { 'Μ' }, + { 'Ν' }, + { 'Ξ' }, + { 'Ο', 'Ό', 'Ὀ', 'Ὄ', 'Ὂ', 'Ὁ', 'Ὅ', 'Ὃ' }, + { 'Π' }, + { 'Ρ' }, + { 'Σ' }, + { 'Τ' }, + { 'Υ', 'Ύ', 'Ὑ', 'Ὕ', 'Ὓ', 'Ὗ', 'Ϋ' }, + { 'Φ' }, + { 'Χ' }, + { 'Ψ' }, + { 'Ω', 'Ώ', 'Ὠ', 'Ὤ', 'Ὢ', 'Ὦ', 'Ὡ', 'Ὥ', 'Ὣ', 'Ὧ', 'ῼ', 'ᾩ', 'ᾭ', 'ᾫ', 'ᾯ', 'ᾨ', 'ᾬ', 'ᾪ', 'ᾮ' }, + { 'A', 'Á', 'À', 'Ä', 'Å', 'Æ'}, + { 'B' }, + { 'C', 'Ç' }, + { 'D' }, + { 'E', 'È', 'È', 'Ë' }, + { 'F' }, + { 'G' }, + { 'H' }, + { 'I', 'Í', 'Ì', 'Ï' }, + { 'J' }, + { 'K' }, + { 'L' }, + { 'M' }, + { 'N', 'Ñ' }, + { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ' }, + { 'P' }, + { 'Q' }, + { 'R' }, + { 'S', 'Š' }, + { 'T' }, + { 'U', 'Ú', 'Ù', 'Ü' }, + { 'V' }, + { 'W' }, + { 'X' }, + { 'Y', 'Ý', 'Ÿ' }, + { 'Z', 'Ž' }, + { 'А' }, + { 'Б' }, + { 'В' }, + { 'Г', 'Ѓ' }, + { 'Д' }, + { 'Е', 'Ё' }, + { 'Ж' }, + { 'З' }, + { 'И', 'І' }, + { 'Й' }, + { 'К' }, + { 'Л' }, + { 'М' }, + { 'Н' }, + { 'О' }, + { 'П' }, + { 'Р' }, + { 'С' }, + { 'Т' }, + { 'У' }, + { 'Ф' }, + { 'Х' }, + { 'Ц' }, + { 'Ч' }, + { 'Ш' }, + { 'Щ' }, + { 'Ъ' }, + { 'Ы' }, + { 'Ь' }, + { 'Э' }, + { 'Ю' }, + { 'Я' }, +} + + +function SORTendhook(list) + print ("We have "..#list.." total list entries") + local greek = {} + local latin = {} + local cyrillic = {} + local symbols = {} + local numbers = {} + local others = {} + local firstChar, charType + local firstCharNumber + local v + for i=1,#list do + v = list[i] + firstChar = NormalizedUppercase(utf.sub(v["sortChar"],1,1)) + v["sortChar"] = firstChar -- to be sure it is an uppercase unicode char + firstCharNumber = string.utfvalue(firstChar) + charType = getCharType(firstChar) +-- print (utf.sub(v["sortChar"],1,1).."->"..firstChar.." ("..firstCharNumber..") ".." ("..charType..")") + if charType == 0 then + symbols[#symbols+1] = v + elseif charType == 1 then + numbers[#numbers+1] = v + elseif firstCharNumber > 0x052F then -- 0x052F is last cyrillic character + others[#others+1] = v + elseif firstCharNumber >= 0x0400 then -- 0x0400-0x052F cyrillic characters + cyrillic[#cyrillic+1] = v + elseif firstCharNumber <= 0x03FF then -- 0x03FF is last greek character + if firstCharNumber >= 0x0370 then + greek[#greek+1] = v -- 0x0370-0x03FF greek characters + elseif firstCharNumber <= 0x024F then + if firstCharNumber >= 0x041 then -- 0x041-0x024F latin character + latin[#latin+1] = v + else + others[#others+1] = v -- everything else + end + end + end + end + print ("We have "..#greek.." Greek entries") + print ("We have "..#latin.." Latin entries") + print ("We have "..#cyrillic.." Cyrillic entries") + print ("We have "..#symbols.." Symbol entries") + print ("We have "..#numbers.." Number entries") + print ("We have "..#others.." other entries") + list = {} + for i = 1,#greek do list[#list+1] = greek[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#latin do list[#list+1] = latin[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#cyrillic do list[#list+1] = cyrillic[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#symbols do list[#list+1] = symbols[i] end + for i = 1,#numbers do list[#list+1] = numbers[i] end + for i = 1,#others do list[#list+1] = others[i] end + print ("Sorted "..#list.." entries") + return list +end + diff --git a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf Binary files differindex a1e54f4ae4d..0e0af19097c 100644 --- a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf +++ b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex index 71f6139d4f5..8adac4c59c0 100644 --- a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex +++ b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex @@ -1,7 +1,7 @@ %% $Id: xindex-doc.tex 635 2017-10-24 18:22:59Z herbert $ % \listfiles\setcounter{errorcontextlines}{100} -\documentclass[paper=a4,fontsize=11pt,DIV=13,parskip=half-, +\documentclass[paper=a4,fontsize=11pt,DIV=14,parskip=half-, captions=tableabove,twoside=on]{scrartcl} \usepackage{fontspec} %\usepackage{libertinus-otf} @@ -53,6 +53,7 @@ \def\Lpack#1{\texttt{#1}\index{#1 package@\texttt{#1} package}} \def\Lprog#1{\texttt{#1}\index{#1 program@\texttt{#1} program}} \def\Loption#1{\texttt{#1}\index{#1@\texttt{#1} package option}} +\def\Largb#1{\emph{\{#1\}}} %\usepackage[bibstyle=dtk]{biblatex} %\addbibresource{\jobname.bib} @@ -80,9 +81,9 @@ \def\setVersion#1{\setVVersion#1!!} \def\setVVersion#1=#2!!{\def\xIndexVersion{#2}} -\setVersion{version = 0.29}% can be automatically changed by perl +\setVersion{version = 0.30}% can be automatically changed by perl -\setkeys{dtk}{cleanup=true,force=false} +\setkeys{dtk}{cleanup=true,force} \title{Program and package \texttt{xindex} \\--\\ \normalsize \xIndexVersion\ (\today)} @@ -101,7 +102,8 @@ Denis Bitouzé; Brian Dunn; Michal Hoftich; Heiko Oberdiek; -Matteo Paolini; +Matteo Paolini;\\ +Florent Rougon; Martin Sievers; Simon Spiegel @@ -165,7 +167,8 @@ xindex [-v ] verbose [-c,--config ] default is cfg [-e,--escapechar ] default is " - [-a, --nocasesensitive ] default is false + [-a, --no_casesensitive ] default is false + [-b,--no_labels ] default is false [-n,--noheadings ] default is false [-o,--output ] default is <input>.ind [-l,--language ] default is en @@ -174,6 +177,32 @@ xindex <input file> \end{verbatim} +For example: + +\begin{verbatim} +xindex -q -l fr -b myDoc +\end{verbatim} + +\iffalse +local args = require ('xindex-lapp') [[ + parameter handling + -q,--quiet + -h,--help + -v... Verbosity level; can be -v, -vv, -vvv + -c,--config (default cfg) + -e,--escapechar (default ") + -n,--noheadings + -a,--no_casesensitive + -b,--no_labels + -o,--output (default "") + -l,--language (default en) + -p,--prefix (default L) + -u,--use_UCA + <input> (string) +]] +\fi + + The \Index{language} has to be chosen as an international abbreviation in lower- or uppercase letters, see @@ -656,7 +685,7 @@ by Michal Hoftich's Lua package \texttt{LUA-UCA}, which should be part of any \T crop, xindex, xindexOptions=-u -l cs, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -1079,7 +1108,7 @@ The following example runs \verb|xindex -c dtk -l de -n <input>| crop, xindex, xindexOptions=-c dtk -n -l de, - force=false, + force, runs=2,code,docType=latex, showFilename, align=\centering, @@ -1134,7 +1163,7 @@ The following example runs \verb|xindex -c dtk -l de -n <input>| %StopVisiblePreamble \pagestyle{empty} \begin{document} -\mbox{}\ref{president} +\mbox{}\label{president} \printindex \end{document} \end{externalDocument} @@ -1586,7 +1615,7 @@ and adds the program \Lprog{xindex} as the default program to \Lpack{imakeidx}. crop, xindex, xindexOptions=-l de, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -1640,6 +1669,33 @@ foo\index[persons]{Volovich,~ Vladimir} You have to run \LaTeX\ with the \verb|--shell-escape|\index{Shell escape} option to run \Lprog{xindex} from within the \LaTeX\ document. + +\section{Labels} +By default \XI creates \Index{label}s in the index for the \Index{symbols}, \Index{numbers}, and other parts (letters) to which one can refer. +with \Lcs{ref}\Largb{label}. +The labels are named \verb|L-xindex-<name>|. The prefix \verb|L| can be changed by the config file. \verb|<name>| +maybe \verb|symbols|, \verb|numbers|, or \verb|A| (a letter). For example + +\begin{verbatim} +\begin{theindex} +\par\textbf{Symbols}\label{L-xindex-symbols} +\nopagebreak[4] + \item @, \hyperpage{3} + \item (, \hyperpage{3} + \item !, \hyperpage{3} + +\indexspace +\textbf{A}\label{L-xindex-A} +[...] +\end{verbatim} + +The labels can be used to create a reference to a specific part in the index, for example the +letter X is in the index on page \pageref{L-xindex-X} (\Lcs{pageref}\Largb{L-xindex-X}). + +With the optional argument \verb|-b| for the run of \XI one can supress the creation of the +labels, e.g. \verb|xindex -b -l fr ...| + + \section{Demerits} \begin{itemize} \item For more than 5000 entries in the \Lext{idx} file the internal Lua function diff --git a/Master/texmf-dist/scripts/xindex/xindex.lua b/Master/texmf-dist/scripts/xindex/xindex.lua index 5a3ba4c4b00..fdcbfb21724 100755 --- a/Master/texmf-dist/scripts/xindex/xindex.lua +++ b/Master/texmf-dist/scripts/xindex/xindex.lua @@ -5,10 +5,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL 1.3 +-- +-- $Id: xindex.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- xindex = xindex or { } - local version = 0.29 + local version = 0.30 xindex.version = version --xindex.self = "xindex" @@ -46,6 +48,7 @@ local args = require ('xindex-lapp') [[ -e,--escapechar (default ") -n,--noheadings -a,--no_casesensitive + -b,--no_labels -o,--output (default "") -l,--language (default en) -p,--prefix (default L) @@ -239,11 +242,17 @@ else writeLog(1,"Output with headings between different first letter\n",1) end +no_labels = args["no_labels"] +if no_headings then + writeLog(1,"Index without labels\n",1) +else + writeLog(1,"Index with labels\n",1) +end + writeLog(2,"Open outputfile "..filename,0) outFile = io.open(filename,"w+") writeLog(2,"... done\n",0) - writeLog(1,"Starting base file ... \n",2) BaseRunFile = kpse.find_file("xindex-base.lua") dofile(BaseRunFile) diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua index dc782726fe5..0b475ae118d 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-DIN2.lua 3 2021-07-07 07:21:56Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.29, + version = 0.30, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua index 6b9e3c65a95..68e0546e2c5 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua @@ -4,12 +4,14 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-HAdW-eKO.lua 3 2021-07-07 07:21:56Z hvoss $ ----------------------------------------------------------------------- -- -- configuration for index files of the Heidelberger Akademie der Wissenschaften if not modules then modules = { } end modules ['xindex-HAdW-eKO'] = { - version = 0.29, + version = 0.30, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua index ae77fe93fb0..4748026af05 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua @@ -4,9 +4,11 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-base.lua 3 2021-07-07 07:21:56Z hvoss $ ----------------------------------------------------------------------- -local info = { version = 0.29 } +local info = { version = 0.30 } -- check config if pageNoPrefixDel ~= "" then @@ -208,12 +210,14 @@ for k=1,#NewIndex do firstSLine = false if not no_headings then outFile:write("\\par"..idxnewletter.."{"..index_header[1].."}") - if (labelPrefix == "") then - outFile:write("\\label{xindex-symbols}\n\\nopagebreak[4]\n") --- outFile:write("\\label{xindex-"..index_header[1].."}\n\\nopagebreak[4]\n") + if no_labels then + outFile:write("\n\\nopagebreak[4]\n") else - outFile:write("\\label{"..labelPrefix.."-xindex-symbols}\n\\nopagebreak[4]\n") --- outFile:write("\\label{"..labelPrefix.."-xindex-"..index_header[1].."}\n\\nopagebreak[4]\n") + if (labelPrefix == "") then + outFile:write("\\label{xindex-symbols}\n\\nopagebreak[4]\n") + else + outFile:write("\\label{"..labelPrefix.."-xindex-symbols}\n\\nopagebreak[4]\n") + end end end end @@ -232,12 +236,14 @@ for k=1,#NewIndex do outFile:write("\n\\indexspace\n") if not no_headings then outFile:write(idxnewletter.."{"..index_header[2].."}") - if (labelPrefix == "") then - outFile:write("\\label{xindex-numbers}\n\\nopagebreak[4]\n") --- outFile:write("\\label{xindex-"..index_header[2].."}\n\\nopagebreak[4]\n") + if no_labels then + outFile:write("\n\\nopagebreak[4]\n") else - outFile:write("\\label{"..labelPrefix.."-xindex-numbers}\n\\nopagebreak[4]\n") --- outFile:write("\\label{"..labelPrefix.."-xindex-"..index_header[2].."}\n\\nopagebreak[4]\n") + if (labelPrefix == "") then + outFile:write("\\label{xindex-numbers}\n\\nopagebreak[4]\n") + else + outFile:write("\\label{"..labelPrefix.."-xindex-numbers}\n\\nopagebreak[4]\n") + end end end end @@ -255,10 +261,14 @@ for k=1,#NewIndex do outFile:write("\n\\indexspace\n") if not no_headings then outFile:write(idxnewletter.."{"..currentChar.."}") - if (labelPrefix == '""') then - outFile:write("\\label{xindex-"..currentChar.."}\n\\nopagebreak[4]\n") + if no_labels then + outFile:write("\n\\nopagebreak[4]\n") else - outFile:write("\\label{"..labelPrefix.."-xindex-"..currentChar.."}\n\\nopagebreak[4]\n") + if (labelPrefix == '""') then + outFile:write("\\label{xindex-"..currentChar.."}\n\\nopagebreak[4]\n") + else + outFile:write("\\label{"..labelPrefix.."-xindex-"..currentChar.."}\n\\nopagebreak[4]\n") + end end end oldChar = currentChar diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua index c66c70c7169..927caff925e 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-cfg-common.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-common'] = { - version = 0.29, + version = 0.30, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua index 22a5669e112..c057024ddaa 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-uca.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-cfg-uca.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-lua'] = { - version = 0.29, + version = 0.30, comment = "configuration to xindex-cfg-uca.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua index e088360fdf5..8020e4b87a0 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-cfg.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.29, + version = 0.30, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua index d479fa02358..28cd42daddd 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-dtk.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.29, + version = 0.30, comment = "DTK configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua index a9a982c2df2..4e312ce4a04 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua @@ -1,5 +1,7 @@ -- lapp.lua -- Simple command-line parsing using human-readable specification +-- +-- $Id: xindex-lapp.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------- --~ -- args.lua --~ local args = require ('lapp') [[ @@ -28,7 +30,7 @@ --~ n 2 -------------------------------- if not modules then modules = { } end modules ['xindex-lapp'] = { - version = 0.29, + version = 0.30, comment = "read parameter for xindex.lua", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua index 193758deefb..cd88fef0c82 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua @@ -4,10 +4,12 @@ -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-lib.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-lib'] = { - version = 0.29, + version = 0.30, comment = "main library to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua index a92f4823f64..246b295f6a9 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-norsk.lua @@ -5,10 +5,12 @@ -- AUTHOR: Herbert Voß -- MODIFIED: Sveinung Heggen (2020-01-02) -- LICENSE: LPPL1.3 +-- +-- $Id: xindex-norsk.lua 4 2021-07-07 07:25:04Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-no'] = { - version = 0.29, + version = 0.30, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua index 8f2155c803c..f8fc65b8bcc 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua @@ -3,9 +3,11 @@ -- Also provides a sandboxed Lua table reader and -- a function to present large numbers in human-friendly format. -- +-- $Id: xindex-pretty.lua 4 2021-07-07 07:25:04Z hvoss $ +----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-pretty'] = { - version = 0.29, + version = 0.30, comment = "dump a Lua table for debugging", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua index d3f6c5b84a9..4c13c6e65a9 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua @@ -1,3 +1,6 @@ +-- $Id: xindex-unicode.lua 4 2021-07-07 07:25:04Z hvoss $ +----------------------------------------------------------------------- + return { singles = { [0x00020] = "Zs", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua new file mode 100644 index 00000000000..2ef45e43606 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-yannis.lua @@ -0,0 +1,262 @@ +----------------------------------------------------------------------- +-- FILE: xindex-yannis.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +-- +-- $Id: xindex-yannis.lua 4 2021-07-07 07:25:04Z hvoss $ +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-yannis'] = { + version = 0.30, + comment = "main configuration to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +itemPageDelimiter = "," -- Hello, 14 +compressPages = true -- something like 12--15, instaead of 12,13,14,15. the |( ... |) syntax is still valid +fCompress = false -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 +minCompress = 2 -- 14--17 or +rangeSymbol = "-" -- 14-17 instead of -- +numericPage = true -- for non numerical pagenumbers, like "VI-17" +sublabels = {"", "-\\,", "--\\,", "---\\,"} -- for the (sub(sub(sub-items first one is for item +pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -- not used !!! +indexOpening = "" -- commands after \begin{theindex} +idxnewletter = "\\textbf" -- Only valid if -n is not set + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +alphabet_lower = { -- for sorting + { 'α', 'ά', 'ὰ', 'ᾶ', 'ἀ', 'ἄ', 'ἂ', 'ἆ', 'ἁ', 'ἅ', 'ἃ', 'ἇ', 'ᾳ', 'ᾴ', 'ᾲ', 'ᾷ', 'ᾀ', 'ᾄ', 'ᾂ', 'ᾆ', 'ᾁ', 'ᾅ', 'ᾃ', 'ᾇ' }, + { 'β', 'ϐ' }, + { 'γ' }, + { 'δ' }, + { 'ε', 'έ', 'ὲ', 'ἐ', 'ἔ', 'ἒ', 'ἑ', 'ἕ', 'ἓ' }, + { 'ζ' }, + { 'η', 'ή', 'ὴ', 'ῆ', 'ἠ', 'ἤ', 'ἢ', 'ἦ', 'ἡ', 'ἥ', 'ἣ', 'ἧ', 'ῃ', 'ῄ', 'ῂ', 'ῇ', 'ᾐ', 'ᾔ', 'ᾒ', 'ᾖ', 'ᾑ', 'ᾕ', 'ᾓ', 'ᾗ' }, + { 'θ' }, + { 'ι', 'ί', 'ὶ', 'ῖ', 'ἰ', 'ἴ', 'ἲ', 'ἶ', 'ἱ', 'ἵ', 'ἳ', 'ἷ', 'ϊ', 'ΐ', 'ῒ', 'ῗ' }, + { 'κ' }, + { 'λ' }, + { 'μ' }, + { 'ν' }, + { 'ξ' }, + { 'ο', 'ό', 'ὸ', 'ὀ', 'ὄ', 'ὂ', 'ὁ', 'ὅ', 'ὃ' }, + { 'π' }, + { 'ρ' }, + { 'σ', 'ς' }, + { 'τ' }, + { 'υ', 'ύ', 'ὺ', 'ῦ', 'ὐ', 'ὔ', 'ὒ', 'ὖ', 'ὑ', 'ὕ', 'ὓ', 'ὗ', 'ϋ', 'ΰ', 'ῢ', 'ῧ' }, + { 'φ' }, + { 'χ' }, + { 'ψ' }, + { 'ω', 'ώ', 'ὼ', 'ῶ', 'ὠ', 'ὤ', 'ὢ', 'ὦ', 'ὡ', 'ὥ', 'ὣ', 'ὧ', 'ῳ', 'ῴ', 'ῲ', 'ῷ', 'ᾠ', 'ᾤ', 'ᾢ', 'ᾦ', 'ᾡ', 'ᾥ', 'ᾣ', 'ᾧ' }, + { 'a', 'á', 'à', 'ä', 'å', 'æ', }, + { 'b' }, + { 'c', 'ç' }, + { 'd' }, + { 'e', 'é', 'è', 'ë' }, + { 'f' }, + { 'g' }, + { 'h' }, + { 'i', 'í', 'ì', 'ï' }, + { 'j' }, + { 'k' }, + { 'l' }, + { 'm' }, + { 'n', 'ñ' }, + { 'o', 'ó', 'ò', 'ö', 'ø', 'œ'}, + { 'p' }, + { 'q' }, + { 'r' }, + { 's', 'š', 'ß' }, + { 't' }, + { 'u', 'ú', 'ù', 'ü' }, + { 'v' }, + { 'w' }, + { 'x' }, + { 'y', 'ý', 'ÿ' }, + { 'z', 'ž' }, + { 'а' }, + { 'б' }, + { 'в' }, + { 'г', 'ѓ' }, + { 'д' }, + { 'е', 'ё' }, + { 'ж' }, + { 'з' }, + { 'и', 'і' }, + { 'й' }, + { 'к' }, + { 'л' }, + { 'м' }, + { 'н' }, + { 'о' }, + { 'п' }, + { 'р' }, + { 'с' }, + { 'т' }, + { 'у' }, + { 'ф' }, + { 'х' }, + { 'ц' }, + { 'ч' }, + { 'ш' }, + { 'щ' }, + { 'ъ' }, + { 'ы' }, + { 'ь' }, + { 'э' }, + { 'ю' }, + { 'я' }, +} +alphabet_upper = { -- for sorting + { 'Α', 'Ά', 'Ἀ', 'Ἄ', 'Ἂ', 'Ἆ', 'Ἁ', 'Ἅ', 'Ἃ', 'Ἇ', 'ᾼ', 'ᾈ', 'ᾌ', 'ᾊ', 'ᾎ', 'ᾉ', 'ᾍ', 'ᾋ', 'ᾏ' }, + { 'Β' }, + { 'Γ' }, + { 'Δ' }, + { 'Ε', 'Έ', 'Ἐ', 'Ἔ', 'Ἒ', 'Ἑ', 'Ἕ', 'Ἓ' }, + { 'Ζ' }, + { 'Η', 'Ή', 'Ἠ', 'Ἤ', 'Ἢ', 'Ἦ', 'Ἡ', 'Ἥ', 'Ἣ', 'Ἧ', 'ῌ', 'ᾘ', 'ᾜ', 'ᾚ', 'ᾞ', 'ᾙ', 'ᾝ', 'ᾟ' }, + { 'Θ' }, + { 'Ι', 'Ί', 'Ἰ', 'Ἴ', 'Ἲ', 'Ἶ', 'Ἱ', 'Ἵ', 'Ἳ', 'Ἷ', 'Ϊ' }, + { 'Κ' }, + { 'Λ' }, + { 'Μ' }, + { 'Ν' }, + { 'Ξ' }, + { 'Ο', 'Ό', 'Ὀ', 'Ὄ', 'Ὂ', 'Ὁ', 'Ὅ', 'Ὃ' }, + { 'Π' }, + { 'Ρ' }, + { 'Σ' }, + { 'Τ' }, + { 'Υ', 'Ύ', 'Ὑ', 'Ὕ', 'Ὓ', 'Ὗ', 'Ϋ' }, + { 'Φ' }, + { 'Χ' }, + { 'Ψ' }, + { 'Ω', 'Ώ', 'Ὠ', 'Ὤ', 'Ὢ', 'Ὦ', 'Ὡ', 'Ὥ', 'Ὣ', 'Ὧ', 'ῼ', 'ᾩ', 'ᾭ', 'ᾫ', 'ᾯ', 'ᾨ', 'ᾬ', 'ᾪ', 'ᾮ' }, + { 'A', 'Á', 'À', 'Ä', 'Å', 'Æ'}, + { 'B' }, + { 'C', 'Ç' }, + { 'D' }, + { 'E', 'È', 'È', 'Ë' }, + { 'F' }, + { 'G' }, + { 'H' }, + { 'I', 'Í', 'Ì', 'Ï' }, + { 'J' }, + { 'K' }, + { 'L' }, + { 'M' }, + { 'N', 'Ñ' }, + { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ' }, + { 'P' }, + { 'Q' }, + { 'R' }, + { 'S', 'Š' }, + { 'T' }, + { 'U', 'Ú', 'Ù', 'Ü' }, + { 'V' }, + { 'W' }, + { 'X' }, + { 'Y', 'Ý', 'Ÿ' }, + { 'Z', 'Ž' }, + { 'А' }, + { 'Б' }, + { 'В' }, + { 'Г', 'Ѓ' }, + { 'Д' }, + { 'Е', 'Ё' }, + { 'Ж' }, + { 'З' }, + { 'И', 'І' }, + { 'Й' }, + { 'К' }, + { 'Л' }, + { 'М' }, + { 'Н' }, + { 'О' }, + { 'П' }, + { 'Р' }, + { 'С' }, + { 'Т' }, + { 'У' }, + { 'Ф' }, + { 'Х' }, + { 'Ц' }, + { 'Ч' }, + { 'Ш' }, + { 'Щ' }, + { 'Ъ' }, + { 'Ы' }, + { 'Ь' }, + { 'Э' }, + { 'Ю' }, + { 'Я' }, +} + + +function SORTendhook(list) + print ("We have "..#list.." total list entries") + local greek = {} + local latin = {} + local cyrillic = {} + local symbols = {} + local numbers = {} + local others = {} + local firstChar, charType + local firstCharNumber + local v + for i=1,#list do + v = list[i] + firstChar = NormalizedUppercase(utf.sub(v["sortChar"],1,1)) + v["sortChar"] = firstChar -- to be sure it is an uppercase unicode char + firstCharNumber = string.utfvalue(firstChar) + charType = getCharType(firstChar) +-- print (utf.sub(v["sortChar"],1,1).."->"..firstChar.." ("..firstCharNumber..") ".." ("..charType..")") + if charType == 0 then + symbols[#symbols+1] = v + elseif charType == 1 then + numbers[#numbers+1] = v + elseif firstCharNumber > 0x052F then -- 0x052F is last cyrillic character + others[#others+1] = v + elseif firstCharNumber >= 0x0400 then -- 0x0400-0x052F cyrillic characters + cyrillic[#cyrillic+1] = v + elseif firstCharNumber <= 0x03FF then -- 0x03FF is last greek character + if firstCharNumber >= 0x0370 then + greek[#greek+1] = v -- 0x0370-0x03FF greek characters + elseif firstCharNumber <= 0x024F then + if firstCharNumber >= 0x041 then -- 0x041-0x024F latin character + latin[#latin+1] = v + else + others[#others+1] = v -- everything else + end + end + end + end + print ("We have "..#greek.." Greek entries") + print ("We have "..#latin.." Latin entries") + print ("We have "..#cyrillic.." Cyrillic entries") + print ("We have "..#symbols.." Symbol entries") + print ("We have "..#numbers.." Number entries") + print ("We have "..#others.." other entries") + list = {} + for i = 1,#greek do list[#list+1] = greek[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#latin do list[#list+1] = latin[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#cyrillic do list[#list+1] = cyrillic[i] end + list[#list]["Macro"] = "\\vspace{1cm}" + for i = 1,#symbols do list[#list+1] = symbols[i] end + for i = 1,#numbers do list[#list+1] = numbers[i] end + for i = 1,#others do list[#list+1] = others[i] end + print ("Sorted "..#list.." entries") + return list +end + |