diff options
Diffstat (limited to 'indexing/xindex/lualatex/xindex-norsk.lua')
-rw-r--r-- | indexing/xindex/lualatex/xindex-norsk.lua | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/indexing/xindex/lualatex/xindex-norsk.lua b/indexing/xindex/lualatex/xindex-norsk.lua deleted file mode 100644 index 7473b42ed6..0000000000 --- a/indexing/xindex/lualatex/xindex-norsk.lua +++ /dev/null @@ -1,155 +0,0 @@ ------------------------------------------------------------------------ --- 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-norsk'] = { - version = 0.22, - comment = "configuration to xindex.lua", - author = "Herbert Voss", - copyright = "Herbert Voss", - license = "LPPL 1.3" -} - -local ducet = require "lua-uca.lua-uca-ducet" -local collator = require "lua-uca.lua-uca-collator" -local languages = require "lua-uca.lua-uca-languages" -local collator_obj = collator.new(ducet) - -local language = "en" -- default language --- language name specified on the command line doesn't seem to be available --- in the config file, so we just try to find it ourselves -for i, a in ipairs(arg) do - if a == "-l" or a=="--language" then - language = arg[i+1] - break - end -end - -if languages[language] then - print("[Lua-UCA] Loading language: " .. language) - collator_obj = languages[language](collator_obj) -end - -local upper = unicode.utf8.upper - -escape_chars = { -- by default " is the escape char - {'""', "\\escapedquote", '\"{}' }, - {'"@', "\\escapedat", "@" }, - {'"|', "\\escapedvert", "|" }, - {'"!', "\\escapedexcl", "!" }, - {'"(', "\\escapedparenleft", "(" }, - {'")', "\\escapedparenright", ")" } -} - -itemPageDelimiter = "," -- Hello, 14 -compressPages = true -- something like 12--15, instead of 12,13,14,15. the |( ... |) syntax is still valid -fCompress = true -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 -minCompress = 3 -- 14--17 or -numericPage = true -- for non-numerical page numbers, like "VI-17" -sublabels = {"", "---\\,", "--\\,", "-\\,"} -- for the (sub(sub(sub-items first one is for item -pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -indexOpening = "" -- commands after \begin{theindex} -rangeSymbol = "--" -idxnewletter = "\\textbf" -- Only valid if -n is not set - -folium = { - de = {"f.", "ff."}, - en = {"f.", "ff."}, - fr = {"\\,sq","\\,sqq"}, - no = {"\\,f.","\\,ff."}, - cs = {"f.", "ff."}, -} - -indexheader = { - de = {"Symbole", "Zahlen"}, - en = {"Symbols", "Numbers"}, - fr = {"Symboles","Chiffre"}, - jp = {"シンボル","番号"}, - cs = {"Symboly", "Čísla"} -} - - --- get Unicode category of the codepoint, if supported -function getCategory(codepoints) - local codepoint = codepoints[1] - local category = get_category(codepoint) - if category == "Nd" then - return "digits" - elseif category:match("^L") then - local block = binary_range_search(codepoint, unicode_blocks) or {} - return block[3] or "other" - end - return "other" -end - --- insert the index entry to the categories subtable -function categorize(codepoints, entry, categories) - local subcategories = categories.categories - -- return category name from the Unicode block of the first character - local category = getCategory(codepoints) - -- if the categories doesn't use this code block, categorize it as other - local used = subcategories[category] and category or "other" - table.insert(subcategories[used], entry) -end - --- convert categories back to index list -function uncategorize(ordering_categories) - local newlist = {} - -- make new index order based on defined categories - for _, category in ipairs(ordering_categories.order) do - for _,entry in ipairs(ordering_categories.categories[category]) do - newlist[#newlist+1] = entry - end - end - return newlist -end - - -function UTFCompare(a,b) - local A = a["SortKey"] - local B = b["SortKey"] - return collator_obj:compare_strings(A,B) -end - -function getSortChar(codepoints) - if #codepoints > 0 then - local codes, pos = collator_obj:get_lowest_char(codepoints, 1) - if not codes then - -- if the first character in the sort key doesn't return letter - -- continue until we find some - table.remove(codepoints, 1) - return getSortChar(codepoints) - end - local sort_char = utf8.char(table.unpack(codes)) - -- print unicode category of the first char - return upper(sort_char) -- use unicode.utf8.upper to make the char uppercase - end -end - -function SORTendhook(list) - -- get the headers for letter groups - for i=1, #list do - v = list[i] - -- the collator:get_lowest_char will return character on the given - -- position. It will be lowercase and without accents. - local codepoints = collator_obj:string_to_codepoints(NormalizedUpper(v.SortKey)) - v.sortChar = getSortChar(codepoints) --or getSortChar(collator_obj:string_to_codepoints(NormalizedUpper(v.Entry))) - if not v.sortChar then - -- alternativelly use v.Entry if SortKey doesn't contain usable string - codepoints = collator_obj:string_to_codepoints(NormalizedUpper(v.Entry)) - v.sortChar = getSortChar(codepoints) - end - end - return list -end - --- We use Lua-UCA methods for sorting and determining first characters, so --- alphabet list is obsolete - -alphabet_lower = { } -alphabet_upper = { } |