summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/esindex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-10-12 03:00:57 +0000
committerNorbert Preining <norbert@preining.info>2019-10-12 03:00:57 +0000
commit2e4672ed6f7b49c9d1c44b6ca850cfe7024fc639 (patch)
tree8cc5672ceb359cb652306244d63afc5f7d939008 /macros/latex/contrib/esindex
parentd51deaad31c304a71b51411feaf44acceb8aeb1b (diff)
CTAN sync 201910120300
Diffstat (limited to 'macros/latex/contrib/esindex')
-rw-r--r--macros/latex/contrib/esindex/README.md5
-rw-r--r--macros/latex/contrib/esindex/esindex.pdfbin61713 -> 62539 bytes
-rw-r--r--macros/latex/contrib/esindex/esindex.sty57
-rw-r--r--macros/latex/contrib/esindex/esindex.tex21
4 files changed, 72 insertions, 11 deletions
diff --git a/macros/latex/contrib/esindex/README.md b/macros/latex/contrib/esindex/README.md
index a2b357cd57..6ebd7e4c79 100644
--- a/macros/latex/contrib/esindex/README.md
+++ b/macros/latex/contrib/esindex/README.md
@@ -18,6 +18,11 @@ in the document.
### Recent changes
```
+1.7 2019-10-10
+ - Fix - because of a change in a macro name, it stopped
+ working with xe/lua
+ - Multi-level comparisons (up to 3), to better sort the items.
+
1.6 2019-09-30
- Package option 'babel', which wraps each entry not in the main
language with \foreignlanguage (or other macro).
diff --git a/macros/latex/contrib/esindex/esindex.pdf b/macros/latex/contrib/esindex/esindex.pdf
index d1e0de5e5f..bc78b36c15 100644
--- a/macros/latex/contrib/esindex/esindex.pdf
+++ b/macros/latex/contrib/esindex/esindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/esindex/esindex.sty b/macros/latex/contrib/esindex/esindex.sty
index 4594874db4..a63bdba6eb 100644
--- a/macros/latex/contrib/esindex/esindex.sty
+++ b/macros/latex/contrib/esindex/esindex.sty
@@ -7,7 +7,7 @@
% Repository: https://github.com/jbezos/esindex
%
-\ProvidesPackage{esindex}[2019/09/30 v1.6 Spanish indexes (and more)]
+\ProvidesPackage{esindex}[2019/10/10 v1.7 Spanish indexes (and more)]
\def\esx@level{`\!}
\def\esx@actual{`\@}
@@ -68,6 +68,8 @@
\catcode`\"=13
\catcode`\~=13
+\catcode`\^^A=12
+
\gdef\esindex#1#{\esx@index{#1}}
\lowercase{
@@ -90,7 +92,21 @@
\gdef\esx@bar@eat#1|{\def\esx@a{|#1}}
}
-\gdef\esindexexpandkey{\protected@edef\esindexkey{\esindexkey}}
+\gdef\esindexexpandkey{%
+ \protected@edef\esindexkey{\esindexkey}}
+\gdef\esindexexpandsubkey{%
+ \ifx\esindexsubkey\relax\else
+ \protected@edef\esindexsubkey{\esindexsubkey}%
+ \fi}
+\gdef\esindexexpandsubsubkey{%
+ \ifx\esindexsubsubkey\relax\else
+ \protected@edef\esindexsubsubkey{\esindexsubsubkey}%
+ \fi}
+
+\gdef\esindexexpandkeys{%
+ \esindexexpandkey
+ \esindexexpandsubkey
+ \esindexexpandsubsubkey}
% The following is called for every ! level, much like a loop. #1 is
% the current level.
@@ -111,8 +127,16 @@
% Execute \everyesindex and apply accents, so that \'a becomes a, and
% redefinitions in \everyesindex are also "applied"
\the\everyesindex
- \esindexexpandkey
+ \esindexexpandkeys
\esx@spanishreplacements
+ \protected@edef\esindexkey{%
+ \esindexkey
+ \ifx\esindexsubkey\relax\else
+ ^^A\esindexsubkey
+ \fi
+ \ifx\esindexsubsubkey\relax\else
+ ^^A\esindexsubsubkey
+ \fi}%
\@temptokena\expandafter{\esindexkey}%
% Key now in \@temptokena
% Particles, with \ignorewords. \esx@remwords works on \@temptokena
@@ -235,11 +259,28 @@
\expandafter\esx@replace@aux#1#2\esx@nil#2%
\edef#1{\the\toks@}}
-\def\esindexreplace#1#2{\esx@replace\esindexkey{#1}{#2}}
+\let\esindexsubkey\relax
+\let\esindexsubsubkey\relax
+
+\newcommand\esindexreplace[2]{%
+ \esx@replace\esindexkey{#1}{#2}}
+\newcommand\esindexreplacesub[3]{%
+ \ifx\esindexsubkey\relax
+ \let\esindexsubkey\esindexkey
+ \fi
+ \esindexreplace{#1}{#2}%
+ \esx@replace\esindexsubkey{#1}{#3}}
+\newcommand\esindexreplacesubsub[4]{%
+ \ifx\esindexsubsubkey\relax
+ \let\esindexsubsubkey\esindexkey
+ \fi
+ \esindexreplacesub{#1}{#2}{#3}%
+ \esx@replace\esindexsubsubkey{#1}{#4}}
%-------------------------
\let\esx@spanishreplacements\relax
+\let\esx@@spanishreplacements\relax
\ifesx@spanish
@@ -280,14 +321,14 @@
\ifx\XeTeXinterchartoks\@undefined
\catcode`\^^ff=12
\xdef\esindexlastchar{^^ff}
- \else
+ \else % Hats in xetex seem buggy. Limit to 4.
\catcode`\^^^^ffff=12
\xdef\esindexlastchar{^^^^ffff}
\global\let\esx@spanishreplacements\esx@@spanishreplacements
\fi
- \else
- \catcode`\^^^^ffff=12
- \xdef\esindexlastchar{^^^^ffff}
+ \else
+ \catcode`\^^^^^^10ffff=12
+ \xdef\esindexlastchar{^^^^^^10ffff}
\global\let\esx@spanishreplacements\esx@@spanishreplacements
\fi
\endgroup
diff --git a/macros/latex/contrib/esindex/esindex.tex b/macros/latex/contrib/esindex/esindex.tex
index a654b2aa8d..03d0b24386 100644
--- a/macros/latex/contrib/esindex/esindex.tex
+++ b/macros/latex/contrib/esindex/esindex.tex
@@ -14,7 +14,7 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\title{\textsf{esindex}\\\large 1.6\quad 2019-09-30}
+\title{\textsf{esindex}\\\large 1.7\quad 2019-10-10}
\author{Javier Bezos}
@@ -46,7 +46,8 @@
{\LARGE Generating automatically sort keys for \textit{MakeIndex}
with \LaTeX\par}
\vspace*{1ex}
-Version 1.6 (2019-09-30)\par
+Version 1.7 (2019-10-10)\par
+\texttt{https://github.com/jbezos/esindex}\par
Javier Bezos (\texttt{http://www.texnia.com})
\vspace*{6ex}
@@ -86,6 +87,19 @@ Version 1.6 adds a package option -- with \verb|babel| the `actual' value
macro is \verb|\esindexlanguage|, which by default is `let' to the
\textsf{babel} macro.
+Version 1.7 (besides fixing a bug with xe/lua) adds multilevel
+comparisons (up to three levels, ie, primary, secondary and tertiary).
+For example:
+\begin{verbatim}
+\esindexreplacesub{å}{a}{2}%
+\esindexreplacesub{à}{a}{1}%
+\end{verbatim}
+creates a two-level key sorting \verb|à| before \verb|å|. For a
+three-level key use \verb|\esindexreplacesubsub| (with 4 arguments). With
+\verb|\esindexexpandkeys| the three levels are expanded. (Internally,
+with the definitions above the key for \verb|ràpid| is
+\verb|rapid^^Ar1pid|.)
+
\section{Spanish}
Este paquete ha sido diseñado para facilitar la escritura de índices
@@ -282,7 +296,8 @@ made language dependent with the appropriate test (eg, with
\textsf{iflang}).
As a convenience tool, \verb|\esindexlastchar| is \verb|^^ff| or
-\verb|^^^^ffff|, depending on the engine.
+\verb|^^^^ffff| (\verb|^^^^^^10ffff| in \textsf{luatex}), depending on
+the engine.
You can play with \textsf{lua} inside \verb|\everyesindex|, too. For
example, to convert at once things like \textit{2,3-dimetilfenol} to