diff options
author | Norbert Preining <norbert@preining.info> | 2022-02-14 03:01:43 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-02-14 03:01:43 +0000 |
commit | 01b69c78ff33854f7f28149e8167cb4219fcb416 (patch) | |
tree | 84f65fb4b68924dee319c869e951cc3dfa32f89f /indexing/xindex/lualatex/xindex-lib.lua | |
parent | a488c0e94aba29c7f7062852569792d58efda8dc (diff) |
CTAN sync 202202140301
Diffstat (limited to 'indexing/xindex/lualatex/xindex-lib.lua')
-rw-r--r-- | indexing/xindex/lualatex/xindex-lib.lua | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/indexing/xindex/lualatex/xindex-lib.lua b/indexing/xindex/lualatex/xindex-lib.lua index dedf476ac2..61c4f90d9d 100644 --- a/indexing/xindex/lualatex/xindex-lib.lua +++ b/indexing/xindex/lualatex/xindex-lib.lua @@ -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 @@ function compressEntryList(EntryList) end end -- last data line - newList[#newList]["pages"] = deletePageDups(newList[#newList]["pages"]) -- require 'xindex-pretty'.dump(newList) -- only for internal dump + newList[#newList]["pages"] = deletePageDups(newList[#newList]["pages"]) return newList end @@ -354,14 +354,14 @@ end 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 @@ function compressPageList(pages) -- called with (v["pages"]) 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 @@ function GenerateSortKey(a) 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 @@ end 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) |