diff options
Diffstat (limited to 'indexing')
-rw-r--r-- | indexing/xindex/CHANGELOG | 1 | ||||
-rw-r--r-- | indexing/xindex/doc/xindex-doc.pdf | bin | 393329 -> 393277 bytes | |||
-rw-r--r-- | indexing/xindex/doc/xindex-doc.tex | 6 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-DIN2.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-HAdW-eKO.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-base.lua | 5 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-cfg-common.lua | 3 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-cfg-uca.lua | 36 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-cfg.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-dtk.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-lapp.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-lib.lua | 9 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-norsk.lua | 256 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-pretty.lua | 2 | ||||
-rw-r--r-- | indexing/xindex/lualatex/xindex-yannis.lua | 2 | ||||
-rwxr-xr-x | indexing/xindex/scripts/xindex.lua | 4 |
16 files changed, 317 insertions, 17 deletions
diff --git a/indexing/xindex/CHANGELOG b/indexing/xindex/CHANGELOG index 71e72113cb..1904609087 100644 --- a/indexing/xindex/CHANGELOG +++ b/indexing/xindex/CHANGELOG @@ -1,3 +1,4 @@ +0.24 2020-06-07 - fix for correct hyperpage setting with folium pages 0.23 2020-06-02 - added support for the package LUA-UCA (Unicode Collation Algorithm) 0.22 2020-05-30 - added test for correct language with a fallback to english (en) and also allow de_DE, where only the first two letters are used diff --git a/indexing/xindex/doc/xindex-doc.pdf b/indexing/xindex/doc/xindex-doc.pdf Binary files differindex ccd6f2d307..2dbaf8c1f7 100644 --- a/indexing/xindex/doc/xindex-doc.pdf +++ b/indexing/xindex/doc/xindex-doc.pdf diff --git a/indexing/xindex/doc/xindex-doc.tex b/indexing/xindex/doc/xindex-doc.tex index 050d21dca2..733532c4fe 100644 --- a/indexing/xindex/doc/xindex-doc.tex +++ b/indexing/xindex/doc/xindex-doc.tex @@ -80,13 +80,14 @@ \def\setVersion#1{\setVVersion#1!!} \def\setVVersion#1=#2!!{\def\xIndexVersion{#2}} -\setVersion{version = 0.23}% can be automatically changed by perl +\setVersion{version = 0.24}% can be automatically changed by perl \setkeys{dtk}{cleanup=true,force=false} \title{Program and package \texttt{xindex} \\--\\ \normalsize \xIndexVersion\ (\today)} \author{\shortstack{Herbert Voß\\\small \href{mailto:hvoss@tug.org}{hvoss@tug.org}}} +\date{} \begin{document} \maketitle \tableofcontents @@ -97,7 +98,8 @@ Mark Baudoin; Denis Bitouzé; Michal Hoftich; Heiko Oberdiek; -Matteo Paolini +Matteo Paolini; +Simon Spiegel \clearpage diff --git a/indexing/xindex/lualatex/xindex-DIN2.lua b/indexing/xindex/lualatex/xindex-DIN2.lua index 6b925e3367..6d68e8b453 100644 --- a/indexing/xindex/lualatex/xindex-DIN2.lua +++ b/indexing/xindex/lualatex/xindex-DIN2.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.23, + version = 0.24, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/lualatex/xindex-HAdW-eKO.lua b/indexing/xindex/lualatex/xindex-HAdW-eKO.lua index 9b440fa94d..2be1351b24 100644 --- a/indexing/xindex/lualatex/xindex-HAdW-eKO.lua +++ b/indexing/xindex/lualatex/xindex-HAdW-eKO.lua @@ -9,7 +9,7 @@ -- configuration for index files of the Heidelberger Akademie der Wissenschaften if not modules then modules = { } end modules ['xindex-HAdW-eKO'] = { - version = 0.23, + version = 0.24, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/lualatex/xindex-base.lua b/indexing/xindex/lualatex/xindex-base.lua index 6c51f21763..0670451d02 100644 --- a/indexing/xindex/lualatex/xindex-base.lua +++ b/indexing/xindex/lualatex/xindex-base.lua @@ -6,7 +6,7 @@ -- LICENSE: LPPL1.3 ----------------------------------------------------------------------- -local info = { version = 0.23 } +local info = { version = 0.24 } -- check config if pageNoPrefixDel ~= "" then @@ -121,6 +121,7 @@ end ]] -- no more needed, we redo the setting if use_UCA then + writeLog(2,"Endhook for UCA ...",0) for i=1, #NewIndex do v = NewIndex[i] -- the collator:get_lowest_char will return character on the given @@ -133,6 +134,7 @@ if use_UCA then v.sortChar = getSortChar(codepoints) end end + writeLog(2,"done\n",0) end if SORTendhook then @@ -162,6 +164,7 @@ local excl = 0 -- number of ! symbols in one entry local lastItems = {"","",""} indLines = 0 writeLog(2,"Start writing .ind file ... \n",0) +require 'xindex-pretty'.dump(NewIndex) -- only for internal dump -- first the special cases for symbols and numbers: diff --git a/indexing/xindex/lualatex/xindex-cfg-common.lua b/indexing/xindex/lualatex/xindex-cfg-common.lua index 85f2c033b8..0754f3a772 100644 --- a/indexing/xindex/lualatex/xindex-cfg-common.lua +++ b/indexing/xindex/lualatex/xindex-cfg-common.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-common'] = { - version = 0.23, + version = 0.24, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -22,6 +22,7 @@ indexheader = { fr = {"Symboles","Nombres"}, it = {"Simboli", "Numeri"}, jp = {"シンボル","番号"}, + no = {"Symboler","Tall"}, } folium = { diff --git a/indexing/xindex/lualatex/xindex-cfg-uca.lua b/indexing/xindex/lualatex/xindex-cfg-uca.lua index 42ad4ec6dd..1930fcb4e6 100644 --- a/indexing/xindex/lualatex/xindex-cfg-uca.lua +++ b/indexing/xindex/lualatex/xindex-cfg-uca.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-lua'] = { - version = 0.23, + version = 0.24, comment = "configuration to xindex-cfg-uca.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -15,3 +15,37 @@ if not modules then modules = { } end modules ['xindex-cfg-lua'] = { } -- put any additional code for lua-uca here --- +languages.no = function(collator_obj) + local tailoring = function(s) collator_obj:tailor_string(s) end + collator_obj:uppercase_first() +-- tailoring("&[before 1]b<á<<<Á") +-- tailoring("&[before 1]d<č<<<Č<ʒ<<<Ʒ<ǯ<<<Ǯ") +-- tailoring("&[before 1]e<đ<<<Đ<<ð<<<Ð") +-- tailoring("&[before 1]h<ǧ<<<Ǧ<ǥ<<<Ǥ") +-- tailoring("&[before 1]l<ǩ<<<Ǩ") +-- tailoring("&[before 1]o<ŋ<<<Ŋ<<ń<<<Ń<<ñ<<<Ñ") +-- tailoring("&[before 1]t<š<<<Š") +-- tailoring("&[before 1]u<ŧ<<<Ŧ<<þ<<<Þ") +-- tailoring("&y<<ü<<<Ü<<ű<<<Ű") +-- tailoring("&[before 1]ǀ<ž<<<Ž<ø<<<Ø<<œ<<<Œ<æ<<<Æ<å<<<Å<<ȧ<<<Ȧ<ä<<<Ä<<ã<<<Ã<ö<<<Ö<<ő<<<Ő<<õ<<<Õ<<ô<<<Ô<<ǫ<<<Ǫ") +-- tailoring("&D<<đ<<<Đ<<ð<<<Ð") +-- tailoring("&th<<<þ") +-- tailoring("&TH<<<Þ") +-- tailoring("&Y<<ü<<<Ü<<ű<<<Ű") +-- tailoring("&ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<å<<<Å<<<aa<<<Aa<<<AA") +-- tailoring("&oe<<œ<<<Œ") + tailoring("&A<a<B<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<Æ<Ø<Å") + return collator_obj +end + +--ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ + +--[[ +Symbol Example Description +< a < b Identifies a primary (base letter) difference between "a" and "b" +<< a << ä Signifies a secondary (accent) difference between "a" and "ä" +<<< a<<<A Identifies a tertiary difference between "a" and "A" +<<<< か<<<<カ Identifies a quaternary difference between "か" and "カ". (New in ICU 53.) ICU permits up to three quaternary relations in a row (except for intervening "=" identity relations). += x = y Signifies no difference between "x" and "y". +& &Z Instructs ICU to reset at this letter. These rules will be relative to this letter from here on, but will not affect the position of Z itself. +]]
\ No newline at end of file diff --git a/indexing/xindex/lualatex/xindex-cfg.lua b/indexing/xindex/lualatex/xindex-cfg.lua index 7b23b7c905..67b0eea46f 100644 --- a/indexing/xindex/lualatex/xindex-cfg.lua +++ b/indexing/xindex/lualatex/xindex-cfg.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.23, + version = 0.24, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/lualatex/xindex-dtk.lua b/indexing/xindex/lualatex/xindex-dtk.lua index 6a32d5e863..b16af64028 100644 --- a/indexing/xindex/lualatex/xindex-dtk.lua +++ b/indexing/xindex/lualatex/xindex-dtk.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.23, + version = 0.24, comment = "DTK configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/lualatex/xindex-lapp.lua b/indexing/xindex/lualatex/xindex-lapp.lua index 94c22cb240..0d9a7ee2af 100644 --- a/indexing/xindex/lualatex/xindex-lapp.lua +++ b/indexing/xindex/lualatex/xindex-lapp.lua @@ -28,7 +28,7 @@ --~ n 2 -------------------------------- if not modules then modules = { } end modules ['xindex-lapp'] = { - version = 0.23, + version = 0.24, comment = "read parameter for xindex.lua", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/indexing/xindex/lualatex/xindex-lib.lua b/indexing/xindex/lualatex/xindex-lib.lua index 720d473d53..619baf992c 100644 --- a/indexing/xindex/lualatex/xindex-lib.lua +++ b/indexing/xindex/lualatex/xindex-lib.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-lib'] = { - version = 0.23, + version = 0.24, comment = "main library to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -618,12 +618,15 @@ function charCompare(a,b) -- compare only first char end function checkFF(p) + -- for hyperref: replace \hyperpage{1\,ff} -> \hyperpage{1\nohyperpage{\,ff}} if not p then return p end local P = tostring(p) if P:find("ff") then - return P:gsub('%a+','').."\\nohyperpage{"..page_folium[2].."}" + local str = P:gsub(page_folium[2],'').."\\nohyperpage{"..page_folium[2].."}" + return str elseif P:find("f") then - return P:gsub('%a+','').."\\nohyperpage{"..page_folium[1].."}" + local str = P:gsub(page_folium[1],'').."\\nohyperpage{"..page_folium[1].."}" + return str else return P end diff --git a/indexing/xindex/lualatex/xindex-norsk.lua b/indexing/xindex/lualatex/xindex-norsk.lua new file mode 100644 index 0000000000..1bd7b35031 --- /dev/null +++ b/indexing/xindex/lualatex/xindex-norsk.lua @@ -0,0 +1,256 @@ +----------------------------------------------------------------------- +-- FILE: xindex-norsk.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- MODIFIED: Sveinung Heggen (2020-01-02) +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-no'] = { + version = 0.24, + comment = "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 + +escape_chars = { -- by default " is the escape char + {'""', "\\escapedquote", '\"{}' }, + {'"@', "\\escapedat", "@" }, + {'"|', "\\escapedvert", "|" }, + {'"!', "\\escapedexcl", "!" }, + {'"(', "\\escapedparenleft", "(" }, + {'")', "\\escapedparenright", ")" } +} + +alphabet_lower = { -- for sorting + { ' ' }, -- only for internal tests + { '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', 'Ž' }, + { 'Æ', 'Œ', 'Ä' }, + { 'Ø', 'Ö' }, + { 'Å' } +} + +--ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ + +--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 Ž Æ Ä Ø Ö Å Aa +--1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 75 +--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 ž æ ä ø ö å aa +--2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 76 + +alphabet_sort = { +{"A"}, +{"a"}, +{"Á"}, +{"á"}, +{"B"}, +{"b"}, +{"C"}, +{"c"}, +{"Č"}, +{"č"}, +{"D"}, +{"d"}, +{"Ð"}, +{"đ"}, +{"E"}, +{"e"}, +{"F"}, +{"f"}, +{"G"}, +{"g"}, +{"H"}, +{"h"}, +{"I"}, +{"i"}, +{"J"}, +{"j"}, +{"K"}, +{"k"}, +{"L"}, +{"l"}, +{"M"}, +{"m"}, +{"N"}, +{"n"}, +{"Ŋ"}, +{"ŋ"}, +{"O", "Ö"}, +{"o", "ö"}, +{"P"}, +{"p"}, +{"Q"}, +{"q"}, +{"R"}, +{"r"}, +{"S"}, +{"s"}, +{"Š"}, +{"š"}, +{"T"}, +{"t"}, +{"Ŧ"}, +{"ŧ"}, +{"U"}, +{"u"}, +{"V"}, +{"v"}, +{"W"}, +{"w"}, +{"X"}, +{"x"}, +{"Y"}, +{"y"}, +{"Z"}, +{"z"}, +{"Ž"}, +{"ž"}, +{"Æ"}, +{"æ"}, +{"Ä"}, +{"ä"}, +{"Ø"}, +{"ø"}, +{"Ö"}, +{"ö"}, +{"Å", "Aa"}, +{"å", "aa"}, +{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} +} + +--function getCharType(c) +-- return 2 +--end + +function SORTendhook(list) + print ("We have "..#list.." total list entries") + local alpha = {} + local symbols = {} + local numbers = {} + local others = {} + local firstChar, charType + local firstCharNumber + local v + local latin = {} + print ("#alphabet_sort: "..#alphabet_sort) + for j=1,#alphabet_sort do + print ("Check: "..alphabet_sort[j][1].."["..#alphabet_sort[j].."]") + for i=1,#list do + v = list[i] + if #alphabet_sort[j] > 1 then + for k = 1,#alphabet_sort[j] do + if utf.sub(v["Entry"],1,1) == alphabet_sort[j][k] then + print (alphabet_sort[j],v["Entry"]) + latin[#latin+1] = v + end + end + else + if utf.sub(v["Entry"],1,1) == alphabet_sort[j][1] then + print (alphabet_sort[j][1],v["Entry"]) + latin[#latin+1] = v + end + end + end + end +--[[ + 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) + 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 + end + end + print ("We have "..#letter.." Latin entries") + print ("We have "..#symbols.." Symbol entries") + print ("We have "..#numbers.." Number entries") + print ("We have "..#others.." other entries") + + list = {} + for i = 1,#letter do list[#list+1] = letter[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 +]] + return latin +end + diff --git a/indexing/xindex/lualatex/xindex-pretty.lua b/indexing/xindex/lualatex/xindex-pretty.lua index b671ba004e..8408bbeba9 100644 --- a/indexing/xindex/lualatex/xindex-pretty.lua +++ b/indexing/xindex/lualatex/xindex-pretty.lua @@ -5,7 +5,7 @@ -- if not modules then modules = { } end modules ['xindex-pretty'] = { - version = 0.23, + version = 0.24, comment = "dump a Lua table for debugging", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/indexing/xindex/lualatex/xindex-yannis.lua b/indexing/xindex/lualatex/xindex-yannis.lua index 85bef308b9..87e762e180 100644 --- a/indexing/xindex/lualatex/xindex-yannis.lua +++ b/indexing/xindex/lualatex/xindex-yannis.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-yannis'] = { - version = 0.23, + version = 0.24, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/scripts/xindex.lua b/indexing/xindex/scripts/xindex.lua index 2f4654ec13..d6d53ff0e3 100755 --- a/indexing/xindex/scripts/xindex.lua +++ b/indexing/xindex/scripts/xindex.lua @@ -8,7 +8,7 @@ ----------------------------------------------------------------------- xindex = xindex or { } - local version = 0.23 + local version = 0.24 xindex.version = version --xindex.self = "xindex" @@ -175,7 +175,7 @@ escape_chars = { -- by default " is the escape char {esc_char..')', '//escapedparenright//',')' } } -local language = "en" -- default language +language = "en" -- default language language = string.lower(args["language"]):sub(1, 2) writeLog(2,"Language = "..language.."\n",1) |