diff options
Diffstat (limited to 'Master/texmf-dist/tex/lualatex')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua (renamed from Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua) | 87 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua | 49 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua (renamed from Master/texmf-dist/tex/lualatex/xindex/unicode-category.lua) | 0 |
10 files changed, 102 insertions, 50 deletions
diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua index 58c33a5e2b8..65675eab94c 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.05, + version = 0.06, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua index a45bd744332..5c828936189 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua @@ -1,5 +1,5 @@ ----------------------------------------------------------------------- --- FILE: xindex-HAdW.lua +-- FILE: xindex-HAdW-eco.lua -- DESCRIPTION: configuration file for xindex.lua -- REQUIREMENTS: -- AUTHOR: Herbert Voß @@ -9,7 +9,7 @@ -- configuration for index files of the Heidelberger Akademie der Wissenschaften if not modules then modules = { } end modules ['xindex-HAdW'] = { - version = 0.05, + version = 0.06, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -98,8 +98,11 @@ alphabet_upper = { -- for sorting --\indexentry{Bremen!Adalbert I. von, Erzbischof}{VII/1-50} function specialCompressPageList(pages) - if (#pages <= 1) or (pages[1]["number"] == "") then - pages[1]["number"] = pages[1]["number"]:gsub('-',' ') +--print(#pages..".. number:|"..pages[1]["number"].."| Special:"..pages[1]["special"]) + if (pages[1]["number"] == "") then pages[1]["number"] = " " end + if (#pages <= 1) then + pages[1]["number"] = pages[1]["number"]:gsub('(.-)-',colorBox)-- replace "-" with ":\\ " +-- pages[1]["number"] = pages[1]["number"]:gsub('-',':~')-- replace "-" with ":\\ " return pages end -- only one pageno --[[ @@ -114,17 +117,22 @@ sortPages = {{ origin = { number=VII/1-715, special="" }, local volume local page local i +--print("----------------------------------------") for i=1,#pages do - roman = string.gsub(pages[i]["number"],'%U*','') -- only uppercase to catch VII123f (folium pages) - roman = string.format("%03d",tonumber(romanToNumber(roman))) - volume = string.gsub(pages[i]["number"],'%a*','') - if volume then volume = volume:gsub('-%d*','') end - page = string.gsub(pages[i]["number"],'.*-','') - page = string.format("%5s",page) ---print(roman..volume.." "..page) - sortPages[#sortPages+1] = { - origin = pages[i], - sort = roman..volume.." "..page } -- no minus between Roman/Volume and first page + roman = string.gsub(pages[i]["number"],'%U*','') -- only uppercase to catch VII123f (folium pages) + if romanToNumber(roman) then + roman = string.format("%05d",tonumber(romanToNumber(roman))) + else + roman = "" + end + volume = string.gsub(pages[i]["number"],'%a*','') + if volume then volume = volume:gsub('-%d*','') end + page = string.gsub(pages[i]["number"],'.*-','') + page = string.format("%5s",page) + sortPages[#sortPages+1] = { + origin = pages[i], + sort = roman..volume.." "..page } -- no minus between Roman/Volume and first page +--print(roman..volume.." "..page.." Special:"..pages[i]["special"]) end -- sort the page list table.sort(sortPages, function(a,b) return a["sort"] < b["sort"] end ) @@ -137,21 +145,25 @@ sortPages = {{ origin = { number=VII/1-715, special="" }, if #Pages == 2 then -- only two pages local page1 = string.gsub(Pages[1]["number"],'%A*','') -- get prefix1 local page2 = string.gsub(Pages[2]["number"],'%A*','') -- ger prefix2 - if page1 == page2 then -- same prefix + if (page1 == page2) then -- same prefix page1 = string.gsub(Pages[1]["number"],'.*-','') -- get page1 page2 = string.gsub(Pages[2]["number"],'.*-','') -- get page2 + if ((type(tonumber(page1)) ~= "number") or (type(tonumber(page2)) ~= "number")) then return Pages end -- one is not numeric if (page2-page1) == 1 then -- pagediff = 1 Pages[1]["number"] = Pages[1]["number"].."f" Pages[2] = nil -- remove second page return Pages else -- page difference > 1 - pages[1]["number"] = pages[1]["number"]:gsub('-',' ') +-- Pages[1]["number"] = pages[1]["number"]:gsub('-',':~') --'(.-)-',colorBox + Pages[1]["number"] = pages[1]["number"]:gsub('(.-)-',colorBox) Pages[2]["number"] = string.gsub(Pages[2]["number"],'.*-','') -- use only number -> same prefix return Pages -- Pages[1] is the same end else - pages[1]["number"] = pages[1]["number"]:gsub('-',' ') - pages[2]["number"] = pages[2]["number"]:gsub('-',' ') +-- Pages[1]["number"] = pages[1]["number"]:gsub('-',':~') +-- Pages[2]["number"] = pages[2]["number"]:gsub('-',':~') + Pages[1]["number"] = pages[1]["number"]:gsub('(.-)-',colorBox) + Pages[2]["number"] = pages[2]["number"]:gsub('(.-)-',colorBox) return Pages -- different prefix -> simple return of the two pages end else -- more than two pages @@ -178,8 +190,17 @@ sortPages = {{ origin = { number=VII/1-715, special="" }, i = i +1 end sortPages = compressPageList(subPageList) - -- no minus between Roman/Volume and first page - pages[#pages+1] = { number = lastPrefix.." "..sortPages[1]["number"], special = sortPages[1]["special"] } + -- instead of minus between Roman/Volume and first page insert colon + if (stripLeadingSpaces(sortPages[1]["number"]) == "") then +-- colon = "" + sortPages[1]["number"] = "" + pages[#pages+1] = { number = lastPrefix..sortPages[1]["number"], special = sortPages[1]["special"] } + else +-- colon = ':~' + pages[#pages+1] = { number = colorBox(lastPrefix)..sortPages[1]["number"], special = sortPages[1]["special"] } + end +-- pages[#pages+1] = { number = lastPrefix..colon..sortPages[1]["number"], special = sortPages[1]["special"] } + pages[#pages+1] = { number = colorBox(lastPrefix)..sortPages[1]["number"], special = sortPages[1]["special"] } for i=2,#sortPages do pages[#pages+1] = sortPages[i] end @@ -190,7 +211,7 @@ end function replaceRoman(r) local i = romanToNumber(r) - if i then return "//"..string.format("%03d",i).."//" + if i then return "//"..string.format("%05d",i).."//" else return r end end @@ -202,16 +223,18 @@ function SORTprehook(data) -- replace roman with algebraic, eg Karl IX -> Karl for i=1,#data do entry = data[i]["Entry"] elements = entry:split() - local number = romanToNumber(elements[#elements]) - if number then - local strNr = string.format("%03d",tostring(number)) - elements[#elements] = "//"..strNr.."//" - entry = "" - for j=1,#elements do entry=entry.." "..elements[j] end - else - entry:gsub("!(.-)%p",replaceRoman) + if (#elements > 1) then -- at least one space (two elements) + local number = romanToNumber(elements[#elements]) + if number then + local strNr = string.format("%03d",tostring(number)) + elements[#elements] = "//"..strNr.."//" + entry = "" + for j=1,#elements do entry=entry.." "..elements[j] end -- has leading space + else + entry:gsub("!(.-)%p",replaceRoman) + end + data[i]["Entry"] = entry:gsub("^%s*(.-)%s*$", "%1") -- strip leading space end - data[i]["Entry"] = entry end return data end @@ -228,4 +251,8 @@ function SORTposthook(data) -- the other way round as prehook return data end +function colorBox(str) + return ("\\colorbox{black!15}{"..str.."}:~") +end + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua index e8ba4a4b827..78a2422bb43 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua @@ -6,7 +6,7 @@ -- LICENSE: LPPL1.3 ----------------------------------------------------------------------- -local info = { version = 0.05} +local info = { version = 0.06} -- check config if pageNoPrefixDel ~= "" then @@ -63,7 +63,7 @@ k = 0 table.sort(Index,UTFCompare) if SORTposthook then Index = SORTposthook(Index) end -writeLog(1,"------------------ Start list after table.sort(Index,UTFCompare)------------\n",2) +writeLog(1,"\n------------------ Start list after table.sort(Index,UTFCompare)------------\n",2) printList(Index,2) writeLog(1,require 'xindex-pretty'.dump(Index),3) -- only for internal dump writeLog(1,"\n------------------ end list after table.sort(Index,UTFCompare)------------\n",2) 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 8237dd5022e..f988e865169 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-common'] = { - version = 0.05, + version = 0.06, comment = "configuration to xindex.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 f4d726bd039..1db9fc37b4e 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.05, + version = 0.06, 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 0104f37cece..e6b68f23fe2 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.05, + version = 0.06, 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 d0e01e634e6..d640662dd53 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua @@ -28,7 +28,7 @@ --~ n 2 -------------------------------- if not modules then modules = { } end modules ['xindex-lapp'] = { - version = 0.05, + version = 0.06, 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 f570771776d..8390c9f118b 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-lib'] = { - version = 0.05, + version = 0.06, comment = "main library to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -330,7 +330,7 @@ end function compressPageList(pages) -- called with (v["pages"]) - writeLog(1,"compressPageList: we have "..#pages.." pages for this entry",2) + 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 local str @@ -364,7 +364,7 @@ function compressPageList(pages) -- called with (v["pages"]) series = {pages[2]} startIndex = 3 end -if args_v then print ("compressPageList: more than two pages for the entry") 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 @@ -380,7 +380,7 @@ if args_v then print ("compressPageList: more than two pages for the entry") e else -- series < minCompress if fCompress then if #series == 2 then -- two pages -> 3f - writeLog(1,"compressPageList: Two consecutive pages for this entry",2) + writeLog(1,"compressPageList: Two consecutive pages for this entry\n",2) if series[1]["special"] == series[2]["special"] then newPages[#newPages+1] = { number = series[1]["number"]..page_folium[1], special = series[1]["special"] } else @@ -435,7 +435,7 @@ end -- 1 digit -- 0 symbol -UTFdatafile = kpse.find_file("unicode-category.lua") +UTFdatafile = kpse.find_file("xindex-unicode.lua") local category_data = dofile(UTFdatafile) local floor = math.floor @@ -491,9 +491,9 @@ end function UTFCompare(a,b) -- a, b are something like \indexentry{foo}{bar} - writeLog(1,"UTFCompare: "..a["Entry"]..", "..a["pages"][1]["number"].." - "..b["Entry"]..", "..b["pages"][1]["number"],2) - k = k + 1 - if (k % 50) == 0 then writeLog(1,".",1) end +-- writeLog(1,"UTFCompare: "..a["Entry"]..", "..a["pages"][1]["number"].." - "..b["Entry"]..", "..b["pages"][1]["number"].."\n",2) +-- k = k + 1 +-- if (k % 50) == 0 then writeLog(1,".",1) end local A,B,Apage,Bpage if numericPage then if tonumber(a["pages"][1]["number"]) then @@ -510,8 +510,9 @@ function UTFCompare(a,b) Apage = string.format("%09s",a["pages"][1]["number"]) Bpage = string.format("%09s",b["pages"][1]["number"]) end - A = NormalizedUpper(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!',' ')) - B = NormalizedUpper(getSortString(b["Entry"].." "..Bpage..b["pages"][1]["special"]):gsub('!',' ')) + A = NormalizedUpper(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!','')) -- replace! by empty + B = NormalizedUpper(getSortString(b["Entry"].." "..Bpage..b["pages"][1]["special"]):gsub('!','')) + writeLog(1,"UTFCompare: A--B "..A.."--"..B.."\n",2) -- print(A,B) --[[ if A == B then -- same entry, use also page number @@ -807,7 +808,8 @@ function itemOutput(last, v, hyperpage) str = str:gsub(str0[2],str0[3]) end outFile:write(str) --- lastItems[1] = Entry + lastItems = {} + lastItems[1] = Entry else for i = 1,excl+1 do currentItems[i] = getItem(Entry,i-1) -- 0 ! 1 ! 2 ! ... @@ -905,4 +907,27 @@ end \indexentry {Schrift!Breite}{64} \indexentry {Schrift!Tiefe}{64} -]]
\ No newline at end of file +]] + +function shellsort(a) + local inc = math.ceil( #a / 2 ) + while inc > 0 do + for i = inc, #a do + local tmp = a[i] + local j = i + while j > inc and not UTFCompare(a[j-inc],tmp) do + a[j] = a[j-inc] + j = j - inc + end + a[j] = tmp + end + inc = math.floor( 0.5 + inc / 2.2 ) + end + return a +end + +function stripLeadingSpaces(str) + return str:gsub("^%s*(.-)%s*$", "%1") +end + + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua index 290c30d1c96..38b1dccc479 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua @@ -5,7 +5,7 @@ -- if not modules then modules = { } end modules ['xindex-pretty'] = { - version = 0.05, + version = 0.06, comment = "dump a Lua table for debugging", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/Master/texmf-dist/tex/lualatex/xindex/unicode-category.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua index d3f6c5b84a9..d3f6c5b84a9 100644 --- a/Master/texmf-dist/tex/lualatex/xindex/unicode-category.lua +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-unicode.lua |