----------------------------------------------------------------------- -- FILE: xindex-yannis.lua -- DESCRIPTION: configuration file for xindex.lua -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 -- -- $Id: xindex-yannis.lua 22 2022-02-07 12:18:15Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-yannis'] = { version = 0.64, 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, instead 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 envStart = "\\begin{theindex}" envStop = "\\end{theindex}" --[[ 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