summaryrefslogtreecommitdiff
path: root/indexing
diff options
context:
space:
mode:
Diffstat (limited to 'indexing')
-rw-r--r--indexing/xindex/CHANGELOG1
-rw-r--r--indexing/xindex/doc/xindex-doc.pdfbin393329 -> 393277 bytes
-rw-r--r--indexing/xindex/doc/xindex-doc.tex6
-rw-r--r--indexing/xindex/lualatex/xindex-DIN2.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-HAdW-eKO.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-base.lua5
-rw-r--r--indexing/xindex/lualatex/xindex-cfg-common.lua3
-rw-r--r--indexing/xindex/lualatex/xindex-cfg-uca.lua36
-rw-r--r--indexing/xindex/lualatex/xindex-cfg.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-dtk.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-lapp.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-lib.lua9
-rw-r--r--indexing/xindex/lualatex/xindex-norsk.lua256
-rw-r--r--indexing/xindex/lualatex/xindex-pretty.lua2
-rw-r--r--indexing/xindex/lualatex/xindex-yannis.lua2
-rwxr-xr-xindexing/xindex/scripts/xindex.lua4
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
index ccd6f2d307..2dbaf8c1f7 100644
--- a/indexing/xindex/doc/xindex-doc.pdf
+++ b/indexing/xindex/doc/xindex-doc.pdf
Binary files differ
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)