summaryrefslogtreecommitdiff
path: root/indexing/xindex/lualatex/xindex-lib.lua
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-14 03:01:43 +0000
committerNorbert Preining <norbert@preining.info>2022-02-14 03:01:43 +0000
commit01b69c78ff33854f7f28149e8167cb4219fcb416 (patch)
tree84f65fb4b68924dee319c869e951cc3dfa32f89f /indexing/xindex/lualatex/xindex-lib.lua
parenta488c0e94aba29c7f7062852569792d58efda8dc (diff)
CTAN sync 202202140301
Diffstat (limited to 'indexing/xindex/lualatex/xindex-lib.lua')
-rw-r--r--indexing/xindex/lualatex/xindex-lib.lua32
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)