diff options
author | Karl Berry <karl@freefriends.org> | 2018-12-03 22:49:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-12-03 22:49:28 +0000 |
commit | 510cc1b8395f714ec6c1b7299cf73371563b1a16 (patch) | |
tree | ef1d3f055e87db8e906501a88ca550b861ac22e2 /Master | |
parent | f855360800d3dd036378f102ca41cf5fa3e87db1 (diff) |
xindex (2dec18)
git-svn-id: svn://tug.org/texlive/trunk@49312 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
85 files changed, 10439 insertions, 2 deletions
diff --git a/Master/bin/aarch64-linux/xindex b/Master/bin/aarch64-linux/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/aarch64-linux/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/xindex b/Master/bin/amd64-freebsd/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/amd64-netbsd/xindex b/Master/bin/amd64-netbsd/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/amd64-netbsd/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/armhf-linux/xindex b/Master/bin/armhf-linux/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/armhf-linux/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/xindex b/Master/bin/i386-cygwin/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/i386-cygwin/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/xindex b/Master/bin/i386-freebsd/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/i386-freebsd/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/i386-linux/xindex b/Master/bin/i386-linux/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/i386-linux/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/i386-netbsd/xindex b/Master/bin/i386-netbsd/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/i386-netbsd/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/i386-solaris/xindex b/Master/bin/i386-solaris/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/i386-solaris/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/xindex b/Master/bin/sparc-solaris/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/sparc-solaris/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/win32/xindex.exe b/Master/bin/win32/xindex.exe Binary files differnew file mode 100755 index 00000000000..5777d90a17a --- /dev/null +++ b/Master/bin/win32/xindex.exe diff --git a/Master/bin/x86_64-cygwin/xindex b/Master/bin/x86_64-cygwin/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-cygwin/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-darwin/xindex b/Master/bin/x86_64-darwin/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-darwin/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-darwinlegacy/xindex b/Master/bin/x86_64-darwinlegacy/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-darwinlegacy/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-linux/xindex b/Master/bin/x86_64-linux/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-linux/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-linuxmusl/xindex b/Master/bin/x86_64-linuxmusl/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-linuxmusl/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-solaris/xindex b/Master/bin/x86_64-solaris/xindex new file mode 120000 index 00000000000..5a0fe8f39f6 --- /dev/null +++ b/Master/bin/x86_64-solaris/xindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/xindex/xindex.lua
\ No newline at end of file diff --git a/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG b/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG new file mode 100644 index 00000000000..db865176ede --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/CHANGELOG @@ -0,0 +1,4 @@ +0.05 2018-12-01 - modified HAdW config +0.04 2018-10-29 - added an own pretty printer function for tables +0.03 2018-10-27 -fix for same pagenumber but different special +0.02 2018-10-27 -Updated documention diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-1.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-1.tex new file mode 100644 index 00000000000..b5e4c6a1d76 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-1.tex @@ -0,0 +1,25 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters} +\begin{itemize} +\item Exclamation mark ! \index{exclaim ("!)} +\item Vertical bar| \index{Vertical bar ("|)} +\item Doublequote \verb|"| \index{""} +\item Double doublequote \verb|""| \index{""""} +\item At character @ \index{At ("@)} +\end{itemize} +run \texttt{xindex <file.idx>}\index{<file.idx>}\index{123} +\newpage +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-10.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-10.tex new file mode 100644 index 00000000000..9a8074a05f8 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-10.tex @@ -0,0 +1,51 @@ +\RequirePackage{filecontents} +\begin{filecontents*}{\jobname.idx} +\indexentry{VoßHerbert@Herbert Voß!Wasgenstraße 121\protect \\10127 Berlin\protect \\\Email {herbert"@xyz.de}}{3} +\indexentry{SieversMartin@Martin Sievers!siehe Seite~\protect \pageref {president}}{4} +\indexentry{VoßHerbert@Herbert Voß!Wasgenstraße 121\protect \\10127 Berlin\protect \\\Email {herbert"@xyz.de}}{5} +\indexentry{ZiegenhagenUwe@Uwe Ziegenhagen!Lokostr. 19 \protect \\ 20713 Köln \protect \\\Email {ziegenhagen"@mail.com}}{9} +\indexentry{BehrendtDoris@Doris Behrendt!\Email {doris"@xyz.de}}{14} +\indexentry{JacekJonas Jared@Jonas Jared Jazek!\Email {mail"@jones.net}}{20} +\indexentry{KohmMarkus@Marcus Tohm!Freiherr-von-Stein-Straße~16\protect \\ 15525~Edingen-Neckarhausen\protect \\ \Email {komascript"@xyz.info}}{24} +\indexentry{KohmMarkus@Marcus Tohm!Freiherr-von-Stein-Straße~16\protect \\ 15525~Edingen-Neckarhausen\protect \\ \Email {komascript"@xyz.info}}{31} +\indexentry{SchubertElke@Elke Schubert!Hausstraße~15\protect \\ 36396~Stutense\protect \\ \Email {elke.schubert"@kabelxyz.de}}{40} +\indexentry{FennJürgen@Jürgen Fennt!Friedrichallee 74\protect \\13233 Neu-Isenburg\protect \\\Email {juergen.fennt"@gmxnet.de}}{48} +\end{filecontents*} +\documentclass{article} +\usepackage{url} +\DeclareUrlCommand\Email{% + \def\UrlLeft{}% + \def\UrlRight{}% + \def\UrlLinkPrefix{mailto:}% + \def\UrlType{email}% +} +\usepackage{multicol} +\makeatletter +\def\DTK@scan@item#1\subitem#2\relax#3\@nil{% + \def\DTK@tempa{#1}\def\DTK@tempb{#2}\def\DTK@tempc{#3}% +} +\def\theindex{% only for demonstration + \columnseprule=\z@ \columnsep=10\p@ + \begin{multicols}{2}[\noindent\textbf{\large Autorenliste}]% + \makeatletter + \def\indexspace{}% + \parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedright + \def\item##1\@nil{\DTK@scan@item##1\@nil + \par\parbox{\columnwidth}{% + \textbf{\DTK@tempa}\hfill[\DTK@tempc]\par\DTK@tempb + }% + \par\bigskip + }% +} +\def\endtheindex{\end{multicols}} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx} +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\mbox{}\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-11.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-11.tex new file mode 100644 index 00000000000..0a942999dc7 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-11.tex @@ -0,0 +1,24 @@ +\documentclass{article} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\makeatletter +\g@addto@macro{\theindex}{% + \pagestyle{empty}% + \def\subsubsubitem{\@idxitem\hspace*{35\p@}} + \def\subsubsubsubitem{\@idxitem\hspace*{40\p@}} +} +\makeatother +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\begin{document} +foo\index{foo} bar\index{foo!bar} +baz\index{foo!bar!baz} foobar% +\index{foo!bar!baz!foobar} Kuba +\index{foo!bar!baz!foobar!Kuba} +\newpage \printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-12.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-12.tex new file mode 100644 index 00000000000..79e7295af7c --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-12.tex @@ -0,0 +1,16 @@ +\documentclass{scrartcl} +\usepackage{libertinus-otf} +%StartVisiblePreamble +\usepackage{xindex} +\makeindex +%StopVisiblePreamble +\makeatletter +\let\ps@plain\ps@empty +\makeatother +\begin{document} +\index{foo}foo and +\writeidx{\item\protect\hrulefill} +\index{bar}bar +\index{gex}gex +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-13.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-13.tex new file mode 100644 index 00000000000..2628494f7cb --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-13.tex @@ -0,0 +1,22 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Ein foo\index{foo}\index{bar|(} + \newpage und \index{foo} +ein foo\index{foo|textit} \newpage +und foo\index{foo|textbf} \newpage +und foo\index{foo|fbox} +\index{bar|)} +\newpage +\verb|xindex -n <file>| +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-14.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-14.tex new file mode 100644 index 00000000000..dd4c5adb63d --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-14.tex @@ -0,0 +1,42 @@ +\documentclass{scrartcl} +\usepackage{libertinus-otf} +\makeatletter +\let\ps@plain\ps@empty +\makeatother +%StartVisiblePreamble +\usepackage[imakeidx]{xindex} +\makeindex[name=persons,title=Index of names, + columns=1,options=--noheadings] +\def\ThanhVN{Hàn Thê\protect\llap{% + \raise 0.5ex\hbox{\'{}}}} +%StopVisiblePreamble +\pagestyle{empty}\renewcommand\thepage{} +\begin{document} +foo\index[persons]{Niepraschk,~ Rolf} +foo\index[persons]{Lamport,~ Leslie} +foo\index[persons]{Knuth,~ Donald} +foo\index[persons]{Knuth,~ Donald} +\newpage +foo\index[persons]{Lamport,~ Leslie} +foo\index[persons]{Thành,~ \ThanhVN} +foo\index[persons]{Kew,~ Jonathan} +foo\index[persons]{Kohm,~ Markus} +foo\index[persons]{Preining,~ Norbert} +\newpage +foo\index[persons]{Schenk,~ Christian} +foo\index[persons]{Feuerstack,~ Thomas} +foo\index[persons]{Tobin,~ Geoffrey} +foo\index[persons]{Wilson,~ Peter} +\newpage +foo\index[persons]{Kohm,~ Markus} +foo\index[persons]{Theiling,~ Henrik} +foo\index[persons]{Pégourié-Gonnard,~ Manuel} +foo\index[persons]{Roux,~ Élie} +\newpage +foo\index[persons]{Mittelbach,~ Frank} +foo\index[persons]{Fairbairns,~ Robin} +foo\index[persons]{Lemberg,~ Werner} +foo\index[persons]{Volovich,~ Vladimir} + +\printindex[persons] +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-2.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-2.tex new file mode 100644 index 00000000000..8fd28b3df30 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-2.tex @@ -0,0 +1,24 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters with >} +\begin{itemize} +\item Exclamation mark ! \index{exclaim (>!)} +\item Vertical bar| \index{Vertical bar (>|)} +\item Doublequote \verb|"| \index{>"} +\item Double doublequote \verb|""| \index{>">"} +\item At character @ \index{At (>@)} +\end{itemize} +Run \texttt{xindex} with \texttt{xindex -e ">"}\index{<file.idx>}\index{123} +\newpage +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-3.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-3.tex new file mode 100644 index 00000000000..74b701b678c --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-3.tex @@ -0,0 +1,24 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters with >} +\begin{itemize} +\item Exclamation mark ! \index{exclaim (>!)} +\item Vertical bar| \index{Vertical bar (>|)} +\item Doublequote \verb|"| \index{>"} +\item Double doublequote \verb|""| \index{>">"} +\item At character @ \index{At (>@)} +\end{itemize} +Run \texttt{xindex} with \texttt{xindex -l de -e ">"}\index{123} +\newpage +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-4.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-4.tex new file mode 100644 index 00000000000..dcedfca9aaf --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-4.tex @@ -0,0 +1,36 @@ +\documentclass[paper=a5]{scrartcl} +\usepackage[ngerman]{babel} +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\newcommand\Index[1]{\index{#1}#1} +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \newpage + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l DE| + +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} +\Index{Oberin} \Index{Österreich} +\Index{Öresund} \Index{Ostern} +\Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} +\Index{ölen} \Index{Ödem} +\Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder} +\index{Oder|seealso{Fluss}} +\Index{Göbel} \Index{Goethe} +\Index{Göthe} \Index{Götz} +\Index{Goldmann} + +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-5.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-5.tex new file mode 100644 index 00000000000..5c87b0cf310 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-5.tex @@ -0,0 +1,37 @@ +\documentclass[paper=a5]{scrartcl} +\usepackage[ngerman]{babel} +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\newcommand\Index[1]{\index{#1}#1} +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \newpage + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +Sorted with +\verb|--config DIN2 -l DE| + +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} +\Index{Oberin} \Index{Österreich} +\Index{Öresund} \Index{Ostern} +\Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} +\Index{ölen} \Index{Ödem} +\Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder} +\index{Oder|seealso{Fluss}} +\Index{Göbel} \Index{Goethe} +\Index{Göthe} \Index{Götz} +\Index{Goldmann} + +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-6.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-6.tex new file mode 100644 index 00000000000..34567f4fb89 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-6.tex @@ -0,0 +1,32 @@ +\documentclass[a5paper]{article} +%StartVisiblePreamble +\usepackage{fontspec} +\setmainfont{SourceHanSans} +\usepackage[japanese]{babel} +\addto\captionsjapanese{% + \def\indexname{指数}} +\usepackage{hvindex}% for \Index +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +\Index{車} \Index{車道} +日本\index{日本|fbox} +\Index{病院} \Index{コンピュータ} +\Index{プリンタ} \Index{印刷} +\Index{スイミングプール} \Index{天王} +\Index{広島} \Index{ドイツ} +\Index{日本} \Index{ワープロ} +\Index{foo} und \Index{bar} +\Index{//} \Index{4711} +\newpage\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-7.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-7.tex new file mode 100644 index 00000000000..c6f8e09f708 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-7.tex @@ -0,0 +1,23 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l fr| + +foobar\index{foobar|(} +foo\index{foo}\index{bar}\index{baz}\newpage +foo\index{foo}\index{bar}\index{baz}\newpage +foo\index{bar}\index{baz}\newpage +foo\index{baz}\newpage +foo\index{foo}foobar\index{foobar|)} +\newpage +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-8.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-8.tex new file mode 100644 index 00000000000..74fbe92ccf5 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-8.tex @@ -0,0 +1,30 @@ +\documentclass[paper=a6]{scrartcl} +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\usepackage{hvindex}% for \Index +\usepackage[colorlinks]{hyperref} +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l DE| +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} \Index{Oberin} +\Index{Österreich} \index{Öresund|textbf} +\Index{Ostern} \Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} \Index{ölen} +\Index{Ödem} \Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder|textit} +\Index{Oder|seealso{Fluss}} \Index{Göbel} +\Index{Goethe} \Index{Göthe} \Index{Götz} +\newpage\Index{Goldmann} \Index{Goethe} +\newpage \printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-9.tex b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-9.tex new file mode 100644 index 00000000000..166123a767b --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Examples/xindex-9.tex @@ -0,0 +1,20 @@ +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Ein foo\index{foo} \newpage und \index{foo} +ein foo\index{foo|textit} \newpage +und foo\index{foo|textbf} \newpage +und foo\index{foo|fbox} + +\newpage +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/Makefile b/Master/texmf-dist/doc/lualatex/xindex/Makefile new file mode 100644 index 00000000000..8b199ac06f7 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/Makefile @@ -0,0 +1,52 @@ +# `Makefile' for `pst-grad.pdf', hv, 2008/08/11 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = xhfill + +MAIN = xindex-doc + +LATEX = lualatex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +#TDS = ~/PSTricks/PSTricks-TDS + +all : doc clean +# clean +doc: + $(LATEX) --shell-escape $(MAIN) +# if ! test -f $(MAIN).glo ; then touch $(MAIN).glo; fi + if ! test -f $(MAIN).idx ; then touch $(MAIN).idx; fi +# makeindex -s gglo.ist -t $(MAIN).glg -o $(MAIN).gls $(MAIN).glo + xindex $(MAIN).idx +# bibtex $(MAIN) + $(LATEX) --shell-escape $(MAIN) +# $(LATEX) --shell-escape $(MAIN) + +clean : + $(RM) *.dvi *.aux *.log *.xml xindex-?.tex xindex-??.tex *.ind *.idx *.toc *.out *.ilg + +veryclean : clean + $(RM) *.pdf + +arch : + zip $(ARCHNAME).zip $(ARCHFILES) + +tds: + cp -u Changes $(TDS)/doc/latex/$(PACKAGE)/ + cp -u README $(TDS)/doc/latex/$(PACKAGE)/ + cp -u $(MAIN).pdf $(TDS)/doc/latex/$(PACKAGE)/ +# + cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ + cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ +# + cp -u Changes $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ + cp -u Makefile $(TDS)/source/$(PACKAGE)/ + + +# EOF diff --git a/Master/texmf-dist/doc/lualatex/xindex/README.md b/Master/texmf-dist/doc/lualatex/xindex/README.md new file mode 100644 index 00000000000..a50ffb3ba3b --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/README.md @@ -0,0 +1,49 @@ +# xindex + +Unicode compatible index programm for LaTeX. It needs Lua 5.3 which +will be included in at least LuaTeX 1.09 + + +* xindex.lua -- main file +* xindex-cfg.lua -- config module +* xindex-cfg-common.lua -- main config module +* xindex-base.lua -- base file +* xindex-lib.lua -- functions module +* xindex-lapp.lua -- read parameter +* unicode-category.lua -- list of Unicode categories + +The syntax of `index` + + index [options] <inputfile>[.idx] + +possible options are (short,long): + + -q,--quiet + -h,--help + -v + -c,--config (default cfg) + -e,--escapechar (default ") + -n,--noheadings + -o,--output (default "") + -l,--language (default en) + <input> (string) + +Testfiles: + +demo.tex: run + + lualatex demo + ./xindex.lua demo.idx + lualatex demo + + +buch.tex: run + + ./xindex.lua buch.idx + lualatex buch + + +after installing the files into the TeXLive distro you +can run `xindex` instead of `./xindex.lua`. + +LICENSE: LPPL 1.3 diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.idx new file mode 100644 index 00000000000..bc1e2f4ed4b --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.idx @@ -0,0 +1,27 @@ +\indexentry{Aachen, Johannes von}{VII/1-215} +\indexentry{Aarones}{VII/2/1-1003} +\indexentry{Aarones}{VII/2/1-1012} +\indexentry{Abrahamson}{VII/2/1-864} +\indexentry{Abrahamson}{VII/2/1-991} +\indexentry{Abrahamson}{VII/2/1-1048} +\indexentry{Abrahamson}{VII/2/1-1067} +\indexentry{Abrahamson}{VII/2/1-1156} +\indexentry{Adamson}{VII/2/1-1223} +\indexentry{Adamson}{IX/1-1228} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-758} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-759} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-760} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-761} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-765} +\indexentry{Adrian!Hauster}{VII/1-514} +\indexentry{Adrian!Hauster}{XI/1-515} +\indexentry{Alting!Mensa}{VII/1-426} +\indexentry{Alting!Mensa}{VII/1-434} +\indexentry{Alting!Mensa}{VII/1-453} +\indexentry{Alting!Mensa}{VII/1-455} +\indexentry{Alting!Mensa}{VII/1-466} +\indexentry{Alting!Mensa}{VII/1-467} +\indexentry{Bremen!Heinz von, Erzbischof|see{Sachsen-Lauenburg}}{} +\indexentry{Osnabrück!Heinz von, Bischof|see{Sachsen-Lauenburg}}{} +\indexentry{Zwingl, Haldrich}{IX-479} +\indexentry{Zwingl, Haldrich}{IX-692}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.ind new file mode 100644 index 00000000000..06c3c2515a7 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.ind @@ -0,0 +1,38 @@ + +\begin{theindex} + +\indexspace +\textbf{A} +\nopagebreak[4] + \item Aachen, Johannes von, {VII/1 215} + \item Aarones, {VII/2/1 1003}, {1012} + \item Abrahamson, {VII/2/1 864}, {991}, {1048}, {1067}, {1156} + \item Adamson, {VII/2/1 1223}, {IX/1 1228} + \item Adrian + \subitem -\,Hauster, {VII/1 514}, {XI/1 515} + \item Alting + \subitem -\,Mensa, {VII/1 426}, {434}, {453}, {455}, {466f} + +\indexspace +\textbf{B} +\nopagebreak[4] + \item Bremen + \subitem -\,Heinz von, Erzbischof, \see{Sachsen-Lauenburg}{} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Osnabrück + \subitem -\,Heinz von, Bischof, \see{Sachsen-Lauenburg}{} + +\indexspace +\textbf{S} +\nopagebreak[4] + \item Schleswig-Holstein + \subitem -\,Rudolf von, Herzog, {VII/2/1 758--761}, {765} + +\indexspace +\textbf{Z} +\nopagebreak[4] + \item Zwingl, Haldrich, {IX 479}, {692} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.pdf Binary files differnew file mode 100644 index 00000000000..c569984fda9 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.tex new file mode 100644 index 00000000000..2c26732da25 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW.tex @@ -0,0 +1,19 @@ +\documentclass[paper=a4,parskip=half-,ngerman,DIV=13]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{makeidx} +\usepackage{dtk-logos} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + +\begin{document} +Run with \verb|xindex --config HAdW| + +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.idx new file mode 100644 index 00000000000..82bd8e365c0 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.idx @@ -0,0 +1,47 @@ +\indexentry{Aachen, Johannes von}{VII/1-215} +\indexentry{Aarones}{VII/2/1-1003} +\indexentry{Aarones}{VII/2/1-1012} +\indexentry{Abrahamson}{VII/2/1-864} +\indexentry{Abrahamson}{VII/2/1-991} +\indexentry{Abrahamson}{VII/2/1-1048} +\indexentry{Abrahamson}{VII/2/1-1067} +\indexentry{Abrahamson}{VII/2/1-1156} +\indexentry{Adamson}{VII/2/1-1223} +\indexentry{Adamson}{IX/1-1228} +\indexentry{Karl V}{VII/1-34} +\indexentry{Karl II}{VII/1-147} +\indexentry{Karl III}{VII/1-149} +\indexentry{Karl VI}{VII/1-296} +\indexentry{Karl IV}{VII/1-34} +\indexentry{Karl IV}{VII/1-147} +\indexentry{Karl X}{VII/1-149} +\indexentry{Karl IX}{VII/1-296} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-758} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-759} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-760} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-761} +\indexentry{Schleswig-Holstein!Rudolf von, Herzog}{VII/2/1-765} +\indexentry{Adrian!Hauster}{VII/1-514} +\indexentry{Adrian!Hauster}{XI/1-515} +\indexentry{Alting!Mensa}{VII/1-426} +\indexentry{Alting!Mensa}{VII/1-434} +\indexentry{Alting!Mensa}{VII/1-453} +\indexentry{Alting!Mensa}{VII/1-455} +\indexentry{Alting!Mensa}{VII/1-466} +\indexentry{Alting!Mensa}{VII/1-467} +\indexentry{Bremen!Heinz von, Erzbischof|see{Sachsen-Lauenburg}}{} +\indexentry{Osnabrück!Heinz von, Bischof|see{Sachsen-Lauenburg}}{} +\indexentry{Zwingl, Haldrich}{IX-479} +\indexentry{Zwingl, Haldrich}{IX-692} +\indexentry{Julian!Apostata, römischer Kaiser}{VII/2/1-904} +\indexentry{Justinian I., byzantinischer Kaiser}{VII/1-326} +\indexentry{Justinian I., byzantinischer Kaiser}{VII/1-734} +\indexentry{Justinian I., byzantinischer Kaiser}{VII/2/1-1011} +\indexentry{Karl!V., Kaiser}{VII/1-34} +\indexentry{Karl!II., Kaiser}{VII/1-147} +\indexentry{Karl!III., Kaiser}{VII/1-149} +\indexentry{Karl!VI., Kaiser}{VII/1-296} +\indexentry{Karl!IV., Kaiser}{VII/1-34} +\indexentry{Karl!IV., Kaiser}{VII/1-147} +\indexentry{Karl!X., Kaiser}{VII/1-149} +\indexentry{Karl!IX., Kaiser}{VII/1-296} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.ind new file mode 100644 index 00000000000..04ba01c38b7 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/HADW2.ind @@ -0,0 +1,68 @@ + +\begin{theindex} + +\indexspace +\textbf{K} +\nopagebreak[4] + \item Karl II, {VII/1 147} + \item Karl III, {VII/1 149} + \item Karl IV, {VII/1 147}, {34} + \item Karl V, {VII/1 34} + \item Karl VI, {VII/1 296} + \item Karl IX, {VII/1 296} + \item Karl X, {VII/1 149} + +\indexspace +\textbf{A} +\nopagebreak[4] + \item Aachen, Johannes von, {VII/1 215} + \item Aarones, {VII/2/1 1003}, {1012} + \item Abrahamson, {VII/2/1 1048}, {1067}, {1156}, {864}, {991} + \item Adamson, {VII/2/1 1223}, {IX/1 1228} + \item Adrian + \subitem -\,Hauster, {VII/1 514}, {XI/1 515} + \item Alting + \subitem -\,Mensa, {VII/1 426}, {434}, {453}, {455}, {466f} + +\indexspace +\textbf{B} +\nopagebreak[4] + \item Bremen + \subitem -\,Heinz von, Erzbischof, \see{Sachsen-Lauenburg}{} + +\indexspace +\textbf{J} +\nopagebreak[4] + \item Julian + \subitem -\,Apostata, römischer Kaiser, {VII/2/1 904} + \item Justinian I., byzantinischer Kaiser, {VII/1 326}, {734}, {VII/2/1 1011} + +\indexspace +\textbf{K} +\nopagebreak[4] + \item Karl + \subitem -\,II., Kaiser, {VII/1 147} + \subitem -\,III., Kaiser, {VII/1 149} + \subitem -\,IV., Kaiser, {VII/1 147}, {34} + \subitem -\,IX., Kaiser, {VII/1 296} + \subitem -\,V., Kaiser, {VII/1 34} + \subitem -\,VI., Kaiser, {VII/1 296} + \subitem -\,X., Kaiser, {VII/1 149} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Osnabrück + \subitem -\,Heinz von, Bischof, \see{Sachsen-Lauenburg}{} + +\indexspace +\textbf{S} +\nopagebreak[4] + \item Schleswig-Holstein + \subitem -\,Rudolf von, Herzog, {VII/2/1 758--761}, {765} + +\indexspace +\textbf{Z} +\nopagebreak[4] + \item Zwingl, Haldrich, {IX 479}, {692} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.idx new file mode 100644 index 00000000000..5c9f3c14276 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.idx @@ -0,0 +1,24 @@ +\indexentry{Österreich}{1} +\indexentry{Öresund}{2} +\indexentry{Ostern}{3} +\indexentry{Ober}{4} +\indexentry{Oberin}{5} +\indexentry{Österreich}{2} +\indexentry{Öresund}{4} +\indexentry{Ostern}{4} +\indexentry{Ober}{6} +\indexentry{Oberin}{6} +\indexentry{Obstler}{7} +\indexentry{Öl}{8} +\indexentry{ölen}{9} +\indexentry{Ödem}{4} +\indexentry{Oligarch}{28} +\indexentry{Oder}{58} +\indexentry{oder}{8} +\indexentry{Fluss!Oder}{479} +\indexentry{Oder|seealso{Fluss}}{33} +\indexentry{Göbel}{58} +\indexentry{Goethe}{58} +\indexentry{Göthe}{58} +\indexentry{Götz}{58} +\indexentry{Goldmann}{58} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.ind new file mode 100644 index 00000000000..fe7d43950ea --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.ind @@ -0,0 +1,34 @@ + +\begin{theindex} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item Fluss + \subitem -\,Oder, {479} + +\indexspace +\textbf{G} +\nopagebreak[4] + \item Göbel, {58} + \item Goethe, {58} + \item Goldmann, {58} + \item Göthe, {58} + \item Götz, {58} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Ober, {4}, {6} + \item Oberin, {5f} + \item Obstler, {7} + \item Ödem, {4} + \item oder, {8} + \item Oder, \seealso{Fluss}{33}, {58} + \item Öl, {8} + \item ölen, {9} + \item Oligarch, {28} + \item Öresund, {2}, {4} + \item Ostern, {3f} + \item Österreich, {1f} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.pdf Binary files differnew file mode 100644 index 00000000000..8e5e63500dd --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.tex new file mode 100644 index 00000000000..7c0d4e98311 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute.tex @@ -0,0 +1,23 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{hvindex} +\usepackage{makeidx} + +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + +%\makeindex +\begin{document} +\def\indexname{Sortierung nach DIN Variante 1: Ö$\rightarrow$O} + +\printindex + + +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.idx new file mode 100644 index 00000000000..5c9f3c14276 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.idx @@ -0,0 +1,24 @@ +\indexentry{Österreich}{1} +\indexentry{Öresund}{2} +\indexentry{Ostern}{3} +\indexentry{Ober}{4} +\indexentry{Oberin}{5} +\indexentry{Österreich}{2} +\indexentry{Öresund}{4} +\indexentry{Ostern}{4} +\indexentry{Ober}{6} +\indexentry{Oberin}{6} +\indexentry{Obstler}{7} +\indexentry{Öl}{8} +\indexentry{ölen}{9} +\indexentry{Ödem}{4} +\indexentry{Oligarch}{28} +\indexentry{Oder}{58} +\indexentry{oder}{8} +\indexentry{Fluss!Oder}{479} +\indexentry{Oder|seealso{Fluss}}{33} +\indexentry{Göbel}{58} +\indexentry{Goethe}{58} +\indexentry{Göthe}{58} +\indexentry{Götz}{58} +\indexentry{Goldmann}{58} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.ind new file mode 100644 index 00000000000..d128238f69f --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.ind @@ -0,0 +1,34 @@ + +\begin{theindex} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item Fluss + \subitem -\,Oder, {479} + +\indexspace +\textbf{G} +\nopagebreak[4] + \item Göbel, {58} + \item Goethe, {58} + \item Göthe, {58} + \item Götz, {58} + \item Goldmann, {58} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Ober, {4}, {6} + \item Oberin, {5f} + \item Obstler, {7} + \item oder, {8} + \item Oder, \seealso{Fluss}{33}, {58} + \item Ödem, {4} + \item Öl, {8} + \item ölen, {9} + \item Öresund, {2}, {4} + \item Österreich, {1f} + \item Oligarch, {28} + \item Ostern, {3f} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.pdf Binary files differnew file mode 100644 index 00000000000..b2d94bde3f0 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.tex new file mode 100644 index 00000000000..a14b945de2d --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/Umlaute2.tex @@ -0,0 +1,25 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{hvindex} +\usepackage{makeidx} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + + +%\makeindex +\begin{document} + +\def\indexname{Sortierung nach DIN Variante 2: Ö$\rightarrow$Oe}% +\verb|xindex -l de -c DIN2 Umlaute2 | + +\printindex + + +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/buch.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.idx new file mode 100644 index 00000000000..aab5e9be1b8 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.idx @@ -0,0 +1,929 @@ +\indexentry {TeXLive@\TeXLive}{3} +\indexentry {Textverarbeitung}{6} +\indexentry {programmiert}{6} +\indexentry {Befehlssyntax}{6} +\indexentry {Satzprogramm}{6} +\indexentry {Textverarbeitungsprogramm}{7} +\indexentry {Absatz}{7} +\indexentry {Umbruch}{7} +\indexentry {Mikrotypografie}{7} +\indexentry {Dehnungspunkte}{9} +\indexentry {Dokumentenklasse}{9} +\indexentry {Sprachauswahl}{9} +\indexentry {Eingabekodierung}{9} +\indexentry {Schriftkodierung}{9} +\indexentry {Layout}{9} +\indexentry {Makefile}{9} +\indexentry {GUI}{9} +\indexentry {Schrifteinbindung}{9} +\indexentry {etex@e\TeX }{11} +\indexentry {pdf\TeX }{11} +\indexentry {pdfe\TeX }{11} +\indexentry {Unicode}{11} +\indexentry {OpenType}{12} +\indexentry {TrueType}{12} +\indexentry {Type"~1}{12} +\indexentry {Skriptsprache}{13} +\indexentry {Format}{13} +\indexentry {pdf\TeX }{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {Distribution}{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {Linux}{13} +\indexentry {Mac OS~X}{13} +\indexentry {Windows}{13} +\indexentry {Solaris}{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {Mac\TeX }{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {MiK\TeX }{13} +\indexentry {fp\TeX }{13} +\indexentry {Xem\TeX }{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {TeXLive@\TeXLive}{13} +\indexentry {TeX-Collection@\TeX -Collection}{13} +\indexentry {ISO-Image}{14} +\indexentry {TeXLive@\TeXLive}{14} +\indexentry {Umgebungsvariable}{14} +\indexentry {Systemadministrator}{14} +\indexentry {root}{14} +\indexentry {TeXLive@\TeXLive}{15} +\indexentry {TeXLive@\TeXLive}{16} +\indexentry {TeXLive@\TeXLive}{17} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {Updatemanager}{18} +\indexentry {TeXLive@\TeXLive}{18} +\indexentry {TeXLive@\TeXLive}{19} +\indexentry {TeXLive@\TeXLive}{19} +\indexentry {TeXLive@\TeXLive}{19} +\indexentry {TeXLive@\TeXLive}{20} +\indexentry {TeXLive@\TeXLive}{20} +\indexentry {TeXLive@\TeXLive}{20} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {MiK\TeX }{21} +\indexentry {TeXLive@\TeXLive}{21} +\indexentry {Windows}{21} +\indexentry {MiK\TeX !Paketmanager}{21} +\indexentry {Adobe Reader}{22} +\indexentry {pro\TeX t}{22} +\indexentry {pro\TeX t}{22} +\indexentry {Adobe Reader}{22} +\indexentry {MiK\TeX }{23} +\indexentry {Sumatra-PDF}{23} +\indexentry {TeXStudio@\TeX Studio}{23} +\indexentry {TeXLive@\TeXLive}{23} +\indexentry {TeXLive@\TeXLive}{23} +\indexentry {TeXShop@\TeX Shop}{23} +\indexentry {TeXworks@\TeX works}{23} +\indexentry {TeXLive@\TeXLive}{23} +\indexentry {TeXLive@\TeXLive}{25} +\indexentry {TeXLive@\TeXLive}{25} +\indexentry {TeXLive@\TeXLive}{25} +\indexentry {TeXLive@\TeXLive}{26} +\indexentry {TeXLive@\TeXLive}{26} +\indexentry {TeXLive@\TeXLive}{26} +\indexentry {GUI}{29} +\indexentry {IDE}{29} +\indexentry {TeXmaker@\TeX maker}{29} +\indexentry {Emacs}{29} +\indexentry {AUC\TeX }{29} +\indexentry {LaTeX-Editor@\LaTeX -Editor}{29} +\indexentry {Fehlersuche}{29} +\indexentry {TeXmaker@\TeX maker}{29} +\indexentry {TeXnicCenter@\TeX nicCenter}{31} +\indexentry {TeXnicCenter@\TeX nicCenter}{31} +\indexentry {TeXLive@\TeXLive}{31} +\indexentry {Viewer}{31} +\indexentry {Bildschirmausgabe}{31} +\indexentry {Pfade}{31} +\indexentry {Inhaltsverzeichnis}{32} +\indexentry {Bibliografie}{32} +\indexentry {Index}{32} +\indexentry {Glossar}{32} +\indexentry {Projekt}{32} +\indexentry {Viewer}{32} +\indexentry {Endlosschleife}{32} +\indexentry {Navigator}{33} +\indexentry {Navigationsleiste}{33} +\indexentry {Fehlersuche}{33} +\indexentry {Batchmodus}{34} +\indexentry {TeXnicCenter@\TeX nicCenter}{35} +\indexentry {Rechtschreibprüfung}{35} +\indexentry {OpenOffice}{35} +\indexentry {Benutzerwörterbuch}{35} +\indexentry {Gnome}{36} +\indexentry {Kile}{36} +\indexentry {Kodierung}{38} +\indexentry {UTF-8}{38} +\indexentry {Umkodierung}{38} +\indexentry {TeXnicCenter@\TeX nicCenter}{38} +\indexentry {Projekt}{38} +\indexentry {Fehlersuche}{39} +\indexentry {Batchmode}{39} +\indexentry {Rechtschreibprüfung}{40} +\indexentry {Rechtschreibprüfung}{40} +\indexentry {Wörterbuch}{40} +\indexentry {Rechtschreibprüfung}{47} +\indexentry {Präambel}{51} +\indexentry {Textkörper}{51} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{52} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{52} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{53} +\indexentry {Präambel}{53} +\indexentry {Dokumentenkörper}{53} +\indexentry {Präambel}{53} +\indexentry {Textkörper}{53} +\indexentry {Präambel}{54} +\indexentry {Schriftkodierung}{54} +\indexentry {Schriftkodierung}{54} +\indexentry {Vektorschrift}{54} +\indexentry {Eingabekodierung}{54} +\indexentry {Titel}{54} +\indexentry {Autor}{54} +\indexentry {Datum}{54} +\indexentry {Adobe Reader}{55} +\indexentry {Zeilenabstand}{56} +\indexentry {Durchschuss}{56} +\indexentry {skip}{58} +\indexentry {Dokumentenklasse}{59} +\indexentry {Logdatei}{59} +\indexentry {Dokumentenklasse}{59} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{59} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{59} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{59} +\indexentry {Document@\idxtextClasses !letter@{\sffamily letter}}{59} +\indexentry {Document@\idxtextClasses !memoir@{\sffamily memoir}}{59} +\indexentry {KOMAScript@\KOMAScript }{59} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{59} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{59} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{59} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{59} +\indexentry {Document@\idxtextClasses !letter@{\sffamily letter}}{59} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{60} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{60} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{60} +\indexentry {Document@\idxtextClasses !letter@{\sffamily letter}}{60} +\indexentry {Document@\idxtextClasses !memoir@{\sffamily memoir}}{60} +\indexentry {KOMAScript@\KOMAScript }{60} +\indexentry {Document@\idxtextClasses !memoir@{\sffamily memoir}}{60} +\indexentry {Schneidemarken}{60} +\indexentry {KOMAScript@\KOMAScript }{61} +\indexentry {Document@\idxtextClasses !scrbook@{\sffamily scrbook}}{61} +\indexentry {Document@\idxtextClasses !scrartcl@{\sffamily scrartcl}}{61} +\indexentry {Document@\idxtextClasses !scrreprt@{\sffamily scrreprt}}{61} +\indexentry {Document@\idxtextClasses !scrlettr2@{\sffamily scrlettr2}}{61} +\indexentry {Briefklasse}{61} +\indexentry {Document@\idxtextClasses !letter@{\sffamily letter}}{61} +\indexentry {Bindekorrektur}{61} +\indexentry {Document@\idxtextClasses !scrlettr2@{\sffamily scrlettr2}}{61} +\indexentry {Document@\idxtextClasses !scrartcl@{\sffamily scrartcl}}{61} +\indexentry {Document@\idxtextClasses !scrreprt@{\sffamily scrreprt}}{61} +\indexentry {Document@\idxtextClasses !scrbook@{\sffamily scrbook}}{61} +\indexentry {Document@\idxtextClasses !scrlettr2@{\sffamily scrlettr2}}{61} +\indexentry {Papierformat}{62} +\indexentry {Bindekorrektur}{62} +\indexentry {Teilungsverhältnis}{62} +\indexentry {Kopfzeile}{62} +\indexentry {Druckseiten}{62} +\indexentry {Druckseiten}{62} +\indexentry {Spalten}{62} +\indexentry {Spalten}{62} +\indexentry {Kapitelanfang}{62} +\indexentry {Seitenvorschub}{62} +\indexentry {Absatzabstand}{62} +\indexentry {Absatzeinzug}{62} +\indexentry {Kopf\/linie}{62} +\indexentry {Fußlinie}{62} +\indexentry {Kapitel}{62} +\indexentry {Anhang}{62} +\indexentry {Bildunterschrift}{62} +\indexentry {Tabellenbeschriftung}{62} +\indexentry {Schriftgröße}{63} +\indexentry {Verzeichnisse}{63} +\indexentry {Inhaltsverzeichnis}{63} +\indexentry {Zusammenfassung}{63} +\indexentry {Nummerierung}{63} +\indexentry {Schrift!Höhe}{64} +\indexentry {Schrift!Breite}{64} +\indexentry {Schrift!Tiefe}{64} +\indexentry {Schreibmaschinenschrift}{64} +\indexentry {Typewriterschrift}{64} +\indexentry {Monospaceschrift}{64} +\indexentry {Backslash}{65} +\indexentry {Eingabekodierung}{67} +\indexentry {Kodierung}{67} +\indexentry {Kodierung!ascii}{67} +\indexentry {ISO 8859-1}{67} +\indexentry {Albanisch}{67} +\indexentry {Dänisch}{67} +\indexentry {Deutsch}{67} +\indexentry {Englisch}{67} +\indexentry {Faröisch}{67} +\indexentry {Finnisch}{67} +\indexentry {Französisch}{67} +\indexentry {Galizisch}{67} +\indexentry {Irisch}{67} +\indexentry {Isländisch}{67} +\indexentry {Katalanisch}{67} +\indexentry {Niederländisch}{67} +\indexentry {Norwegisch}{67} +\indexentry {Portugiesisch}{67} +\indexentry {Schwedisch}{67} +\indexentry {Spanisch}{67} +\indexentry {ISO 8859-2}{67} +\indexentry {Kroatisch}{67} +\indexentry {Polnisch}{67} +\indexentry {Rumänisch}{67} +\indexentry {Slowakisch}{67} +\indexentry {Slowenisch}{67} +\indexentry {Tschechisch}{67} +\indexentry {Ungarisch}{67} +\indexentry {ISO 8859-3}{67} +\indexentry {Esperanto}{67} +\indexentry {Maltesisch}{67} +\indexentry {Türkisch}{67} +\indexentry {ISO 8859-4}{67} +\indexentry {Estnisch}{67} +\indexentry {Lettisch}{67} +\indexentry {Litauisch}{67} +\indexentry {ISO 8859-15}{67} +\indexentry {Französisch}{67} +\indexentry {Finnisch}{67} +\indexentry {Windows 1250}{67} +\indexentry {Windows 1252}{67} +\indexentry {Windows 1257}{67} +\indexentry {ANSI}{67} +\indexentry {Mac OS~X}{67} +\indexentry {UTF-8}{67} +\indexentry {Eurozeichen}{67} +\indexentry {\euro {}}{67} +\indexentry {Eurozeichen}{68} +\indexentry {Latin-1}{68} +\indexentry {Glyph}{70} +\indexentry {Encodingtabelle}{70} +\indexentry {Schriftkodierung}{70} +\indexentry {Bitmap}{70} +\indexentry {Type-3}{70} +\indexentry {Vektorschrift}{71} +\indexentry {Bitmapschrift}{71} +\indexentry {Cork-Kodierung}{72} +\indexentry {IPA}{72} +\indexentry {Cork-Kodierung}{72} +\indexentry {IPA}{72} +\indexentry {TrueType}{72} +\indexentry {OpenType}{72} +\indexentry {Akzent}{73} +\indexentry {Trennalgorithmus}{75} +\indexentry {Standardsprache}{76} +\indexentry {Kapitel}{76} +\indexentry {Inhaltsverzeichnis}{76} +\indexentry {Kroatisch}{76} +\indexentry {Tschechisch}{76} +\indexentry {Dänisch}{76} +\indexentry {Niederländisch}{76} +\indexentry {Englisch}{76} +\indexentry {Estländisch}{76} +\indexentry {Finnisch}{76} +\indexentry {Französisch}{76} +\indexentry {Deutsch}{76} +\indexentry {Griechisch}{76} +\indexentry {Hebräisch}{76} +\indexentry {Ungarisch}{76} +\indexentry {Isländisch}{76} +\indexentry {Italienisch}{76} +\indexentry {Niedersorbisch}{76} +\indexentry {Devnagari}{76} +\indexentry {Norwegisch}{76} +\indexentry {Polnisch}{76} +\indexentry {Portugiesisch}{76} +\indexentry {Rumänisch}{76} +\indexentry {Russisch}{76} +\indexentry {Spanisch}{76} +\indexentry {Schwedisch}{76} +\indexentry {Serbisch}{76} +\indexentry {Türkisch}{76} +\indexentry {Ukrainisch}{76} +\indexentry {Datumsformat}{77} +\indexentry {Uberschrift@Überschriftenformat}{77} +\indexentry {Trennregeln}{77} +\indexentry {shorthand}{78} +\indexentry {\textacutedbl }{78} +\indexentry {""~@\texttt{""\textasciitilde}}{79} +\indexentry {""=@\texttt{""=}}{79} +\indexentry {""""@\texttt{""""}}{79} +\indexentry {""=@\texttt{""=}}{79} +\indexentry {""~@\texttt{""\textasciitilde}}{79} +\indexentry {""""@\texttt{""""}}{79} +\indexentry {Kroatisch}{80} +\indexentry {Tcheschisch}{80} +\indexentry {Niederländisch}{80} +\indexentry {Englisch}{80} +\indexentry {Finnisch}{80} +\indexentry {Französisch}{80} +\indexentry {Deutsch}{80} +\indexentry {Griechisch}{80} +\indexentry {Ungarisch}{80} +\indexentry {Italienisch}{80} +\indexentry {Polnisch}{80} +\indexentry {Portugiesisch}{80} +\indexentry {Russisch}{80} +\indexentry {Spanisch}{80} +\indexentry {Slowakisch}{80} +\indexentry {Slowenisch}{80} +\indexentry {Schwedisch}{80} +\indexentry {Serbisch}{80} +\indexentry {Türkisch}{80} +\indexentry {Ukrainisch}{80} +\indexentry {Anführungszeichen}{81} +\indexentry {Guillemets}{82} +\indexentry {Internetadresse}{84} +\indexentry {URL}{84} +\indexentry {Serifenschrift}{85} +\indexentry {Schrift!Serifen}{85} +\indexentry {Mathematiksatz}{85} +\indexentry {Vektorschrift}{85} +\indexentry {Schriftfamilie}{85} +\indexentry {shape}{86} +\indexentry {italic}{86} +\indexentry {slanted}{86} +\indexentry {Glyph}{87} +\indexentry {Schrift!Gewicht}{87} +\indexentry {Schrift!Laufweite}{87} +\indexentry {Schriftstärke}{87} +\indexentry {Schriftgröße}{87} +\indexentry {Zeichensatzbefehle}{87} +\indexentry {Kursivkorrektur}{88} +\indexentry {Italic-Korrektur}{88} +\indexentry {Ligaturen}{89} +\indexentry {Satzspiegel}{91} +\indexentry {Papierformat}{91} +\indexentry {DIN~476}{91} +\indexentry {ISO~216}{91} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{93} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{93} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{93} +\indexentry {KOMAScript@\KOMAScript }{93} +\indexentry {Satzspiegel}{94} +\indexentry {Papierformat}{96} +\indexentry {Querformat}{96} +\indexentry {Hochformat}{96} +\indexentry {Papierhöhe}{96} +\indexentry {Papierbreite}{96} +\indexentry {Papiergröße}{96} +\indexentry {Hurenkind}{102} +\indexentry {Witwe}{102} +\indexentry {Schusterjunge}{103} +\indexentry {Waisenkind}{103} +\indexentry {Satzspiegelberechnung}{103} +\indexentry {Satzspiegel}{103} +\indexentry {Doppelseite}{103} +\indexentry {Bindekorrektur}{103} +\indexentry {Neunerteilung}{103} +\indexentry {Schnittmarken}{110} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{113} +\indexentry {Schmutztitel}{115} +\indexentry {Paginierung}{115} +\indexentry {Seitenstil}{117} +\indexentry {Fußzeile}{119} +\indexentry {Kopfzeile}{119} +\indexentry {Kolumnentitel}{121} +\indexentry {Seitenstil}{122} +\indexentry {Kolumnentitel}{126} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{128} +\indexentry {Document@\idxtextClasses !scrbook@{\sffamily scrbook}}{128} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{128} +\indexentry {Document@\idxtextClasses !scrreprt@{\sffamily scrreprt}}{128} +\indexentry {TOC}{128} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{128} +\indexentry {Document@\idxtextClasses !scrartcl@{\sffamily scrartcl}}{128} +\indexentry {Inhaltsverzeichnis}{128} +\indexentry {Gliederungsebene}{128} +\indexentry {Document@\idxtextClasses !scrbook@{\sffamily scrbook}}{129} +\indexentry {Document@\idxtextClasses !scrartcl@{\sffamily scrartcl}}{129} +\indexentry {Zentrieren}{141} +\indexentry {Flattersatz}{142} +\indexentry {Flattersatz}{143} +\indexentry {Worttrennung}{143} +\indexentry {Liedtexte}{145} +\indexentry {Silbentrennung}{149} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{150} +\indexentry {Document@\idxtextClasses !report@{\sffamily report}}{150} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{150} +\indexentry {Randbemerkung}{157} +\indexentry {Marginalie}{157} +\indexentry {optischer Randausgleich}{163} +\indexentry {Wortzwischenraum}{165} +\indexentry {Bounding Box}{165} +\indexentry {Bounding Box}{166} +\indexentry {TDS}{172} +\indexentry {LR-Box}{173} +\indexentry {Absatzbox}{174} +\indexentry {Label}{181} +\indexentry {Document@\idxtextClasses !IEEEtran@{\sffamily IEEEtran}}{185} +\indexentry {Dateilinks}{188} +\indexentry {PDF/A}{189} +\indexentry {Bookmark}{189} +\indexentry {UTF-16}{189} +\indexentry {URL}{190} +\indexentry {Gleitumgebung}{200} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{202} +\indexentry {Übersetzung}{207} +\indexentry {kritische Edition}{208} +\indexentry {Projekt}{210} +\indexentry {Präambel}{210} +\indexentry {Querverweis}{212} +\indexentry {Typografie}{213} +\indexentry {Konventionen}{213} +\indexentry {Fußnotenzähler}{213} +\indexentry {tabular@{\ttfamily tabular} Env.|(idxbf}{214} +\indexentry {Syntax}{214} +\indexentry {Spaltendefinition}{214} +\indexentry {Spaltendefinition}{214} +\indexentry {Tabelle!Breite}{214} +\indexentry {Wiederholungsfaktor}{215} +\indexentry {Spaltenabstand}{215} +\indexentry {Sternversion}{215} +\indexentry {Tabellenbreite}{215} +\indexentry {Spaltenabstand}{215} +\indexentry {Linie!vertikal}{216} +\indexentry {Linie!horizontal}{216} +\indexentry {Linie!farbig}{217} +\indexentry {Spaltendefinition}{217} +\indexentry {tabular@{\ttfamily tabular} Env.|)idxbf}{218} +\indexentry {Linie}{219} +\indexentry {Zeile!Höhe}{219} +\indexentry {Zeile!Tiefe}{220} +\indexentry {Fettschrift}{220} +\indexentry {Inlinemodus}{221} +\indexentry {Trennlinie}{221} +\indexentry {Spaltentyp}{222} +\indexentry {Spaltendefinition}{222} +\indexentry {Tabelle!Kopf}{222} +\indexentry {Kopfzeile}{222} +\indexentry {Trennung}{222} +\indexentry {Worttrennung}{223} +\indexentry {Flattersatz}{223} +\indexentry {Linksbündig}{223} +\indexentry {Rechtsbündig}{223} +\indexentry {vertikale Linien}{223} +\indexentry {Linie!vertikal}{223} +\indexentry {Spaltendeklaration}{224} +\indexentry {Tabelle!gerahmt}{224} +\indexentry {Grundlinie}{224} +\indexentry {Baseline}{224} +\indexentry {Basislinie}{224} +\indexentry {Matrix}{227} +\indexentry {Spaltendefinition}{228} +\indexentry {Dokumentenpräambel}{228} +\indexentry {Spaltentyp}{229} +\indexentry {delimiter}{229} +\indexentry {Zeile!Zähler}{230} +\indexentry {Fußnote}{230} +\indexentry {Linie}{230} +\indexentry {Linie!vertikal}{230} +\indexentry {Linie!horizontal}{230} +\indexentry {Zeile!Abstand}{234} +\indexentry {Farbe}{236} +\indexentry {Spaltenfarbe}{236} +\indexentry {Zeile!Farbe}{236} +\indexentry {Zellenfarbe}{236} +\indexentry {Farbmodell}{236} +\indexentry {Gleitumgebung}{240} +\indexentry {Tortendiagramm}{244} +\indexentry {Funktionsgraph}{244} +\indexentry {Referenzieren}{245} +\indexentry {Label}{245} +\indexentry {Sortierung}{247} +\indexentry {Null}{247} +\indexentry {SQL-Datenbank}{247} +\indexentry {Clipping}{247} +\indexentry {Zahlenkolonnen}{247} +\indexentry {Dezimalpunkt}{247} +\indexentry {Dezimalkomma}{247} +\indexentry {Punkt}{248} +\indexentry {Komma}{248} +\indexentry {Cluster}{248} +\indexentry {Dezimalstellen}{248} +\indexentry {Seitenumbruch}{252} +\indexentry {Umbruchmöglichkeit}{252} +\indexentry {Gruppe}{252} +\indexentry {list of tables}{256} +\indexentry {lot}{256} +\indexentry {list of tables}{256} +\indexentry {lot}{256} +\indexentry {Clown}{256} +\indexentry {lot}{256} +\indexentry {multiply defined labels}{258} +\indexentry {longtable@\nxLPack {longtable}!Tabellenüberschrift}{259} +\indexentry {longtable@\nxLPack {longtable}!Tabellenunterschrift}{259} +\indexentry {Tabellenüberschrift!longtable@\nxLPack {longtable}}{259} +\indexentry {Tabellenunterschrift!longtable@\nxLPack {longtable}}{259} +\indexentry {Fußnotenzählung}{260} +\indexentry {Fußnote}{260} +\indexentry {Grundlinie}{264} +\indexentry {Baseline}{264} +\indexentry {Zählung}{267} +\indexentry {Tabelle!geschachtelt}{268} +\indexentry {multirow-Zelle@\nxLenv {multirow}-Zelle}{268} +\indexentry {Spaltentyp}{268} +\indexentry {p-Spalte}{268} +\indexentry {Zeile!Vorschub}{269} +\indexentry {Feinjustierung}{270} +\indexentry {p-Spalte@\protect \nxLnotation {p}-Spalte}{271} +\indexentry {Blocksatz}{271} +\indexentry {r-Spalte@\protect \nxLnotation {r}-Spalte}{271} +\indexentry {Tabelle!Farbe}{273} +\indexentry {Spaltentyp}{274} +\indexentry {Spaltenabstand}{274} +\indexentry {Tabellenkalkulation}{282} +\indexentry {Tabelle!Breite}{289} +\indexentry {Zeile!Breite}{289} +\indexentry {Spaltentyp}{290} +\indexentry {Spaltenbreite}{290} +\indexentry {Spaltenzwischenraum}{290} +\indexentry {X-Spalte}{290} +\indexentry {X-Spalte}{290} +\indexentry {Abbildung}{309} +\indexentry {Tabelle}{309} +\indexentry {Textanteil}{309} +\indexentry {Gleitumgebung}{309} +\indexentry {Float}{309} +\indexentry {Tabelle}{310} +\indexentry {Abbildungsverzeichnis}{310} +\indexentry {Tabellenverzeichnis}{310} +\indexentry {moving argument}{321} +\indexentry {Beschriftung}{324} +\indexentry {Bezeichner}{324} +\indexentry {float box}{337} +\indexentry {Legende}{350} +\indexentry {Flattersatz}{358} +\indexentry {Flattersatz}{358} +\indexentry {AMS}{376} +\indexentry {Zeilenmodus}{376} +\indexentry {Zeilenmodus}{377} +\indexentry {Layout}{377} +\indexentry {robust}{377} +\indexentry {Zeilenhöhe}{378} +\indexentry {Zeilenmodus}{378} +\indexentry {Superscript}{378} +\indexentry {Subscript}{378} +\indexentry {Bruch}{378} +\indexentry {Schrift!Stil}{378} +\indexentry {Operator}{378} +\indexentry {robust}{378} +\indexentry {Zeilenmodus}{379} +\indexentry {Adobe Reader}{380} +\indexentry {Zeilenumbruch}{380} +\indexentry {Relationssymbol}{380} +\indexentry {Zeilenmodus}{380} +\indexentry {displaymath mode}{381} +\indexentry {Absatz}{381} +\indexentry {Matrix}{383} +\indexentry {Gleichungsnummer}{383} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{383} +\indexentry {Zähler}{383} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{383} +\indexentry {Gleichungsnummerierung}{384} +\indexentry {Zähler}{384} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{384} +\indexentry {Rücksetzschalter}{385} +\indexentry {Rücksetzbefehl}{385} +\indexentry {Dokumentenklasse}{386} +\indexentry {class option}{386} +\indexentry {Marke}{387} +\indexentry {Label}{387} +\indexentry {Zähler}{387} +\indexentry {Referenz}{387} +\indexentry {Gleichungsnummer}{389} +\indexentry {Phantom}{389} +\indexentry {Rahmenfarbe}{389} +\indexentry {Hintergrundfarbe}{389} +\indexentry {Zeilenmodus}{391} +\indexentry {Fallunterscheidung}{392} +\indexentry {Subscript}{393} +\indexentry {Summe}{393} +\indexentry {Produkt}{393} +\indexentry {Quadratwurzel}{393} +\indexentry {Klammer}{394} +\indexentry {Backslash}{394} +\indexentry {Delimiter}{394} +\indexentry {Klammersymbole}{394} +\indexentry {Mathopen-Symbol}{396} +\indexentry {largesymbols}{396} +\indexentry {Basislinie}{397} +\indexentry {Text}{398} +\indexentry {Roman-Zeichensatz}{399} +\indexentry {mu (Einheit)@\texttt {mu}}{399} +\indexentry {dynamische Länge}{400} +\indexentry {glue}{400} +\indexentry {Symbol}{400} +\indexentry {Operator}{400} +\indexentry {Atom}{400} +\indexentry {Atom}{401} +\indexentry {Schriftstil}{404} +\indexentry {Zeilenmodus}{404} +\indexentry {inline mode}{404} +\indexentry {Schriftgröße}{404} +\indexentry {Bruch}{404} +\indexentry {Index}{405} +\indexentry {Exponent}{405} +\indexentry {Dokumentenklasse}{405} +\indexentry {interline spacing}{405} +\indexentry {Matrix}{405} +\indexentry {Punkte}{405} +\indexentry {Dots}{405} +\indexentry {Determinante}{406} +\indexentry {Matrix}{406} +\indexentry {Akzent}{406} +\indexentry {Vektor}{407} +\indexentry {Zeichen (aktives)}{408} +\indexentry {Exponent}{408} +\indexentry {Index}{408} +\indexentry {Operator}{408} +\indexentry {Operator-Symbol}{408} +\indexentry {Operatorname}{408} +\indexentry {Index}{409} +\indexentry {Exponent}{409} +\indexentry {Subscript}{409} +\indexentry {Superscript}{409} +\indexentry {Symbol!gestockt}{411} +\indexentry {Textmodus}{411} +\indexentry {Mathematikmodus}{411} +\indexentry {Schrift!fett}{411} +\indexentry {Textschrift}{411} +\indexentry {Schrift!Größe}{412} +\indexentry {Titel}{413} +\indexentry {Items}{413} +\indexentry {Differentialquotient}{414} +\indexentry {Operator}{414} +\indexentry {Variable}{414} +\indexentry {Integrationsvariable}{414} +\indexentry {Abstand}{414} +\indexentry {Makronamen}{414} +\indexentry {American Mathematical Society (AMS)}{415} +\indexentry {Document@\idxtextClasses !amsbook@{\sffamily amsbook}}{415} +\indexentry {Document@\idxtextClasses !amsart@{\sffamily amsart}}{415} +\indexentry {Fallunterscheidung}{425} +\indexentry {Matrix}{426} +\indexentry {Klammerpaar}{427} +\indexentry {Spalten}{428} +\indexentry {Spaltenanzahl}{428} +\indexentry {Punkte}{428} +\indexentry {Schrittweite}{428} +\indexentry {Tridiagonalmatrix}{428} +\indexentry {Bruch}{429} +\indexentry {Binom}{429} +\indexentry {Bruch}{429} +\indexentry {Binom}{429} +\indexentry {Begrenzer}{430} +\indexentry {Bruch}{430} +\indexentry {Kettenbruch}{430} +\indexentry {continued fraction}{430} +\indexentry {Divisior}{431} +\indexentry {Binom}{431} +\indexentry {Binom}{431} +\indexentry {Wurzel}{431} +\indexentry {mu}{432} +\indexentry {Index}{432} +\indexentry {Radikand}{432} +\indexentry {Wurzelexponent}{432} +\indexentry {Akzent}{433} +\indexentry {Modulo}{433} +\indexentry {Gleichungsnummer}{433} +\indexentry {Abschnittsnummer}{433} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{434} +\indexentry {Gleichungsnummer}{434} +\indexentry {Gleichungsnummerierung}{435} +\indexentry {Untergleichung}{437} +\indexentry {Referenz}{437} +\indexentry {Untergleichung}{437} +\indexentry {Grenzen}{438} +\indexentry {Summe}{438} +\indexentry {Produkt}{438} +\indexentry {Integral}{438} +\indexentry {Achse}{439} +\indexentry {Schriftfamilie}{442} +\indexentry {Pfeil}{443} +\indexentry {Doppelpfeil}{444} +\indexentry {mu}{444} +\indexentry {Akzent}{447} +\indexentry {Kommutative Diagramme}{448} +\indexentry {Integralsymbol}{448} +\indexentry {Vektor}{448} +\indexentry {Gaußscher Algorithmus}{448} +\indexentry {Zufallszahlen}{448} +\indexentry {Unterstrich}{449} +\indexentry {Operator}{449} +\indexentry {Matrix}{449} +\indexentry {Begrenzer}{450} +\indexentry {Textmodus}{450} +\indexentry {Schrift!fett}{451} +\indexentry {Klammerhöhe}{452} +\indexentry {Durchstreichen}{453} +\indexentry {Untergleichung}{454} +\indexentry {Begrenzer}{455} +\indexentry {scriptwriting}{459} +\indexentry {Document@\idxtextClasses !article@{\sffamily article}}{474} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{474} +\indexentry {Tabellenverzeichnis}{475} +\indexentry {Abbildungsverzeichnis}{475} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{475} +\indexentry {Document@\idxtextClasses !book@{\sffamily book}}{475} +\indexentry {indent}{476} +\indexentry {numwidth}{476} +\indexentry {Sortierung}{489} +\indexentry {DIN\,5007}{512} +\indexentry {TeXLive@\TeXLive}{512} +\indexentry {Glossar}{523} +\indexentry {Homograph}{529} +\indexentry {Bibliografie|(}{537} +\indexentry {Flattersatz}{538} +\indexentry {Flattersatz}{539} +\indexentry {TeXLive@\TeXLive}{542} +\indexentry {Autor"=Jahr"=Schema}{544} +\indexentry {bookauthor}{557} +\indexentry {Onlinequelle}{561} +\indexentry {Tagebuchnotation}{561} +\indexentry {Sigel}{561} +\indexentry {Patronyme}{564} +\indexentry {Metronyme}{564} +\indexentry {Betriebswirtschaftslehre}{571} +\indexentry {Document@\idxtextClasses !ctexart@{\sffamily ctexart}}{572} +\indexentry {Leibniz Universität Hannover}{583} +\indexentry {NEJM}{585} +\indexentry {MLA}{586} +\indexentry {Autor-Stil}{586} +\indexentry {TeXLive@\TeXLive}{590} +\indexentry {Bibliografie|)}{592} +\indexentry {Schriftfamilie}{595} +\indexentry {Mediävalziffern}{595} +\indexentry {Minuskelziffern}{595} +\indexentry {Serienattribut}{596} +\indexentry {Laufweite}{596} +\indexentry {OpenType}{601} +\indexentry {TrueType}{601} +\indexentry {TeXLive@\TeXLive}{610} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{615} +\indexentry {Document@\idxtextClasses !powerdot@{\sffamily powerdot}}{615} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{615} +\indexentry {Navigationsleiste}{616} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{617} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{617} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{618} +\indexentry {Layout}{618} +\indexentry {Bildschirm}{619} +\indexentry {Navigationsleiste}{619} +\indexentry {sidebar}{619} +\indexentry {Folie}{621} +\indexentry {Overlay}{621} +\indexentry {Seitenverhältnis}{621} +\indexentry {4:3}{621} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{622} +\indexentry {Label}{626} +\indexentry {Overlayspezifikation}{627} +\indexentry {Unsichtbarkeit}{631} +\indexentry {Overlays}{631} +\indexentry {Transparenz}{631} +\indexentry {Transparenz}{631} +\indexentry {Gleitumgebung}{634} +\indexentry {Folienübergänge}{639} +\indexentry {Vollbildmodus}{639} +\indexentry {Adobe Reader}{639} +\indexentry {Flattersatz}{640} +\indexentry {Corporate Design}{642} +\indexentry {Verbatim-Modus}{654} +\indexentry {Template}{657} +\indexentry {Template}{657} +\indexentry {Titelkopf}{658} +\indexentry {Vordergrundfarbe}{658} +\indexentry {Hintergrundfarbe}{658} +\indexentry {Beamer-Template!logo@\texttt {logo}}{659} +\indexentry {Beamer-Template!navigation symbols@\texttt {navigation symbols}}{659} +\indexentry {Schriftattribut}{660} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{660} +\indexentry {Document@\idxtextClasses !beamer@{\sffamily beamer}}{660} +\indexentry {Fontshape}{661} +\indexentry {Fontserie}{661} +\indexentry {Fontfamilie}{661} +\indexentry {Farbe}{669} +\indexentry {Farbmodell}{669} +\indexentry {CMYK}{671} +\indexentry {Farbserie}{672} +\indexentry {Farbmodell!CMYK}{673} +\indexentry {Farbmodell!RGB}{673} +\indexentry {Farbmodell!HSB}{673} +\indexentry {RGB}{674} +\indexentry {Hintergrundfarbe}{679} +\indexentry {Farbwert}{680} +\indexentry {Farbserie}{680} +\indexentry {Farbe!Modell}{680} +\indexentry {Farbe!konvertieren}{680} +\indexentry {Index}{699} +\indexentry {Maßeinheit}{711} +\indexentry {Bezierkurve@Bézierkurve}{715} +\indexentry {Bezierkurve@Bézierkurve}{721} +\indexentry {Schnittpunkt}{722} +\indexentry {Bounding Box}{730} +\indexentry {Tortendiagramm}{746} +\indexentry {PostScript}{750} +\indexentry {Seitenbeschreibungssprache}{750} +\indexentry {Page Coded Language}{750} +\indexentry {3D}{752} +\indexentry {TeXLive@\TeXLive}{766} +\indexentry {Ellipse}{770} +\indexentry {Parabel}{770} +\indexentry {Clippingpfad}{771} +\indexentry {Knoten}{775} +\indexentry {Kochsche Schneeflocke}{778} +\indexentry {Entity-Relationship}{798} +\indexentry {IUPAC}{814} +\indexentry {Bounding Box}{825} +\indexentry {Document@\idxtextClasses !europecv@{\sffamily europecv}}{827} +\indexentry {Document@\idxtextClasses !europecv@{\sffamily europecv}}{827} +\indexentry {Document@\idxtextClasses !europecv@{\sffamily europecv}}{828} +\indexentry {Document@\idxtextClasses !europecv@{\sffamily europecv}}{830} +\indexentry {Wickelfalz}{832} +\indexentry {Zickzackfalz}{832} +\indexentry {Document@\idxtextClasses !scrartcl@{\sffamily scrartcl}}{834} +\indexentry {Document@\idxtextClasses !scrlttr2@{\sffamily scrlttr2}}{837} +\indexentry {Makro}{848} +\indexentry {Umgebung}{848} +\indexentry {TeXLive@\TeXLive}{855} +\indexentry {Maßzahl}{859} +\indexentry {Maßeinheit}{859} +\indexentry {bp}{859} +\indexentry {cc}{859} +\indexentry {cm}{859} +\indexentry {dd}{859} +\indexentry {in}{859} +\indexentry {mm}{859} +\indexentry {mu}{860} +\indexentry {pc}{860} +\indexentry {pt}{860} +\indexentry {px}{860} +\indexentry {sp}{860} +\indexentry {em}{860} +\indexentry {ex}{860} +\indexentry {dimen register}{860} +\indexentry {skip register}{860} +\indexentry {rubber length}{860} +\indexentry {Maßeinheit}{860} +\indexentry {skip}{860} +\indexentry {skip register}{861} +\indexentry {Zähler}{862} +\indexentry {Counter}{862} +\indexentry {Gruppe}{864} +\indexentry {global}{864} +\indexentry {lokal}{864} +\indexentry {Rekursion}{865} +\indexentry {Leerzeichen}{866} +\indexentry {Expansion}{868} +\indexentry {Bad math}{869} +\indexentry {GenericError}{869} +\indexentry {math shift}{869} +\indexentry {TeXLive@\TeXLive}{870} +\indexentry {Präambel}{871} +\indexentry {Textkörper}{871} +\indexentry {option clash}{871} +\indexentry {TDS}{872} +\indexentry {TeXLive@\TeXLive}{872} +\indexentry {FNDB}{872} +\indexentry {TeXLive@\TeXLive}{872} +\indexentry {TeXLive@\TeXLive}{872} +\indexentry {TeXLive@\TeXLive}{872} +\indexentry {TeXLive@\TeXLive}{872} +\indexentry {TeXLive@\TeXLive}{873} +\indexentry {TeXLive@\TeXLive}{873} +\indexentry {TeXLive@\TeXLive}{873} +\indexentry {TeXLive@\TeXLive}{874} +\indexentry {TeXLive@\TeXLive}{874} +\indexentry {TeXLive@\TeXLive}{874} +\indexentry {TeXLive@\TeXLive}{874} +\indexentry {TeXLive@\TeXLive}{877} +\indexentry {TeXLive@\TeXLive}{878} +\indexentry {TeXLive@\TeXLive}{879} +\indexentry {USB-Stick}{879} +\indexentry {TeXLive@\TeXLive}{879} +\indexentry {TeXLive@\TeXLive}{879} +\indexentry {Con\TeX t}{879} +\indexentry {Logdatei}{880} +\indexentry {Batchmode}{883} +\indexentry {Logfile}{883} +\indexentry {Systemmeldung}{883} +\indexentry {Warnung}{883} +\indexentry {Schrift!Warnung}{883} +\indexentry {Overfull box}{883} +\indexentry {Gleitumgebung}{885} +\indexentry {Minimalbeispiel}{888} +\indexentry {TeXLive@\TeXLive}{890} +\indexentry {TeXLive@\TeXLive}{890} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/buch.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.ind new file mode 100644 index 00000000000..844d38123f4 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.ind @@ -0,0 +1,678 @@ + +\begin{theindex} +\textbf{Symbols} +\nopagebreak[4] + \item \texttt{\"{}\"{}}, {79} + \item \texttt{\"{}=}, {79} + \item \texttt{\"{}\textasciitilde}, {79} + \item \euro {}, {67} + \item \textacutedbl , {78} + +\indexspace +\textbf{Numbers} +\nopagebreak[4] + \item 3D, {752} + \item 4:3, {621} + +\indexspace +\textbf{A} +\nopagebreak[4] + \item Abbildung, {309} + \item Abbildungsverzeichnis, {310}, {475} + \item Absatz, {7}, {381} + \item Absatzabstand, {62} + \item Absatzbox, {174} + \item Absatzeinzug, {62} + \item Abschnittsnummer, {433} + \item Abstand, {414} + \item Achse, {439} + \item Adobe Reader, {22}, {55}, {380}, {639} + \item Akzent, {73}, {406}, {433}, {447} + \item Albanisch, {67} + \item American Mathematical Society (AMS), {415} + \item AMS, {376} + \item Anführungszeichen, {81} + \item Anhang, {62} + \item ANSI, {67} + \item Atom, {400f} + \item AUC\TeX , {29} + \item Autor, {54} + \item Autor"=Jahr"=Schema, {544} + \item Autor-Stil, {586} + +\indexspace +\textbf{B} +\nopagebreak[4] + \item Backslash, {65}, {394} + \item Bad math, {869} + \item Baseline, {224}, {264} + \item Basislinie, {224}, {397} + \item Batchmode, {39}, {883} + \item Batchmodus, {34} + \item Beamer-Template + \subitem -\,\texttt {logo}, {659} + \subitem -\,\texttt {navigation symbols}, {659} + \item Befehlssyntax, {6} + \item Begrenzer, {430}, {450}, {455} + \item Benutzerwörterbuch, {35} + \item Beschriftung, {324} + \item Betriebswirtschaftslehre, {571} + \item Bezeichner, {324} + \item Bézierkurve, {715}, {721} + \item Bibliografie, {32}, {537--592} + \item Bildschirm, {619} + \item Bildschirmausgabe, {31} + \item Bildunterschrift, {62} + \item Bindekorrektur, {61f}, {103} + \item Binom, {429}, {431} + \item Bitmap, {70} + \item Bitmapschrift, {71} + \item Blocksatz, {271} + \item bookauthor, {557} + \item Bookmark, {189} + \item Bounding Box, {165f}, {730}, {825} + \item bp, {859} + \item Briefklasse, {61} + \item Bruch, {378}, {404}, {429f} + +\indexspace +\textbf{C} +\nopagebreak[4] + \item cc, {859} + \item class option, {386} + \item Clipping, {247} + \item Clippingpfad, {771} + \item Clown, {256} + \item Cluster, {248} + \item cm, {859} + \item CMYK, {671} + \item continued fraction, {430} + \item Con\TeX t, {879} + \item Cork-Kodierung, {72} + \item Corporate Design, {642} + \item Counter, {862} + +\indexspace +\textbf{D} +\nopagebreak[4] + \item Dänisch, {67}, {76} + \item Dateilinks, {188} + \item Datum, {54} + \item Datumsformat, {77} + \item dd, {859} + \item Dehnungspunkte, {9} + \item delimiter, {229} + \item Delimiter, {394} + \item Determinante, {406} + \item Deutsch, {67}, {76}, {80} + \item Devnagari, {76} + \item Dezimalkomma, {247} + \item Dezimalpunkt, {247} + \item Dezimalstellen, {248} + \item Differentialquotient, {414} + \item dimen register, {860} + \item DIN\,5007, {512} + \item DIN~476, {91} + \item displaymath mode, {381} + \item Distribution, {13} + \item Divisior, {431} + \item \idxtextClasses + \subitem -\,{\sffamily amsart}, {415} + \subitem -\,{\sffamily amsbook}, {415} + \subitem -\,{\sffamily article}, {52f}, {59f}, {93}, {128}, {150}, {383}, {474} + \subitem -\,{\sffamily beamer}, {615}, {617f}, {622}, {660} + \subitem -\,{\sffamily book}, {59f}, {93}, {113}, {128}, {150}, {202}, {383f}, {434}, {474f} + \subitem -\,{\sffamily ctexart}, {572} + \subitem -\,{\sffamily europecv}, {827f}, {830} + \subitem -\,{\sffamily IEEEtran}, {185} + \subitem -\,{\sffamily letter}, {59ff} + \subitem -\,{\sffamily memoir}, {59f} + \subitem -\,{\sffamily powerdot}, {615} + \subitem -\,{\sffamily report}, {59f}, {93}, {128}, {150} + \subitem -\,{\sffamily scrartcl}, {61}, {128f}, {834} + \subitem -\,{\sffamily scrbook}, {61}, {128f} + \subitem -\,{\sffamily scrlettr2}, {61} + \subitem -\,{\sffamily scrlttr2}, {837} + \subitem -\,{\sffamily scrreprt}, {61}, {128} + \item Dokumentenklasse, {9}, {59}, {386}, {405} + \item Dokumentenkörper, {53} + \item Dokumentenpräambel, {228} + \item Doppelpfeil, {444} + \item Doppelseite, {103} + \item Dots, {405} + \item Druckseiten, {62} + \item Durchschuss, {56} + \item Durchstreichen, {453} + \item dynamische Länge, {400} + +\indexspace +\textbf{E} +\nopagebreak[4] + \item Eingabekodierung, {9}, {54}, {67} + \item Ellipse, {770} + \item em, {860} + \item Emacs, {29} + \item Encodingtabelle, {70} + \item Endlosschleife, {32} + \item Englisch, {67}, {76}, {80} + \item Entity-Relationship, {798} + \item Esperanto, {67} + \item Estländisch, {76} + \item Estnisch, {67} + \item e\TeX , {11} + \item Eurozeichen, {67f} + \item ex, {860} + \item Expansion, {868} + \item Exponent, {405}, {408f} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item Fallunterscheidung, {392}, {425} + \item Farbe, {236}, {669} + \item Farbe + \subitem -\,konvertieren, {680} + \subitem -\,Modell, {680} + \item Farbmodell, {236}, {669} + \item Farbmodell + \subitem -\,CMYK, {673} + \subitem -\,HSB, {673} + \subitem -\,RGB, {673} + \item Farbserie, {672}, {680} + \item Farbwert, {680} + \item Faröisch, {67} + \item Fehlersuche, {29}, {33}, {39} + \item Feinjustierung, {270} + \item Fettschrift, {220} + \item Finnisch, {67}, {76}, {80} + \item Flattersatz, {142f}, {223}, {358}, {538f}, {640} + \item Float, {309} + \item float box, {337} + \item FNDB, {872} + \item Folie, {621} + \item Folienübergänge, {639} + \item Fontfamilie, {661} + \item Fontserie, {661} + \item Fontshape, {661} + \item Format, {13} + \item fp\TeX , {13} + \item Französisch, {67}, {76}, {80} + \item Funktionsgraph, {244} + \item Fußlinie, {62} + \item Fußnote, {230}, {260} + \item Fußnotenzähler, {213} + \item Fußnotenzählung, {260} + \item Fußzeile, {119} + +\indexspace +\textbf{G} +\nopagebreak[4] + \item Galizisch, {67} + \item Gaußscher Algorithmus, {448} + \item GenericError, {869} + \item Gleichungsnummer, {383}, {389}, {433f} + \item Gleichungsnummerierung, {384}, {435} + \item Gleitumgebung, {200}, {240}, {309}, {634}, {885} + \item Gliederungsebene, {128} + \item global, {864} + \item Glossar, {32}, {523} + \item glue, {400} + \item Glyph, {70}, {87} + \item Gnome, {36} + \item Grenzen, {438} + \item Griechisch, {76}, {80} + \item Grundlinie, {224}, {264} + \item Gruppe, {252}, {864} + \item GUI, {9}, {29} + \item Guillemets, {82} + +\indexspace +\textbf{H} +\nopagebreak[4] + \item Hebräisch, {76} + \item Hintergrundfarbe, {389}, {658}, {679} + \item Hochformat, {96} + \item Homograph, {529} + \item Hurenkind, {102} + +\indexspace +\textbf{I} +\nopagebreak[4] + \item IDE, {29} + \item in, {859} + \item indent, {476} + \item Index, {32}, {405}, {408f}, {432}, {699} + \item Inhaltsverzeichnis, {32}, {63}, {76}, {128} + \item inline mode, {404} + \item Inlinemodus, {221} + \item Integral, {438} + \item Integralsymbol, {448} + \item Integrationsvariable, {414} + \item interline spacing, {405} + \item Internetadresse, {84} + \item IPA, {72} + \item Irisch, {67} + \item Isländisch, {67}, {76} + \item ISO 8859-1, {67} + \item ISO 8859-15, {67} + \item ISO 8859-2, {67} + \item ISO 8859-3, {67} + \item ISO 8859-4, {67} + \item ISO-Image, {14} + \item ISO~216, {91} + \item italic, {86} + \item Italic-Korrektur, {88} + \item Italienisch, {76}, {80} + \item Items, {413} + \item IUPAC, {814} + +\indexspace +\textbf{K} +\nopagebreak[4] + \item Kapitel, {62}, {76} + \item Kapitelanfang, {62} + \item Katalanisch, {67} + \item Kettenbruch, {430} + \item Kile, {36} + \item Klammer, {394} + \item Klammerhöhe, {452} + \item Klammerpaar, {427} + \item Klammersymbole, {394} + \item Knoten, {775} + \item Kochsche Schneeflocke, {778} + \item Kodierung, {38}, {67} + \item Kodierung + \subitem -\,ascii, {67} + \item Kolumnentitel, {121}, {126} + \item \KOMAScript , {59ff}, {93} + \item Komma, {248} + \item Kommutative Diagramme, {448} + \item Konventionen, {213} + \item Kopfzeile, {62}, {119}, {222} + \item Kopf\/linie, {62} + \item kritische Edition, {208} + \item Kroatisch, {67}, {76}, {80} + \item Kursivkorrektur, {88} + +\indexspace +\textbf{L} +\nopagebreak[4] + \item Label, {181}, {245}, {387}, {626} + \item largesymbols, {396} + \item \LaTeX -Editor, {29} + \item Latin-1, {68} + \item Laufweite, {596} + \item Layout, {9}, {377}, {618} + \item Leerzeichen, {866} + \item Legende, {350} + \item Leibniz Universität Hannover, {583} + \item Lettisch, {67} + \item Liedtexte, {145} + \item Ligaturen, {89} + \item Linie, {219}, {230} + \item Linie + \subitem -\,farbig, {217} + \subitem -\,horizontal, {216}, {230} + \subitem -\,vertikal, {216}, {223}, {230} + \item Linksbündig, {223} + \item Linux, {13} + \item list of tables, {256} + \item Litauisch, {67} + \item Logdatei, {59}, {880} + \item Logfile, {883} + \item lokal, {864} + \item \nxLPack {longtable} + \subitem -\,Tabellenüberschrift, {259} + \subitem -\,Tabellenunterschrift, {259} + \item lot, {256} + \item LR-Box, {173} + +\indexspace +\textbf{M} +\nopagebreak[4] + \item Mac OS~X, {13}, {67} + \item Mac\TeX , {13} + \item Makefile, {9} + \item Makro, {848} + \item Makronamen, {414} + \item Maltesisch, {67} + \item Marginalie, {157} + \item Marke, {387} + \item math shift, {869} + \item Mathematikmodus, {411} + \item Mathematiksatz, {85} + \item Mathopen-Symbol, {396} + \item Matrix, {227}, {383}, {405f}, {426}, {449} + \item Maßeinheit, {711}, {859f} + \item Maßzahl, {859} + \item Mediävalziffern, {595} + \item Metronyme, {564} + \item Mikrotypografie, {7} + \item MiK\TeX , {13}, {21}, {23} + \item MiK\TeX + \subitem -\,Paketmanager, {21} + \item Minimalbeispiel, {888} + \item Minuskelziffern, {595} + \item MLA, {586} + \item mm, {859} + \item Modulo, {433} + \item Monospaceschrift, {64} + \item moving argument, {321} + \item \texttt {mu}, {399} + \item mu, {432}, {444}, {860} + \item multiply defined labels, {258} + \item \nxLenv {multirow}-Zelle, {268} + +\indexspace +\textbf{N} +\nopagebreak[4] + \item Navigationsleiste, {33}, {616}, {619} + \item Navigator, {33} + \item NEJM, {585} + \item Neunerteilung, {103} + \item Niederländisch, {67}, {76}, {80} + \item Niedersorbisch, {76} + \item Norwegisch, {67}, {76} + \item Null, {247} + \item Nummerierung, {63} + \item numwidth, {476} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Onlinequelle, {561} + \item OpenOffice, {35} + \item OpenType, {12}, {72}, {601} + \item Operator, {378}, {400}, {408}, {414}, {449} + \item Operator-Symbol, {408} + \item Operatorname, {408} + \item option clash, {871} + \item optischer Randausgleich, {163} + \item Overfull box, {883} + \item Overlay, {621} + \item Overlays, {631} + \item Overlayspezifikation, {627} + +\indexspace +\textbf{P} +\nopagebreak[4] + \item \protect \nxLnotation {p}-Spalte, {271} + \item p-Spalte, {268} + \item Page Coded Language, {750} + \item Paginierung, {115} + \item Papierbreite, {96} + \item Papierformat, {62}, {91}, {96} + \item Papiergröße, {96} + \item Papierhöhe, {96} + \item Parabel, {770} + \item Patronyme, {564} + \item pc, {860} + \item PDF/A, {189} + \item pdfe\TeX , {11} + \item pdf\TeX , {11}, {13} + \item Pfade, {31} + \item Pfeil, {443} + \item Phantom, {389} + \item Polnisch, {67}, {76}, {80} + \item Portugiesisch, {67}, {76}, {80} + \item PostScript, {750} + \item Präambel, {51}, {53f}, {210}, {871} + \item Produkt, {393}, {438} + \item programmiert, {6} + \item Projekt, {32}, {38}, {210} + \item pro\TeX t, {22} + \item pt, {860} + \item Punkt, {248} + \item Punkte, {405}, {428} + \item px, {860} + +\indexspace +\textbf{Q} +\nopagebreak[4] + \item Quadratwurzel, {393} + \item Querformat, {96} + \item Querverweis, {212} + +\indexspace +\textbf{R} +\nopagebreak[4] + \item \protect \nxLnotation {r}-Spalte, {271} + \item Radikand, {432} + \item Rahmenfarbe, {389} + \item Randbemerkung, {157} + \item Rechtsbündig, {223} + \item Rechtschreibprüfung, {35}, {40}, {47} + \item Referenz, {387}, {437} + \item Referenzieren, {245} + \item Rekursion, {865} + \item Relationssymbol, {380} + \item RGB, {674} + \item robust, {377f} + \item Roman-Zeichensatz, {399} + \item root, {14} + \item rubber length, {860} + \item Rücksetzbefehl, {385} + \item Rücksetzschalter, {385} + \item Rumänisch, {67}, {76} + \item Russisch, {76}, {80} + +\indexspace +\textbf{S} +\nopagebreak[4] + \item Satzprogramm, {6} + \item Satzspiegel, {91}, {94}, {103} + \item Satzspiegelberechnung, {103} + \item Schmutztitel, {115} + \item Schneidemarken, {60} + \item Schnittmarken, {110} + \item Schnittpunkt, {722} + \item Schreibmaschinenschrift, {64} + \item Schrift + \subitem -\,Breite, {64} + \subitem -\,fett, {411}, {451} + \subitem -\,Gewicht, {87} + \subitem -\,Größe, {412} + \subitem -\,Höhe, {64} + \subitem -\,Laufweite, {87} + \subitem -\,Serifen, {85} + \subitem -\,Stil, {378} + \subitem -\,Tiefe, {64} + \subitem -\,Warnung, {883} + \item Schriftattribut, {660} + \item Schrifteinbindung, {9} + \item Schriftfamilie, {85}, {442}, {595} + \item Schriftgröße, {63}, {87}, {404} + \item Schriftkodierung, {9}, {54}, {70} + \item Schriftstärke, {87} + \item Schriftstil, {404} + \item Schrittweite, {428} + \item Schusterjunge, {103} + \item Schwedisch, {67}, {76}, {80} + \item scriptwriting, {459} + \item Seitenbeschreibungssprache, {750} + \item Seitenstil, {117}, {122} + \item Seitenumbruch, {252} + \item Seitenverhältnis, {621} + \item Seitenvorschub, {62} + \item Serbisch, {76}, {80} + \item Serienattribut, {596} + \item Serifenschrift, {85} + \item shape, {86} + \item shorthand, {78} + \item sidebar, {619} + \item Sigel, {561} + \item Silbentrennung, {149} + \item skip, {58}, {860} + \item skip register, {860f} + \item Skriptsprache, {13} + \item slanted, {86} + \item Slowakisch, {67}, {80} + \item Slowenisch, {67}, {80} + \item Solaris, {13} + \item Sortierung, {247}, {489} + \item sp, {860} + \item Spalten, {62}, {428} + \item Spaltenabstand, {215}, {274} + \item Spaltenanzahl, {428} + \item Spaltenbreite, {290} + \item Spaltendefinition, {214}, {217}, {222}, {228} + \item Spaltendeklaration, {224} + \item Spaltenfarbe, {236} + \item Spaltentyp, {222}, {229}, {268}, {274}, {290} + \item Spaltenzwischenraum, {290} + \item Spanisch, {67}, {76}, {80} + \item Sprachauswahl, {9} + \item SQL-Datenbank, {247} + \item Standardsprache, {76} + \item Sternversion, {215} + \item Subscript, {378}, {393}, {409} + \item Sumatra-PDF, {23} + \item Summe, {393}, {438} + \item Superscript, {378}, {409} + \item Symbol, {400} + \item Symbol + \subitem -\,gestockt, {411} + \item Syntax, {214} + \item Systemadministrator, {14} + \item Systemmeldung, {883} + +\indexspace +\textbf{T} +\nopagebreak[4] + \item Tabelle, {309f} + \item Tabelle + \subitem -\,Breite, {214}, {289} + \subitem -\,Farbe, {273} + \subitem -\,gerahmt, {224} + \subitem -\,geschachtelt, {268} + \subitem -\,Kopf, {222} + \item Tabellenbeschriftung, {62} + \item Tabellenbreite, {215} + \item Tabellenkalkulation, {282} + \item Tabellenüberschrift + \subitem -\,\nxLPack {longtable}, {259} + \item Tabellenunterschrift + \item Tabellenverzeichnis, {310}, {475} + \item {\ttfamily tabular} Env., \idxbf{214--218} + \item Tagebuchnotation, {561} + \item Tcheschisch, {80} + \item TDS, {172}, {872} + \item Teilungsverhältnis, {62} + \item Template, {657} + \item \TeX -Collection, {13} + \item \TeXLive, {3}, {13--21}, {23}, {25f}, {31}, {512}, {542}, {590}, {610}, {766}, {855}, {870}, {872ff}, {877ff}, {890} + \item \TeX maker, {29} + \item \TeX nicCenter, {31}, {35}, {38} + \item \TeX Shop, {23} + \item \TeX Studio, {23} + \item Text, {398} + \item Textanteil, {309} + \item Textkörper, {51}, {53}, {871} + \item Textmodus, {411}, {450} + \item Textschrift, {411} + \item Textverarbeitung, {6} + \item Textverarbeitungsprogramm, {7} + \item \TeX works, {23} + \item Titel, {54}, {413} + \item Titelkopf, {658} + \item TOC, {128} + \item Tortendiagramm, {244}, {746} + \item Transparenz, {631} + \item Trennalgorithmus, {75} + \item Trennlinie, {221} + \item Trennregeln, {77} + \item Trennung, {222} + \item Tridiagonalmatrix, {428} + \item TrueType, {12}, {72}, {601} + \item Tschechisch, {67}, {76} + \item Türkisch, {67}, {76}, {80} + \item Type"~1, {12} + \item Type-3, {70} + \item Typewriterschrift, {64} + \item Typografie, {213} + +\indexspace +\textbf{U} +\nopagebreak[4] + \item Überschriftenformat, {77} + \item Übersetzung, {207} + \item Ukrainisch, {76}, {80} + \item Umbruch, {7} + \item Umbruchmöglichkeit, {252} + \item Umgebung, {848} + \item Umgebungsvariable, {14} + \item Umkodierung, {38} + \item Ungarisch, {67}, {76}, {80} + \item Unicode, {11} + \item Unsichtbarkeit, {631} + \item Untergleichung, {437}, {454} + \item Unterstrich, {449} + \item Updatemanager, {18} + \item URL, {84}, {190} + \item USB-Stick, {879} + \item UTF-16, {189} + \item UTF-8, {38}, {67} + +\indexspace +\textbf{V} +\nopagebreak[4] + \item Variable, {414} + \item Vektor, {407}, {448} + \item Vektorschrift, {54}, {71}, {85} + \item Verbatim-Modus, {654} + \item vertikale Linien, {223} + \item Verzeichnisse, {63} + \item Viewer, {31f} + \item Vollbildmodus, {639} + \item Vordergrundfarbe, {658} + +\indexspace +\textbf{W} +\nopagebreak[4] + \item Waisenkind, {103} + \item Warnung, {883} + \item Wickelfalz, {832} + \item Wiederholungsfaktor, {215} + \item Windows, {13}, {21} + \item Windows 1250, {67} + \item Windows 1252, {67} + \item Windows 1257, {67} + \item Witwe, {102} + \item Wörterbuch, {40} + \item Worttrennung, {143}, {223} + \item Wortzwischenraum, {165} + \item Wurzel, {431} + \item Wurzelexponent, {432} + +\indexspace +\textbf{X} +\nopagebreak[4] + \item X-Spalte, {290} + \item Xem\TeX , {13} + +\indexspace +\textbf{Z} +\nopagebreak[4] + \item Zahlenkolonnen, {247} + \item Zähler, {383f}, {387}, {862} + \item Zählung, {267} + \item Zeichen (aktives), {408} + \item Zeichensatzbefehle, {87} + \item Zeile + \subitem -\,Abstand, {234} + \subitem -\,Breite, {289} + \subitem -\,Farbe, {236} + \subitem -\,Höhe, {219} + \subitem -\,Tiefe, {220} + \subitem -\,Vorschub, {269} + \subitem -\,Zähler, {230} + \item Zeilenabstand, {56} + \item Zeilenhöhe, {378} + \item Zeilenmodus, {376--380}, {391}, {404} + \item Zeilenumbruch, {380} + \item Zellenfarbe, {236} + \item Zentrieren, {141} + \item Zickzackfalz, {832} + \item Zufallszahlen, {448} + \item Zusammenfassung, {63} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/buch.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.pdf Binary files differnew file mode 100644 index 00000000000..67bfb3d1913 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/buch.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.tex new file mode 100644 index 00000000000..8369a1fc634 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/buch.tex @@ -0,0 +1,19 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{makeidx} +\usepackage{dtk-logos} + +%\newcommand\doublequote{"{}} +\let\nxLnotation\texttt +\let\nxLPack\texttt +\let\nxLenv\texttt +\let\nxLkeyword\texttt +\let\idxbf\textbf +\def\idxtextClasses{Dokumentenklasse} +\begin{document} + +\printindex +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.idx new file mode 100644 index 00000000000..128eb26d697 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.idx @@ -0,0 +1,187 @@ +\indexentry{Märtyrer|hyperpage}{1} +\indexentry{erzählt|hyperpage}{1} +\indexentry{Östereich|hyperpage}{1} +\indexentry{Auto|hyperindexformat{\textbf}}{1} +\indexentry{seiner|hyperpage}{1} +\indexentry{Ansprache|hyperpage}{2} +\indexentry{mahnte|hyperpage}{2} +\indexentry{er|hyperpage}{2} +\indexentry{zu|hyperpage}{3} +\indexentry{mehr|hyperpage}{3} +\indexentry{Gelassenheit|hyperpage}{4} +\indexentry{Gleichzeitig|hyperpage}{4} +\indexentry{warnte|hyperpage}{4} +\indexentry{er|hyperindexformat{\seealso{foo}}}{4} +\indexentry{Minderheiten|hyperpage}{5} +\indexentry{und|hyperpage}{5} +\indexentry{Volksvertreter|hyperpage}{6} +\indexentry{zum|hyperpage}{7} +\indexentry{Feindbild|hyperpage}{7} +\indexentry{zu|hyperpage}{8} +\indexentry{machen.|hyperpage}{8} +\indexentry{Obwohl|hyperpage}{8} +\indexentry{es|hyperpage}{8} +\indexentry{Deutschland|hyperpage}{8} +\indexentry{gut|hyperpage}{9} +\indexentry{gehe|hyperpage}{9} +\indexentry{dominiere|hyperpage}{9} +\indexentry{der|(hyperpage}{9} +\indexentry{Pessimismus.|hyperpage}{10} +\indexentry{Hilfe|hyperpage}{10} +\indexentry{für|hyperpage}{10} +\indexentry{Flüchtlinge|hyperpage}{11} +\indexentry{und|hyperpage}{11} +\indexentry{andere|hyperpage}{12} +\indexentry{Migranten|hyperpage}{12} +\indexentry{sei|hyperpage}{12} +\indexentry{wichtig|hyperpage}{12} +\indexentry{und|hyperpage}{12} +\indexentry{richtig|hyperpage}{13} +\indexentry{aber|hyperpage}{13} +\indexentry{nicht|hyperpage}{14} +\indexentry{unbegrenzt|hyperpage}{14} +\indexentry{möglich.|hyperpage}{14} +\indexentry{Deshalb|hyperpage}{14} +\indexentry{müsse|hyperpage}{14} +\indexentry{man|hyperpage}{14} +\indexentry{lernen|hyperpage}{14} +\indexentry{mit|hyperpage}{14} +\indexentry{dem|hyperpage}{14} +\indexentry{Nicht-Perfekten|hyperpage}{14} +\indexentry{zu|hyperpage}{14} +\indexentry{leben.|hyperpage}{14} +\indexentry{Wer|hyperpage}{14} +\indexentry{das|hyperpage}{15} +\indexentry{Perfekte|hyperpage}{15} +\indexentry{anstrebt|hyperpage}{15} +\indexentry{endet|hyperpage}{15} +\indexentry{in|hyperpage}{15} +\indexentry{der|hyperpage}{15} +\indexentry{Diktatur|hyperpage}{16} +\indexentry{Ägäis|hyperpage}{17} +\indexentry{Überholmanöver|hyperpage}{17} +\indexentry{Während|hyperpage}{17} +\indexentry{Ägäis|hyperpage}{18} +\indexentry{der|hyperpage}{18} +\indexentry{Ägäis|hyperpage}{19} +\indexentry{Festakt|hyperpage}{19} +\indexentry{sich|hyperpage}{19} +\indexentry{nach|hyperpage}{19} +\indexentry{etwa|hyperpage}{19} +\indexentry{anderthalb|hyperpage}{19} +\indexentry{Stunden|hyperpage}{19} +\indexentry{in|hyperpage}{19} +\indexentry{der|hyperpage}{19} +\indexentry{Ägäis|hyperpage}{20} +\indexentry{Staatsoper|hyperpage}{20} +\indexentry{dem|hyperpage}{21} +\indexentry{Ende|hyperpage}{21} +\indexentry{neigte|hyperpage}{21} +\indexentry{versammelten|hyperpage}{21} +\indexentry{sich|hyperpage}{21} +\indexentry{etwa|hyperpage}{21} +\indexentry{zeitgleich|hyperpage}{21} +\indexentry{die|hyperpage}{21} +\indexentry{ersten|hyperpage}{21} +\indexentry{Teilnehmer|hyperpage}{21} +\indexentry{einer|hyperpage}{22} +\indexentry{rechten|hyperpage}{23} +\indexentry{Kundgebung|hyperpage}{23} +\indexentry{wenige|hyperpage}{23} +\indexentry{Kilometer|hyperpage}{23} +\indexentry{weiter|hyperpage}{24} +\indexentry{am|hyperpage}{25} +\indexentry{Europaplatz.|hyperpage}{25} +\indexentry{Aufgerufen|hyperpage}{25} +\indexentry{hatte|hyperpage}{25} +\indexentry{das|hyperpage}{25} +\indexentry{Bündnis|hyperpage}{25} +\indexentry{Wir|hyperpage}{25} +\indexentry{für|hyperpage}{26} +\indexentry{Deutschland|hyperpage}{27} +\indexentry{zu|hyperpage}{28} +\indexentry{der|hyperpage}{28} +\indexentry{Demonstration|hyperpage}{29} +\indexentry{mit|hyperpage}{29} +\indexentry{dem|hyperpage}{29} +\indexentry{Motto|hyperpage}{29} +\indexentry{Tag|hyperpage}{29} +\indexentry{der|hyperpage}{29} +\indexentry{Nation.|hyperpage}{30} +\indexentry{Beobachtern|hyperpage}{30} +\indexentry{zufolge|hyperpage}{30} +\indexentry{gaben|hyperpage}{30} +\indexentry{sich|hyperpage}{30} +\indexentry{zahlreiche|hyperpage}{30} +\indexentry{Teilnehmer|hyperpage}{30} +\indexentry{durch|hyperpage}{31} +\indexentry{einschlägige|hyperpage}{31} +\indexentry{Szenecodes|hyperpage}{31} +\indexentry{als|hyperpage}{31} +\indexentry{Neonazis|hyperpage}{31} +\indexentry{zu|hyperpage}{31} +\indexentry{erkennen|hyperpage}{31} +\indexentry{N|hyperpage}{31} +\indexentry{Angaben|hyperpage}{31} +\indexentry{der|)hyperpage}{31} +\indexentry{Polizei|hyperpage}{32} +\indexentry{haben|hyperpage}{32} +\indexentry{sich|hyperpage}{32} +\indexentry{mehr|hyperpage}{32} +\indexentry{als|hyperpage}{33} +\indexentry{tausend|hyperpage}{33} +\indexentry{Menschen|hyperpage}{34} +\indexentry{der|hyperpage}{34} +\indexentry{Demonstration|hyperpage}{35} +\indexentry{angeschlossen|hyperpage}{35} +\indexentry{haben.|hyperpage}{35} +\indexentry{Sie|hyperpage}{35} +\indexentry{haben|hyperpage}{35} +\indexentry{demnach|hyperpage}{35} +\indexentry{Plakate|hyperpage}{35} +\indexentry{und|hyperpage}{35} +\indexentry{Flaggen|hyperpage}{36} +\indexentry{dabei|hyperpage}{36} +\indexentry{gehabt|hyperpage}{36} +\indexentry{jedoch|hyperpage}{36} +\indexentry{keine|hyperpage}{36} +\indexentry{illegalen|hyperpage}{36} +\indexentry{Symbole|hyperpage}{36} +\indexentry{verwendet|hyperpage}{36} +\indexentry{sagte|hyperpage}{36} +\indexentry{ein|hyperpage}{36} +\indexentry{Sprecher|hyperpage}{36} +\indexentry{der|hyperpage}{37} +\indexentry{Polizei|hyperpage}{38} +\indexentry{Zwischenfällen|hyperpage}{38} +\indexentry{sei|hyperpage}{38} +\indexentry{es|hyperpage}{38} +\indexentry{demnach|hyperpage}{38} +\indexentry{zunächst|hyperpage}{38} +\indexentry{nicht|hyperpage}{38} +\indexentry{gekommen.|hyperpage}{38} +\indexentry{Woher|hyperpage}{38} +\indexentry{die|hyperpage}{39} +\indexentry{überwiegend|hyperpage}{39} +\indexentry{jungen|hyperpage}{40} +\indexentry{Männer|hyperpage}{40} +\indexentry{die|hyperpage}{41} +\indexentry{an|hyperpage}{41} +\indexentry{der|hyperpage}{41} +\indexentry{Kundgebung|hyperpage}{42} +\indexentry{teilgenommen|hyperpage}{42} +\indexentry{haben|hyperpage}{42} +\indexentry{angereist|hyperpage}{42} +\indexentry{sind|hyperpage}{42} +\indexentry{ist|hyperpage}{43} +\indexentry{unklar.|hyperpage}{43} +\indexentry{Im|hyperpage}{43} +\indexentry{Netz|hyperpage}{43} +\indexentry{wird|hyperpage}{43} +\indexentry{allerdings|hyperpage}{44} +\indexentry{wieder|hyperpage}{44} +\indexentry{über|hyperpage}{45} +\indexentry{den|hyperpage}{46} +\indexentry{braunen|hyperpage}{46} +\indexentry{Osten|hyperpage}{46} +\indexentry{gelästert|hyperpage}{46} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.ind new file mode 100644 index 00000000000..6916f4d0875 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.ind @@ -0,0 +1,233 @@ + +\begin{theindex} + +\indexspace +\textbf{A} +\nopagebreak[4] + \item aber, \hyperpage{13} + \item Ägäis, \hyperpage{17--20} + \item allerdings, \hyperpage{44} + \item als, \hyperpage{31}, \hyperpage{33} + \item am, \hyperpage{25} + \item an, \hyperpage{41} + \item andere, \hyperpage{12} + \item anderthalb, \hyperpage{19} + \item Angaben, \hyperpage{31} + \item angereist, \hyperpage{42} + \item angeschlossen, \hyperpage{35} + \item Ansprache, \hyperpage{2} + \item anstrebt, \hyperpage{15} + \item Aufgerufen, \hyperpage{25} + \item Auto, \hyperindexformat{\textbf}{1} + +\indexspace +\textbf{B} +\nopagebreak[4] + \item Beobachtern, \hyperpage{30} + \item braunen, \hyperpage{46} + \item Bündnis, \hyperpage{25} + +\indexspace +\textbf{D} +\nopagebreak[4] + \item dabei, \hyperpage{36} + \item das, \hyperpage{15}, \hyperpage{25} + \item dem, \hyperpage{14}, \hyperpage{21}, \hyperpage{29} + \item demnach, \hyperpage{35}, \hyperpage{38} + \item Demonstration, \hyperpage{29}, \hyperpage{35} + \item den, \hyperpage{46} + \item der, \hyperpage{9--31}, \hyperpage{15}, \hyperpage{18\nohyperpage{f}}, \hyperpage{28\nohyperpage{f}}, \hyperpage{34}, \hyperpage{37}, \hyperpage{41} + \item Deshalb, \hyperpage{14} + \item Deutschland, \hyperpage{8}, \hyperpage{27} + \item die, \hyperpage{21}, \hyperpage{39}, \hyperpage{41} + \item Diktatur, \hyperpage{16} + \item dominiere, \hyperpage{9} + \item durch, \hyperpage{31} + +\indexspace +\textbf{E} +\nopagebreak[4] + \item ein, \hyperpage{36} + \item einer, \hyperpage{22} + \item einschlägige, \hyperpage{31} + \item Ende, \hyperpage{21} + \item endet, \hyperpage{15} + \item er, \hyperpage{2}, \hyperindexformat{\seealso{foo}}{4} + \item erkennen, \hyperpage{31} + \item ersten, \hyperpage{21} + \item erzählt, \hyperpage{1} + \item es, \hyperpage{8}, \hyperpage{38} + \item etwa, \hyperpage{19}, \hyperpage{21} + \item Europaplatz., \hyperpage{25} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item Feindbild, \hyperpage{7} + \item Festakt, \hyperpage{19} + \item Flaggen, \hyperpage{36} + \item Flüchtlinge, \hyperpage{11} + \item für, \hyperpage{10}, \hyperpage{26} + +\indexspace +\textbf{G} +\nopagebreak[4] + \item gaben, \hyperpage{30} + \item gehabt, \hyperpage{36} + \item gehe, \hyperpage{9} + \item gekommen., \hyperpage{38} + \item Gelassenheit, \hyperpage{4} + \item gelästert, \hyperpage{46} + \item Gleichzeitig, \hyperpage{4} + \item gut, \hyperpage{9} + +\indexspace +\textbf{H} +\nopagebreak[4] + \item haben, \hyperpage{32}, \hyperpage{35}, \hyperpage{42} + \item haben., \hyperpage{35} + \item hatte, \hyperpage{25} + \item Hilfe, \hyperpage{10} + +\indexspace +\textbf{I} +\nopagebreak[4] + \item illegalen, \hyperpage{36} + \item Im, \hyperpage{43} + \item in, \hyperpage{15}, \hyperpage{19} + \item ist, \hyperpage{43} + +\indexspace +\textbf{J} +\nopagebreak[4] + \item jedoch, \hyperpage{36} + \item jungen, \hyperpage{40} + +\indexspace +\textbf{K} +\nopagebreak[4] + \item keine, \hyperpage{36} + \item Kilometer, \hyperpage{23} + \item Kundgebung, \hyperpage{23}, \hyperpage{42} + +\indexspace +\textbf{L} +\nopagebreak[4] + \item leben., \hyperpage{14} + \item lernen, \hyperpage{14} + +\indexspace +\textbf{M} +\nopagebreak[4] + \item machen., \hyperpage{8} + \item mahnte, \hyperpage{2} + \item man, \hyperpage{14} + \item Männer, \hyperpage{40} + \item Märtyrer, \hyperpage{1} + \item mehr, \hyperpage{3}, \hyperpage{32} + \item Menschen, \hyperpage{34} + \item Migranten, \hyperpage{12} + \item Minderheiten, \hyperpage{5} + \item mit, \hyperpage{14}, \hyperpage{29} + \item möglich., \hyperpage{14} + \item Motto, \hyperpage{29} + \item müsse, \hyperpage{14} + +\indexspace +\textbf{N} +\nopagebreak[4] + \item N, \hyperpage{31} + \item nach, \hyperpage{19} + \item Nation., \hyperpage{30} + \item neigte, \hyperpage{21} + \item Neonazis, \hyperpage{31} + \item Netz, \hyperpage{43} + \item nicht, \hyperpage{14}, \hyperpage{38} + \item Nicht-Perfekten, \hyperpage{14} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Obwohl, \hyperpage{8} + \item Osten, \hyperpage{46} + \item Östereich, \hyperpage{1} + +\indexspace +\textbf{P} +\nopagebreak[4] + \item Perfekte, \hyperpage{15} + \item Pessimismus., \hyperpage{10} + \item Plakate, \hyperpage{35} + \item Polizei, \hyperpage{32}, \hyperpage{38} + +\indexspace +\textbf{R} +\nopagebreak[4] + \item rechten, \hyperpage{23} + \item richtig, \hyperpage{13} + +\indexspace +\textbf{S} +\nopagebreak[4] + \item sagte, \hyperpage{36} + \item sei, \hyperpage{12}, \hyperpage{38} + \item seiner, \hyperpage{1} + \item sich, \hyperpage{19}, \hyperpage{21}, \hyperpage{30}, \hyperpage{32} + \item Sie, \hyperpage{35} + \item sind, \hyperpage{42} + \item Sprecher, \hyperpage{36} + \item Staatsoper, \hyperpage{20} + \item Stunden, \hyperpage{19} + \item Symbole, \hyperpage{36} + \item Szenecodes, \hyperpage{31} + +\indexspace +\textbf{T} +\nopagebreak[4] + \item Tag, \hyperpage{29} + \item tausend, \hyperpage{33} + \item teilgenommen, \hyperpage{42} + \item Teilnehmer, \hyperpage{21}, \hyperpage{30} + +\indexspace +\textbf{U} +\nopagebreak[4] + \item über, \hyperpage{45} + \item Überholmanöver, \hyperpage{17} + \item überwiegend, \hyperpage{39} + \item unbegrenzt, \hyperpage{14} + \item und, \hyperpage{5}, \hyperpage{11\nohyperpage{f}}, \hyperpage{35} + \item unklar., \hyperpage{43} + +\indexspace +\textbf{V} +\nopagebreak[4] + \item versammelten, \hyperpage{21} + \item verwendet, \hyperpage{36} + \item Volksvertreter, \hyperpage{6} + +\indexspace +\textbf{W} +\nopagebreak[4] + \item Während, \hyperpage{17} + \item warnte, \hyperpage{4} + \item weiter, \hyperpage{24} + \item wenige, \hyperpage{23} + \item Wer, \hyperpage{14} + \item wichtig, \hyperpage{12} + \item wieder, \hyperpage{44} + \item Wir, \hyperpage{25} + \item wird, \hyperpage{43} + \item Woher, \hyperpage{38} + +\indexspace +\textbf{Z} +\nopagebreak[4] + \item zahlreiche, \hyperpage{30} + \item zeitgleich, \hyperpage{21} + \item zu, \hyperpage{3}, \hyperpage{8}, \hyperpage{14}, \hyperpage{28}, \hyperpage{31} + \item zufolge, \hyperpage{30} + \item zum, \hyperpage{7} + \item zunächst, \hyperpage{38} + \item Zwischenfällen, \hyperpage{38} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.pdf Binary files differnew file mode 100644 index 00000000000..4feaf3b3fab --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.tex new file mode 100644 index 00000000000..757dcbcfe0b --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo-hyperref.tex @@ -0,0 +1,13 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage[colorlinks]{hyperref} +\usepackage{makeidx} + +\begin{document} + +\printindex + +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.idx new file mode 100644 index 00000000000..6353966364a --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.idx @@ -0,0 +1,206 @@ +\indexentry{Märtyrer}{1} +\indexentry{erzählt}{1} +\indexentry{Österreich|(}{1} +\indexentry{Auto|textbf}{1} +\indexentry{Ärger}{1} +\indexentry{Automobil|fbox}{1} +\indexentry{4711}{1} +\indexentry{\textbackslash }{1} +\indexentry{seiner}{1} +\indexentry{Ansprache}{2} +\indexentry{mahnte}{2} +\indexentry{er}{2} +\indexentry{zu}{3} +\indexentry{mehr}{3} +\indexentry{Gelassenheit}{4} +\indexentry{Gleichzeitig}{4} +\indexentry{warnte}{4} +\indexentry{er}{4} +\indexentry{Minderheiten}{5} +\indexentry{und}{5} +\indexentry{Volksvertreter}{6} +\indexentry{zum}{7} +\indexentry{Feindbild}{7} +\indexentry{zu}{8} +\indexentry{machen.}{8} +\indexentry{Obwohl}{8} +\indexentry{es}{8} +\indexentry{Deutschland}{8} +\indexentry{gut}{9} +\indexentry{gehe}{9} +\indexentry{dominiere}{9} +\indexentry{der|(}{9} +\indexentry{Pessimismus.}{10} +\indexentry{Hilfe}{10} +\indexentry{für}{10} +\indexentry{Flüchtlinge}{11} +\indexentry{und}{11} +\indexentry{andere}{12} +\indexentry{Migranten}{12} +\indexentry{sei}{12} +\indexentry{wichtig}{12} +\indexentry{und}{12} +\indexentry{richtig}{13} +\indexentry{aber}{13} +\indexentry{nicht}{14} +\indexentry{unbegrenzt}{14} +\indexentry{möglich.}{14} +\indexentry{Deshalb}{14} +\indexentry{müsse}{14} +\indexentry{man}{14} +\indexentry{lernen}{14} +\indexentry{mit}{14} +\indexentry{dem}{14} +\indexentry{Nicht-Perfekten}{14} +\indexentry{zu}{14} +\indexentry{leben.}{14} +\indexentry{Wer}{14} +\indexentry{das}{15} +\indexentry{Perfekte}{15} +\indexentry{anstrebt}{15} +\indexentry{endet}{15} +\indexentry{in}{15} +\indexentry{der}{15} +\indexentry{Diktatur!Afrika!Nigeria}{16} +\indexentry{Frust}{17} +\indexentry{Ärgerlich}{17} +\indexentry{Diktatur!Afrika!Kongo}{17} +\indexentry{Ägäis}{17} +\indexentry{sich}{17} +\indexentry{Überholmanöver}{17} +\clearpage +\indexentry{Während|see{Was\_auch\_immmer}}{17} +\indexentry{sich}{18} +\indexentry{Ägäis|seealso{Griechenland}}{18} +\indexentry{der}{18} +\indexentry{Ägäis}{19} +\indexentry{Festakt}{19} +\indexentry{sich}{19} +\indexentry{nach}{19} +\indexentry{etwa}{19} +\indexentry{anderthalb}{19} +\indexentry{Stunden}{19} +\indexentry{in}{19} +\indexentry{der}{19} +\indexentry{Ägäis}{20} +\indexentry{Staatsoper}{20} +\indexentry{dem}{21} +\indexentry{Ende}{21} +\indexentry{neigte}{21} +\indexentry{versammelten}{21} +\indexentry{sich}{21} +\indexentry{etwa}{21} +\indexentry{zeitgleich}{21} +\indexentry{die}{21} +\indexentry{ersten}{21} +\indexentry{Teilnehmer}{21} +\indexentry{einer}{22} +\indexentry{rechten}{23} +\indexentry{Kundgebung}{23} +\indexentry{wenige}{23} +\indexentry{Kilometer}{23} +\indexentry{weiter}{24} +\indexentry{am}{25} +\indexentry{Europaplatz.}{25} +\indexentry{Aufgerufen}{25} +\indexentry{hatte}{25} +\indexentry{das}{25} +\indexentry{Bündnis}{25} +\indexentry{Wir}{25} +\indexentry{für}{26} +\indexentry{Deutschland}{27} +\indexentry{zu}{28} +\indexentry{der}{28} +\indexentry{Demonstration}{29} +\indexentry{mit}{29} +\indexentry{dem}{29} +\indexentry{Diktatur!Regierungsform}{29} +\indexentry{Motto}{29} +\indexentry{Tag}{29} +\indexentry{der}{29} +\indexentry{Nation.}{30} +\indexentry{Beobachtern}{30} +\indexentry{zufolge}{30} +\indexentry{gaben}{30} +\indexentry{sich}{30} +\indexentry{zahlreiche}{30} +\indexentry{Teilnehmer}{30} +\indexentry{durch}{31} +\indexentry{einschlägige}{31} +\indexentry{Szenecodes}{31} +\indexentry{als}{31} +\indexentry{Neonazis}{31} +\indexentry{zu}{31} +\indexentry{erkennen}{31} +\indexentry{wieder}{31} +\indexentry{Nach}{31} +\indexentry{Ärger}{31} +\indexentry{Angaben}{31} +\indexentry{der|)}{31} +\indexentry{Polizei}{32} +\indexentry{haben}{32} +\indexentry{sich}{32} +\indexentry{mehr}{32} +\indexentry{als}{33} +\indexentry{tausend}{33} +\indexentry{Menschen}{34} +\indexentry{der}{34} +\indexentry{Demonstration}{35} +\indexentry{angeschlossen}{35} +\indexentry{haben.}{35} +\indexentry{Sie}{35} +\indexentry{haben}{35} +\indexentry{demnach}{35} +\indexentry{Plakate}{35} +\indexentry{und}{35} +\indexentry{Flaggen}{36} +\indexentry{dabei}{36} +\indexentry{gehabt}{36} +\indexentry{jedoch}{36} +\indexentry{keine}{36} +\indexentry{illegalen}{36} +\indexentry{Symbole}{36} +\indexentry{verwendet}{36} +\indexentry{sagte}{36} +\indexentry{ein}{36} +\indexentry{Sprecher}{36} +\indexentry{der}{37} +\indexentry{Polizei}{38} +\indexentry{überholt}{38} +\indexentry{Ärgernis}{38} +\indexentry{Österreich|)textbf}{38} +\indexentry{Diktatur!Asien!Nordvietnam}{38} +\indexentry{Zwischenfällen}{38} +\indexentry{sei}{38} +\indexentry{es}{38} +\indexentry{demnach}{38} +\indexentry{zunächst}{38} +\indexentry{nicht}{38} +\indexentry{gekommen.}{38} +\indexentry{Woher}{38} +\indexentry{die}{39} +\indexentry{überwiegend}{39} +\indexentry{jungen}{40} +\indexentry{Männer}{40} +\indexentry{die}{41} +\indexentry{an}{41} +\indexentry{der}{41} +\indexentry{Kundgebung}{42} +\indexentry{teilgenommen}{42} +\indexentry{haben}{42} +\indexentry{angereist}{42} +\indexentry{sind}{42} +\indexentry{ist}{43} +\indexentry{unklar.}{43} +\indexentry{Im}{43} +\indexentry{Netz}{43} +\indexentry{wird}{43} +\indexentry{allerdings}{44} +\indexentry{wieder}{44} +\indexentry{wieder}{45} +\indexentry{über}{45} +\indexentry{wieder}{46} +\indexentry{den}{46} +\indexentry{braunen}{46} +\indexentry{Osten}{46} +\indexentry{gelästert}{46} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.ind new file mode 100644 index 00000000000..9f1484209fc --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.ind @@ -0,0 +1,254 @@ + +\begin{theindex} +\textbf{Symbole} +\nopagebreak[4] + \item \textbackslash , {1} + +\indexspace +\textbf{Zahlen} +\nopagebreak[4] + \item 4711, {1} + +\indexspace +\textbf{A} +\nopagebreak[4] + \item aber, {13} + \item Ägäis, {17}, \seealso{Griechenland}{18}, {19f} + \item allerdings, {44} + \item als, {31}, {33} + \item am, {25} + \item an, {41} + \item andere, {12} + \item anderthalb, {19} + \item Angaben, {31} + \item angereist, {42} + \item angeschlossen, {35} + \item Ansprache, {2} + \item anstrebt, {15} + \item Ärger, {1}, {31} + \item Ärgerlich, {17} + \item Ärgernis, {38} + \item Aufgerufen, {25} + \item Auto, \textbf{1} + \item Automobil, \fbox{1} + +\indexspace +\textbf{B} +\nopagebreak[4] + \item Beobachtern, {30} + \item braunen, {46} + \item Bündnis, {25} + +\indexspace +\textbf{D} +\nopagebreak[4] + \item dabei, {36} + \item das, {15}, {25} + \item dem, {14}, {21}, {29} + \item demnach, {35}, {38} + \item Demonstration, {29}, {35} + \item den, {46} + \item der, {9--31}, {15}, {18f}, {28f}, {34}, {37}, {41} + \item Deshalb, {14} + \item Deutschland, {8}, {27} + \item die, {21}, {39}, {41} + \item Diktatur + \subitem -\,Afrika, {17} + \subsubitem --\,Kongo, {17} + \subsubitem --\,Nigeria, {16} + \subitem -\,Asien, {38} + \subsubitem --\,Nordvietnam, {38} + \subitem -\,Regierungsform, {29} + \item dominiere, {9} + \item durch, {31} + +\indexspace +\textbf{E} +\nopagebreak[4] + \item ein, {36} + \item einer, {22} + \item einschlägige, {31} + \item Ende, {21} + \item endet, {15} + \item er, {2}, {4} + \item erkennen, {31} + \item ersten, {21} + \item erzählt, {1} + \item es, {8}, {38} + \item etwa, {19}, {21} + \item Europaplatz., {25} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item Feindbild, {7} + \item Festakt, {19} + \item Flaggen, {36} + \item Flüchtlinge, {11} + \item Frust, {17} + \item für, {10}, {26} + +\indexspace +\textbf{G} +\nopagebreak[4] + \item gaben, {30} + \item gehabt, {36} + \item gehe, {9} + \item gekommen., {38} + \item Gelassenheit, {4} + \item gelästert, {46} + \item Gleichzeitig, {4} + \item gut, {9} + +\indexspace +\textbf{H} +\nopagebreak[4] + \item haben, {32}, {35}, {42} + \item haben., {35} + \item hatte, {25} + \item Hilfe, {10} + +\indexspace +\textbf{I} +\nopagebreak[4] + \item illegalen, {36} + \item Im, {43} + \item in, {15}, {19} + \item ist, {43} + +\indexspace +\textbf{J} +\nopagebreak[4] + \item jedoch, {36} + \item jungen, {40} + +\indexspace +\textbf{K} +\nopagebreak[4] + \item keine, {36} + \item Kilometer, {23} + \item Kundgebung, {23}, {42} + +\indexspace +\textbf{L} +\nopagebreak[4] + \item leben., {14} + \item lernen, {14} + +\indexspace +\textbf{M} +\nopagebreak[4] + \item machen., {8} + \item mahnte, {2} + \item man, {14} + \item Männer, {40} + \item Märtyrer, {1} + \item mehr, {3}, {32} + \item Menschen, {34} + \item Migranten, {12} + \item Minderheiten, {5} + \item mit, {14}, {29} + \item möglich., {14} + \item Motto, {29} + \item müsse, {14} + +\indexspace +\textbf{N} +\nopagebreak[4] + \item nach, {19} + \item Nach, {31} + \item Nation., {30} + \item neigte, {21} + \item Neonazis, {31} + \item Netz, {43} + \item nicht, {14}, {38} + \item Nicht-Perfekten, {14} + +\indexspace +\textbf{O} +\nopagebreak[4] + \item Obwohl, {8} + \item Osten, {46} + \item Österreich, \textbf{1--38} + +\indexspace +\textbf{P} +\nopagebreak[4] + \item Perfekte, {15} + \item Pessimismus., {10} + \item Plakate, {35} + \item Polizei, {32}, {38} + +\indexspace +\textbf{R} +\nopagebreak[4] + \item rechten, {23} + \item richtig, {13} + +\indexspace +\textbf{S} +\nopagebreak[4] + \item sagte, {36} + \item sei, {12}, {38} + \item seiner, {1} + \item sich, {17ff}, {21}, {30}, {32} + \item Sie, {35} + \item sind, {42} + \item Sprecher, {36} + \item Staatsoper, {20} + \item Stunden, {19} + \item Symbole, {36} + \item Szenecodes, {31} + +\indexspace +\textbf{T} +\nopagebreak[4] + \item Tag, {29} + \item tausend, {33} + \item teilgenommen, {42} + \item Teilnehmer, {21}, {30} + +\indexspace +\textbf{U} +\nopagebreak[4] + \item über, {45} + \item Überholmanöver, {17} + \clearpage + \item überholt, {38} + \item überwiegend, {39} + \item unbegrenzt, {14} + \item und, {5}, {11f}, {35} + \item unklar., {43} + +\indexspace +\textbf{V} +\nopagebreak[4] + \item versammelten, {21} + \item verwendet, {36} + \item Volksvertreter, {6} + +\indexspace +\textbf{W} +\nopagebreak[4] + \item Während, \see{Was\_auch\_immmer}{17} + \item warnte, {4} + \item weiter, {24} + \item wenige, {23} + \item Wer, {14} + \item wichtig, {12} + \item wieder, {31}, {44ff} + \item Wir, {25} + \item wird, {43} + \item Woher, {38} + +\indexspace +\textbf{Z} +\nopagebreak[4] + \item zahlreiche, {30} + \item zeitgleich, {21} + \item zu, {3}, {8}, {14}, {28}, {31} + \item zufolge, {30} + \item zum, {7} + \item zunächst, {38} + \item Zwischenfällen, {38} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.pdf Binary files differnew file mode 100644 index 00000000000..4b988c7d400 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.tex new file mode 100644 index 00000000000..fcdccab7654 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo.tex @@ -0,0 +1,56 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{hvindex} +\usepackage{makeidx} + +\let\idxtextClasses\texttt + +\makeindex +\begin{document} +Ein \Index{Märtyrer} \Index{erzählt} Österreich\index{Österreich|(}\index{Auto|textbf} \Index{Ärger} + +\index{Automobil|fbox} +\Index{4711} \Index{\textbackslash} +In \Index{seiner}\newpage \Index{Ansprache} \Index{mahnte} \Index{er}\newpage \Index{zu} \Index{mehr}\newpage \Index{Gelassenheit}. +\Index{Gleichzeitig} \Index{warnte} \Index{er}\newpage, \Index{Minderheiten} \Index{und}\newpage \Index{Volksvertreter}\newpage \Index{zum} +\Index{Feindbild}\newpage \Index{zu} \Index{machen.} \Index{Obwohl} \Index{es} \Index{Deutschland}\newpage \Index{gut} \Index{gehe} +\Index{dominiere} \Index{der|(}\newpage \Index{Pessimismus.} \Index{Hilfe} \Index{für}\newpage \Index{Flüchtlinge} \Index{und}\newpage \Index{andere} +\Index{Migranten} \Index{sei} \Index{wichtig} \Index{und}\newpage \Index{richtig} \Index{aber}\newpage \Index{nicht} \Index{unbegrenzt} +\Index{möglich.} \Index{Deshalb} \Index{müsse} \Index{man} \Index{lernen} \Index{mit} \Index{dem} \Index{Nicht-Perfekten} +\Index{zu} \Index{leben.} \Index{Wer}\newpage \Index{das} \Index{Perfekte} \Index{anstrebt} \Index{endet} \Index{in} \Index{der}\newpage +\index{Diktatur!Afrika!Nigeria}.\newpage \Index{Ärger!Frust} \Index{Ärgerlich} \index{Diktatur!Afrika!Kongo} +\Index{Ägäis} \Index{sich} \Index{Überholmanöver} +\makeatletter +\write\@indexfile{\string\clearpage} +\makeatother + +\Index{Während|see{Was\_auch\_immmer}}\newpage\Index{sich} \Index{Ägäis|seealso{Griechenland}} \Index{der}\newpage \Index{Ägäis}\Index{Festakt} \Index{sich} +\Index{nach} \Index{etwa} \Index{anderthalb} \Index{Stunden} +\Index{in} \Index{der}\newpage \Index{Ägäis}\Index{Staatsoper}\newpage \Index{dem} \Index{Ende} \Index{neigte} \Index{versammelten} \Index{sich} +\Index{etwa} \Index{zeitgleich} \Index{die} \Index{ersten} \Index{Teilnehmer}\newpage \Index{einer}\newpage \Index{rechten} \Index{Kundgebung} +\Index{wenige} \Index{Kilometer}\newpage \Index{weiter}\newpage \Index{am} \Index{Europaplatz.} \Index{Aufgerufen} \Index{hatte} \Index{das} +\Index{Bündnis} \Index{Wir}\newpage \Index{für}\newpage \Index{Deutschland}\newpage \Index{zu} \Index{der}\newpage \Index{Demonstration} \Index{mit} +\Index{dem}\index{Diktatur!Regierungsform} \Index{Motto} \Index{Tag} \Index{der}\newpage \Index{Nation.} \Index{Beobachtern} \Index{zufolge} \Index{gaben} +\Index{sich} \Index{zahlreiche} \Index{Teilnehmer}\newpage \Index{durch} \Index{einschlägige} \Index{Szenecodes} \Index{als} +\Index{Neonazis} \Index{zu} \Index{erkennen}. \Index{wieder} +\Index{Nach} \Index{Ärger} \Index{Angaben} \Index{der|)}\newpage \Index{Polizei} \Index{haben} \Index{sich} \Index{mehr}\newpage \Index{als} \Index{tausend}\newpage +\Index{Menschen} \Index{der}\newpage \Index{Demonstration} \Index{angeschlossen} \Index{haben.} \Index{Sie} \Index{haben} +\Index{demnach} \Index{Plakate} \Index{und}\newpage \Index{Flaggen} \Index{dabei} \Index{gehabt} \Index{jedoch} \Index{keine} +\Index{illegalen} \Index{Symbole} \Index{verwendet} \Index{sagte} \Index{ein} \Index{Sprecher}\newpage \Index{der}\newpage \Index{Polizei}. +\Index{überholt} +\Index{Ärgernis} Österreich\index{Österreich|)textbf} +\index{Diktatur!Asien!Nordvietnam}Zu \Index{Zwischenfällen} \Index{sei} \Index{es} \Index{demnach} \Index{zunächst} \Index{nicht} \Index{gekommen.} \Index{Woher}\newpage +\Index{die} \Index{überwiegend}\newpage \Index{jungen} \Index{Männer}\newpage \Index{die} \Index{an} \Index{der}\newpage \Index{Kundgebung} +\Index{teilgenommen} \Index{haben} \Index{angereist} \Index{sind}\newpage \Index{ist} \Index{unklar.} \Index{Im} \Index{Netz} +\Index{wird}\newpage + \Index{allerdings} \Index{wieder}\newpage\Index{wieder} \Index{über}\newpage\Index{wieder} +\Index{den} \Index{braunen} \Index{Osten} \Index{gelästert}. + + +\printindex + + +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.idx new file mode 100644 index 00000000000..a1b2354471c --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.idx @@ -0,0 +1,5 @@ +\indexentry{foo}{1} +\indexentry{foo|see{bar}}{2} +\indexentry{foo|textit}{1} +\indexentry{foo|textbf}{3} +\indexentry{foo}{3} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind new file mode 100644 index 00000000000..724acd96540 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo2.ind @@ -0,0 +1,8 @@ + +\begin{theindex} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item foo, {1}, \textit{1}, \see{bar}{2}, {3}, \textbf{3} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.idx b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.idx new file mode 100644 index 00000000000..b9afc364edd --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.idx @@ -0,0 +1,5 @@ +\indexentry{foo}{1} +\indexentry{foo}{2} +\indexentry{foo|textit}{2} +\indexentry{foo|textbf}{3} +\indexentry{foo}{4} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.ind b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.ind new file mode 100644 index 00000000000..327fe951e92 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.ind @@ -0,0 +1,8 @@ + +\begin{theindex} + +\indexspace +\textbf{F} +\nopagebreak[4] + \item foo, {1f}, \textit{2}, \textbf{3}, {4} +\end{theindex} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.pdf b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.pdf Binary files differnew file mode 100644 index 00000000000..7c7c67b6818 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.tex b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.tex new file mode 100644 index 00000000000..81dd869e796 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/demo3.tex @@ -0,0 +1,26 @@ +\documentclass[paper=a4,parskip=half-,ngerman]{scrartcl} +\usepackage{eurosym} +\usepackage[silent]{fontspec} +\usepackage{libertinus-otf} +\usepackage{babel} +\usepackage{hvindex} +\usepackage{makeidx} + +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + + +\let\idxtextClasses\texttt + +\makeindex +\begin{document} +Ein foo\index{foo} \newpage und \index{foo} ein foo\index{foo|textit} \newpage und foo\index{foo|textbf} \newpage und foo\index{foo} + +\printindex + + +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/xindex/tests/runTests.sh b/Master/texmf-dist/doc/lualatex/xindex/tests/runTests.sh new file mode 100755 index 00000000000..68f6c7850a8 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/tests/runTests.sh @@ -0,0 +1,35 @@ +#!/bin/sh +echo "buch" +xindex buch > /dev/null +lualatex buch > /dev/null + +echo "demo" +lualatex demo > /dev/null +xindex -l de demo > /dev/null +lualatex demo > /dev/null + +echo "demo2" +xindex demo2 > /dev/null + +echo "demo3" +lualatex demo3 > /dev/null +xindex -l de demo3 > /dev/null +lualatex demo3 > /dev/null + +echo "demo-hyperref" +xindex demo-hyperref > /dev/null +lualatex demo-hyperref > /dev/null + +echo "HADW" +xindex -l de -c HAdW HADW > /dev/null +lualatex HADW > /dev/null + +echo "Umlaute" +xindex -l de Umlaute > /dev/null +lualatex Umlaute > /dev/null + +echo "Umlaute2" +xindex -l de -c DIN2 Umlaute2 > /dev/null +lualatex Umlaute2 > /dev/null + +rm -fr *.aux *.log *.ilg *.out
\ No newline at end of file diff --git a/Master/texmf-dist/doc/lualatex/xindex/unicode-category.lua b/Master/texmf-dist/doc/lualatex/xindex/unicode-category.lua new file mode 100644 index 00000000000..d3f6c5b84a9 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/unicode-category.lua @@ -0,0 +1,3118 @@ +return { + singles = { + [0x00020] = "Zs", + [0x00024] = "Sc", + [0x00028] = "Ps", + [0x00029] = "Pe", + [0x0002A] = "Po", + [0x0002B] = "Sm", + [0x0002C] = "Po", + [0x0002D] = "Pd", + [0x0005B] = "Ps", + [0x0005C] = "Po", + [0x0005D] = "Pe", + [0x0005E] = "Sk", + [0x0005F] = "Pc", + [0x00060] = "Sk", + [0x0007B] = "Ps", + [0x0007C] = "Sm", + [0x0007D] = "Pe", + [0x0007E] = "Sm", + [0x000A0] = "Zs", + [0x000A1] = "Po", + [0x000A6] = "So", + [0x000A7] = "Po", + [0x000A8] = "Sk", + [0x000A9] = "So", + [0x000AA] = "Lo", + [0x000AB] = "Pi", + [0x000AC] = "Sm", + [0x000AD] = "Cf", + [0x000AE] = "So", + [0x000AF] = "Sk", + [0x000B0] = "So", + [0x000B1] = "Sm", + [0x000B4] = "Sk", + [0x000B5] = "Ll", + [0x000B8] = "Sk", + [0x000B9] = "No", + [0x000BA] = "Lo", + [0x000BB] = "Pf", + [0x000BF] = "Po", + [0x000D7] = "Sm", + [0x000F7] = "Sm", + [0x00100] = "Lu", + [0x00101] = "Ll", + [0x00102] = "Lu", + [0x00103] = "Ll", + [0x00104] = "Lu", + [0x00105] = "Ll", + [0x00106] = "Lu", + [0x00107] = "Ll", + [0x00108] = "Lu", + [0x00109] = "Ll", + [0x0010A] = "Lu", + [0x0010B] = "Ll", + [0x0010C] = "Lu", + [0x0010D] = "Ll", + [0x0010E] = "Lu", + [0x0010F] = "Ll", + [0x00110] = "Lu", + [0x00111] = "Ll", + [0x00112] = "Lu", + [0x00113] = "Ll", + [0x00114] = "Lu", + [0x00115] = "Ll", + [0x00116] = "Lu", + [0x00117] = "Ll", + [0x00118] = "Lu", + [0x00119] = "Ll", + [0x0011A] = "Lu", + [0x0011B] = "Ll", + [0x0011C] = "Lu", + [0x0011D] = "Ll", + [0x0011E] = "Lu", + [0x0011F] = "Ll", + [0x00120] = "Lu", + [0x00121] = "Ll", + [0x00122] = "Lu", + [0x00123] = "Ll", + [0x00124] = "Lu", + [0x00125] = "Ll", + [0x00126] = "Lu", + [0x00127] = "Ll", + [0x00128] = "Lu", + [0x00129] = "Ll", + [0x0012A] = "Lu", + [0x0012B] = "Ll", + [0x0012C] = "Lu", + [0x0012D] = "Ll", + [0x0012E] = "Lu", + [0x0012F] = "Ll", + [0x00130] = "Lu", + [0x00131] = "Ll", + [0x00132] = "Lu", + [0x00133] = "Ll", + [0x00134] = "Lu", + [0x00135] = "Ll", + [0x00136] = "Lu", + [0x00139] = "Lu", + [0x0013A] = "Ll", + [0x0013B] = "Lu", + [0x0013C] = "Ll", + [0x0013D] = "Lu", + [0x0013E] = "Ll", + [0x0013F] = "Lu", + [0x00140] = "Ll", + [0x00141] = "Lu", + [0x00142] = "Ll", + [0x00143] = "Lu", + [0x00144] = "Ll", + [0x00145] = "Lu", + [0x00146] = "Ll", + [0x00147] = "Lu", + [0x0014A] = "Lu", + [0x0014B] = "Ll", + [0x0014C] = "Lu", + [0x0014D] = "Ll", + [0x0014E] = "Lu", + [0x0014F] = "Ll", + [0x00150] = "Lu", + [0x00151] = "Ll", + [0x00152] = "Lu", + [0x00153] = "Ll", + [0x00154] = "Lu", + [0x00155] = "Ll", + [0x00156] = "Lu", + [0x00157] = "Ll", + [0x00158] = "Lu", + [0x00159] = "Ll", + [0x0015A] = "Lu", + [0x0015B] = "Ll", + [0x0015C] = "Lu", + [0x0015D] = "Ll", + [0x0015E] = "Lu", + [0x0015F] = "Ll", + [0x00160] = "Lu", + [0x00161] = "Ll", + [0x00162] = "Lu", + [0x00163] = "Ll", + [0x00164] = "Lu", + [0x00165] = "Ll", + [0x00166] = "Lu", + [0x00167] = "Ll", + [0x00168] = "Lu", + [0x00169] = "Ll", + [0x0016A] = "Lu", + [0x0016B] = "Ll", + [0x0016C] = "Lu", + [0x0016D] = "Ll", + [0x0016E] = "Lu", + [0x0016F] = "Ll", + [0x00170] = "Lu", + [0x00171] = "Ll", + [0x00172] = "Lu", + [0x00173] = "Ll", + [0x00174] = "Lu", + [0x00175] = "Ll", + [0x00176] = "Lu", + [0x00177] = "Ll", + [0x0017A] = "Ll", + [0x0017B] = "Lu", + [0x0017C] = "Ll", + [0x0017D] = "Lu", + [0x00183] = "Ll", + [0x00184] = "Lu", + [0x00185] = "Ll", + [0x00188] = "Ll", + [0x00192] = "Ll", + [0x00195] = "Ll", + [0x0019E] = "Ll", + [0x001A1] = "Ll", + [0x001A2] = "Lu", + [0x001A3] = "Ll", + [0x001A4] = "Lu", + [0x001A5] = "Ll", + [0x001A8] = "Ll", + [0x001A9] = "Lu", + [0x001AC] = "Lu", + [0x001AD] = "Ll", + [0x001B0] = "Ll", + [0x001B4] = "Ll", + [0x001B5] = "Lu", + [0x001B6] = "Ll", + [0x001BB] = "Lo", + [0x001BC] = "Lu", + [0x001C4] = "Lu", + [0x001C5] = "Lt", + [0x001C6] = "Ll", + [0x001C7] = "Lu", + [0x001C8] = "Lt", + [0x001C9] = "Ll", + [0x001CA] = "Lu", + [0x001CB] = "Lt", + [0x001CC] = "Ll", + [0x001CD] = "Lu", + [0x001CE] = "Ll", + [0x001CF] = "Lu", + [0x001D0] = "Ll", + [0x001D1] = "Lu", + [0x001D2] = "Ll", + [0x001D3] = "Lu", + [0x001D4] = "Ll", + [0x001D5] = "Lu", + [0x001D6] = "Ll", + [0x001D7] = "Lu", + [0x001D8] = "Ll", + [0x001D9] = "Lu", + [0x001DA] = "Ll", + [0x001DB] = "Lu", + [0x001DE] = "Lu", + [0x001DF] = "Ll", + [0x001E0] = "Lu", + [0x001E1] = "Ll", + [0x001E2] = "Lu", + [0x001E3] = "Ll", + [0x001E4] = "Lu", + [0x001E5] = "Ll", + [0x001E6] = "Lu", + [0x001E7] = "Ll", + [0x001E8] = "Lu", + [0x001E9] = "Ll", + [0x001EA] = "Lu", + [0x001EB] = "Ll", + [0x001EC] = "Lu", + [0x001ED] = "Ll", + [0x001EE] = "Lu", + [0x001F1] = "Lu", + [0x001F2] = "Lt", + [0x001F3] = "Ll", + [0x001F4] = "Lu", + [0x001F5] = "Ll", + [0x001F9] = "Ll", + [0x001FA] = "Lu", + [0x001FB] = "Ll", + [0x001FC] = "Lu", + [0x001FD] = "Ll", + [0x001FE] = "Lu", + [0x001FF] = "Ll", + [0x00200] = "Lu", + [0x00201] = "Ll", + [0x00202] = "Lu", + [0x00203] = "Ll", + [0x00204] = "Lu", + [0x00205] = "Ll", + [0x00206] = "Lu", + [0x00207] = "Ll", + [0x00208] = "Lu", + [0x00209] = "Ll", + [0x0020A] = "Lu", + [0x0020B] = "Ll", + [0x0020C] = "Lu", + [0x0020D] = "Ll", + [0x0020E] = "Lu", + [0x0020F] = "Ll", + [0x00210] = "Lu", + [0x00211] = "Ll", + [0x00212] = "Lu", + [0x00213] = "Ll", + [0x00214] = "Lu", + [0x00215] = "Ll", + [0x00216] = "Lu", + [0x00217] = "Ll", + [0x00218] = "Lu", + [0x00219] = "Ll", + [0x0021A] = "Lu", + [0x0021B] = "Ll", + [0x0021C] = "Lu", + [0x0021D] = "Ll", + [0x0021E] = "Lu", + [0x0021F] = "Ll", + [0x00220] = "Lu", + [0x00221] = "Ll", + [0x00222] = "Lu", + [0x00223] = "Ll", + [0x00224] = "Lu", + [0x00225] = "Ll", + [0x00226] = "Lu", + [0x00227] = "Ll", + [0x00228] = "Lu", + [0x00229] = "Ll", + [0x0022A] = "Lu", + [0x0022B] = "Ll", + [0x0022C] = "Lu", + [0x0022D] = "Ll", + [0x0022E] = "Lu", + [0x0022F] = "Ll", + [0x00230] = "Lu", + [0x00231] = "Ll", + [0x00232] = "Lu", + [0x0023C] = "Ll", + [0x00241] = "Lu", + [0x00242] = "Ll", + [0x00247] = "Ll", + [0x00248] = "Lu", + [0x00249] = "Ll", + [0x0024A] = "Lu", + [0x0024B] = "Ll", + [0x0024C] = "Lu", + [0x0024D] = "Ll", + [0x0024E] = "Lu", + [0x00294] = "Lo", + [0x002EC] = "Lm", + [0x002ED] = "Sk", + [0x002EE] = "Lm", + [0x00370] = "Lu", + [0x00371] = "Ll", + [0x00372] = "Lu", + [0x00373] = "Ll", + [0x00374] = "Lm", + [0x00375] = "Sk", + [0x00376] = "Lu", + [0x00377] = "Ll", + [0x0037A] = "Lm", + [0x0037E] = "Po", + [0x0037F] = "Lu", + [0x00386] = "Lu", + [0x00387] = "Po", + [0x0038C] = "Lu", + [0x00390] = "Ll", + [0x003CF] = "Lu", + [0x003D8] = "Lu", + [0x003D9] = "Ll", + [0x003DA] = "Lu", + [0x003DB] = "Ll", + [0x003DC] = "Lu", + [0x003DD] = "Ll", + [0x003DE] = "Lu", + [0x003DF] = "Ll", + [0x003E0] = "Lu", + [0x003E1] = "Ll", + [0x003E2] = "Lu", + [0x003E3] = "Ll", + [0x003E4] = "Lu", + [0x003E5] = "Ll", + [0x003E6] = "Lu", + [0x003E7] = "Ll", + [0x003E8] = "Lu", + [0x003E9] = "Ll", + [0x003EA] = "Lu", + [0x003EB] = "Ll", + [0x003EC] = "Lu", + [0x003ED] = "Ll", + [0x003EE] = "Lu", + [0x003F4] = "Lu", + [0x003F5] = "Ll", + [0x003F6] = "Sm", + [0x003F7] = "Lu", + [0x003F8] = "Ll", + [0x00460] = "Lu", + [0x00461] = "Ll", + [0x00462] = "Lu", + [0x00463] = "Ll", + [0x00464] = "Lu", + [0x00465] = "Ll", + [0x00466] = "Lu", + [0x00467] = "Ll", + [0x00468] = "Lu", + [0x00469] = "Ll", + [0x0046A] = "Lu", + [0x0046B] = "Ll", + [0x0046C] = "Lu", + [0x0046D] = "Ll", + [0x0046E] = "Lu", + [0x0046F] = "Ll", + [0x00470] = "Lu", + [0x00471] = "Ll", + [0x00472] = "Lu", + [0x00473] = "Ll", + [0x00474] = "Lu", + [0x00475] = "Ll", + [0x00476] = "Lu", + [0x00477] = "Ll", + [0x00478] = "Lu", + [0x00479] = "Ll", + [0x0047A] = "Lu", + [0x0047B] = "Ll", + [0x0047C] = "Lu", + [0x0047D] = "Ll", + [0x0047E] = "Lu", + [0x0047F] = "Ll", + [0x00480] = "Lu", + [0x00481] = "Ll", + [0x00482] = "So", + [0x0048A] = "Lu", + [0x0048B] = "Ll", + [0x0048C] = "Lu", + [0x0048D] = "Ll", + [0x0048E] = "Lu", + [0x0048F] = "Ll", + [0x00490] = "Lu", + [0x00491] = "Ll", + [0x00492] = "Lu", + [0x00493] = "Ll", + [0x00494] = "Lu", + [0x00495] = "Ll", + [0x00496] = "Lu", + [0x00497] = "Ll", + [0x00498] = "Lu", + [0x00499] = "Ll", + [0x0049A] = "Lu", + [0x0049B] = "Ll", + [0x0049C] = "Lu", + [0x0049D] = "Ll", + [0x0049E] = "Lu", + [0x0049F] = "Ll", + [0x004A0] = "Lu", + [0x004A1] = "Ll", + [0x004A2] = "Lu", + [0x004A3] = "Ll", + [0x004A4] = "Lu", + [0x004A5] = "Ll", + [0x004A6] = "Lu", + [0x004A7] = "Ll", + [0x004A8] = "Lu", + [0x004A9] = "Ll", + [0x004AA] = "Lu", + [0x004AB] = "Ll", + [0x004AC] = "Lu", + [0x004AD] = "Ll", + [0x004AE] = "Lu", + [0x004AF] = "Ll", + [0x004B0] = "Lu", + [0x004B1] = "Ll", + [0x004B2] = "Lu", + [0x004B3] = "Ll", + [0x004B4] = "Lu", + [0x004B5] = "Ll", + [0x004B6] = "Lu", + [0x004B7] = "Ll", + [0x004B8] = "Lu", + [0x004B9] = "Ll", + [0x004BA] = "Lu", + [0x004BB] = "Ll", + [0x004BC] = "Lu", + [0x004BD] = "Ll", + [0x004BE] = "Lu", + [0x004BF] = "Ll", + [0x004C2] = "Ll", + [0x004C3] = "Lu", + [0x004C4] = "Ll", + [0x004C5] = "Lu", + [0x004C6] = "Ll", + [0x004C7] = "Lu", + [0x004C8] = "Ll", + [0x004C9] = "Lu", + [0x004CA] = "Ll", + [0x004CB] = "Lu", + [0x004CC] = "Ll", + [0x004CD] = "Lu", + [0x004D0] = "Lu", + [0x004D1] = "Ll", + [0x004D2] = "Lu", + [0x004D3] = "Ll", + [0x004D4] = "Lu", + [0x004D5] = "Ll", + [0x004D6] = "Lu", + [0x004D7] = "Ll", + [0x004D8] = "Lu", + [0x004D9] = "Ll", + [0x004DA] = "Lu", + [0x004DB] = "Ll", + [0x004DC] = "Lu", + [0x004DD] = "Ll", + [0x004DE] = "Lu", + [0x004DF] = "Ll", + [0x004E0] = "Lu", + [0x004E1] = "Ll", + [0x004E2] = "Lu", + [0x004E3] = "Ll", + [0x004E4] = "Lu", + [0x004E5] = "Ll", + [0x004E6] = "Lu", + [0x004E7] = "Ll", + [0x004E8] = "Lu", + [0x004E9] = "Ll", + [0x004EA] = "Lu", + [0x004EB] = "Ll", + [0x004EC] = "Lu", + [0x004ED] = "Ll", + [0x004EE] = "Lu", + [0x004EF] = "Ll", + [0x004F0] = "Lu", + [0x004F1] = "Ll", + [0x004F2] = "Lu", + [0x004F3] = "Ll", + [0x004F4] = "Lu", + [0x004F5] = "Ll", + [0x004F6] = "Lu", + [0x004F7] = "Ll", + [0x004F8] = "Lu", + [0x004F9] = "Ll", + [0x004FA] = "Lu", + [0x004FB] = "Ll", + [0x004FC] = "Lu", + [0x004FD] = "Ll", + [0x004FE] = "Lu", + [0x004FF] = "Ll", + [0x00500] = "Lu", + [0x00501] = "Ll", + [0x00502] = "Lu", + [0x00503] = "Ll", + [0x00504] = "Lu", + [0x00505] = "Ll", + [0x00506] = "Lu", + [0x00507] = "Ll", + [0x00508] = "Lu", + [0x00509] = "Ll", + [0x0050A] = "Lu", + [0x0050B] = "Ll", + [0x0050C] = "Lu", + [0x0050D] = "Ll", + [0x0050E] = "Lu", + [0x0050F] = "Ll", + [0x00510] = "Lu", + [0x00511] = "Ll", + [0x00512] = "Lu", + [0x00513] = "Ll", + [0x00514] = "Lu", + [0x00515] = "Ll", + [0x00516] = "Lu", + [0x00517] = "Ll", + [0x00518] = "Lu", + [0x00519] = "Ll", + [0x0051A] = "Lu", + [0x0051B] = "Ll", + [0x0051C] = "Lu", + [0x0051D] = "Ll", + [0x0051E] = "Lu", + [0x0051F] = "Ll", + [0x00520] = "Lu", + [0x00521] = "Ll", + [0x00522] = "Lu", + [0x00523] = "Ll", + [0x00524] = "Lu", + [0x00525] = "Ll", + [0x00526] = "Lu", + [0x00527] = "Ll", + [0x00528] = "Lu", + [0x00529] = "Ll", + [0x0052A] = "Lu", + [0x0052B] = "Ll", + [0x0052C] = "Lu", + [0x0052D] = "Ll", + [0x0052E] = "Lu", + [0x0052F] = "Ll", + [0x00559] = "Lm", + [0x00589] = "Po", + [0x0058A] = "Pd", + [0x0058F] = "Sc", + [0x005BE] = "Pd", + [0x005BF] = "Mn", + [0x005C0] = "Po", + [0x005C3] = "Po", + [0x005C6] = "Po", + [0x005C7] = "Mn", + [0x0060B] = "Sc", + [0x0061B] = "Po", + [0x0061C] = "Cf", + [0x00640] = "Lm", + [0x00670] = "Mn", + [0x006D4] = "Po", + [0x006D5] = "Lo", + [0x006DD] = "Cf", + [0x006DE] = "So", + [0x006E9] = "So", + [0x006FF] = "Lo", + [0x0070F] = "Cf", + [0x00710] = "Lo", + [0x00711] = "Mn", + [0x007B1] = "Lo", + [0x007F6] = "So", + [0x007FA] = "Lm", + [0x007FD] = "Mn", + [0x0081A] = "Lm", + [0x00824] = "Lm", + [0x00828] = "Lm", + [0x0085E] = "Po", + [0x008E2] = "Cf", + [0x00903] = "Mc", + [0x0093A] = "Mn", + [0x0093B] = "Mc", + [0x0093C] = "Mn", + [0x0093D] = "Lo", + [0x0094D] = "Mn", + [0x00950] = "Lo", + [0x00970] = "Po", + [0x00971] = "Lm", + [0x00981] = "Mn", + [0x009B2] = "Lo", + [0x009BC] = "Mn", + [0x009BD] = "Lo", + [0x009CD] = "Mn", + [0x009CE] = "Lo", + [0x009D7] = "Mc", + [0x009FA] = "So", + [0x009FB] = "Sc", + [0x009FC] = "Lo", + [0x009FD] = "Po", + [0x009FE] = "Mn", + [0x00A03] = "Mc", + [0x00A3C] = "Mn", + [0x00A51] = "Mn", + [0x00A5E] = "Lo", + [0x00A75] = "Mn", + [0x00A76] = "Po", + [0x00A83] = "Mc", + [0x00ABC] = "Mn", + [0x00ABD] = "Lo", + [0x00AC9] = "Mc", + [0x00ACD] = "Mn", + [0x00AD0] = "Lo", + [0x00AF0] = "Po", + [0x00AF1] = "Sc", + [0x00AF9] = "Lo", + [0x00B01] = "Mn", + [0x00B3C] = "Mn", + [0x00B3D] = "Lo", + [0x00B3E] = "Mc", + [0x00B3F] = "Mn", + [0x00B40] = "Mc", + [0x00B4D] = "Mn", + [0x00B56] = "Mn", + [0x00B57] = "Mc", + [0x00B70] = "So", + [0x00B71] = "Lo", + [0x00B82] = "Mn", + [0x00B83] = "Lo", + [0x00B9C] = "Lo", + [0x00BC0] = "Mn", + [0x00BCD] = "Mn", + [0x00BD0] = "Lo", + [0x00BD7] = "Mc", + [0x00BF9] = "Sc", + [0x00BFA] = "So", + [0x00C00] = "Mn", + [0x00C04] = "Mn", + [0x00C3D] = "Lo", + [0x00C7F] = "So", + [0x00C80] = "Lo", + [0x00C81] = "Mn", + [0x00C84] = "Po", + [0x00CBC] = "Mn", + [0x00CBD] = "Lo", + [0x00CBE] = "Mc", + [0x00CBF] = "Mn", + [0x00CC6] = "Mn", + [0x00CDE] = "Lo", + [0x00D3D] = "Lo", + [0x00D4D] = "Mn", + [0x00D4E] = "Lo", + [0x00D4F] = "So", + [0x00D57] = "Mc", + [0x00D79] = "So", + [0x00DBD] = "Lo", + [0x00DCA] = "Mn", + [0x00DD6] = "Mn", + [0x00DF4] = "Po", + [0x00E31] = "Mn", + [0x00E3F] = "Sc", + [0x00E46] = "Lm", + [0x00E4F] = "Po", + [0x00E84] = "Lo", + [0x00E8A] = "Lo", + [0x00E8D] = "Lo", + [0x00EA5] = "Lo", + [0x00EA7] = "Lo", + [0x00EB1] = "Mn", + [0x00EBD] = "Lo", + [0x00EC6] = "Lm", + [0x00F00] = "Lo", + [0x00F13] = "So", + [0x00F14] = "Po", + [0x00F34] = "So", + [0x00F35] = "Mn", + [0x00F36] = "So", + [0x00F37] = "Mn", + [0x00F38] = "So", + [0x00F39] = "Mn", + [0x00F3A] = "Ps", + [0x00F3B] = "Pe", + [0x00F3C] = "Ps", + [0x00F3D] = "Pe", + [0x00F7F] = "Mc", + [0x00F85] = "Po", + [0x00FC6] = "Mn", + [0x01031] = "Mc", + [0x01038] = "Mc", + [0x0103F] = "Lo", + [0x01061] = "Lo", + [0x01082] = "Mn", + [0x0108D] = "Mn", + [0x0108E] = "Lo", + [0x0108F] = "Mc", + [0x0109D] = "Mn", + [0x010C7] = "Lu", + [0x010CD] = "Lu", + [0x010FB] = "Po", + [0x010FC] = "Lm", + [0x01258] = "Lo", + [0x012C0] = "Lo", + [0x01400] = "Pd", + [0x01680] = "Zs", + [0x0169B] = "Ps", + [0x0169C] = "Pe", + [0x017B6] = "Mc", + [0x017C6] = "Mn", + [0x017D7] = "Lm", + [0x017DB] = "Sc", + [0x017DC] = "Lo", + [0x017DD] = "Mn", + [0x01806] = "Pd", + [0x0180E] = "Cf", + [0x01843] = "Lm", + [0x018A9] = "Mn", + [0x018AA] = "Lo", + [0x01932] = "Mn", + [0x01940] = "So", + [0x019DA] = "No", + [0x01A1B] = "Mn", + [0x01A55] = "Mc", + [0x01A56] = "Mn", + [0x01A57] = "Mc", + [0x01A60] = "Mn", + [0x01A61] = "Mc", + [0x01A62] = "Mn", + [0x01A7F] = "Mn", + [0x01AA7] = "Lm", + [0x01ABE] = "Me", + [0x01B04] = "Mc", + [0x01B34] = "Mn", + [0x01B35] = "Mc", + [0x01B3B] = "Mc", + [0x01B3C] = "Mn", + [0x01B42] = "Mn", + [0x01B82] = "Mc", + [0x01BA1] = "Mc", + [0x01BAA] = "Mc", + [0x01BE6] = "Mn", + [0x01BE7] = "Mc", + [0x01BED] = "Mn", + [0x01BEE] = "Mc", + [0x01CD3] = "Po", + [0x01CE1] = "Mc", + [0x01CED] = "Mn", + [0x01CF4] = "Mn", + [0x01CF7] = "Mc", + [0x01D78] = "Lm", + [0x01E00] = "Lu", + [0x01E01] = "Ll", + [0x01E02] = "Lu", + [0x01E03] = "Ll", + [0x01E04] = "Lu", + [0x01E05] = "Ll", + [0x01E06] = "Lu", + [0x01E07] = "Ll", + [0x01E08] = "Lu", + [0x01E09] = "Ll", + [0x01E0A] = "Lu", + [0x01E0B] = "Ll", + [0x01E0C] = "Lu", + [0x01E0D] = "Ll", + [0x01E0E] = "Lu", + [0x01E0F] = "Ll", + [0x01E10] = "Lu", + [0x01E11] = "Ll", + [0x01E12] = "Lu", + [0x01E13] = "Ll", + [0x01E14] = "Lu", + [0x01E15] = "Ll", + [0x01E16] = "Lu", + [0x01E17] = "Ll", + [0x01E18] = "Lu", + [0x01E19] = "Ll", + [0x01E1A] = "Lu", + [0x01E1B] = "Ll", + [0x01E1C] = "Lu", + [0x01E1D] = "Ll", + [0x01E1E] = "Lu", + [0x01E1F] = "Ll", + [0x01E20] = "Lu", + [0x01E21] = "Ll", + [0x01E22] = "Lu", + [0x01E23] = "Ll", + [0x01E24] = "Lu", + [0x01E25] = "Ll", + [0x01E26] = "Lu", + [0x01E27] = "Ll", + [0x01E28] = "Lu", + [0x01E29] = "Ll", + [0x01E2A] = "Lu", + [0x01E2B] = "Ll", + [0x01E2C] = "Lu", + [0x01E2D] = "Ll", + [0x01E2E] = "Lu", + [0x01E2F] = "Ll", + [0x01E30] = "Lu", + [0x01E31] = "Ll", + [0x01E32] = "Lu", + [0x01E33] = "Ll", + [0x01E34] = "Lu", + [0x01E35] = "Ll", + [0x01E36] = "Lu", + [0x01E37] = "Ll", + [0x01E38] = "Lu", + [0x01E39] = "Ll", + [0x01E3A] = "Lu", + [0x01E3B] = "Ll", + [0x01E3C] = "Lu", + [0x01E3D] = "Ll", + [0x01E3E] = "Lu", + [0x01E3F] = "Ll", + [0x01E40] = "Lu", + [0x01E41] = "Ll", + [0x01E42] = "Lu", + [0x01E43] = "Ll", + [0x01E44] = "Lu", + [0x01E45] = "Ll", + [0x01E46] = "Lu", + [0x01E47] = "Ll", + [0x01E48] = "Lu", + [0x01E49] = "Ll", + [0x01E4A] = "Lu", + [0x01E4B] = "Ll", + [0x01E4C] = "Lu", + [0x01E4D] = "Ll", + [0x01E4E] = "Lu", + [0x01E4F] = "Ll", + [0x01E50] = "Lu", + [0x01E51] = "Ll", + [0x01E52] = "Lu", + [0x01E53] = "Ll", + [0x01E54] = "Lu", + [0x01E55] = "Ll", + [0x01E56] = "Lu", + [0x01E57] = "Ll", + [0x01E58] = "Lu", + [0x01E59] = "Ll", + [0x01E5A] = "Lu", + [0x01E5B] = "Ll", + [0x01E5C] = "Lu", + [0x01E5D] = "Ll", + [0x01E5E] = "Lu", + [0x01E5F] = "Ll", + [0x01E60] = "Lu", + [0x01E61] = "Ll", + [0x01E62] = "Lu", + [0x01E63] = "Ll", + [0x01E64] = "Lu", + [0x01E65] = "Ll", + [0x01E66] = "Lu", + [0x01E67] = "Ll", + [0x01E68] = "Lu", + [0x01E69] = "Ll", + [0x01E6A] = "Lu", + [0x01E6B] = "Ll", + [0x01E6C] = "Lu", + [0x01E6D] = "Ll", + [0x01E6E] = "Lu", + [0x01E6F] = "Ll", + [0x01E70] = "Lu", + [0x01E71] = "Ll", + [0x01E72] = "Lu", + [0x01E73] = "Ll", + [0x01E74] = "Lu", + [0x01E75] = "Ll", + [0x01E76] = "Lu", + [0x01E77] = "Ll", + [0x01E78] = "Lu", + [0x01E79] = "Ll", + [0x01E7A] = "Lu", + [0x01E7B] = "Ll", + [0x01E7C] = "Lu", + [0x01E7D] = "Ll", + [0x01E7E] = "Lu", + [0x01E7F] = "Ll", + [0x01E80] = "Lu", + [0x01E81] = "Ll", + [0x01E82] = "Lu", + [0x01E83] = "Ll", + [0x01E84] = "Lu", + [0x01E85] = "Ll", + [0x01E86] = "Lu", + [0x01E87] = "Ll", + [0x01E88] = "Lu", + [0x01E89] = "Ll", + [0x01E8A] = "Lu", + [0x01E8B] = "Ll", + [0x01E8C] = "Lu", + [0x01E8D] = "Ll", + [0x01E8E] = "Lu", + [0x01E8F] = "Ll", + [0x01E90] = "Lu", + [0x01E91] = "Ll", + [0x01E92] = "Lu", + [0x01E93] = "Ll", + [0x01E94] = "Lu", + [0x01E9E] = "Lu", + [0x01E9F] = "Ll", + [0x01EA0] = "Lu", + [0x01EA1] = "Ll", + [0x01EA2] = "Lu", + [0x01EA3] = "Ll", + [0x01EA4] = "Lu", + [0x01EA5] = "Ll", + [0x01EA6] = "Lu", + [0x01EA7] = "Ll", + [0x01EA8] = "Lu", + [0x01EA9] = "Ll", + [0x01EAA] = "Lu", + [0x01EAB] = "Ll", + [0x01EAC] = "Lu", + [0x01EAD] = "Ll", + [0x01EAE] = "Lu", + [0x01EAF] = "Ll", + [0x01EB0] = "Lu", + [0x01EB1] = "Ll", + [0x01EB2] = "Lu", + [0x01EB3] = "Ll", + [0x01EB4] = "Lu", + [0x01EB5] = "Ll", + [0x01EB6] = "Lu", + [0x01EB7] = "Ll", + [0x01EB8] = "Lu", + [0x01EB9] = "Ll", + [0x01EBA] = "Lu", + [0x01EBB] = "Ll", + [0x01EBC] = "Lu", + [0x01EBD] = "Ll", + [0x01EBE] = "Lu", + [0x01EBF] = "Ll", + [0x01EC0] = "Lu", + [0x01EC1] = "Ll", + [0x01EC2] = "Lu", + [0x01EC3] = "Ll", + [0x01EC4] = "Lu", + [0x01EC5] = "Ll", + [0x01EC6] = "Lu", + [0x01EC7] = "Ll", + [0x01EC8] = "Lu", + [0x01EC9] = "Ll", + [0x01ECA] = "Lu", + [0x01ECB] = "Ll", + [0x01ECC] = "Lu", + [0x01ECD] = "Ll", + [0x01ECE] = "Lu", + [0x01ECF] = "Ll", + [0x01ED0] = "Lu", + [0x01ED1] = "Ll", + [0x01ED2] = "Lu", + [0x01ED3] = "Ll", + [0x01ED4] = "Lu", + [0x01ED5] = "Ll", + [0x01ED6] = "Lu", + [0x01ED7] = "Ll", + [0x01ED8] = "Lu", + [0x01ED9] = "Ll", + [0x01EDA] = "Lu", + [0x01EDB] = "Ll", + [0x01EDC] = "Lu", + [0x01EDD] = "Ll", + [0x01EDE] = "Lu", + [0x01EDF] = "Ll", + [0x01EE0] = "Lu", + [0x01EE1] = "Ll", + [0x01EE2] = "Lu", + [0x01EE3] = "Ll", + [0x01EE4] = "Lu", + [0x01EE5] = "Ll", + [0x01EE6] = "Lu", + [0x01EE7] = "Ll", + [0x01EE8] = "Lu", + [0x01EE9] = "Ll", + [0x01EEA] = "Lu", + [0x01EEB] = "Ll", + [0x01EEC] = "Lu", + [0x01EED] = "Ll", + [0x01EEE] = "Lu", + [0x01EEF] = "Ll", + [0x01EF0] = "Lu", + [0x01EF1] = "Ll", + [0x01EF2] = "Lu", + [0x01EF3] = "Ll", + [0x01EF4] = "Lu", + [0x01EF5] = "Ll", + [0x01EF6] = "Lu", + [0x01EF7] = "Ll", + [0x01EF8] = "Lu", + [0x01EF9] = "Ll", + [0x01EFA] = "Lu", + [0x01EFB] = "Ll", + [0x01EFC] = "Lu", + [0x01EFD] = "Ll", + [0x01EFE] = "Lu", + [0x01F59] = "Lu", + [0x01F5B] = "Lu", + [0x01F5D] = "Lu", + [0x01F5F] = "Lu", + [0x01FBC] = "Lt", + [0x01FBD] = "Sk", + [0x01FBE] = "Ll", + [0x01FCC] = "Lt", + [0x01FFC] = "Lt", + [0x02018] = "Pi", + [0x02019] = "Pf", + [0x0201A] = "Ps", + [0x0201D] = "Pf", + [0x0201E] = "Ps", + [0x0201F] = "Pi", + [0x02028] = "Zl", + [0x02029] = "Zp", + [0x0202F] = "Zs", + [0x02039] = "Pi", + [0x0203A] = "Pf", + [0x02044] = "Sm", + [0x02045] = "Ps", + [0x02046] = "Pe", + [0x02052] = "Sm", + [0x02053] = "Po", + [0x02054] = "Pc", + [0x0205F] = "Zs", + [0x02070] = "No", + [0x02071] = "Lm", + [0x0207D] = "Ps", + [0x0207E] = "Pe", + [0x0207F] = "Lm", + [0x0208D] = "Ps", + [0x0208E] = "Pe", + [0x020E1] = "Mn", + [0x02102] = "Lu", + [0x02107] = "Lu", + [0x0210A] = "Ll", + [0x02113] = "Ll", + [0x02114] = "So", + [0x02115] = "Lu", + [0x02118] = "Sm", + [0x02124] = "Lu", + [0x02125] = "So", + [0x02126] = "Lu", + [0x02127] = "So", + [0x02128] = "Lu", + [0x02129] = "So", + [0x0212E] = "So", + [0x0212F] = "Ll", + [0x02134] = "Ll", + [0x02139] = "Ll", + [0x02145] = "Lu", + [0x0214A] = "So", + [0x0214B] = "Sm", + [0x0214E] = "Ll", + [0x0214F] = "So", + [0x02183] = "Lu", + [0x02184] = "Ll", + [0x02189] = "No", + [0x021A0] = "Sm", + [0x021A3] = "Sm", + [0x021A6] = "Sm", + [0x021AE] = "Sm", + [0x021D2] = "Sm", + [0x021D3] = "So", + [0x021D4] = "Sm", + [0x02308] = "Ps", + [0x02309] = "Pe", + [0x0230A] = "Ps", + [0x0230B] = "Pe", + [0x02329] = "Ps", + [0x0232A] = "Pe", + [0x0237C] = "Sm", + [0x025B7] = "Sm", + [0x025C1] = "Sm", + [0x0266F] = "Sm", + [0x02768] = "Ps", + [0x02769] = "Pe", + [0x0276A] = "Ps", + [0x0276B] = "Pe", + [0x0276C] = "Ps", + [0x0276D] = "Pe", + [0x0276E] = "Ps", + [0x0276F] = "Pe", + [0x02770] = "Ps", + [0x02771] = "Pe", + [0x02772] = "Ps", + [0x02773] = "Pe", + [0x02774] = "Ps", + [0x02775] = "Pe", + [0x027C5] = "Ps", + [0x027C6] = "Pe", + [0x027E6] = "Ps", + [0x027E7] = "Pe", + [0x027E8] = "Ps", + [0x027E9] = "Pe", + [0x027EA] = "Ps", + [0x027EB] = "Pe", + [0x027EC] = "Ps", + [0x027ED] = "Pe", + [0x027EE] = "Ps", + [0x027EF] = "Pe", + [0x02983] = "Ps", + [0x02984] = "Pe", + [0x02985] = "Ps", + [0x02986] = "Pe", + [0x02987] = "Ps", + [0x02988] = "Pe", + [0x02989] = "Ps", + [0x0298A] = "Pe", + [0x0298B] = "Ps", + [0x0298C] = "Pe", + [0x0298D] = "Ps", + [0x0298E] = "Pe", + [0x0298F] = "Ps", + [0x02990] = "Pe", + [0x02991] = "Ps", + [0x02992] = "Pe", + [0x02993] = "Ps", + [0x02994] = "Pe", + [0x02995] = "Ps", + [0x02996] = "Pe", + [0x02997] = "Ps", + [0x02998] = "Pe", + [0x029D8] = "Ps", + [0x029D9] = "Pe", + [0x029DA] = "Ps", + [0x029DB] = "Pe", + [0x029FC] = "Ps", + [0x029FD] = "Pe", + [0x02C60] = "Lu", + [0x02C61] = "Ll", + [0x02C67] = "Lu", + [0x02C68] = "Ll", + [0x02C69] = "Lu", + [0x02C6A] = "Ll", + [0x02C6B] = "Lu", + [0x02C6C] = "Ll", + [0x02C71] = "Ll", + [0x02C72] = "Lu", + [0x02C75] = "Lu", + [0x02C81] = "Ll", + [0x02C82] = "Lu", + [0x02C83] = "Ll", + [0x02C84] = "Lu", + [0x02C85] = "Ll", + [0x02C86] = "Lu", + [0x02C87] = "Ll", + [0x02C88] = "Lu", + [0x02C89] = "Ll", + [0x02C8A] = "Lu", + [0x02C8B] = "Ll", + [0x02C8C] = "Lu", + [0x02C8D] = "Ll", + [0x02C8E] = "Lu", + [0x02C8F] = "Ll", + [0x02C90] = "Lu", + [0x02C91] = "Ll", + [0x02C92] = "Lu", + [0x02C93] = "Ll", + [0x02C94] = "Lu", + [0x02C95] = "Ll", + [0x02C96] = "Lu", + [0x02C97] = "Ll", + [0x02C98] = "Lu", + [0x02C99] = "Ll", + [0x02C9A] = "Lu", + [0x02C9B] = "Ll", + [0x02C9C] = "Lu", + [0x02C9D] = "Ll", + [0x02C9E] = "Lu", + [0x02C9F] = "Ll", + [0x02CA0] = "Lu", + [0x02CA1] = "Ll", + [0x02CA2] = "Lu", + [0x02CA3] = "Ll", + [0x02CA4] = "Lu", + [0x02CA5] = "Ll", + [0x02CA6] = "Lu", + [0x02CA7] = "Ll", + [0x02CA8] = "Lu", + [0x02CA9] = "Ll", + [0x02CAA] = "Lu", + [0x02CAB] = "Ll", + [0x02CAC] = "Lu", + [0x02CAD] = "Ll", + [0x02CAE] = "Lu", + [0x02CAF] = "Ll", + [0x02CB0] = "Lu", + [0x02CB1] = "Ll", + [0x02CB2] = "Lu", + [0x02CB3] = "Ll", + [0x02CB4] = "Lu", + [0x02CB5] = "Ll", + [0x02CB6] = "Lu", + [0x02CB7] = "Ll", + [0x02CB8] = "Lu", + [0x02CB9] = "Ll", + [0x02CBA] = "Lu", + [0x02CBB] = "Ll", + [0x02CBC] = "Lu", + [0x02CBD] = "Ll", + [0x02CBE] = "Lu", + [0x02CBF] = "Ll", + [0x02CC0] = "Lu", + [0x02CC1] = "Ll", + [0x02CC2] = "Lu", + [0x02CC3] = "Ll", + [0x02CC4] = "Lu", + [0x02CC5] = "Ll", + [0x02CC6] = "Lu", + [0x02CC7] = "Ll", + [0x02CC8] = "Lu", + [0x02CC9] = "Ll", + [0x02CCA] = "Lu", + [0x02CCB] = "Ll", + [0x02CCC] = "Lu", + [0x02CCD] = "Ll", + [0x02CCE] = "Lu", + [0x02CCF] = "Ll", + [0x02CD0] = "Lu", + [0x02CD1] = "Ll", + [0x02CD2] = "Lu", + [0x02CD3] = "Ll", + [0x02CD4] = "Lu", + [0x02CD5] = "Ll", + [0x02CD6] = "Lu", + [0x02CD7] = "Ll", + [0x02CD8] = "Lu", + [0x02CD9] = "Ll", + [0x02CDA] = "Lu", + [0x02CDB] = "Ll", + [0x02CDC] = "Lu", + [0x02CDD] = "Ll", + [0x02CDE] = "Lu", + [0x02CDF] = "Ll", + [0x02CE0] = "Lu", + [0x02CE1] = "Ll", + [0x02CE2] = "Lu", + [0x02CEB] = "Lu", + [0x02CEC] = "Ll", + [0x02CED] = "Lu", + [0x02CEE] = "Ll", + [0x02CF2] = "Lu", + [0x02CF3] = "Ll", + [0x02CFD] = "No", + [0x02D27] = "Ll", + [0x02D2D] = "Ll", + [0x02D6F] = "Lm", + [0x02D70] = "Po", + [0x02D7F] = "Mn", + [0x02E02] = "Pi", + [0x02E03] = "Pf", + [0x02E04] = "Pi", + [0x02E05] = "Pf", + [0x02E09] = "Pi", + [0x02E0A] = "Pf", + [0x02E0B] = "Po", + [0x02E0C] = "Pi", + [0x02E0D] = "Pf", + [0x02E17] = "Pd", + [0x02E1A] = "Pd", + [0x02E1B] = "Po", + [0x02E1C] = "Pi", + [0x02E1D] = "Pf", + [0x02E20] = "Pi", + [0x02E21] = "Pf", + [0x02E22] = "Ps", + [0x02E23] = "Pe", + [0x02E24] = "Ps", + [0x02E25] = "Pe", + [0x02E26] = "Ps", + [0x02E27] = "Pe", + [0x02E28] = "Ps", + [0x02E29] = "Pe", + [0x02E2F] = "Lm", + [0x02E40] = "Pd", + [0x02E41] = "Po", + [0x02E42] = "Ps", + [0x03000] = "Zs", + [0x03004] = "So", + [0x03005] = "Lm", + [0x03006] = "Lo", + [0x03007] = "Nl", + [0x03008] = "Ps", + [0x03009] = "Pe", + [0x0300A] = "Ps", + [0x0300B] = "Pe", + [0x0300C] = "Ps", + [0x0300D] = "Pe", + [0x0300E] = "Ps", + [0x0300F] = "Pe", + [0x03010] = "Ps", + [0x03011] = "Pe", + [0x03014] = "Ps", + [0x03015] = "Pe", + [0x03016] = "Ps", + [0x03017] = "Pe", + [0x03018] = "Ps", + [0x03019] = "Pe", + [0x0301A] = "Ps", + [0x0301B] = "Pe", + [0x0301C] = "Pd", + [0x0301D] = "Ps", + [0x03020] = "So", + [0x03030] = "Pd", + [0x0303B] = "Lm", + [0x0303C] = "Lo", + [0x0303D] = "Po", + [0x0309F] = "Lo", + [0x030A0] = "Pd", + [0x030FB] = "Po", + [0x030FF] = "Lo", + [0x03250] = "So", + [0x0A015] = "Lm", + [0x0A60C] = "Lm", + [0x0A640] = "Lu", + [0x0A641] = "Ll", + [0x0A642] = "Lu", + [0x0A643] = "Ll", + [0x0A644] = "Lu", + [0x0A645] = "Ll", + [0x0A646] = "Lu", + [0x0A647] = "Ll", + [0x0A648] = "Lu", + [0x0A649] = "Ll", + [0x0A64A] = "Lu", + [0x0A64B] = "Ll", + [0x0A64C] = "Lu", + [0x0A64D] = "Ll", + [0x0A64E] = "Lu", + [0x0A64F] = "Ll", + [0x0A650] = "Lu", + [0x0A651] = "Ll", + [0x0A652] = "Lu", + [0x0A653] = "Ll", + [0x0A654] = "Lu", + [0x0A655] = "Ll", + [0x0A656] = "Lu", + [0x0A657] = "Ll", + [0x0A658] = "Lu", + [0x0A659] = "Ll", + [0x0A65A] = "Lu", + [0x0A65B] = "Ll", + [0x0A65C] = "Lu", + [0x0A65D] = "Ll", + [0x0A65E] = "Lu", + [0x0A65F] = "Ll", + [0x0A660] = "Lu", + [0x0A661] = "Ll", + [0x0A662] = "Lu", + [0x0A663] = "Ll", + [0x0A664] = "Lu", + [0x0A665] = "Ll", + [0x0A666] = "Lu", + [0x0A667] = "Ll", + [0x0A668] = "Lu", + [0x0A669] = "Ll", + [0x0A66A] = "Lu", + [0x0A66B] = "Ll", + [0x0A66C] = "Lu", + [0x0A66D] = "Ll", + [0x0A66E] = "Lo", + [0x0A66F] = "Mn", + [0x0A673] = "Po", + [0x0A67E] = "Po", + [0x0A67F] = "Lm", + [0x0A680] = "Lu", + [0x0A681] = "Ll", + [0x0A682] = "Lu", + [0x0A683] = "Ll", + [0x0A684] = "Lu", + [0x0A685] = "Ll", + [0x0A686] = "Lu", + [0x0A687] = "Ll", + [0x0A688] = "Lu", + [0x0A689] = "Ll", + [0x0A68A] = "Lu", + [0x0A68B] = "Ll", + [0x0A68C] = "Lu", + [0x0A68D] = "Ll", + [0x0A68E] = "Lu", + [0x0A68F] = "Ll", + [0x0A690] = "Lu", + [0x0A691] = "Ll", + [0x0A692] = "Lu", + [0x0A693] = "Ll", + [0x0A694] = "Lu", + [0x0A695] = "Ll", + [0x0A696] = "Lu", + [0x0A697] = "Ll", + [0x0A698] = "Lu", + [0x0A699] = "Ll", + [0x0A69A] = "Lu", + [0x0A69B] = "Ll", + [0x0A722] = "Lu", + [0x0A723] = "Ll", + [0x0A724] = "Lu", + [0x0A725] = "Ll", + [0x0A726] = "Lu", + [0x0A727] = "Ll", + [0x0A728] = "Lu", + [0x0A729] = "Ll", + [0x0A72A] = "Lu", + [0x0A72B] = "Ll", + [0x0A72C] = "Lu", + [0x0A72D] = "Ll", + [0x0A72E] = "Lu", + [0x0A732] = "Lu", + [0x0A733] = "Ll", + [0x0A734] = "Lu", + [0x0A735] = "Ll", + [0x0A736] = "Lu", + [0x0A737] = "Ll", + [0x0A738] = "Lu", + [0x0A739] = "Ll", + [0x0A73A] = "Lu", + [0x0A73B] = "Ll", + [0x0A73C] = "Lu", + [0x0A73D] = "Ll", + [0x0A73E] = "Lu", + [0x0A73F] = "Ll", + [0x0A740] = "Lu", + [0x0A741] = "Ll", + [0x0A742] = "Lu", + [0x0A743] = "Ll", + [0x0A744] = "Lu", + [0x0A745] = "Ll", + [0x0A746] = "Lu", + [0x0A747] = "Ll", + [0x0A748] = "Lu", + [0x0A749] = "Ll", + [0x0A74A] = "Lu", + [0x0A74B] = "Ll", + [0x0A74C] = "Lu", + [0x0A74D] = "Ll", + [0x0A74E] = "Lu", + [0x0A74F] = "Ll", + [0x0A750] = "Lu", + [0x0A751] = "Ll", + [0x0A752] = "Lu", + [0x0A753] = "Ll", + [0x0A754] = "Lu", + [0x0A755] = "Ll", + [0x0A756] = "Lu", + [0x0A757] = "Ll", + [0x0A758] = "Lu", + [0x0A759] = "Ll", + [0x0A75A] = "Lu", + [0x0A75B] = "Ll", + [0x0A75C] = "Lu", + [0x0A75D] = "Ll", + [0x0A75E] = "Lu", + [0x0A75F] = "Ll", + [0x0A760] = "Lu", + [0x0A761] = "Ll", + [0x0A762] = "Lu", + [0x0A763] = "Ll", + [0x0A764] = "Lu", + [0x0A765] = "Ll", + [0x0A766] = "Lu", + [0x0A767] = "Ll", + [0x0A768] = "Lu", + [0x0A769] = "Ll", + [0x0A76A] = "Lu", + [0x0A76B] = "Ll", + [0x0A76C] = "Lu", + [0x0A76D] = "Ll", + [0x0A76E] = "Lu", + [0x0A76F] = "Ll", + [0x0A770] = "Lm", + [0x0A779] = "Lu", + [0x0A77A] = "Ll", + [0x0A77B] = "Lu", + [0x0A77C] = "Ll", + [0x0A77F] = "Ll", + [0x0A780] = "Lu", + [0x0A781] = "Ll", + [0x0A782] = "Lu", + [0x0A783] = "Ll", + [0x0A784] = "Lu", + [0x0A785] = "Ll", + [0x0A786] = "Lu", + [0x0A787] = "Ll", + [0x0A788] = "Lm", + [0x0A78B] = "Lu", + [0x0A78C] = "Ll", + [0x0A78D] = "Lu", + [0x0A78E] = "Ll", + [0x0A78F] = "Lo", + [0x0A790] = "Lu", + [0x0A791] = "Ll", + [0x0A792] = "Lu", + [0x0A796] = "Lu", + [0x0A797] = "Ll", + [0x0A798] = "Lu", + [0x0A799] = "Ll", + [0x0A79A] = "Lu", + [0x0A79B] = "Ll", + [0x0A79C] = "Lu", + [0x0A79D] = "Ll", + [0x0A79E] = "Lu", + [0x0A79F] = "Ll", + [0x0A7A0] = "Lu", + [0x0A7A1] = "Ll", + [0x0A7A2] = "Lu", + [0x0A7A3] = "Ll", + [0x0A7A4] = "Lu", + [0x0A7A5] = "Ll", + [0x0A7A6] = "Lu", + [0x0A7A7] = "Ll", + [0x0A7A8] = "Lu", + [0x0A7A9] = "Ll", + [0x0A7AF] = "Ll", + [0x0A7B5] = "Ll", + [0x0A7B6] = "Lu", + [0x0A7B7] = "Ll", + [0x0A7B8] = "Lu", + [0x0A7B9] = "Ll", + [0x0A7F7] = "Lo", + [0x0A7FA] = "Ll", + [0x0A802] = "Mn", + [0x0A806] = "Mn", + [0x0A80B] = "Mn", + [0x0A827] = "Mc", + [0x0A838] = "Sc", + [0x0A839] = "So", + [0x0A8FB] = "Lo", + [0x0A8FC] = "Po", + [0x0A8FF] = "Mn", + [0x0A95F] = "Po", + [0x0A983] = "Mc", + [0x0A9B3] = "Mn", + [0x0A9BC] = "Mn", + [0x0A9CF] = "Lm", + [0x0A9E5] = "Mn", + [0x0A9E6] = "Lm", + [0x0AA43] = "Mn", + [0x0AA4C] = "Mn", + [0x0AA4D] = "Mc", + [0x0AA70] = "Lm", + [0x0AA7A] = "Lo", + [0x0AA7B] = "Mc", + [0x0AA7C] = "Mn", + [0x0AA7D] = "Mc", + [0x0AAB0] = "Mn", + [0x0AAB1] = "Lo", + [0x0AAC0] = "Lo", + [0x0AAC1] = "Mn", + [0x0AAC2] = "Lo", + [0x0AADD] = "Lm", + [0x0AAEB] = "Mc", + [0x0AAF2] = "Lo", + [0x0AAF5] = "Mc", + [0x0AAF6] = "Mn", + [0x0AB5B] = "Sk", + [0x0ABE5] = "Mn", + [0x0ABE8] = "Mn", + [0x0ABEB] = "Po", + [0x0ABEC] = "Mc", + [0x0ABED] = "Mn", + [0x0FB1D] = "Lo", + [0x0FB1E] = "Mn", + [0x0FB29] = "Sm", + [0x0FB3E] = "Lo", + [0x0FD3E] = "Pe", + [0x0FD3F] = "Ps", + [0x0FDFC] = "Sc", + [0x0FDFD] = "So", + [0x0FE17] = "Ps", + [0x0FE18] = "Pe", + [0x0FE19] = "Po", + [0x0FE30] = "Po", + [0x0FE35] = "Ps", + [0x0FE36] = "Pe", + [0x0FE37] = "Ps", + [0x0FE38] = "Pe", + [0x0FE39] = "Ps", + [0x0FE3A] = "Pe", + [0x0FE3B] = "Ps", + [0x0FE3C] = "Pe", + [0x0FE3D] = "Ps", + [0x0FE3E] = "Pe", + [0x0FE3F] = "Ps", + [0x0FE40] = "Pe", + [0x0FE41] = "Ps", + [0x0FE42] = "Pe", + [0x0FE43] = "Ps", + [0x0FE44] = "Pe", + [0x0FE47] = "Ps", + [0x0FE48] = "Pe", + [0x0FE58] = "Pd", + [0x0FE59] = "Ps", + [0x0FE5A] = "Pe", + [0x0FE5B] = "Ps", + [0x0FE5C] = "Pe", + [0x0FE5D] = "Ps", + [0x0FE5E] = "Pe", + [0x0FE62] = "Sm", + [0x0FE63] = "Pd", + [0x0FE68] = "Po", + [0x0FE69] = "Sc", + [0x0FEFF] = "Cf", + [0x0FF04] = "Sc", + [0x0FF08] = "Ps", + [0x0FF09] = "Pe", + [0x0FF0A] = "Po", + [0x0FF0B] = "Sm", + [0x0FF0C] = "Po", + [0x0FF0D] = "Pd", + [0x0FF3B] = "Ps", + [0x0FF3C] = "Po", + [0x0FF3D] = "Pe", + [0x0FF3E] = "Sk", + [0x0FF3F] = "Pc", + [0x0FF40] = "Sk", + [0x0FF5B] = "Ps", + [0x0FF5C] = "Sm", + [0x0FF5D] = "Pe", + [0x0FF5E] = "Sm", + [0x0FF5F] = "Ps", + [0x0FF60] = "Pe", + [0x0FF61] = "Po", + [0x0FF62] = "Ps", + [0x0FF63] = "Pe", + [0x0FF70] = "Lm", + [0x0FFE2] = "Sm", + [0x0FFE3] = "Sk", + [0x0FFE4] = "So", + [0x0FFE8] = "So", + [0x101A0] = "So", + [0x101FD] = "Mn", + [0x102E0] = "Mn", + [0x10341] = "Nl", + [0x1034A] = "Nl", + [0x1039F] = "Po", + [0x103D0] = "Po", + [0x1056F] = "Po", + [0x10808] = "Lo", + [0x1083C] = "Lo", + [0x10857] = "Po", + [0x1091F] = "Po", + [0x1093F] = "Po", + [0x10A00] = "Lo", + [0x10A3F] = "Mn", + [0x10A7F] = "Po", + [0x10AC8] = "So", + [0x10F27] = "Lo", + [0x11000] = "Mc", + [0x11001] = "Mn", + [0x11002] = "Mc", + [0x11082] = "Mc", + [0x110BD] = "Cf", + [0x110CD] = "Cf", + [0x1112C] = "Mc", + [0x11144] = "Lo", + [0x11173] = "Mn", + [0x11176] = "Lo", + [0x11182] = "Mc", + [0x111CD] = "Po", + [0x111DA] = "Lo", + [0x111DB] = "Po", + [0x111DC] = "Lo", + [0x11234] = "Mn", + [0x11235] = "Mc", + [0x1123E] = "Mn", + [0x11288] = "Lo", + [0x112A9] = "Po", + [0x112DF] = "Mn", + [0x1133D] = "Lo", + [0x11340] = "Mn", + [0x11350] = "Lo", + [0x11357] = "Mc", + [0x11445] = "Mc", + [0x11446] = "Mn", + [0x1145B] = "Po", + [0x1145D] = "Po", + [0x1145E] = "Mn", + [0x114B9] = "Mc", + [0x114BA] = "Mn", + [0x114C1] = "Mc", + [0x114C6] = "Po", + [0x114C7] = "Lo", + [0x115BE] = "Mc", + [0x1163D] = "Mn", + [0x1163E] = "Mc", + [0x11644] = "Lo", + [0x116AB] = "Mn", + [0x116AC] = "Mc", + [0x116AD] = "Mn", + [0x116B6] = "Mc", + [0x116B7] = "Mn", + [0x11726] = "Mc", + [0x1173F] = "So", + [0x11838] = "Mc", + [0x1183B] = "Po", + [0x118FF] = "Lo", + [0x11A00] = "Lo", + [0x11A39] = "Mc", + [0x11A3A] = "Lo", + [0x11A47] = "Mn", + [0x11A50] = "Lo", + [0x11A97] = "Mc", + [0x11A9D] = "Lo", + [0x11C2F] = "Mc", + [0x11C3E] = "Mc", + [0x11C3F] = "Mn", + [0x11C40] = "Lo", + [0x11CA9] = "Mc", + [0x11CB1] = "Mc", + [0x11CB4] = "Mc", + [0x11D3A] = "Mn", + [0x11D46] = "Lo", + [0x11D47] = "Mn", + [0x11D95] = "Mn", + [0x11D96] = "Mc", + [0x11D97] = "Mn", + [0x11D98] = "Lo", + [0x16AF5] = "Po", + [0x16B44] = "Po", + [0x16B45] = "So", + [0x16F50] = "Lo", + [0x1BC9C] = "So", + [0x1BC9F] = "Po", + [0x1D245] = "So", + [0x1D49C] = "Lu", + [0x1D4A2] = "Lu", + [0x1D4BB] = "Ll", + [0x1D546] = "Lu", + [0x1D6C1] = "Sm", + [0x1D6DB] = "Sm", + [0x1D6FB] = "Sm", + [0x1D715] = "Sm", + [0x1D735] = "Sm", + [0x1D74F] = "Sm", + [0x1D76F] = "Sm", + [0x1D789] = "Sm", + [0x1D7A9] = "Sm", + [0x1D7C3] = "Sm", + [0x1D7CA] = "Lu", + [0x1D7CB] = "Ll", + [0x1DA75] = "Mn", + [0x1DA84] = "Mn", + [0x1ECAC] = "So", + [0x1ECB0] = "Sc", + [0x1EE24] = "Lo", + [0x1EE27] = "Lo", + [0x1EE39] = "Lo", + [0x1EE3B] = "Lo", + [0x1EE42] = "Lo", + [0x1EE47] = "Lo", + [0x1EE49] = "Lo", + [0x1EE4B] = "Lo", + [0x1EE54] = "Lo", + [0x1EE57] = "Lo", + [0x1EE59] = "Lo", + [0x1EE5B] = "Lo", + [0x1EE5D] = "Lo", + [0x1EE5F] = "Lo", + [0x1EE64] = "Lo", + [0x1EE7E] = "Lo", + [0x1F97A] = "So", + [0xE0001] = "Cf", + }, + ranges = { + { 0x000000, 0x00001F, "Cc" }, + { 0x000021, 0x000023, "Po" }, + { 0x000025, 0x000027, "Po" }, + { 0x00002E, 0x00002F, "Po" }, + { 0x000030, 0x000039, "Nd" }, + { 0x00003A, 0x00003B, "Po" }, + { 0x00003C, 0x00003E, "Sm" }, + { 0x00003F, 0x000040, "Po" }, + { 0x000041, 0x00005A, "Lu" }, + { 0x000061, 0x00007A, "Ll" }, + { 0x00007F, 0x00009F, "Cc" }, + { 0x0000A2, 0x0000A5, "Sc" }, + { 0x0000B2, 0x0000B3, "No" }, + { 0x0000B6, 0x0000B7, "Po" }, + { 0x0000BC, 0x0000BE, "No" }, + { 0x0000C0, 0x0000D6, "Lu" }, + { 0x0000D8, 0x0000DE, "Lu" }, + { 0x0000DF, 0x0000F6, "Ll" }, + { 0x0000F8, 0x0000FF, "Ll" }, + { 0x000137, 0x000138, "Ll" }, + { 0x000148, 0x000149, "Ll" }, + { 0x000178, 0x000179, "Lu" }, + { 0x00017E, 0x000180, "Ll" }, + { 0x000181, 0x000182, "Lu" }, + { 0x000186, 0x000187, "Lu" }, + { 0x000189, 0x00018B, "Lu" }, + { 0x00018C, 0x00018D, "Ll" }, + { 0x00018E, 0x000191, "Lu" }, + { 0x000193, 0x000194, "Lu" }, + { 0x000196, 0x000198, "Lu" }, + { 0x000199, 0x00019B, "Ll" }, + { 0x00019C, 0x00019D, "Lu" }, + { 0x00019F, 0x0001A0, "Lu" }, + { 0x0001A6, 0x0001A7, "Lu" }, + { 0x0001AA, 0x0001AB, "Ll" }, + { 0x0001AE, 0x0001AF, "Lu" }, + { 0x0001B1, 0x0001B3, "Lu" }, + { 0x0001B7, 0x0001B8, "Lu" }, + { 0x0001B9, 0x0001BA, "Ll" }, + { 0x0001BD, 0x0001BF, "Ll" }, + { 0x0001C0, 0x0001C3, "Lo" }, + { 0x0001DC, 0x0001DD, "Ll" }, + { 0x0001EF, 0x0001F0, "Ll" }, + { 0x0001F6, 0x0001F8, "Lu" }, + { 0x000233, 0x000239, "Ll" }, + { 0x00023A, 0x00023B, "Lu" }, + { 0x00023D, 0x00023E, "Lu" }, + { 0x00023F, 0x000240, "Ll" }, + { 0x000243, 0x000246, "Lu" }, + { 0x00024F, 0x000293, "Ll" }, + { 0x000295, 0x0002AF, "Ll" }, + { 0x0002B0, 0x0002C1, "Lm" }, + { 0x0002C2, 0x0002C5, "Sk" }, + { 0x0002C6, 0x0002D1, "Lm" }, + { 0x0002D2, 0x0002DF, "Sk" }, + { 0x0002E0, 0x0002E4, "Lm" }, + { 0x0002E5, 0x0002EB, "Sk" }, + { 0x0002EF, 0x0002FF, "Sk" }, + { 0x000300, 0x00036F, "Mn" }, + { 0x00037B, 0x00037D, "Ll" }, + { 0x000384, 0x000385, "Sk" }, + { 0x000388, 0x00038A, "Lu" }, + { 0x00038E, 0x00038F, "Lu" }, + { 0x000391, 0x0003A1, "Lu" }, + { 0x0003A3, 0x0003AB, "Lu" }, + { 0x0003AC, 0x0003CE, "Ll" }, + { 0x0003D0, 0x0003D1, "Ll" }, + { 0x0003D2, 0x0003D4, "Lu" }, + { 0x0003D5, 0x0003D7, "Ll" }, + { 0x0003EF, 0x0003F3, "Ll" }, + { 0x0003F9, 0x0003FA, "Lu" }, + { 0x0003FB, 0x0003FC, "Ll" }, + { 0x0003FD, 0x00042F, "Lu" }, + { 0x000430, 0x00045F, "Ll" }, + { 0x000483, 0x000487, "Mn" }, + { 0x000488, 0x000489, "Me" }, + { 0x0004C0, 0x0004C1, "Lu" }, + { 0x0004CE, 0x0004CF, "Ll" }, + { 0x000531, 0x000556, "Lu" }, + { 0x00055A, 0x00055F, "Po" }, + { 0x000560, 0x000588, "Ll" }, + { 0x00058D, 0x00058E, "So" }, + { 0x000591, 0x0005BD, "Mn" }, + { 0x0005C1, 0x0005C2, "Mn" }, + { 0x0005C4, 0x0005C5, "Mn" }, + { 0x0005D0, 0x0005EA, "Lo" }, + { 0x0005EF, 0x0005F2, "Lo" }, + { 0x0005F3, 0x0005F4, "Po" }, + { 0x000600, 0x000605, "Cf" }, + { 0x000606, 0x000608, "Sm" }, + { 0x000609, 0x00060A, "Po" }, + { 0x00060C, 0x00060D, "Po" }, + { 0x00060E, 0x00060F, "So" }, + { 0x000610, 0x00061A, "Mn" }, + { 0x00061E, 0x00061F, "Po" }, + { 0x000620, 0x00063F, "Lo" }, + { 0x000641, 0x00064A, "Lo" }, + { 0x00064B, 0x00065F, "Mn" }, + { 0x000660, 0x000669, "Nd" }, + { 0x00066A, 0x00066D, "Po" }, + { 0x00066E, 0x00066F, "Lo" }, + { 0x000671, 0x0006D3, "Lo" }, + { 0x0006D6, 0x0006DC, "Mn" }, + { 0x0006DF, 0x0006E4, "Mn" }, + { 0x0006E5, 0x0006E6, "Lm" }, + { 0x0006E7, 0x0006E8, "Mn" }, + { 0x0006EA, 0x0006ED, "Mn" }, + { 0x0006EE, 0x0006EF, "Lo" }, + { 0x0006F0, 0x0006F9, "Nd" }, + { 0x0006FA, 0x0006FC, "Lo" }, + { 0x0006FD, 0x0006FE, "So" }, + { 0x000700, 0x00070D, "Po" }, + { 0x000712, 0x00072F, "Lo" }, + { 0x000730, 0x00074A, "Mn" }, + { 0x00074D, 0x0007A5, "Lo" }, + { 0x0007A6, 0x0007B0, "Mn" }, + { 0x0007C0, 0x0007C9, "Nd" }, + { 0x0007CA, 0x0007EA, "Lo" }, + { 0x0007EB, 0x0007F3, "Mn" }, + { 0x0007F4, 0x0007F5, "Lm" }, + { 0x0007F7, 0x0007F9, "Po" }, + { 0x0007FE, 0x0007FF, "Sc" }, + { 0x000800, 0x000815, "Lo" }, + { 0x000816, 0x000819, "Mn" }, + { 0x00081B, 0x000823, "Mn" }, + { 0x000825, 0x000827, "Mn" }, + { 0x000829, 0x00082D, "Mn" }, + { 0x000830, 0x00083E, "Po" }, + { 0x000840, 0x000858, "Lo" }, + { 0x000859, 0x00085B, "Mn" }, + { 0x000860, 0x00086A, "Lo" }, + { 0x0008A0, 0x0008B4, "Lo" }, + { 0x0008B6, 0x0008BD, "Lo" }, + { 0x0008D3, 0x0008E1, "Mn" }, + { 0x0008E3, 0x000902, "Mn" }, + { 0x000904, 0x000939, "Lo" }, + { 0x00093E, 0x000940, "Mc" }, + { 0x000941, 0x000948, "Mn" }, + { 0x000949, 0x00094C, "Mc" }, + { 0x00094E, 0x00094F, "Mc" }, + { 0x000951, 0x000957, "Mn" }, + { 0x000958, 0x000961, "Lo" }, + { 0x000962, 0x000963, "Mn" }, + { 0x000964, 0x000965, "Po" }, + { 0x000966, 0x00096F, "Nd" }, + { 0x000972, 0x000980, "Lo" }, + { 0x000982, 0x000983, "Mc" }, + { 0x000985, 0x00098C, "Lo" }, + { 0x00098F, 0x000990, "Lo" }, + { 0x000993, 0x0009A8, "Lo" }, + { 0x0009AA, 0x0009B0, "Lo" }, + { 0x0009B6, 0x0009B9, "Lo" }, + { 0x0009BE, 0x0009C0, "Mc" }, + { 0x0009C1, 0x0009C4, "Mn" }, + { 0x0009C7, 0x0009C8, "Mc" }, + { 0x0009CB, 0x0009CC, "Mc" }, + { 0x0009DC, 0x0009DD, "Lo" }, + { 0x0009DF, 0x0009E1, "Lo" }, + { 0x0009E2, 0x0009E3, "Mn" }, + { 0x0009E6, 0x0009EF, "Nd" }, + { 0x0009F0, 0x0009F1, "Lo" }, + { 0x0009F2, 0x0009F3, "Sc" }, + { 0x0009F4, 0x0009F9, "No" }, + { 0x000A01, 0x000A02, "Mn" }, + { 0x000A05, 0x000A0A, "Lo" }, + { 0x000A0F, 0x000A10, "Lo" }, + { 0x000A13, 0x000A28, "Lo" }, + { 0x000A2A, 0x000A30, "Lo" }, + { 0x000A32, 0x000A33, "Lo" }, + { 0x000A35, 0x000A36, "Lo" }, + { 0x000A38, 0x000A39, "Lo" }, + { 0x000A3E, 0x000A40, "Mc" }, + { 0x000A41, 0x000A42, "Mn" }, + { 0x000A47, 0x000A48, "Mn" }, + { 0x000A4B, 0x000A4D, "Mn" }, + { 0x000A59, 0x000A5C, "Lo" }, + { 0x000A66, 0x000A6F, "Nd" }, + { 0x000A70, 0x000A71, "Mn" }, + { 0x000A72, 0x000A74, "Lo" }, + { 0x000A81, 0x000A82, "Mn" }, + { 0x000A85, 0x000A8D, "Lo" }, + { 0x000A8F, 0x000A91, "Lo" }, + { 0x000A93, 0x000AA8, "Lo" }, + { 0x000AAA, 0x000AB0, "Lo" }, + { 0x000AB2, 0x000AB3, "Lo" }, + { 0x000AB5, 0x000AB9, "Lo" }, + { 0x000ABE, 0x000AC0, "Mc" }, + { 0x000AC1, 0x000AC5, "Mn" }, + { 0x000AC7, 0x000AC8, "Mn" }, + { 0x000ACB, 0x000ACC, "Mc" }, + { 0x000AE0, 0x000AE1, "Lo" }, + { 0x000AE2, 0x000AE3, "Mn" }, + { 0x000AE6, 0x000AEF, "Nd" }, + { 0x000AFA, 0x000AFF, "Mn" }, + { 0x000B02, 0x000B03, "Mc" }, + { 0x000B05, 0x000B0C, "Lo" }, + { 0x000B0F, 0x000B10, "Lo" }, + { 0x000B13, 0x000B28, "Lo" }, + { 0x000B2A, 0x000B30, "Lo" }, + { 0x000B32, 0x000B33, "Lo" }, + { 0x000B35, 0x000B39, "Lo" }, + { 0x000B41, 0x000B44, "Mn" }, + { 0x000B47, 0x000B48, "Mc" }, + { 0x000B4B, 0x000B4C, "Mc" }, + { 0x000B5C, 0x000B5D, "Lo" }, + { 0x000B5F, 0x000B61, "Lo" }, + { 0x000B62, 0x000B63, "Mn" }, + { 0x000B66, 0x000B6F, "Nd" }, + { 0x000B72, 0x000B77, "No" }, + { 0x000B85, 0x000B8A, "Lo" }, + { 0x000B8E, 0x000B90, "Lo" }, + { 0x000B92, 0x000B95, "Lo" }, + { 0x000B99, 0x000B9A, "Lo" }, + { 0x000B9E, 0x000B9F, "Lo" }, + { 0x000BA3, 0x000BA4, "Lo" }, + { 0x000BA8, 0x000BAA, "Lo" }, + { 0x000BAE, 0x000BB9, "Lo" }, + { 0x000BBE, 0x000BBF, "Mc" }, + { 0x000BC1, 0x000BC2, "Mc" }, + { 0x000BC6, 0x000BC8, "Mc" }, + { 0x000BCA, 0x000BCC, "Mc" }, + { 0x000BE6, 0x000BEF, "Nd" }, + { 0x000BF0, 0x000BF2, "No" }, + { 0x000BF3, 0x000BF8, "So" }, + { 0x000C01, 0x000C03, "Mc" }, + { 0x000C05, 0x000C0C, "Lo" }, + { 0x000C0E, 0x000C10, "Lo" }, + { 0x000C12, 0x000C28, "Lo" }, + { 0x000C2A, 0x000C39, "Lo" }, + { 0x000C3E, 0x000C40, "Mn" }, + { 0x000C41, 0x000C44, "Mc" }, + { 0x000C46, 0x000C48, "Mn" }, + { 0x000C4A, 0x000C4D, "Mn" }, + { 0x000C55, 0x000C56, "Mn" }, + { 0x000C58, 0x000C5A, "Lo" }, + { 0x000C60, 0x000C61, "Lo" }, + { 0x000C62, 0x000C63, "Mn" }, + { 0x000C66, 0x000C6F, "Nd" }, + { 0x000C78, 0x000C7E, "No" }, + { 0x000C82, 0x000C83, "Mc" }, + { 0x000C85, 0x000C8C, "Lo" }, + { 0x000C8E, 0x000C90, "Lo" }, + { 0x000C92, 0x000CA8, "Lo" }, + { 0x000CAA, 0x000CB3, "Lo" }, + { 0x000CB5, 0x000CB9, "Lo" }, + { 0x000CC0, 0x000CC4, "Mc" }, + { 0x000CC7, 0x000CC8, "Mc" }, + { 0x000CCA, 0x000CCB, "Mc" }, + { 0x000CCC, 0x000CCD, "Mn" }, + { 0x000CD5, 0x000CD6, "Mc" }, + { 0x000CE0, 0x000CE1, "Lo" }, + { 0x000CE2, 0x000CE3, "Mn" }, + { 0x000CE6, 0x000CEF, "Nd" }, + { 0x000CF1, 0x000CF2, "Lo" }, + { 0x000D00, 0x000D01, "Mn" }, + { 0x000D02, 0x000D03, "Mc" }, + { 0x000D05, 0x000D0C, "Lo" }, + { 0x000D0E, 0x000D10, "Lo" }, + { 0x000D12, 0x000D3A, "Lo" }, + { 0x000D3B, 0x000D3C, "Mn" }, + { 0x000D3E, 0x000D40, "Mc" }, + { 0x000D41, 0x000D44, "Mn" }, + { 0x000D46, 0x000D48, "Mc" }, + { 0x000D4A, 0x000D4C, "Mc" }, + { 0x000D54, 0x000D56, "Lo" }, + { 0x000D58, 0x000D5E, "No" }, + { 0x000D5F, 0x000D61, "Lo" }, + { 0x000D62, 0x000D63, "Mn" }, + { 0x000D66, 0x000D6F, "Nd" }, + { 0x000D70, 0x000D78, "No" }, + { 0x000D7A, 0x000D7F, "Lo" }, + { 0x000D82, 0x000D83, "Mc" }, + { 0x000D85, 0x000D96, "Lo" }, + { 0x000D9A, 0x000DB1, "Lo" }, + { 0x000DB3, 0x000DBB, "Lo" }, + { 0x000DC0, 0x000DC6, "Lo" }, + { 0x000DCF, 0x000DD1, "Mc" }, + { 0x000DD2, 0x000DD4, "Mn" }, + { 0x000DD8, 0x000DDF, "Mc" }, + { 0x000DE6, 0x000DEF, "Nd" }, + { 0x000DF2, 0x000DF3, "Mc" }, + { 0x000E01, 0x000E30, "Lo" }, + { 0x000E32, 0x000E33, "Lo" }, + { 0x000E34, 0x000E3A, "Mn" }, + { 0x000E40, 0x000E45, "Lo" }, + { 0x000E47, 0x000E4E, "Mn" }, + { 0x000E50, 0x000E59, "Nd" }, + { 0x000E5A, 0x000E5B, "Po" }, + { 0x000E81, 0x000E82, "Lo" }, + { 0x000E87, 0x000E88, "Lo" }, + { 0x000E94, 0x000E97, "Lo" }, + { 0x000E99, 0x000E9F, "Lo" }, + { 0x000EA1, 0x000EA3, "Lo" }, + { 0x000EAA, 0x000EAB, "Lo" }, + { 0x000EAD, 0x000EB0, "Lo" }, + { 0x000EB2, 0x000EB3, "Lo" }, + { 0x000EB4, 0x000EB9, "Mn" }, + { 0x000EBB, 0x000EBC, "Mn" }, + { 0x000EC0, 0x000EC4, "Lo" }, + { 0x000EC8, 0x000ECD, "Mn" }, + { 0x000ED0, 0x000ED9, "Nd" }, + { 0x000EDC, 0x000EDF, "Lo" }, + { 0x000F01, 0x000F03, "So" }, + { 0x000F04, 0x000F12, "Po" }, + { 0x000F15, 0x000F17, "So" }, + { 0x000F18, 0x000F19, "Mn" }, + { 0x000F1A, 0x000F1F, "So" }, + { 0x000F20, 0x000F29, "Nd" }, + { 0x000F2A, 0x000F33, "No" }, + { 0x000F3E, 0x000F3F, "Mc" }, + { 0x000F40, 0x000F47, "Lo" }, + { 0x000F49, 0x000F6C, "Lo" }, + { 0x000F71, 0x000F7E, "Mn" }, + { 0x000F80, 0x000F84, "Mn" }, + { 0x000F86, 0x000F87, "Mn" }, + { 0x000F88, 0x000F8C, "Lo" }, + { 0x000F8D, 0x000F97, "Mn" }, + { 0x000F99, 0x000FBC, "Mn" }, + { 0x000FBE, 0x000FC5, "So" }, + { 0x000FC7, 0x000FCC, "So" }, + { 0x000FCE, 0x000FCF, "So" }, + { 0x000FD0, 0x000FD4, "Po" }, + { 0x000FD5, 0x000FD8, "So" }, + { 0x000FD9, 0x000FDA, "Po" }, + { 0x001000, 0x00102A, "Lo" }, + { 0x00102B, 0x00102C, "Mc" }, + { 0x00102D, 0x001030, "Mn" }, + { 0x001032, 0x001037, "Mn" }, + { 0x001039, 0x00103A, "Mn" }, + { 0x00103B, 0x00103C, "Mc" }, + { 0x00103D, 0x00103E, "Mn" }, + { 0x001040, 0x001049, "Nd" }, + { 0x00104A, 0x00104F, "Po" }, + { 0x001050, 0x001055, "Lo" }, + { 0x001056, 0x001057, "Mc" }, + { 0x001058, 0x001059, "Mn" }, + { 0x00105A, 0x00105D, "Lo" }, + { 0x00105E, 0x001060, "Mn" }, + { 0x001062, 0x001064, "Mc" }, + { 0x001065, 0x001066, "Lo" }, + { 0x001067, 0x00106D, "Mc" }, + { 0x00106E, 0x001070, "Lo" }, + { 0x001071, 0x001074, "Mn" }, + { 0x001075, 0x001081, "Lo" }, + { 0x001083, 0x001084, "Mc" }, + { 0x001085, 0x001086, "Mn" }, + { 0x001087, 0x00108C, "Mc" }, + { 0x001090, 0x001099, "Nd" }, + { 0x00109A, 0x00109C, "Mc" }, + { 0x00109E, 0x00109F, "So" }, + { 0x0010A0, 0x0010C5, "Lu" }, + { 0x0010D0, 0x0010FA, "Ll" }, + { 0x0010FD, 0x0010FF, "Ll" }, + { 0x001100, 0x001248, "Lo" }, + { 0x00124A, 0x00124D, "Lo" }, + { 0x001250, 0x001256, "Lo" }, + { 0x00125A, 0x00125D, "Lo" }, + { 0x001260, 0x001288, "Lo" }, + { 0x00128A, 0x00128D, "Lo" }, + { 0x001290, 0x0012B0, "Lo" }, + { 0x0012B2, 0x0012B5, "Lo" }, + { 0x0012B8, 0x0012BE, "Lo" }, + { 0x0012C2, 0x0012C5, "Lo" }, + { 0x0012C8, 0x0012D6, "Lo" }, + { 0x0012D8, 0x001310, "Lo" }, + { 0x001312, 0x001315, "Lo" }, + { 0x001318, 0x00135A, "Lo" }, + { 0x00135D, 0x00135F, "Mn" }, + { 0x001360, 0x001368, "Po" }, + { 0x001369, 0x00137C, "No" }, + { 0x001380, 0x00138F, "Lo" }, + { 0x001390, 0x001399, "So" }, + { 0x0013A0, 0x0013F5, "Lu" }, + { 0x0013F8, 0x0013FD, "Ll" }, + { 0x001401, 0x00166C, "Lo" }, + { 0x00166D, 0x00166E, "Po" }, + { 0x00166F, 0x00167F, "Lo" }, + { 0x001681, 0x00169A, "Lo" }, + { 0x0016A0, 0x0016EA, "Lo" }, + { 0x0016EB, 0x0016ED, "Po" }, + { 0x0016EE, 0x0016F0, "Nl" }, + { 0x0016F1, 0x0016F8, "Lo" }, + { 0x001700, 0x00170C, "Lo" }, + { 0x00170E, 0x001711, "Lo" }, + { 0x001712, 0x001714, "Mn" }, + { 0x001720, 0x001731, "Lo" }, + { 0x001732, 0x001734, "Mn" }, + { 0x001735, 0x001736, "Po" }, + { 0x001740, 0x001751, "Lo" }, + { 0x001752, 0x001753, "Mn" }, + { 0x001760, 0x00176C, "Lo" }, + { 0x00176E, 0x001770, "Lo" }, + { 0x001772, 0x001773, "Mn" }, + { 0x001780, 0x0017B3, "Lo" }, + { 0x0017B4, 0x0017B5, "Mn" }, + { 0x0017B7, 0x0017BD, "Mn" }, + { 0x0017BE, 0x0017C5, "Mc" }, + { 0x0017C7, 0x0017C8, "Mc" }, + { 0x0017C9, 0x0017D3, "Mn" }, + { 0x0017D4, 0x0017D6, "Po" }, + { 0x0017D8, 0x0017DA, "Po" }, + { 0x0017E0, 0x0017E9, "Nd" }, + { 0x0017F0, 0x0017F9, "No" }, + { 0x001800, 0x001805, "Po" }, + { 0x001807, 0x00180A, "Po" }, + { 0x00180B, 0x00180D, "Mn" }, + { 0x001810, 0x001819, "Nd" }, + { 0x001820, 0x001842, "Lo" }, + { 0x001844, 0x001878, "Lo" }, + { 0x001880, 0x001884, "Lo" }, + { 0x001885, 0x001886, "Mn" }, + { 0x001887, 0x0018A8, "Lo" }, + { 0x0018B0, 0x0018F5, "Lo" }, + { 0x001900, 0x00191E, "Lo" }, + { 0x001920, 0x001922, "Mn" }, + { 0x001923, 0x001926, "Mc" }, + { 0x001927, 0x001928, "Mn" }, + { 0x001929, 0x00192B, "Mc" }, + { 0x001930, 0x001931, "Mc" }, + { 0x001933, 0x001938, "Mc" }, + { 0x001939, 0x00193B, "Mn" }, + { 0x001944, 0x001945, "Po" }, + { 0x001946, 0x00194F, "Nd" }, + { 0x001950, 0x00196D, "Lo" }, + { 0x001970, 0x001974, "Lo" }, + { 0x001980, 0x0019AB, "Lo" }, + { 0x0019B0, 0x0019C9, "Lo" }, + { 0x0019D0, 0x0019D9, "Nd" }, + { 0x0019DE, 0x0019FF, "So" }, + { 0x001A00, 0x001A16, "Lo" }, + { 0x001A17, 0x001A18, "Mn" }, + { 0x001A19, 0x001A1A, "Mc" }, + { 0x001A1E, 0x001A1F, "Po" }, + { 0x001A20, 0x001A54, "Lo" }, + { 0x001A58, 0x001A5E, "Mn" }, + { 0x001A63, 0x001A64, "Mc" }, + { 0x001A65, 0x001A6C, "Mn" }, + { 0x001A6D, 0x001A72, "Mc" }, + { 0x001A73, 0x001A7C, "Mn" }, + { 0x001A80, 0x001A89, "Nd" }, + { 0x001A90, 0x001A99, "Nd" }, + { 0x001AA0, 0x001AA6, "Po" }, + { 0x001AA8, 0x001AAD, "Po" }, + { 0x001AB0, 0x001ABD, "Mn" }, + { 0x001B00, 0x001B03, "Mn" }, + { 0x001B05, 0x001B33, "Lo" }, + { 0x001B36, 0x001B3A, "Mn" }, + { 0x001B3D, 0x001B41, "Mc" }, + { 0x001B43, 0x001B44, "Mc" }, + { 0x001B45, 0x001B4B, "Lo" }, + { 0x001B50, 0x001B59, "Nd" }, + { 0x001B5A, 0x001B60, "Po" }, + { 0x001B61, 0x001B6A, "So" }, + { 0x001B6B, 0x001B73, "Mn" }, + { 0x001B74, 0x001B7C, "So" }, + { 0x001B80, 0x001B81, "Mn" }, + { 0x001B83, 0x001BA0, "Lo" }, + { 0x001BA2, 0x001BA5, "Mn" }, + { 0x001BA6, 0x001BA7, "Mc" }, + { 0x001BA8, 0x001BA9, "Mn" }, + { 0x001BAB, 0x001BAD, "Mn" }, + { 0x001BAE, 0x001BAF, "Lo" }, + { 0x001BB0, 0x001BB9, "Nd" }, + { 0x001BBA, 0x001BE5, "Lo" }, + { 0x001BE8, 0x001BE9, "Mn" }, + { 0x001BEA, 0x001BEC, "Mc" }, + { 0x001BEF, 0x001BF1, "Mn" }, + { 0x001BF2, 0x001BF3, "Mc" }, + { 0x001BFC, 0x001BFF, "Po" }, + { 0x001C00, 0x001C23, "Lo" }, + { 0x001C24, 0x001C2B, "Mc" }, + { 0x001C2C, 0x001C33, "Mn" }, + { 0x001C34, 0x001C35, "Mc" }, + { 0x001C36, 0x001C37, "Mn" }, + { 0x001C3B, 0x001C3F, "Po" }, + { 0x001C40, 0x001C49, "Nd" }, + { 0x001C4D, 0x001C4F, "Lo" }, + { 0x001C50, 0x001C59, "Nd" }, + { 0x001C5A, 0x001C77, "Lo" }, + { 0x001C78, 0x001C7D, "Lm" }, + { 0x001C7E, 0x001C7F, "Po" }, + { 0x001C80, 0x001C88, "Ll" }, + { 0x001C90, 0x001CBA, "Lu" }, + { 0x001CBD, 0x001CBF, "Lu" }, + { 0x001CC0, 0x001CC7, "Po" }, + { 0x001CD0, 0x001CD2, "Mn" }, + { 0x001CD4, 0x001CE0, "Mn" }, + { 0x001CE2, 0x001CE8, "Mn" }, + { 0x001CE9, 0x001CEC, "Lo" }, + { 0x001CEE, 0x001CF1, "Lo" }, + { 0x001CF2, 0x001CF3, "Mc" }, + { 0x001CF5, 0x001CF6, "Lo" }, + { 0x001CF8, 0x001CF9, "Mn" }, + { 0x001D00, 0x001D2B, "Ll" }, + { 0x001D2C, 0x001D6A, "Lm" }, + { 0x001D6B, 0x001D77, "Ll" }, + { 0x001D79, 0x001D9A, "Ll" }, + { 0x001D9B, 0x001DBF, "Lm" }, + { 0x001DC0, 0x001DF9, "Mn" }, + { 0x001DFB, 0x001DFF, "Mn" }, + { 0x001E95, 0x001E9D, "Ll" }, + { 0x001EFF, 0x001F07, "Ll" }, + { 0x001F08, 0x001F0F, "Lu" }, + { 0x001F10, 0x001F15, "Ll" }, + { 0x001F18, 0x001F1D, "Lu" }, + { 0x001F20, 0x001F27, "Ll" }, + { 0x001F28, 0x001F2F, "Lu" }, + { 0x001F30, 0x001F37, "Ll" }, + { 0x001F38, 0x001F3F, "Lu" }, + { 0x001F40, 0x001F45, "Ll" }, + { 0x001F48, 0x001F4D, "Lu" }, + { 0x001F50, 0x001F57, "Ll" }, + { 0x001F60, 0x001F67, "Ll" }, + { 0x001F68, 0x001F6F, "Lu" }, + { 0x001F70, 0x001F7D, "Ll" }, + { 0x001F80, 0x001F87, "Ll" }, + { 0x001F88, 0x001F8F, "Lt" }, + { 0x001F90, 0x001F97, "Ll" }, + { 0x001F98, 0x001F9F, "Lt" }, + { 0x001FA0, 0x001FA7, "Ll" }, + { 0x001FA8, 0x001FAF, "Lt" }, + { 0x001FB0, 0x001FB4, "Ll" }, + { 0x001FB6, 0x001FB7, "Ll" }, + { 0x001FB8, 0x001FBB, "Lu" }, + { 0x001FBF, 0x001FC1, "Sk" }, + { 0x001FC2, 0x001FC4, "Ll" }, + { 0x001FC6, 0x001FC7, "Ll" }, + { 0x001FC8, 0x001FCB, "Lu" }, + { 0x001FCD, 0x001FCF, "Sk" }, + { 0x001FD0, 0x001FD3, "Ll" }, + { 0x001FD6, 0x001FD7, "Ll" }, + { 0x001FD8, 0x001FDB, "Lu" }, + { 0x001FDD, 0x001FDF, "Sk" }, + { 0x001FE0, 0x001FE7, "Ll" }, + { 0x001FE8, 0x001FEC, "Lu" }, + { 0x001FED, 0x001FEF, "Sk" }, + { 0x001FF2, 0x001FF4, "Ll" }, + { 0x001FF6, 0x001FF7, "Ll" }, + { 0x001FF8, 0x001FFB, "Lu" }, + { 0x001FFD, 0x001FFE, "Sk" }, + { 0x002000, 0x00200A, "Zs" }, + { 0x00200B, 0x00200F, "Cf" }, + { 0x002010, 0x002015, "Pd" }, + { 0x002016, 0x002017, "Po" }, + { 0x00201B, 0x00201C, "Pi" }, + { 0x002020, 0x002027, "Po" }, + { 0x00202A, 0x00202E, "Cf" }, + { 0x002030, 0x002038, "Po" }, + { 0x00203B, 0x00203E, "Po" }, + { 0x00203F, 0x002040, "Pc" }, + { 0x002041, 0x002043, "Po" }, + { 0x002047, 0x002051, "Po" }, + { 0x002055, 0x00205E, "Po" }, + { 0x002060, 0x002064, "Cf" }, + { 0x002066, 0x00206F, "Cf" }, + { 0x002074, 0x002079, "No" }, + { 0x00207A, 0x00207C, "Sm" }, + { 0x002080, 0x002089, "No" }, + { 0x00208A, 0x00208C, "Sm" }, + { 0x002090, 0x00209C, "Lm" }, + { 0x0020A0, 0x0020BF, "Sc" }, + { 0x0020D0, 0x0020DC, "Mn" }, + { 0x0020DD, 0x0020E0, "Me" }, + { 0x0020E2, 0x0020E4, "Me" }, + { 0x0020E5, 0x0020F0, "Mn" }, + { 0x002100, 0x002101, "So" }, + { 0x002103, 0x002106, "So" }, + { 0x002108, 0x002109, "So" }, + { 0x00210B, 0x00210D, "Lu" }, + { 0x00210E, 0x00210F, "Ll" }, + { 0x002110, 0x002112, "Lu" }, + { 0x002116, 0x002117, "So" }, + { 0x002119, 0x00211D, "Lu" }, + { 0x00211E, 0x002123, "So" }, + { 0x00212A, 0x00212D, "Lu" }, + { 0x002130, 0x002133, "Lu" }, + { 0x002135, 0x002138, "Lo" }, + { 0x00213A, 0x00213B, "So" }, + { 0x00213C, 0x00213D, "Ll" }, + { 0x00213E, 0x00213F, "Lu" }, + { 0x002140, 0x002144, "Sm" }, + { 0x002146, 0x002149, "Ll" }, + { 0x00214C, 0x00214D, "So" }, + { 0x002150, 0x00215F, "No" }, + { 0x002160, 0x002182, "Nl" }, + { 0x002185, 0x002188, "Nl" }, + { 0x00218A, 0x00218B, "So" }, + { 0x002190, 0x002194, "Sm" }, + { 0x002195, 0x002199, "So" }, + { 0x00219A, 0x00219B, "Sm" }, + { 0x00219C, 0x00219F, "So" }, + { 0x0021A1, 0x0021A2, "So" }, + { 0x0021A4, 0x0021A5, "So" }, + { 0x0021A7, 0x0021AD, "So" }, + { 0x0021AF, 0x0021CD, "So" }, + { 0x0021CE, 0x0021CF, "Sm" }, + { 0x0021D0, 0x0021D1, "So" }, + { 0x0021D5, 0x0021F3, "So" }, + { 0x0021F4, 0x0022FF, "Sm" }, + { 0x002300, 0x002307, "So" }, + { 0x00230C, 0x00231F, "So" }, + { 0x002320, 0x002321, "Sm" }, + { 0x002322, 0x002328, "So" }, + { 0x00232B, 0x00237B, "So" }, + { 0x00237D, 0x00239A, "So" }, + { 0x00239B, 0x0023B3, "Sm" }, + { 0x0023B4, 0x0023DB, "So" }, + { 0x0023DC, 0x0023E1, "Sm" }, + { 0x0023E2, 0x002426, "So" }, + { 0x002440, 0x00244A, "So" }, + { 0x002460, 0x00249B, "No" }, + { 0x00249C, 0x0024E9, "So" }, + { 0x0024EA, 0x0024FF, "No" }, + { 0x002500, 0x0025B6, "So" }, + { 0x0025B8, 0x0025C0, "So" }, + { 0x0025C2, 0x0025F7, "So" }, + { 0x0025F8, 0x0025FF, "Sm" }, + { 0x002600, 0x00266E, "So" }, + { 0x002670, 0x002767, "So" }, + { 0x002776, 0x002793, "No" }, + { 0x002794, 0x0027BF, "So" }, + { 0x0027C0, 0x0027C4, "Sm" }, + { 0x0027C7, 0x0027E5, "Sm" }, + { 0x0027F0, 0x0027FF, "Sm" }, + { 0x002800, 0x0028FF, "So" }, + { 0x002900, 0x002982, "Sm" }, + { 0x002999, 0x0029D7, "Sm" }, + { 0x0029DC, 0x0029FB, "Sm" }, + { 0x0029FE, 0x002AFF, "Sm" }, + { 0x002B00, 0x002B2F, "So" }, + { 0x002B30, 0x002B44, "Sm" }, + { 0x002B45, 0x002B46, "So" }, + { 0x002B47, 0x002B4C, "Sm" }, + { 0x002B4D, 0x002B73, "So" }, + { 0x002B76, 0x002B95, "So" }, + { 0x002B98, 0x002BC8, "So" }, + { 0x002BCA, 0x002BFE, "So" }, + { 0x002C00, 0x002C2E, "Lu" }, + { 0x002C30, 0x002C5E, "Ll" }, + { 0x002C62, 0x002C64, "Lu" }, + { 0x002C65, 0x002C66, "Ll" }, + { 0x002C6D, 0x002C70, "Lu" }, + { 0x002C73, 0x002C74, "Ll" }, + { 0x002C76, 0x002C7B, "Ll" }, + { 0x002C7C, 0x002C7D, "Lm" }, + { 0x002C7E, 0x002C80, "Lu" }, + { 0x002CE3, 0x002CE4, "Ll" }, + { 0x002CE5, 0x002CEA, "So" }, + { 0x002CEF, 0x002CF1, "Mn" }, + { 0x002CF9, 0x002CFC, "Po" }, + { 0x002CFE, 0x002CFF, "Po" }, + { 0x002D00, 0x002D25, "Ll" }, + { 0x002D30, 0x002D67, "Lo" }, + { 0x002D80, 0x002D96, "Lo" }, + { 0x002DA0, 0x002DA6, "Lo" }, + { 0x002DA8, 0x002DAE, "Lo" }, + { 0x002DB0, 0x002DB6, "Lo" }, + { 0x002DB8, 0x002DBE, "Lo" }, + { 0x002DC0, 0x002DC6, "Lo" }, + { 0x002DC8, 0x002DCE, "Lo" }, + { 0x002DD0, 0x002DD6, "Lo" }, + { 0x002DD8, 0x002DDE, "Lo" }, + { 0x002DE0, 0x002DFF, "Mn" }, + { 0x002E00, 0x002E01, "Po" }, + { 0x002E06, 0x002E08, "Po" }, + { 0x002E0E, 0x002E16, "Po" }, + { 0x002E18, 0x002E19, "Po" }, + { 0x002E1E, 0x002E1F, "Po" }, + { 0x002E2A, 0x002E2E, "Po" }, + { 0x002E30, 0x002E39, "Po" }, + { 0x002E3A, 0x002E3B, "Pd" }, + { 0x002E3C, 0x002E3F, "Po" }, + { 0x002E43, 0x002E4E, "Po" }, + { 0x002E80, 0x002E99, "So" }, + { 0x002E9B, 0x002EF3, "So" }, + { 0x002F00, 0x002FD5, "So" }, + { 0x002FF0, 0x002FFB, "So" }, + { 0x003001, 0x003003, "Po" }, + { 0x003012, 0x003013, "So" }, + { 0x00301E, 0x00301F, "Pe" }, + { 0x003021, 0x003029, "Nl" }, + { 0x00302A, 0x00302D, "Mn" }, + { 0x00302E, 0x00302F, "Mc" }, + { 0x003031, 0x003035, "Lm" }, + { 0x003036, 0x003037, "So" }, + { 0x003038, 0x00303A, "Nl" }, + { 0x00303E, 0x00303F, "So" }, + { 0x003041, 0x003096, "Lo" }, + { 0x003099, 0x00309A, "Mn" }, + { 0x00309B, 0x00309C, "Sk" }, + { 0x00309D, 0x00309E, "Lm" }, + { 0x0030A1, 0x0030FA, "Lo" }, + { 0x0030FC, 0x0030FE, "Lm" }, + { 0x003105, 0x00312F, "Lo" }, + { 0x003131, 0x00318E, "Lo" }, + { 0x003190, 0x003191, "So" }, + { 0x003192, 0x003195, "No" }, + { 0x003196, 0x00319F, "So" }, + { 0x0031A0, 0x0031BA, "Lo" }, + { 0x0031C0, 0x0031E3, "So" }, + { 0x0031F0, 0x0031FF, "Lo" }, + { 0x003200, 0x00321E, "So" }, + { 0x003220, 0x003229, "No" }, + { 0x00322A, 0x003247, "So" }, + { 0x003248, 0x00324F, "No" }, + { 0x003251, 0x00325F, "No" }, + { 0x003260, 0x00327F, "So" }, + { 0x003280, 0x003289, "No" }, + { 0x00328A, 0x0032B0, "So" }, + { 0x0032B1, 0x0032BF, "No" }, + { 0x0032C0, 0x0032FE, "So" }, + { 0x003300, 0x0033FF, "So" }, + { 0x003400, 0x004DB5, "Lo" }, + { 0x004DC0, 0x004DFF, "So" }, + { 0x004E00, 0x009FEF, "Lo" }, + { 0x00A000, 0x00A014, "Lo" }, + { 0x00A016, 0x00A48C, "Lo" }, + { 0x00A490, 0x00A4C6, "So" }, + { 0x00A4D0, 0x00A4F7, "Lo" }, + { 0x00A4F8, 0x00A4FD, "Lm" }, + { 0x00A4FE, 0x00A4FF, "Po" }, + { 0x00A500, 0x00A60B, "Lo" }, + { 0x00A60D, 0x00A60F, "Po" }, + { 0x00A610, 0x00A61F, "Lo" }, + { 0x00A620, 0x00A629, "Nd" }, + { 0x00A62A, 0x00A62B, "Lo" }, + { 0x00A670, 0x00A672, "Me" }, + { 0x00A674, 0x00A67D, "Mn" }, + { 0x00A69C, 0x00A69D, "Lm" }, + { 0x00A69E, 0x00A69F, "Mn" }, + { 0x00A6A0, 0x00A6E5, "Lo" }, + { 0x00A6E6, 0x00A6EF, "Nl" }, + { 0x00A6F0, 0x00A6F1, "Mn" }, + { 0x00A6F2, 0x00A6F7, "Po" }, + { 0x00A700, 0x00A716, "Sk" }, + { 0x00A717, 0x00A71F, "Lm" }, + { 0x00A720, 0x00A721, "Sk" }, + { 0x00A72F, 0x00A731, "Ll" }, + { 0x00A771, 0x00A778, "Ll" }, + { 0x00A77D, 0x00A77E, "Lu" }, + { 0x00A789, 0x00A78A, "Sk" }, + { 0x00A793, 0x00A795, "Ll" }, + { 0x00A7AA, 0x00A7AE, "Lu" }, + { 0x00A7B0, 0x00A7B4, "Lu" }, + { 0x00A7F8, 0x00A7F9, "Lm" }, + { 0x00A7FB, 0x00A801, "Lo" }, + { 0x00A803, 0x00A805, "Lo" }, + { 0x00A807, 0x00A80A, "Lo" }, + { 0x00A80C, 0x00A822, "Lo" }, + { 0x00A823, 0x00A824, "Mc" }, + { 0x00A825, 0x00A826, "Mn" }, + { 0x00A828, 0x00A82B, "So" }, + { 0x00A830, 0x00A835, "No" }, + { 0x00A836, 0x00A837, "So" }, + { 0x00A840, 0x00A873, "Lo" }, + { 0x00A874, 0x00A877, "Po" }, + { 0x00A880, 0x00A881, "Mc" }, + { 0x00A882, 0x00A8B3, "Lo" }, + { 0x00A8B4, 0x00A8C3, "Mc" }, + { 0x00A8C4, 0x00A8C5, "Mn" }, + { 0x00A8CE, 0x00A8CF, "Po" }, + { 0x00A8D0, 0x00A8D9, "Nd" }, + { 0x00A8E0, 0x00A8F1, "Mn" }, + { 0x00A8F2, 0x00A8F7, "Lo" }, + { 0x00A8F8, 0x00A8FA, "Po" }, + { 0x00A8FD, 0x00A8FE, "Lo" }, + { 0x00A900, 0x00A909, "Nd" }, + { 0x00A90A, 0x00A925, "Lo" }, + { 0x00A926, 0x00A92D, "Mn" }, + { 0x00A92E, 0x00A92F, "Po" }, + { 0x00A930, 0x00A946, "Lo" }, + { 0x00A947, 0x00A951, "Mn" }, + { 0x00A952, 0x00A953, "Mc" }, + { 0x00A960, 0x00A97C, "Lo" }, + { 0x00A980, 0x00A982, "Mn" }, + { 0x00A984, 0x00A9B2, "Lo" }, + { 0x00A9B4, 0x00A9B5, "Mc" }, + { 0x00A9B6, 0x00A9B9, "Mn" }, + { 0x00A9BA, 0x00A9BB, "Mc" }, + { 0x00A9BD, 0x00A9C0, "Mc" }, + { 0x00A9C1, 0x00A9CD, "Po" }, + { 0x00A9D0, 0x00A9D9, "Nd" }, + { 0x00A9DE, 0x00A9DF, "Po" }, + { 0x00A9E0, 0x00A9E4, "Lo" }, + { 0x00A9E7, 0x00A9EF, "Lo" }, + { 0x00A9F0, 0x00A9F9, "Nd" }, + { 0x00A9FA, 0x00A9FE, "Lo" }, + { 0x00AA00, 0x00AA28, "Lo" }, + { 0x00AA29, 0x00AA2E, "Mn" }, + { 0x00AA2F, 0x00AA30, "Mc" }, + { 0x00AA31, 0x00AA32, "Mn" }, + { 0x00AA33, 0x00AA34, "Mc" }, + { 0x00AA35, 0x00AA36, "Mn" }, + { 0x00AA40, 0x00AA42, "Lo" }, + { 0x00AA44, 0x00AA4B, "Lo" }, + { 0x00AA50, 0x00AA59, "Nd" }, + { 0x00AA5C, 0x00AA5F, "Po" }, + { 0x00AA60, 0x00AA6F, "Lo" }, + { 0x00AA71, 0x00AA76, "Lo" }, + { 0x00AA77, 0x00AA79, "So" }, + { 0x00AA7E, 0x00AAAF, "Lo" }, + { 0x00AAB2, 0x00AAB4, "Mn" }, + { 0x00AAB5, 0x00AAB6, "Lo" }, + { 0x00AAB7, 0x00AAB8, "Mn" }, + { 0x00AAB9, 0x00AABD, "Lo" }, + { 0x00AABE, 0x00AABF, "Mn" }, + { 0x00AADB, 0x00AADC, "Lo" }, + { 0x00AADE, 0x00AADF, "Po" }, + { 0x00AAE0, 0x00AAEA, "Lo" }, + { 0x00AAEC, 0x00AAED, "Mn" }, + { 0x00AAEE, 0x00AAEF, "Mc" }, + { 0x00AAF0, 0x00AAF1, "Po" }, + { 0x00AAF3, 0x00AAF4, "Lm" }, + { 0x00AB01, 0x00AB06, "Lo" }, + { 0x00AB09, 0x00AB0E, "Lo" }, + { 0x00AB11, 0x00AB16, "Lo" }, + { 0x00AB20, 0x00AB26, "Lo" }, + { 0x00AB28, 0x00AB2E, "Lo" }, + { 0x00AB30, 0x00AB5A, "Ll" }, + { 0x00AB5C, 0x00AB5F, "Lm" }, + { 0x00AB60, 0x00AB65, "Ll" }, + { 0x00AB70, 0x00ABBF, "Ll" }, + { 0x00ABC0, 0x00ABE2, "Lo" }, + { 0x00ABE3, 0x00ABE4, "Mc" }, + { 0x00ABE6, 0x00ABE7, "Mc" }, + { 0x00ABE9, 0x00ABEA, "Mc" }, + { 0x00ABF0, 0x00ABF9, "Nd" }, + { 0x00AC00, 0x00D7A3, "Lo" }, + { 0x00D7B0, 0x00D7C6, "Lo" }, + { 0x00D7CB, 0x00D7FB, "Lo" }, + { 0x00D800, 0x00DFFF, "Cs" }, + { 0x00E000, 0x00F8FF, "Co" }, + { 0x00F900, 0x00FA6D, "Lo" }, + { 0x00FA70, 0x00FAD9, "Lo" }, + { 0x00FB00, 0x00FB06, "Ll" }, + { 0x00FB13, 0x00FB17, "Ll" }, + { 0x00FB1F, 0x00FB28, "Lo" }, + { 0x00FB2A, 0x00FB36, "Lo" }, + { 0x00FB38, 0x00FB3C, "Lo" }, + { 0x00FB40, 0x00FB41, "Lo" }, + { 0x00FB43, 0x00FB44, "Lo" }, + { 0x00FB46, 0x00FBB1, "Lo" }, + { 0x00FBB2, 0x00FBC1, "Sk" }, + { 0x00FBD3, 0x00FD3D, "Lo" }, + { 0x00FD50, 0x00FD8F, "Lo" }, + { 0x00FD92, 0x00FDC7, "Lo" }, + { 0x00FDF0, 0x00FDFB, "Lo" }, + { 0x00FE00, 0x00FE0F, "Mn" }, + { 0x00FE10, 0x00FE16, "Po" }, + { 0x00FE20, 0x00FE2F, "Mn" }, + { 0x00FE31, 0x00FE32, "Pd" }, + { 0x00FE33, 0x00FE34, "Pc" }, + { 0x00FE45, 0x00FE46, "Po" }, + { 0x00FE49, 0x00FE4C, "Po" }, + { 0x00FE4D, 0x00FE4F, "Pc" }, + { 0x00FE50, 0x00FE52, "Po" }, + { 0x00FE54, 0x00FE57, "Po" }, + { 0x00FE5F, 0x00FE61, "Po" }, + { 0x00FE64, 0x00FE66, "Sm" }, + { 0x00FE6A, 0x00FE6B, "Po" }, + { 0x00FE70, 0x00FE74, "Lo" }, + { 0x00FE76, 0x00FEFC, "Lo" }, + { 0x00FF01, 0x00FF03, "Po" }, + { 0x00FF05, 0x00FF07, "Po" }, + { 0x00FF0E, 0x00FF0F, "Po" }, + { 0x00FF10, 0x00FF19, "Nd" }, + { 0x00FF1A, 0x00FF1B, "Po" }, + { 0x00FF1C, 0x00FF1E, "Sm" }, + { 0x00FF1F, 0x00FF20, "Po" }, + { 0x00FF21, 0x00FF3A, "Lu" }, + { 0x00FF41, 0x00FF5A, "Ll" }, + { 0x00FF64, 0x00FF65, "Po" }, + { 0x00FF66, 0x00FF6F, "Lo" }, + { 0x00FF71, 0x00FF9D, "Lo" }, + { 0x00FF9E, 0x00FF9F, "Lm" }, + { 0x00FFA0, 0x00FFBE, "Lo" }, + { 0x00FFC2, 0x00FFC7, "Lo" }, + { 0x00FFCA, 0x00FFCF, "Lo" }, + { 0x00FFD2, 0x00FFD7, "Lo" }, + { 0x00FFDA, 0x00FFDC, "Lo" }, + { 0x00FFE0, 0x00FFE1, "Sc" }, + { 0x00FFE5, 0x00FFE6, "Sc" }, + { 0x00FFE9, 0x00FFEC, "Sm" }, + { 0x00FFED, 0x00FFEE, "So" }, + { 0x00FFF9, 0x00FFFB, "Cf" }, + { 0x00FFFC, 0x00FFFD, "So" }, + { 0x010000, 0x01000B, "Lo" }, + { 0x01000D, 0x010026, "Lo" }, + { 0x010028, 0x01003A, "Lo" }, + { 0x01003C, 0x01003D, "Lo" }, + { 0x01003F, 0x01004D, "Lo" }, + { 0x010050, 0x01005D, "Lo" }, + { 0x010080, 0x0100FA, "Lo" }, + { 0x010100, 0x010102, "Po" }, + { 0x010107, 0x010133, "No" }, + { 0x010137, 0x01013F, "So" }, + { 0x010140, 0x010174, "Nl" }, + { 0x010175, 0x010178, "No" }, + { 0x010179, 0x010189, "So" }, + { 0x01018A, 0x01018B, "No" }, + { 0x01018C, 0x01018E, "So" }, + { 0x010190, 0x01019B, "So" }, + { 0x0101D0, 0x0101FC, "So" }, + { 0x010280, 0x01029C, "Lo" }, + { 0x0102A0, 0x0102D0, "Lo" }, + { 0x0102E1, 0x0102FB, "No" }, + { 0x010300, 0x01031F, "Lo" }, + { 0x010320, 0x010323, "No" }, + { 0x01032D, 0x010340, "Lo" }, + { 0x010342, 0x010349, "Lo" }, + { 0x010350, 0x010375, "Lo" }, + { 0x010376, 0x01037A, "Mn" }, + { 0x010380, 0x01039D, "Lo" }, + { 0x0103A0, 0x0103C3, "Lo" }, + { 0x0103C8, 0x0103CF, "Lo" }, + { 0x0103D1, 0x0103D5, "Nl" }, + { 0x010400, 0x010427, "Lu" }, + { 0x010428, 0x01044F, "Ll" }, + { 0x010450, 0x01049D, "Lo" }, + { 0x0104A0, 0x0104A9, "Nd" }, + { 0x0104B0, 0x0104D3, "Lu" }, + { 0x0104D8, 0x0104FB, "Ll" }, + { 0x010500, 0x010527, "Lo" }, + { 0x010530, 0x010563, "Lo" }, + { 0x010600, 0x010736, "Lo" }, + { 0x010740, 0x010755, "Lo" }, + { 0x010760, 0x010767, "Lo" }, + { 0x010800, 0x010805, "Lo" }, + { 0x01080A, 0x010835, "Lo" }, + { 0x010837, 0x010838, "Lo" }, + { 0x01083F, 0x010855, "Lo" }, + { 0x010858, 0x01085F, "No" }, + { 0x010860, 0x010876, "Lo" }, + { 0x010877, 0x010878, "So" }, + { 0x010879, 0x01087F, "No" }, + { 0x010880, 0x01089E, "Lo" }, + { 0x0108A7, 0x0108AF, "No" }, + { 0x0108E0, 0x0108F2, "Lo" }, + { 0x0108F4, 0x0108F5, "Lo" }, + { 0x0108FB, 0x0108FF, "No" }, + { 0x010900, 0x010915, "Lo" }, + { 0x010916, 0x01091B, "No" }, + { 0x010920, 0x010939, "Lo" }, + { 0x010980, 0x0109B7, "Lo" }, + { 0x0109BC, 0x0109BD, "No" }, + { 0x0109BE, 0x0109BF, "Lo" }, + { 0x0109C0, 0x0109CF, "No" }, + { 0x0109D2, 0x0109FF, "No" }, + { 0x010A01, 0x010A03, "Mn" }, + { 0x010A05, 0x010A06, "Mn" }, + { 0x010A0C, 0x010A0F, "Mn" }, + { 0x010A10, 0x010A13, "Lo" }, + { 0x010A15, 0x010A17, "Lo" }, + { 0x010A19, 0x010A35, "Lo" }, + { 0x010A38, 0x010A3A, "Mn" }, + { 0x010A40, 0x010A48, "No" }, + { 0x010A50, 0x010A58, "Po" }, + { 0x010A60, 0x010A7C, "Lo" }, + { 0x010A7D, 0x010A7E, "No" }, + { 0x010A80, 0x010A9C, "Lo" }, + { 0x010A9D, 0x010A9F, "No" }, + { 0x010AC0, 0x010AC7, "Lo" }, + { 0x010AC9, 0x010AE4, "Lo" }, + { 0x010AE5, 0x010AE6, "Mn" }, + { 0x010AEB, 0x010AEF, "No" }, + { 0x010AF0, 0x010AF6, "Po" }, + { 0x010B00, 0x010B35, "Lo" }, + { 0x010B39, 0x010B3F, "Po" }, + { 0x010B40, 0x010B55, "Lo" }, + { 0x010B58, 0x010B5F, "No" }, + { 0x010B60, 0x010B72, "Lo" }, + { 0x010B78, 0x010B7F, "No" }, + { 0x010B80, 0x010B91, "Lo" }, + { 0x010B99, 0x010B9C, "Po" }, + { 0x010BA9, 0x010BAF, "No" }, + { 0x010C00, 0x010C48, "Lo" }, + { 0x010C80, 0x010CB2, "Lu" }, + { 0x010CC0, 0x010CF2, "Ll" }, + { 0x010CFA, 0x010CFF, "No" }, + { 0x010D00, 0x010D23, "Lo" }, + { 0x010D24, 0x010D27, "Mn" }, + { 0x010D30, 0x010D39, "Nd" }, + { 0x010E60, 0x010E7E, "No" }, + { 0x010F00, 0x010F1C, "Lo" }, + { 0x010F1D, 0x010F26, "No" }, + { 0x010F30, 0x010F45, "Lo" }, + { 0x010F46, 0x010F50, "Mn" }, + { 0x010F51, 0x010F54, "No" }, + { 0x010F55, 0x010F59, "Po" }, + { 0x011003, 0x011037, "Lo" }, + { 0x011038, 0x011046, "Mn" }, + { 0x011047, 0x01104D, "Po" }, + { 0x011052, 0x011065, "No" }, + { 0x011066, 0x01106F, "Nd" }, + { 0x01107F, 0x011081, "Mn" }, + { 0x011083, 0x0110AF, "Lo" }, + { 0x0110B0, 0x0110B2, "Mc" }, + { 0x0110B3, 0x0110B6, "Mn" }, + { 0x0110B7, 0x0110B8, "Mc" }, + { 0x0110B9, 0x0110BA, "Mn" }, + { 0x0110BB, 0x0110BC, "Po" }, + { 0x0110BE, 0x0110C1, "Po" }, + { 0x0110D0, 0x0110E8, "Lo" }, + { 0x0110F0, 0x0110F9, "Nd" }, + { 0x011100, 0x011102, "Mn" }, + { 0x011103, 0x011126, "Lo" }, + { 0x011127, 0x01112B, "Mn" }, + { 0x01112D, 0x011134, "Mn" }, + { 0x011136, 0x01113F, "Nd" }, + { 0x011140, 0x011143, "Po" }, + { 0x011145, 0x011146, "Mc" }, + { 0x011150, 0x011172, "Lo" }, + { 0x011174, 0x011175, "Po" }, + { 0x011180, 0x011181, "Mn" }, + { 0x011183, 0x0111B2, "Lo" }, + { 0x0111B3, 0x0111B5, "Mc" }, + { 0x0111B6, 0x0111BE, "Mn" }, + { 0x0111BF, 0x0111C0, "Mc" }, + { 0x0111C1, 0x0111C4, "Lo" }, + { 0x0111C5, 0x0111C8, "Po" }, + { 0x0111C9, 0x0111CC, "Mn" }, + { 0x0111D0, 0x0111D9, "Nd" }, + { 0x0111DD, 0x0111DF, "Po" }, + { 0x0111E1, 0x0111F4, "No" }, + { 0x011200, 0x011211, "Lo" }, + { 0x011213, 0x01122B, "Lo" }, + { 0x01122C, 0x01122E, "Mc" }, + { 0x01122F, 0x011231, "Mn" }, + { 0x011232, 0x011233, "Mc" }, + { 0x011236, 0x011237, "Mn" }, + { 0x011238, 0x01123D, "Po" }, + { 0x011280, 0x011286, "Lo" }, + { 0x01128A, 0x01128D, "Lo" }, + { 0x01128F, 0x01129D, "Lo" }, + { 0x01129F, 0x0112A8, "Lo" }, + { 0x0112B0, 0x0112DE, "Lo" }, + { 0x0112E0, 0x0112E2, "Mc" }, + { 0x0112E3, 0x0112EA, "Mn" }, + { 0x0112F0, 0x0112F9, "Nd" }, + { 0x011300, 0x011301, "Mn" }, + { 0x011302, 0x011303, "Mc" }, + { 0x011305, 0x01130C, "Lo" }, + { 0x01130F, 0x011310, "Lo" }, + { 0x011313, 0x011328, "Lo" }, + { 0x01132A, 0x011330, "Lo" }, + { 0x011332, 0x011333, "Lo" }, + { 0x011335, 0x011339, "Lo" }, + { 0x01133B, 0x01133C, "Mn" }, + { 0x01133E, 0x01133F, "Mc" }, + { 0x011341, 0x011344, "Mc" }, + { 0x011347, 0x011348, "Mc" }, + { 0x01134B, 0x01134D, "Mc" }, + { 0x01135D, 0x011361, "Lo" }, + { 0x011362, 0x011363, "Mc" }, + { 0x011366, 0x01136C, "Mn" }, + { 0x011370, 0x011374, "Mn" }, + { 0x011400, 0x011434, "Lo" }, + { 0x011435, 0x011437, "Mc" }, + { 0x011438, 0x01143F, "Mn" }, + { 0x011440, 0x011441, "Mc" }, + { 0x011442, 0x011444, "Mn" }, + { 0x011447, 0x01144A, "Lo" }, + { 0x01144B, 0x01144F, "Po" }, + { 0x011450, 0x011459, "Nd" }, + { 0x011480, 0x0114AF, "Lo" }, + { 0x0114B0, 0x0114B2, "Mc" }, + { 0x0114B3, 0x0114B8, "Mn" }, + { 0x0114BB, 0x0114BE, "Mc" }, + { 0x0114BF, 0x0114C0, "Mn" }, + { 0x0114C2, 0x0114C3, "Mn" }, + { 0x0114C4, 0x0114C5, "Lo" }, + { 0x0114D0, 0x0114D9, "Nd" }, + { 0x011580, 0x0115AE, "Lo" }, + { 0x0115AF, 0x0115B1, "Mc" }, + { 0x0115B2, 0x0115B5, "Mn" }, + { 0x0115B8, 0x0115BB, "Mc" }, + { 0x0115BC, 0x0115BD, "Mn" }, + { 0x0115BF, 0x0115C0, "Mn" }, + { 0x0115C1, 0x0115D7, "Po" }, + { 0x0115D8, 0x0115DB, "Lo" }, + { 0x0115DC, 0x0115DD, "Mn" }, + { 0x011600, 0x01162F, "Lo" }, + { 0x011630, 0x011632, "Mc" }, + { 0x011633, 0x01163A, "Mn" }, + { 0x01163B, 0x01163C, "Mc" }, + { 0x01163F, 0x011640, "Mn" }, + { 0x011641, 0x011643, "Po" }, + { 0x011650, 0x011659, "Nd" }, + { 0x011660, 0x01166C, "Po" }, + { 0x011680, 0x0116AA, "Lo" }, + { 0x0116AE, 0x0116AF, "Mc" }, + { 0x0116B0, 0x0116B5, "Mn" }, + { 0x0116C0, 0x0116C9, "Nd" }, + { 0x011700, 0x01171A, "Lo" }, + { 0x01171D, 0x01171F, "Mn" }, + { 0x011720, 0x011721, "Mc" }, + { 0x011722, 0x011725, "Mn" }, + { 0x011727, 0x01172B, "Mn" }, + { 0x011730, 0x011739, "Nd" }, + { 0x01173A, 0x01173B, "No" }, + { 0x01173C, 0x01173E, "Po" }, + { 0x011800, 0x01182B, "Lo" }, + { 0x01182C, 0x01182E, "Mc" }, + { 0x01182F, 0x011837, "Mn" }, + { 0x011839, 0x01183A, "Mn" }, + { 0x0118A0, 0x0118BF, "Lu" }, + { 0x0118C0, 0x0118DF, "Ll" }, + { 0x0118E0, 0x0118E9, "Nd" }, + { 0x0118EA, 0x0118F2, "No" }, + { 0x011A01, 0x011A0A, "Mn" }, + { 0x011A0B, 0x011A32, "Lo" }, + { 0x011A33, 0x011A38, "Mn" }, + { 0x011A3B, 0x011A3E, "Mn" }, + { 0x011A3F, 0x011A46, "Po" }, + { 0x011A51, 0x011A56, "Mn" }, + { 0x011A57, 0x011A58, "Mc" }, + { 0x011A59, 0x011A5B, "Mn" }, + { 0x011A5C, 0x011A83, "Lo" }, + { 0x011A86, 0x011A89, "Lo" }, + { 0x011A8A, 0x011A96, "Mn" }, + { 0x011A98, 0x011A99, "Mn" }, + { 0x011A9A, 0x011A9C, "Po" }, + { 0x011A9E, 0x011AA2, "Po" }, + { 0x011AC0, 0x011AF8, "Lo" }, + { 0x011C00, 0x011C08, "Lo" }, + { 0x011C0A, 0x011C2E, "Lo" }, + { 0x011C30, 0x011C36, "Mn" }, + { 0x011C38, 0x011C3D, "Mn" }, + { 0x011C41, 0x011C45, "Po" }, + { 0x011C50, 0x011C59, "Nd" }, + { 0x011C5A, 0x011C6C, "No" }, + { 0x011C70, 0x011C71, "Po" }, + { 0x011C72, 0x011C8F, "Lo" }, + { 0x011C92, 0x011CA7, "Mn" }, + { 0x011CAA, 0x011CB0, "Mn" }, + { 0x011CB2, 0x011CB3, "Mn" }, + { 0x011CB5, 0x011CB6, "Mn" }, + { 0x011D00, 0x011D06, "Lo" }, + { 0x011D08, 0x011D09, "Lo" }, + { 0x011D0B, 0x011D30, "Lo" }, + { 0x011D31, 0x011D36, "Mn" }, + { 0x011D3C, 0x011D3D, "Mn" }, + { 0x011D3F, 0x011D45, "Mn" }, + { 0x011D50, 0x011D59, "Nd" }, + { 0x011D60, 0x011D65, "Lo" }, + { 0x011D67, 0x011D68, "Lo" }, + { 0x011D6A, 0x011D89, "Lo" }, + { 0x011D8A, 0x011D8E, "Mc" }, + { 0x011D90, 0x011D91, "Mn" }, + { 0x011D93, 0x011D94, "Mc" }, + { 0x011DA0, 0x011DA9, "Nd" }, + { 0x011EE0, 0x011EF2, "Lo" }, + { 0x011EF3, 0x011EF4, "Mn" }, + { 0x011EF5, 0x011EF6, "Mc" }, + { 0x011EF7, 0x011EF8, "Po" }, + { 0x012000, 0x012399, "Lo" }, + { 0x012400, 0x01246E, "Nl" }, + { 0x012470, 0x012474, "Po" }, + { 0x012480, 0x012543, "Lo" }, + { 0x013000, 0x01342E, "Lo" }, + { 0x014400, 0x014646, "Lo" }, + { 0x016800, 0x016A38, "Lo" }, + { 0x016A40, 0x016A5E, "Lo" }, + { 0x016A60, 0x016A69, "Nd" }, + { 0x016A6E, 0x016A6F, "Po" }, + { 0x016AD0, 0x016AED, "Lo" }, + { 0x016AF0, 0x016AF4, "Mn" }, + { 0x016B00, 0x016B2F, "Lo" }, + { 0x016B30, 0x016B36, "Mn" }, + { 0x016B37, 0x016B3B, "Po" }, + { 0x016B3C, 0x016B3F, "So" }, + { 0x016B40, 0x016B43, "Lm" }, + { 0x016B50, 0x016B59, "Nd" }, + { 0x016B5B, 0x016B61, "No" }, + { 0x016B63, 0x016B77, "Lo" }, + { 0x016B7D, 0x016B8F, "Lo" }, + { 0x016E40, 0x016E5F, "Lu" }, + { 0x016E60, 0x016E7F, "Ll" }, + { 0x016E80, 0x016E96, "No" }, + { 0x016E97, 0x016E9A, "Po" }, + { 0x016F00, 0x016F44, "Lo" }, + { 0x016F51, 0x016F7E, "Mc" }, + { 0x016F8F, 0x016F92, "Mn" }, + { 0x016F93, 0x016F9F, "Lm" }, + { 0x016FE0, 0x016FE1, "Lm" }, + { 0x017000, 0x0187F1, "Lo" }, + { 0x018800, 0x018AF2, "Lo" }, + { 0x01B000, 0x01B11E, "Lo" }, + { 0x01B170, 0x01B2FB, "Lo" }, + { 0x01BC00, 0x01BC6A, "Lo" }, + { 0x01BC70, 0x01BC7C, "Lo" }, + { 0x01BC80, 0x01BC88, "Lo" }, + { 0x01BC90, 0x01BC99, "Lo" }, + { 0x01BC9D, 0x01BC9E, "Mn" }, + { 0x01BCA0, 0x01BCA3, "Cf" }, + { 0x01D000, 0x01D0F5, "So" }, + { 0x01D100, 0x01D126, "So" }, + { 0x01D129, 0x01D164, "So" }, + { 0x01D165, 0x01D166, "Mc" }, + { 0x01D167, 0x01D169, "Mn" }, + { 0x01D16A, 0x01D16C, "So" }, + { 0x01D16D, 0x01D172, "Mc" }, + { 0x01D173, 0x01D17A, "Cf" }, + { 0x01D17B, 0x01D182, "Mn" }, + { 0x01D183, 0x01D184, "So" }, + { 0x01D185, 0x01D18B, "Mn" }, + { 0x01D18C, 0x01D1A9, "So" }, + { 0x01D1AA, 0x01D1AD, "Mn" }, + { 0x01D1AE, 0x01D1E8, "So" }, + { 0x01D200, 0x01D241, "So" }, + { 0x01D242, 0x01D244, "Mn" }, + { 0x01D2E0, 0x01D2F3, "No" }, + { 0x01D300, 0x01D356, "So" }, + { 0x01D360, 0x01D378, "No" }, + { 0x01D400, 0x01D419, "Lu" }, + { 0x01D41A, 0x01D433, "Ll" }, + { 0x01D434, 0x01D44D, "Lu" }, + { 0x01D44E, 0x01D454, "Ll" }, + { 0x01D456, 0x01D467, "Ll" }, + { 0x01D468, 0x01D481, "Lu" }, + { 0x01D482, 0x01D49B, "Ll" }, + { 0x01D49E, 0x01D49F, "Lu" }, + { 0x01D4A5, 0x01D4A6, "Lu" }, + { 0x01D4A9, 0x01D4AC, "Lu" }, + { 0x01D4AE, 0x01D4B5, "Lu" }, + { 0x01D4B6, 0x01D4B9, "Ll" }, + { 0x01D4BD, 0x01D4C3, "Ll" }, + { 0x01D4C5, 0x01D4CF, "Ll" }, + { 0x01D4D0, 0x01D4E9, "Lu" }, + { 0x01D4EA, 0x01D503, "Ll" }, + { 0x01D504, 0x01D505, "Lu" }, + { 0x01D507, 0x01D50A, "Lu" }, + { 0x01D50D, 0x01D514, "Lu" }, + { 0x01D516, 0x01D51C, "Lu" }, + { 0x01D51E, 0x01D537, "Ll" }, + { 0x01D538, 0x01D539, "Lu" }, + { 0x01D53B, 0x01D53E, "Lu" }, + { 0x01D540, 0x01D544, "Lu" }, + { 0x01D54A, 0x01D550, "Lu" }, + { 0x01D552, 0x01D56B, "Ll" }, + { 0x01D56C, 0x01D585, "Lu" }, + { 0x01D586, 0x01D59F, "Ll" }, + { 0x01D5A0, 0x01D5B9, "Lu" }, + { 0x01D5BA, 0x01D5D3, "Ll" }, + { 0x01D5D4, 0x01D5ED, "Lu" }, + { 0x01D5EE, 0x01D607, "Ll" }, + { 0x01D608, 0x01D621, "Lu" }, + { 0x01D622, 0x01D63B, "Ll" }, + { 0x01D63C, 0x01D655, "Lu" }, + { 0x01D656, 0x01D66F, "Ll" }, + { 0x01D670, 0x01D689, "Lu" }, + { 0x01D68A, 0x01D6A5, "Ll" }, + { 0x01D6A8, 0x01D6C0, "Lu" }, + { 0x01D6C2, 0x01D6DA, "Ll" }, + { 0x01D6DC, 0x01D6E1, "Ll" }, + { 0x01D6E2, 0x01D6FA, "Lu" }, + { 0x01D6FC, 0x01D714, "Ll" }, + { 0x01D716, 0x01D71B, "Ll" }, + { 0x01D71C, 0x01D734, "Lu" }, + { 0x01D736, 0x01D74E, "Ll" }, + { 0x01D750, 0x01D755, "Ll" }, + { 0x01D756, 0x01D76E, "Lu" }, + { 0x01D770, 0x01D788, "Ll" }, + { 0x01D78A, 0x01D78F, "Ll" }, + { 0x01D790, 0x01D7A8, "Lu" }, + { 0x01D7AA, 0x01D7C2, "Ll" }, + { 0x01D7C4, 0x01D7C9, "Ll" }, + { 0x01D7CE, 0x01D7FF, "Nd" }, + { 0x01D800, 0x01D9FF, "So" }, + { 0x01DA00, 0x01DA36, "Mn" }, + { 0x01DA37, 0x01DA3A, "So" }, + { 0x01DA3B, 0x01DA6C, "Mn" }, + { 0x01DA6D, 0x01DA74, "So" }, + { 0x01DA76, 0x01DA83, "So" }, + { 0x01DA85, 0x01DA86, "So" }, + { 0x01DA87, 0x01DA8B, "Po" }, + { 0x01DA9B, 0x01DA9F, "Mn" }, + { 0x01DAA1, 0x01DAAF, "Mn" }, + { 0x01E000, 0x01E006, "Mn" }, + { 0x01E008, 0x01E018, "Mn" }, + { 0x01E01B, 0x01E021, "Mn" }, + { 0x01E023, 0x01E024, "Mn" }, + { 0x01E026, 0x01E02A, "Mn" }, + { 0x01E800, 0x01E8C4, "Lo" }, + { 0x01E8C7, 0x01E8CF, "No" }, + { 0x01E8D0, 0x01E8D6, "Mn" }, + { 0x01E900, 0x01E921, "Lu" }, + { 0x01E922, 0x01E943, "Ll" }, + { 0x01E944, 0x01E94A, "Mn" }, + { 0x01E950, 0x01E959, "Nd" }, + { 0x01E95E, 0x01E95F, "Po" }, + { 0x01EC71, 0x01ECAB, "No" }, + { 0x01ECAD, 0x01ECAF, "No" }, + { 0x01ECB1, 0x01ECB4, "No" }, + { 0x01EE00, 0x01EE03, "Lo" }, + { 0x01EE05, 0x01EE1F, "Lo" }, + { 0x01EE21, 0x01EE22, "Lo" }, + { 0x01EE29, 0x01EE32, "Lo" }, + { 0x01EE34, 0x01EE37, "Lo" }, + { 0x01EE4D, 0x01EE4F, "Lo" }, + { 0x01EE51, 0x01EE52, "Lo" }, + { 0x01EE61, 0x01EE62, "Lo" }, + { 0x01EE67, 0x01EE6A, "Lo" }, + { 0x01EE6C, 0x01EE72, "Lo" }, + { 0x01EE74, 0x01EE77, "Lo" }, + { 0x01EE79, 0x01EE7C, "Lo" }, + { 0x01EE80, 0x01EE89, "Lo" }, + { 0x01EE8B, 0x01EE9B, "Lo" }, + { 0x01EEA1, 0x01EEA3, "Lo" }, + { 0x01EEA5, 0x01EEA9, "Lo" }, + { 0x01EEAB, 0x01EEBB, "Lo" }, + { 0x01EEF0, 0x01EEF1, "Sm" }, + { 0x01F000, 0x01F02B, "So" }, + { 0x01F030, 0x01F093, "So" }, + { 0x01F0A0, 0x01F0AE, "So" }, + { 0x01F0B1, 0x01F0BF, "So" }, + { 0x01F0C1, 0x01F0CF, "So" }, + { 0x01F0D1, 0x01F0F5, "So" }, + { 0x01F100, 0x01F10C, "No" }, + { 0x01F110, 0x01F16B, "So" }, + { 0x01F170, 0x01F1AC, "So" }, + { 0x01F1E6, 0x01F202, "So" }, + { 0x01F210, 0x01F23B, "So" }, + { 0x01F240, 0x01F248, "So" }, + { 0x01F250, 0x01F251, "So" }, + { 0x01F260, 0x01F265, "So" }, + { 0x01F300, 0x01F3FA, "So" }, + { 0x01F3FB, 0x01F3FF, "Sk" }, + { 0x01F400, 0x01F6D4, "So" }, + { 0x01F6E0, 0x01F6EC, "So" }, + { 0x01F6F0, 0x01F6F9, "So" }, + { 0x01F700, 0x01F773, "So" }, + { 0x01F780, 0x01F7D8, "So" }, + { 0x01F800, 0x01F80B, "So" }, + { 0x01F810, 0x01F847, "So" }, + { 0x01F850, 0x01F859, "So" }, + { 0x01F860, 0x01F887, "So" }, + { 0x01F890, 0x01F8AD, "So" }, + { 0x01F900, 0x01F90B, "So" }, + { 0x01F910, 0x01F93E, "So" }, + { 0x01F940, 0x01F970, "So" }, + { 0x01F973, 0x01F976, "So" }, + { 0x01F97C, 0x01F9A2, "So" }, + { 0x01F9B0, 0x01F9B9, "So" }, + { 0x01F9C0, 0x01F9C2, "So" }, + { 0x01F9D0, 0x01F9FF, "So" }, + { 0x01FA60, 0x01FA6D, "So" }, + { 0x020000, 0x02A6D6, "Lo" }, + { 0x02A700, 0x02B734, "Lo" }, + { 0x02B740, 0x02B81D, "Lo" }, + { 0x02B820, 0x02CEA1, "Lo" }, + { 0x02CEB0, 0x02EBE0, "Lo" }, + { 0x02F800, 0x02FA1D, "Lo" }, + { 0x0E0020, 0x0E007F, "Cf" }, + { 0x0E0100, 0x0E01EF, "Mn" }, + { 0x0F0000, 0x0FFFFD, "Co" }, + { 0x100000, 0x10FFFD, "Co" }, + }, +} diff --git a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf Binary files differnew file mode 100644 index 00000000000..75097c84692 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.pdf diff --git a/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex new file mode 100644 index 00000000000..6450a0275fb --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/xindex/xindex-doc.tex @@ -0,0 +1,1191 @@ +%% $Id: xltabular-doc.tex 635 2017-10-24 18:22:59Z herbert $ +% +\listfiles\setcounter{errorcontextlines}{100} +\documentclass[paper=a4,fontsize=11pt,DIV=13,parskip=half-, + captions=tableabove,twoside=on]{scrartcl} +\usepackage{fontspec} +\setmainfont{AccanthisADFStdNo3}[ + UprightFont =*-Regular, + BoldFont =*-Bold, + ItalicFont =*-Italic, + BoldItalicFont=*-BoldItalic, + RawFeature = -rlig, +] +\setsansfont{GilliusADF}[ + UprightFont =*-Regular, + BoldFont =*-Bold, + ItalicFont =*-Italic, + BoldItalicFont=*-BoldItalic, + RawFeature = -rlig, +] +\setmonofont{Anonymous Pro}[Scale=MatchLowercase,FakeStretch=0.9] + +\newfontfamily\Japanese[Scale=MatchUppercase]{SourceHanSans} +\newfontfamily\CODE{CODE2000} + +\usepackage[english]{babel} +\usepackage{scrlayer-scrpage} +\automark[section]{section} +\automark*[subsection]{} +\pagestyle{scrheadings} + +{\catcode`\%=12 + \gdef\perCent{%} + \gdef\DoubleperCent{%%} +} + + +\usepackage{xcolor,fancyvrb,varioref} +\usepackage{xltabular} +\usepackage{dtk-logos} % for Wikipedia W +\usepackage{listings} +\usepackage{dtk-extern} % for Wikipedia W +\lstset{basicstyle=\ttfamily\small,language=[LaTeX]TeX} +\usepackage{ragged2e} +\usepackage{makeidx}\makeindex +\usepackage{hvindex} +\def\Lfile#1{\texttt{#1}\index{#1 file@\texttt{#1} file}} +\def\Lext#1{\texttt{.#1}\index{#1 file extension@\texttt{.#1} file extension}} +\def\Lcs#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1}}} +\def\Lenv#1{\texttt{#1}\index{#1 environment@\texttt{#1} environment}} +\def\Lpack#1{\texttt{#1}\index{#1 package@\texttt{#1} package}} +\def\Lprog#1{\texttt{#1}\index{#1 program@\texttt{#1} program}} +\def\Loption#1{\texttt{#1}\index{#1@\texttt{#1} package option}} + +%\usepackage[bibstyle=dtk]{biblatex} +%\addbibresource{\jobname.bib} + +\raggedbottom +\usepackage{url} +\usepackage[colorlinks,linktocpage]{hyperref} + +\makeatletter% from: doc.sty +\newcommand*\GetFileInfo[1]{% + \def\filename{#1}% + \def\@tempb##1 ##2 ##3\relax##4\relax{% + \def\filedate{##1}% + \def\fileversion{##2}% + \def\fileinfo{##3}}% + \edef\@tempa{\csname ver@#1\endcsname}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax} +\makeatother + +%\GetFileInfo{xltabular.sty} +\usepackage{xspace} + +\newcommand\XI{\texttt{xindex}\xspace} + +\def\setVersion#1{\setVVersion#1!!} +\def\setVVersion#1=#2!!{\def\xIndexVersion{#2}} + +\setVersion{version = 0.05}% can be autimatically changed by perl + +\title{Program and package \texttt{xindex} \\--\\ \normalsize \xIndexVersion\ (\today)} +\author{Herbert Voß\thanks{hvoss@tug.org}} +\begin{document} +\maketitle +\tableofcontents + + +\clearpage + +\section{Introduction} +The Lua program +\XI is a \Index{unicode} aware program for creating an index file from an \Lext{idx} source +file. It is completely compatible to the current \Lprog{makeindex} program, but can handle +\Index{UTF-8}, 16, 32, and 64. The \LaTeX\ package \Lpack{xindex} is a package which provides +a \LaTeX\ command which writes additional text into the index file. This text (comments and/or macros) +will be accepted by the program \XI. + +The general structure of a \Index{data element} in the Lua table is: + +\begin{verbatim} +data = { Entry = <text>, -- like the input line without command \indexentry + pages = { + { number = <roman/arabic number or text>, + special = <macro> }, -- the part after | in the input + [...] + { number = <roman/arabic number or text>, + special = <macro> } + }, + sortChar = <unicode codepoint>, -- of the first character of Entry + Macro = <TeX macro> -- only useful with LaTeX package \Lpack{xindex} + } +\end{verbatim} + +After reading the input file the table \texttt{pages} has only one element for the number\index{page number} +and the so-called special command. When the pages are compressed the table will collect all pages which +refer to the same \Index{entry name}. + + +\iffalse +EntryList[2] = { + Entry = "Johann", -- the index item foo@bar + pages = { -- the page number(s) and the part after | + { number = 111, + special = '\\emph' }, + { number = 11, + special = "\\textit"} + }, + sortChar= 80, -- Initial for later output + Macro = "" +} + +\fi + + + +\subsection{Syntax} + +The \Index{syntax} is \verb|xindex [...] <file>| where \verb|[...]| are optional \Index{argument}s, either in short or +long form which, of course, can be mixed: + +\begin{verbatim} +xindex + [-q,--quiet ] + [-h,--help ] + [-v ] verbose + [-c,--config ] default is cfg + [-e,--escapechar ] default is " + [-n,--noheadings ] + [-o,--output ] default is <input>.ind + [-l,--language ] default is en + <input file> +\end{verbatim} + + + +The \Index{language} has to be chosen as an international abbreviation in lower- or uppercase letters, see +\url{https://en.wikipedia.org/wiki/ISO_3166-2} + + +\subsection{How it works} +\XI creates by default an \Index{output} file \texttt{<input>.ind} which can be read +by the \LaTeX\ document with the default command \Lcs{printindex}. One can use another +output filename, which makes only sense if one doesn't use the \Lcs{printindex} command +for typesetting the index. +The default \Index{sorting} +is given by the configuration file, which defines replacements for \Index{accented characters}, +like \texttt{ö}$\rightarrow$\texttt{o}. + +\subsection{The \texttt{.idx} file} +There are four characters which must be escaped if used in the command \Lcs{index}: +\verb=!=, \verb=@=, \verb="=, or \verb=|=. These charactzers have a special meaning for +the index.\index{"!}\index{"@}\index{"|} +The default \Index{escape character} is the double quote \verb|"|: + +\iffalse +To put a !\index{"!}, @\index{"@}, or |\index{"|} character in an index entry, quote it by preceding the +character with a quote ". More precisely, any character is said to be quoted if it +follows an unquoted " that is not part of a \" command. A quoted !, @, or +| character is treated like an ordinary character rather than having its usual +meaning. The " preceding a quoted character is deleted before the entries +are alphabetized. +\fi + + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + pages={1,2}, + frame, + compiler=lualatex, + crop, + xindex, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother + +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters} +\begin{itemize} +\item Exclamation mark ! \index{exclaim ("!)} +\item Vertical bar| \index{Vertical bar ("|)} +\item Doublequote \verb|"| \index{""} +\item Double doublequote \verb|""| \index{""""} +\item At character @ \index{At ("@)} +\end{itemize} +run \texttt{xindex <file.idx>}\index{<file.idx>}\index{123} +\newpage +\printindex +\end{document} +\end{externalDocument} + + +For the german language the double quote is an active character and it makes live easier +if one chooses another character. +The escape character can be changed easily by the optional argument \verb|-e "<char>"| or +\verb|--escapechar "<char">|. The following example shows how +it works for the \Index{escape character} > (greater). Internally the escape sequences are +now defined as: + +\begin{verbatim} +escape_chars = { -- by default " is the escape char + {esc_char..'"', '//escapedquote//', '\\"{}' }, + {esc_char..'@', '//escapedat//', '@' }, + {esc_char..'|', '//escapedvert//', "|" }, + {esc_char..'!', '//scapedexcl//', '!' } +} +\end{verbatim} + +which is, of course, not of interest for the user. With the beginning the escaped chars +are converted into the internal strings and later back to the origin meaning. + + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + pages={1,2}, + frame, + compiler=lualatex, + crop, + xindex, + xindexOptions=-e ">", + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters with >} +\begin{itemize} +\item Exclamation mark ! \index{exclaim (>!)} +\item Vertical bar| \index{Vertical bar (>|)} +\item Doublequote \verb|"| \index{>"} +\item Double doublequote \verb|""| \index{>">"} +\item At character @ \index{At (>@)} +\end{itemize} +Run \texttt{xindex} with \texttt{xindex -e ">"}\index{<file.idx>}\index{123} +\newpage +\printindex +\end{document} +\end{externalDocument} + + +\section{Language}\label{language} + +The \Index{language} is only important for the first two headers in the output of the index data. +They are by default \emph{Symbols} followed by \emph{Numbers}. In a new version of \Lprog{xindex} +it will be customizable. +The predefined language is »en« and currently the following languages are possible: + + +{\Japanese\small +indexheader = \{ \\ +\quad de = \{\"{}Symbole\"{}, \"{}Zahlen\"{}\},\\ +\quad en = \{\"{}Symbols\"{}, \"{}Numbers\"{}\},\\ +\quad fr = \{\"{}Symboles\"{},\"{}Chiffre\"{}\},\\ +\quad jp = \{\"{}シンボル\"{},\"{}番号\"{}\},\\ +\} +%\end{verbatim} +} + +The following example was run with \verb|xindex -l de <file>.idx|: + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + pages={1,2}, + frame, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l de -e ">", + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\section{Escaping characters with >} +\begin{itemize} +\item Exclamation mark ! \index{exclaim (>!)} +\item Vertical bar| \index{Vertical bar (>|)} +\item Doublequote \verb|"| \index{>"} +\item Double doublequote \verb|""| \index{>">"} +\item At character @ \index{At (>@)} +\end{itemize} +Run \texttt{xindex} with \texttt{xindex -l de -e ">"}\index{123} +\newpage +\printindex +\end{document} +\end{externalDocument} + + +\section{Sorting} + +The default sorting is unicode aware and uses a translation table for accented characters: + +\begin{verbatim} +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', 'ž' } +} +\end{verbatim} + +There is also a table for the uppercase letters. If it should be edited or extended then copy first the +base configuration file \Lfile{xindex-cfg.lua} and modify that new file. It can be used by \XI +with the optional argument \texttt{-c newfile} if it is named as \Lfile{xindex-newfile.lua}. +For german there already exists a configuration +file \Lfile{xindex-DIN2.lua} which uses the so-called »Telefonbuchsortierung« which converts +the umlauts like ö$\rightarrow$oe: + +\begin{verbatim} +alphabet_upper = { -- for sorting + { ' ' }, + { 'A', 'Á', 'À', 'Å', 'Æ'}, + { 'AE', 'Ä'}, + { 'B' }, + { 'C', 'Ç' }, + { 'D' }, + { 'E', 'È', 'È', 'Ë' }, + { 'F' }, + { 'G' }, + { 'H' }, + { 'I', 'Í', 'Ì', 'Ï' }, + { 'J' }, + { 'K' }, + { 'L' }, + { 'M' }, + { 'N', 'Ñ' }, + { 'O', 'Ó', 'Ò', 'Ø','Œ' }, + { 'OE', 'Ö' }, + { 'P' }, + { 'Q' }, + { 'R' }, + { 'S', 'Š' }, + { 'T' }, + { 'U', 'Ú', 'Ù' }, + { 'UE', 'Ü' }, + { 'V' }, + { 'W' }, + { 'X' }, + { 'Y', 'Ý', 'Ÿ' }, + { 'Z', 'Ž' } +} +\end{verbatim} + + + +\begin{externalDocument}[ + grfOptions={scale=0.9},%width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.4\linewidth, + pages={2}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l de, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass[paper=a5]{scrartcl} +\usepackage[ngerman]{babel} +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\newcommand\Index[1]{\index{#1}#1} +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \newpage + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l DE| + +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} +\Index{Oberin} \Index{Österreich} +\Index{Öresund} \Index{Ostern} +\Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} +\Index{ölen} \Index{Ödem} +\Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder} +\index{Oder|seealso{Fluss}} +\Index{Göbel} \Index{Goethe} +\Index{Göthe} \Index{Götz} +\Index{Goldmann} + +\printindex +\end{document} +\end{externalDocument} + + + +The same sorted with the german DIN variant 2 with \verb|--config DIN2|, which +is part of the \TeX\ distribution. In this case a letter Ö is converted to Oe before sorting +the word beginninjg with the letter Ö: + +\noindent +\begin{externalDocument}[ + grfOptions={scale=0.9},%width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.4\linewidth, + pages={2}, + frame=false,compiler=lualatex, + crop, + xindex, + xindexOptions=-c DIN2 -l DE, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass[paper=a5]{scrartcl} +\usepackage[ngerman]{babel} +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\newcommand\Index[1]{\index{#1}#1} +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \newpage + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +Sorted with +\verb|--config DIN2 -l DE| + +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} +\Index{Oberin} \Index{Österreich} +\Index{Öresund} \Index{Ostern} +\Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} +\Index{ölen} \Index{Ödem} +\Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder} +\index{Oder|seealso{Fluss}} +\Index{Göbel} \Index{Goethe} +\Index{Göthe} \Index{Götz} +\Index{Goldmann} + +\printindex +\end{document} +\end{externalDocument} + + + +The following runs with \verb|xindex -l jp <file>|: + +% {begin\string{document\string}}% #2 +% {end\string{document\string}}% #3 +% {\perCent StartVisiblePreamble}% #4 +% {\perCent StopVisiblePreamble}% #5 + +\noindent +\begin{minipage}[t]{0.45\linewidth} +\vspace{0pt} +\setsansfont{SourceHanSans}\sffamily +\edef\FancyVerbStartString{\perCent StartVisiblePreamble} +\edef\FancyVerbStopString{\perCent StopVisiblePreamble} +\colorbox{black!20}{\parbox{\linewidth}{% +\VerbatimInput[fontfamily=helvetica]{Examples/xindex-6.tex} +}} + +\edef\FancyVerbStartString{\string\begin\string{document\string}} +\edef\FancyVerbStopString{\string\end\string{document\string}} +\colorbox{black!10}{\parbox{\linewidth}{% +\VerbatimInput[fontfamily=helvetica]{Examples/xindex-6.tex} +}} +\end{minipage}\hfill +\begin{minipage}[t]{0.54\linewidth} +\vspace{0pt} +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, +% mpwidth=0.5\linewidth, + pages={2}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l jp, + force=false, + runs=2, + code=false, + docType=latex, + showFilename, + align=\centering, +% usefancyvrb, + lstOptions={fontfamily=helvetica}]{xindex} +\documentclass[a5paper]{article} +%StartVisiblePreamble +\usepackage{fontspec} +\setmainfont{SourceHanSans} +\usepackage[japanese]{babel} +\addto\captionsjapanese{% + \def\indexname{指数}} +\usepackage{hvindex}% for \Index +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +\pagestyle{empty} +\begin{document} +\Index{車} \Index{車道} +日本\index{日本|fbox} +\Index{病院} \Index{コンピュータ} +\Index{プリンタ} \Index{印刷} +\Index{スイミングプール} \Index{天王} +\Index{広島} \Index{ドイツ} +\Index{日本} \Index{ワープロ} +\Index{foo} und \Index{bar} +\Index{//} \Index{4711} +\newpage\printindex +\end{document} +\end{externalDocument} +\end{minipage} + + + +%\clearpage + +\section{Compressing pagenumbers}\label{Compressing} +By default page sequences of an entry are compressed to +\begin{description} +\item[8f] page 8 and 9 +\item[8ff] page 8, 9, and 10 +\item[8-12] page 8, 9, \ldots, 12 +\end{description} + +The so-called folio abbreviation is language dependent and defined in the +file \Lfile{xindex-cfg-common.cfg}: + +{\setsansfont[Scale=MatchUppercase]{SourceHanSans} +\small +\begin{Verbatim}[fontfamily=helvetica] +folium = { + de = {"f", "ff"}, + en = {"f", "ff"}, + fr = {"\,sq","\,sqq"}, + jp = {"シンボル","番号"}, +} +\end{Verbatim} +} + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={6}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l fr, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l fr| + +foobar\index{foobar|(} +foo\index{foo}\index{bar}\index{baz}\newpage +foo\index{foo}\index{bar}\index{baz}\newpage +foo\index{bar}\index{baz}\newpage +foo\index{baz}\newpage +foo\index{foo}foobar\index{foobar|)} +\newpage +\printindex +\end{document} +\end{externalDocument} + + + +\section{\texttt{hyperref}} + +Using the package \Lpack{hyperref} is no problem: + +\enlargethispage{2.5\normalbaselineskip} + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={3}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l de, + force, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass[paper=a6]{scrartcl} +\usepackage{multicol} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \begin{multicols}{2} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\def\endtheindex{\end{multicols}} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +\usepackage{hvindex}% for \Index +\usepackage[colorlinks]{hyperref} +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Sorted with \verb|-l DE| +\Index{Österreich} \Index{Öresund} +\Index{Ostern} \Index{Ober} \Index{Oberin} +\Index{Österreich} \index{Öresund|textbf} +\Index{Ostern} \Index{Ober} \Index{Oberin} +\Index{Obstler} \Index{Öl} \Index{ölen} +\Index{Ödem} \Index{Oligarch} \Index{Oder} +\Index{oder} \index{Fluss!Oder|textit} +\Index{Oder|seealso{Fluss}} \Index{Göbel} +\Index{Goethe} \Index{Göthe} \Index{Götz} +\newpage\Index{Goldmann} \Index{Goethe} +\newpage \printindex +\end{document} +\end{externalDocument} + + +\section{Page argument} +Every page can be combined with an additional macro, like \verb=\index{foo|fbox}=, the page number +will be set into a framebox. If we have on the same page the two commands: + +\begin{verbatim} +foo\index{foo} and foo\index{foo|bar} +\end{verbatim} + +then we have two \emph{different} index entries which will not be compressed to one entry. +In the follwoing example we have four different entries for \emph{foo} which is the reason +that we do not get an output like \texttt{foo, 1--4}. Only the first two entries are +of the same type, so we get \texttt{1f} in the output. + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={5}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-l de, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Ein foo\index{foo} \newpage und \index{foo} +ein foo\index{foo|textit} \newpage +und foo\index{foo|textbf} \newpage +und foo\index{foo|fbox} + +\newpage +\printindex +\end{document} +\end{externalDocument} + + + + + + +\section{The config file} + +The main config file is \Lfile{xindex-cfg.lua} is used by default and loading it by the +optional parameter -c makes no sense. A new config file must have the prefix \texttt{xindex-} +and the file extension \Lext{lua}, for example: \Lfile{xindex-HAdW.lua} which can be used +with \verb|--config HAdW|. The file must be saved in the documents directory or in +one which is known to \Lprog{kpsewhich}, for example\footnote{The directory \texttt{xindex} must be created +before saving the file.} \verb|$TEXMFLOCAL/tex/lualatex/xindex/| %$ +Don not forgot to update the filename database. + +A new config file must declare at least the variables which are part of the +default config file: the translation tables and + +\begin{verbatim} +itemPageDelimiter = "," -- Hello, 14 +compressPages = true + -- something like 12--15, instaead 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 pagenumbers, like "VI-17" +sublabels = {"", "-\\-", "--\\-", "---\\-"} + -- for the sub(sub(sub-items, first one is empty +pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -- not used !!! +indexOpening = "" -- commands/text after \begin{theindex} +\end{verbatim} + +The new config file can define own functions for compressing the pagelist +for a given entry and for the formatting of the output. They must be called +\verb|specialCompressPageList| and \verb|specialGetPageList|. +%needs +%the unmodified list of pages for one entry. + +For example: + +\begin{verbatim} +function specialCompressPageList(pages) + if (#pages <= 1) or (pages[1] == "") then return pages end -- only one pageno +--[[ +modify pagelist +sortPages = {{ origin = { number = VII/1-715, special = \textbf }, + sort = 07/1-00715 }, + {...} + } +]] + local sortPages = {} + +[...] + +return pages +end +\end{verbatim} + +is a special function which can handle \Index{page number}s like VII-17, VIII/2/1-186. +Internally exists a function \verb|compressPageList| which is used if no +\verb|specialCompressPageList| is defined. + +The \Index{config file} \Lfile{xindex-dtk.lua} defines a special page output: + +\begin{verbatim} +function specialGetPageList(v,hyperpage) -- Entry table, boolean + local Pages = {} +[..] + if (Pages[1]["special"] == nil) or (Pages[1]["number"] == nil) then return "" end + if #Pages == 1 then + return "\\relax"..Pages[1]["number"].."\\@nil" + else + pageNo = "\\relax"..Pages[1]["number"] + for i=2,#Pages do + if Pages[i]["number"] then + pageNo = pageNo..", "..Pages[i]["number"].."\\@nil" + Pages[i] = {} + end + end +[..] +end +\end{verbatim} + + +The following example runs \verb|xindex -c dtk -l de -n <input>| + +\begin{externalDocument}[ + grfOptions={scale=0.9},% width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.25\linewidth, + pages={1}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-c dtk -n -l de, + force, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\RequirePackage{filecontents} +\begin{filecontents*}{\jobname.idx} +\indexentry{VoßHerbert@Herbert Voß!Wasgenstraße 121\protect \\10127 Berlin\protect \\\Email {herbert"@xyz.de}}{3} +\indexentry{SieversMartin@Martin Sievers!siehe Seite~\protect \pageref {president}}{4} +\indexentry{VoßHerbert@Herbert Voß!Wasgenstraße 121\protect \\10127 Berlin\protect \\\Email {herbert"@xyz.de}}{5} +\indexentry{ZiegenhagenUwe@Uwe Ziegenhagen!Lokostr. 19 \protect \\ 20713 Köln \protect \\\Email {ziegenhagen"@mail.com}}{9} +\indexentry{BehrendtDoris@Doris Behrendt!\Email {doris"@xyz.de}}{14} +\indexentry{JacekJonas Jared@Jonas Jared Jazek!\Email {mail"@jones.net}}{20} +\indexentry{KohmMarkus@Marcus Tohm!Freiherr-von-Stein-Straße~16\protect \\ 15525~Edingen-Neckarhausen\protect \\ \Email {komascript"@xyz.info}}{24} +\indexentry{KohmMarkus@Marcus Tohm!Freiherr-von-Stein-Straße~16\protect \\ 15525~Edingen-Neckarhausen\protect \\ \Email {komascript"@xyz.info}}{31} +\indexentry{SchubertElke@Elke Schubert!Hausstraße~15\protect \\ 36396~Stutense\protect \\ \Email {elke.schubert"@kabelxyz.de}}{40} +\indexentry{FennJürgen@Jürgen Fennt!Friedrichallee 74\protect \\13233 Neu-Isenburg\protect \\\Email {juergen.fennt"@gmxnet.de}}{48} +\end{filecontents*} +\documentclass{article} +\usepackage{url} +\DeclareUrlCommand\Email{% + \def\UrlLeft{}% + \def\UrlRight{}% + \def\UrlLinkPrefix{mailto:}% + \def\UrlType{email}% +} +\usepackage{multicol} +\makeatletter +\def\DTK@scan@item#1\subitem#2\relax#3\@nil{% + \def\DTK@tempa{#1}\def\DTK@tempb{#2}\def\DTK@tempc{#3}% +} +\def\theindex{% only for demonstration + \columnseprule=\z@ \columnsep=10\p@ + \begin{multicols}{2}[\noindent\textbf{\large Autorenliste}]% + \makeatletter + \def\indexspace{}% + \parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedright + \def\item##1\@nil{\DTK@scan@item##1\@nil + \par\parbox{\columnwidth}{% + \textbf{\DTK@tempa}\hfill[\DTK@tempc]\par\DTK@tempb + }% + \par\bigskip + }% +} +\def\endtheindex{\end{multicols}} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx} +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +\mbox{}\printindex +\end{document} +\end{externalDocument} + + +\subsection{Sublabels} +There are three predefined sublabels for \Lcs{subitems}. The program itself can handle more, there is +no limit for \Lprog{xindex}. + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={2}, + frame=false, + compiler=lualatex, + crop, + xindex, +% xindexOptions=, + force=false, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{article} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\makeatletter +\g@addto@macro{\theindex}{% + \pagestyle{empty}% + \def\subsubsubitem{\@idxitem\hspace*{35\p@}} + \def\subsubsubsubitem{\@idxitem\hspace*{40\p@}} +} +\makeatother +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\begin{document} +foo\index{foo} bar\index{foo!bar} +baz\index{foo!bar!baz} foobar% +\index{foo!bar!baz!foobar} Kuba +\index{foo!bar!baz!foobar!Kuba} +\newpage \printindex +\end{document} +\end{externalDocument} + + + + + + + + +\section{Including \LaTeX\ commands into the \Lext{idx} file} +The command \Lcs{addtocontents} doesn't work for the index file. With the \LaTeX\ package +\Lpack{xindex} (same name as the Lua program \Lprog{xindex}) defines a macro \Lcs{writeidx} +which writes its argument into the \Lext{idx} file. This can be usefull to insert a +\Index{pagebreak}/""\Index{columnbreak} +before a new letter in the output of the index file: + + +\begin{verbatim} +\documentclass{article} +\usepackage{makeidx} +\makeindex +\usepackage{xindex} +\begin{document} + +\index{foo}foo and +\writeidx{\clearpage} +\index{bar}bar + +\printindex +\end{document} +\end{verbatim} + + +Such commands are then taken into account by the program \Lprog{xindex}. With the often used program \Lprog{makeindex} +such commands are ignored. In the following example we put an horizontal line after the first entry: + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={2}, + frame=false, + compiler=lualatex --shell-escape, + crop, + xindex, + xindexOptions=-l de, + force, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\usepackage{libertinus-otf} +%StartVisiblePreamble +\usepackage{xindex} +\makeindex +%StopVisiblePreamble +\makeatletter +\let\ps@plain\ps@empty +\makeatother +\begin{document} +\index{foo}foo and +\writeidx{\item\protect\hrulefill} +\index{bar}bar +\index{gex}gex +\printindex +\end{document} +\end{externalDocument} + + +\section{Headings} +By default the output uses the english headings: \textit{Symbols}, \textit{Numbers}, and \textit{A} \ldots +There are three predefined languages \texttt{en}, \texttt{de}, and \texttt{fr}. The definition is in the file +\Lfile{xindex-cfg-common.lua} (see also section \vref{language}). +% +It can easily be extended for other \Index{language}s. Sometimes the headers are not needed, for example in a name +list. With the optional argument \verb=-n= or \verb=--noheadings= the created \Lext{ind} file has only +the vertical space between different first letters: + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={5}, + frame=false, + compiler=lualatex, + crop, + xindex, + xindexOptions=-n, + force, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\makeatletter +\def\theindex{% only for demonstration + \section*{\indexname} + \parskip\z@ \@plus .3\p@\relax \parindent\z@ + \let\item\@idxitem} +\makeatother +%StartVisiblePreamble +\usepackage{makeidx}\makeindex +%StopVisiblePreamble +\pagestyle{empty} +\begin{document} +Ein foo\index{foo}\index{bar|(} + \newpage und \index{foo} +ein foo\index{foo|textit} \newpage +und foo\index{foo|textbf} \newpage +und foo\index{foo|fbox} +\index{bar|)} +\newpage +\verb|xindex -n <file>| +\printindex +\end{document} +\end{externalDocument} + +\section{Automatic index creation} +With package \Lpack{xindex} one can define several different index files, e.\,g. +an \Index{index of names}. With the optional argument \Loption{imakeidx} the package itself loads \Lpack{imakeidx} +and adds the program \Lprog{xindex} as the default program to \Lpack{imakeidx}. + +\begin{externalDocument}[ +% grfOptions={width=\dimexpr\linewidth-2\fboxsep-2\fboxrule}, + mpwidth=0.55\linewidth, + pages={6}, + frame=false, + compiler=lualatex --shell-escape, + crop, + xindex, + xindexOptions=-l de, + force, + runs=2,code,docType=latex, + showFilename, + align=\centering, + lstOptions={columns=fixed}]{xindex} +\documentclass{scrartcl} +\usepackage{libertinus-otf} +\makeatletter +\let\ps@plain\ps@empty +\makeatother +%StartVisiblePreamble +\usepackage[imakeidx]{xindex} +\makeindex[name=persons,title=Index of names, + columns=1,options=--noheadings] +\def\ThanhVN{Hàn Thê\protect\llap{% + \raise 0.5ex\hbox{\'{}}}} +%StopVisiblePreamble +\pagestyle{empty}\renewcommand\thepage{} +\begin{document} +foo\index[persons]{Niepraschk,~ Rolf} +foo\index[persons]{Lamport,~ Leslie} +foo\index[persons]{Knuth,~ Donald} +foo\index[persons]{Knuth,~ Donald} +\newpage +foo\index[persons]{Lamport,~ Leslie} +foo\index[persons]{Thành,~ \ThanhVN} +foo\index[persons]{Kew,~ Jonathan} +foo\index[persons]{Kohm,~ Markus} +foo\index[persons]{Preining,~ Norbert} +\newpage +foo\index[persons]{Schenk,~ Christian} +foo\index[persons]{Feuerstack,~ Thomas} +foo\index[persons]{Tobin,~ Geoffrey} +foo\index[persons]{Wilson,~ Peter} +\newpage +foo\index[persons]{Kohm,~ Markus} +foo\index[persons]{Theiling,~ Henrik} +foo\index[persons]{Pégourié-Gonnard,~ Manuel} +foo\index[persons]{Roux,~ Élie} +\newpage +foo\index[persons]{Mittelbach,~ Frank} +foo\index[persons]{Fairbairns,~ Robin} +foo\index[persons]{Lemberg,~ Werner} +foo\index[persons]{Volovich,~ Vladimir} + +\printindex[persons] +\end{document} +\end{externalDocument} + + +You have to run \LaTeX\ with the \verb|--shell-escape|\index{Shell escape} option to run \Lprog{xindex} +from within the \LaTeX\ document. + +\section{Demerits} +\begin{itemize} +\item For more than 5000 entries in the \Lext{idx} file the internal Lua function +for \Index{sorting} may take some time. +\item The \Lext{idx} file is not checked for \LaTeX\ errors\index{LaTeX\ errors@\LaTeX\ errors} +in the argument of \Lcs{indexentry}. +\end{itemize} + + + + + +%\nocite{*} +%\printbibliography + + +\printindex + +\end{document} + + + +folium = { + de = {"f", "ff"}, + en = {"f", "ff"}, + fr = {"sq","sqq"}, +} diff --git a/Master/texmf-dist/scripts/xindex/xindex.lua b/Master/texmf-dist/scripts/xindex/xindex.lua new file mode 100755 index 00000000000..83ade61e03e --- /dev/null +++ b/Master/texmf-dist/scripts/xindex/xindex.lua @@ -0,0 +1,176 @@ +#!/usr/bin/env texlua +----------------------------------------------------------------------- +-- FILE: xindex.lua +-- DESCRIPTION: create an index +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL 1.3 +----------------------------------------------------------------------- + + xindex = xindex or { } + local version = 0.05 +xindex.version = version +--xindex.self = "xindex" + +--[[doc-- + +xindex(1) + +This file is provided under the terms of the LPPL v1.3 or +later as printed in full text in the manual (xindex.pdf). + +\url{https://ctan.org/license/lppl1.3}. + +Report bugs to + + \url{https://gitlab.com/hvoss49/xindex/issues}. + +--doc]]-- + +kpse.set_program_name("luatex") + +require("lualibs") -- all part of LuaTeX +require('unicode') +require('string') +require("lpeg") + + +local args = require ('xindex-lapp') [[ + parameter handling + -q,--quiet + -h,--help + -v... Verbosity level; can be -v, -vv, -vvv + -c,--config (default cfg) + -e,--escapechar (default ") + -n,--noheadings + -o,--output (default "") + -l,--language (default en) + <input> (string) +]] + + +--[[ + No -v flag, v is just { false }. not args.v[1] is true, so vlevel becomes 0. + One -v flags, v is { true } + Two -v flags, v is { true, true } + Three -v flags, v is { true, true, true } +]] + +vlevel = not args.v[1] and 0 or #args.v +not_quiet = not args["quiet"] + +--[[ +if args.h then +print( +Syntax: xinput [options] <file> +By default the Lua program "xindex" creates a so-called +.ind file, which has the same main filename as the input file +unless you are using the option "-o <output file>" There will +be no log file created. +) +end +]] + + +--[[ +if not args["input"] then + io.write ("Filename: ") + inFile = io.read() +else + inFile = args["input"] +end +]] + +require('xindex-lib') + +inFile = args["input"] +if not file_exists(inFile) then + if file_exists(inFile..".idx") then + inFile = inFile..".idx" + else + writeLog(2,"Inputfile "..inFile.." or "..inFile..".idx not found!\n",0) + os.exit() + end +end + +local filename +local logfilename +if args["output"] == '""' then + if inFile:sub(inFile:len()-3,inFile:len()) == ".idx" then + filename = inFile:sub(1,inFile:len()-3).."ind" + logfilename = inFile:sub(1,inFile:len()-3).."ilg" + else + filename = inFile..".ind" + logfilename = inFile..".ilg" + end +else + filename = args.output + logfilename = filename:gsub('%p...','')..".ilg" +end + +logFile = io.open(logfilename,"w+") +writeLog(2,"xindex v."..version.." (c) Herbert Voß\n",-1) +writeLog(1,"Verbose level = "..vlevel.."\n",1) + +writeLog(2,"Open outputfile "..filename,0) +outFile = io.open(filename,"w+") +writeLog(2," ... done\n",0) + +if vlevel > 0 then + writeLog(1,"---------- parameter ----------\n",1) + for k,v in pairs(args) do + writeLog(1,tostring(k)..", "..tostring(v).."\n",1) + end + for k=1,#args.v do + writeLog(1,"v["..k.."]= "..tostring(args.v[k]).."\n",1) + end + writeLog(1,"---------- parameter ----------\n",1) +end + +writeLog(2,"Using input file: "..inFile.."\n",0) + +writeLog(2,"Loading common config file ".."xindex-cfg-common\n",1) +Config_File_Common = kpse.find_file("xindex-cfg-common.lua") +cfg_common = require(Config_File_Common) + +local config_file = "xindex-"..args.config..".lua" +writeLog(2,"Loading local config file "..config_file,0) +Config_File = kpse.find_file(config_file) +cfg = require(Config_File) +writeLog(2," ... done\n",0) + +local esc_char = args.escapechar +writeLog(2,"Escapechar = "..esc_char.."\n",1) +escape_chars = { -- by default " is the escape char + {esc_char..'"', '//escapedquote//', '\\"{}' }, + {esc_char..'@', '//escapedat//', '@' }, + {esc_char..'|', '//escapedvert//', "|" }, + {esc_char..'!', '//scapedexcl//', '!' } +} + +language = string.lower(args["language"]) +writeLog(2,"Language = "..language.."\n",1) +index_header = indexheader[language] +if vlevel > 0 then for i=1,#index_header do writeLog(2,index_header[i].."\n",1) end end +page_folium = folium[language] + + +no_headings = args["noheadings"] +if no_headings then + writeLog(1,"Output with NO headings between different first letter\n",1) +else + writeLog(1,"Output with headings between different first letter\n",1) +end + +writeLog(2,"Open outputfile "..filename,0) +outFile = io.open(filename,"w+") +writeLog(2,"... done\n",0) + + +writeLog(1,"Starting base file ... \n",2) +BaseRunFile = kpse.find_file("xindex-base.lua") +dofile(BaseRunFile) + +logFile:close() + + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua new file mode 100644 index 00000000000..58c33a5e2b8 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua @@ -0,0 +1,102 @@ +----------------------------------------------------------------------- +-- FILE: xindex-cfg.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-cfg'] = { + version = 0.05, + comment = "configuration to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +escape_chars = { -- by default " is the escape char + {'""', "\\escapedquote", "\"{}" }, + {'"@', "\\escapedat", "@" }, + {'"|', "\\escapedvert", "|" }, + {'"!', "\\escapedexcl", "!" } +} + +itemPageDelimiter = "," -- Hello, 14 +compressPages = true -- something like 12--15, instaead 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 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" +indexOpening = "" -- commands after \begin{theindex} + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +alphabet_lower = { -- for sorting + { ' ' }, -- only for internal tests + { 'a', 'á', 'à', 'å', 'æ', }, + { 'ae', 'ä'}, + { 'b' }, + { 'c', 'ç' }, + { 'd' }, + { 'e', 'é', 'è', 'ë' }, + { 'f' }, + { 'g' }, + { 'h' }, + { 'i', 'í', 'ì', 'ï' }, + { 'j' }, + { 'k' }, + { 'l' }, + { 'm' }, + { 'n', 'ñ' }, + { 'o', 'ó', 'ò', 'ø', 'œ'}, + { 'oe', 'ö' }, + { 'p' }, + { 'q' }, + { 'r' }, + { 's', 'š', 'ß' }, + { 't' }, + { 'u', 'ú', 'ù' }, + { 'ue', 'ü' }, + { 'v' }, + { 'w' }, + { 'x' }, + { 'y', 'ý', 'ÿ' }, + { 'z', 'ž' } +} +alphabet_upper = { -- for sorting + { ' ' }, + { 'A', 'Á', 'À', 'Å', 'Æ'}, + { 'AE', 'Ä'}, + { 'B' }, + { 'C', 'Ç' }, + { 'D' }, + { 'E', 'È', 'È', 'Ë' }, + { 'F' }, + { 'G' }, + { 'H' }, + { 'I', 'Í', 'Ì', 'Ï' }, + { 'J' }, + { 'K' }, + { 'L' }, + { 'M' }, + { 'N', 'Ñ' }, + { 'O', 'Ó', 'Ò', 'Ø','Œ' }, + { 'OE', 'Ö' }, + { 'P' }, + { 'Q' }, + { 'R' }, + { 'S', 'Š' }, + { 'T' }, + { 'U', 'Ú', 'Ù' }, + { 'UE', 'Ü' }, + { 'V' }, + { 'W' }, + { 'X' }, + { 'Y', 'Ý', 'Ÿ' }, + { 'Z', 'Ž' } +} + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua new file mode 100644 index 00000000000..a45bd744332 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-HAdW.lua @@ -0,0 +1,231 @@ +----------------------------------------------------------------------- +-- FILE: xindex-HAdW.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- +-- +-- configuration for index files of the Heidelberger Akademie der Wissenschaften + +if not modules then modules = { } end modules ['xindex-HAdW'] = { + version = 0.05, + comment = "configuration to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +--local version = "0.01" + +itemPageDelimiter = "," -- Hello, 14 +compressPages = true -- something like 12--15, instaead 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 = false -- 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" +indexOpening = "" -- commands after \begin{theindex} + + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +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' } +} + + +--\indexentry{Ackers, Carolus}{VII/1-715} +--\indexentry{Bremen!Adalbert I. von, Erzbischof}{VII/2/1-948} +--\indexentry{Bremen!Adalbert I. von, Erzbischof}{VII/1-50} + +function specialCompressPageList(pages) + if (#pages <= 1) or (pages[1]["number"] == "") then + pages[1]["number"] = pages[1]["number"]:gsub('-',' ') + return pages + end -- only one pageno +--[[ +modify pagelist +sortPages = {{ origin = { number=VII/1-715, special="" }, + sort = 07/1-00715 }, + {...} + } +]] + local sortPages = {} + local roman + local volume + local page + local i + for i=1,#pages do + roman = string.gsub(pages[i]["number"],'%U*','') -- only uppercase to catch VII123f (folium pages) + roman = string.format("%03d",tonumber(romanToNumber(roman))) + volume = string.gsub(pages[i]["number"],'%a*','') + if volume then volume = volume:gsub('-%d*','') end + page = string.gsub(pages[i]["number"],'.*-','') + page = string.format("%5s",page) +--print(roman..volume.." "..page) + sortPages[#sortPages+1] = { + origin = pages[i], + sort = roman..volume.." "..page } -- no minus between Roman/Volume and first page + end +-- sort the page list + table.sort(sortPages, function(a,b) return a["sort"] < b["sort"] end ) + local Pages = {} + for i=1,#sortPages do -- use the sorted origin table + Pages[#Pages+1] = sortPages[i]["origin"] + end +-- writeLog(1,print(getRawPagesP(Pages)),2) +-- test if two or more pages in the list + if #Pages == 2 then -- only two pages + local page1 = string.gsub(Pages[1]["number"],'%A*','') -- get prefix1 + local page2 = string.gsub(Pages[2]["number"],'%A*','') -- ger prefix2 + if page1 == page2 then -- same prefix + page1 = string.gsub(Pages[1]["number"],'.*-','') -- get page1 + page2 = string.gsub(Pages[2]["number"],'.*-','') -- get page2 + if (page2-page1) == 1 then -- pagediff = 1 + Pages[1]["number"] = Pages[1]["number"].."f" + Pages[2] = nil -- remove second page + return Pages + else -- page difference > 1 + pages[1]["number"] = pages[1]["number"]:gsub('-',' ') + Pages[2]["number"] = string.gsub(Pages[2]["number"],'.*-','') -- use only number -> same prefix + return Pages -- Pages[1] is the same + end + else + pages[1]["number"] = pages[1]["number"]:gsub('-',' ') + pages[2]["number"] = pages[2]["number"]:gsub('-',' ') + return Pages -- different prefix -> simple return of the two pages + end + else -- more than two pages + local prefixList = {} + local lastPrefix = "" + local currentPrefix + for i=1,#Pages do -- create the list of different prefixes, eg {VI, VI/2/1, VI/2/2} + currentPrefix, j = string.gsub(Pages[i]["number"],'-.*','') + if currentPrefix ~= lastPrefix then + prefixList[#prefixList+1] = currentPrefix + lastPrefix = currentPrefix + end + end + pages = {} + for j = 1,#prefixList do + lastPrefix = prefixList[j] + i = 1 + local subPageList = {} + while (i <= #Pages) do + currentPrefix, _ = string.gsub(Pages[i]["number"],'-.*','') + if (lastPrefix == currentPrefix) then + subPageList[#subPageList+1] = { number = string.gsub(Pages[i]["number"],'.*-',''), special = Pages[i]["special"] } + end + i = i +1 + end + sortPages = compressPageList(subPageList) + -- no minus between Roman/Volume and first page + pages[#pages+1] = { number = lastPrefix.." "..sortPages[1]["number"], special = sortPages[1]["special"] } + for i=2,#sortPages do + pages[#pages+1] = sortPages[i] + end + end + return pages + end +end + +function replaceRoman(r) + local i = romanToNumber(r) + if i then return "//"..string.format("%03d",i).."//" + else return r + end +end + +function SORTprehook(data) -- replace roman with algebraic, eg Karl IX -> Karl // 9// +-- writeLog(1,require 'xindex-pretty'.dump(data),0) -- only for internal dump + local entry + local elements = {} + for i=1,#data do + entry = data[i]["Entry"] + elements = entry:split() + local number = romanToNumber(elements[#elements]) + if number then + local strNr = string.format("%03d",tostring(number)) + elements[#elements] = "//"..strNr.."//" + entry = "" + for j=1,#elements do entry=entry.." "..elements[j] end + else + entry:gsub("!(.-)%p",replaceRoman) + end + data[i]["Entry"] = entry + end + return data +end + +function SORTposthook(data) -- the other way round as prehook + local entry + local elements = {} + for i=1,#data do + entry = data[i]["Entry"] + if entry:find("//") then + data[i]["Entry"] = entry:gsub("//(.-)//",numberToRoman) + end + end + return data +end + + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua new file mode 100644 index 00000000000..e8ba4a4b827 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-base.lua @@ -0,0 +1,222 @@ +----------------------------------------------------------------------- +-- FILE: xindex-base.lua +-- DESCRIPTION: base file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +local info = { version = 0.05} + +-- check config +if pageNoPrefixDel ~= "" then +-- numericPage = false + pageNoPrefixPattern = "^.*"..pageNoPrefixDel +end + +writeLog(2,"Read Data from file "..inFile.." ... \n",0) +local lines = read_lines_from(inFile) +writeLog(2,#lines.." lines of data read\n",0) + +if vlevel > 1 then + writeLog(1,"--------------- Input data -----------------\n",2) + for _,l in pairs(lines) do writeLog(1,l.."\n",2) end + writeLog(1,"--------------- end Input data -----------------\n",2) +end + +local Index = {} -- Entry = "Seitenzahl(en)" +local pages = {} +local noEntryfound +local noPagefound + +hyperpage, lines = checkHyperpage(lines) -- hyperref used? +if hyperpage then writeLog(1,"We have hyperpages ... \n",1) end + +--for _,l in pairs(lines) do print (l) end + +writeLog(1,"Change escape chars with macros ... \n",0) +for k,v in pairs(lines) do + if not commandEntry(v) then + for i, str0 in ipairs(escape_chars) do + v = v:gsub(str0[1],str0[2]) + end + if k < #lines then + if commandEntry(lines[k+1]) then -- is the next line not a \indexentry ? + Index = getEntryAndPage(v,lines[k+1],Index)-- read two lines + else + Index = getEntryAndPage(v,"",Index)-- current line + end + else + Index = getEntryAndPage(v,"",Index)-- current line + end + end +end + +writeLog(1,"... done\n",0) +writeLog(1,"------------------ Start list after getEntryAndPage() ------------------------\n,",2) +printList(Index,2) +writeLog(1,"\n------------------ end list after getEntryAndPage() ------------------------\n",2) +writeLog(2,"Sorting entries: for LARGE idx files it can take some minutes ... \n",0) + +if SORTprehook then Index = SORTprehook(Index) end +k = 0 +table.sort(Index,UTFCompare) +if SORTposthook then Index = SORTposthook(Index) end + +writeLog(1,"------------------ Start list after table.sort(Index,UTFCompare)------------\n",2) +printList(Index,2) +writeLog(1,require 'xindex-pretty'.dump(Index),3) -- only for internal dump +writeLog(1,"\n------------------ end list after table.sort(Index,UTFCompare)------------\n",2) + +writeLog(1,"\n",0) +writeLog(2,"\ncheck for |(...|) \n",0) +writeLog(1,"------------------ Start list before checkParenthesis(Index)------------\n",2) +writeLog(1,require 'xindex-pretty'.dump(Index),3) -- only for internal dump +--for i=1,#Index do print(Index[i]["Entry"],Index[i]["pages"][1]["number"],Index[i]["pages"][1]["special"]) end + +Index = checkParenthesis(Index) + +writeLog(1,"\n",0) + +--for i=1,#Index do print(Index[i]["Entry"],Index[i]["pages"][1]["number"],Index[i]["pages"][1]["special"]) end +writeLog(1,require 'xindex-pretty'.dump(Index),3) -- only for internal dump +printList(Index,2) +writeLog(1,"------------------ End list after checkParenthesis(Index) ------------\n",2) +writeLog(2,"done\n",0) + + + +writeLog(2,"Replace @-operator ...\n",0) +writeLog(1,"------------------ Start list before compressEntryList(Index)------------\n",1) +writeLog(1,require 'xindex-pretty'.dump(Index),3) -- only for internal dump + +local NewIndex = {} +NewIndex = compressEntryList(Index) -- replaces also foo@bar -> bar + +-- for i=1,#NewIndex do print(NewIndex[i]["Entry"],NewIndex[i]["pages"][1]["number"],NewIndex[i]["pages"][1]["special"]) end +writeLog(1,require 'xindex-pretty'.dump(NewIndex),3) -- only for internal dump +printList(NewIndex,2) +writeLog(1,"------------------ End list after compressEntryList(Index)------------\n",1) +writeLog(2,"done\n",0) + +-- output the .ind-list +--[[ +for i, str0 in ipairs(escape_chars) do + outFile:write("\\def"..str0[2].."{"..str0[3].."}\n") +end +]] -- no more needed, we redo the setting + + +outFile:write("\n") +outFile:write("\\begin{theindex}\n") + +if indexOpening ~= "" then -- commands after \begin{theindex} + outFile:write(indexOpening) +end + +local entry +local firstCLine = true +local firstNLine = true +local firstSLine = true +local firstChar +local symbols = true +local numbers = false +local letters = false +local charType +local currentChar +local currentCharType = 0 -- assume Symbol; 1 number; 2 letter +local oldChar = "" +local excl = 0 -- number of ! symbols in one entry +local lastItems = {"","",""} + +writeLog(2,"Start writing .ind file ... \n",0) + +-- first the special cases for symbols and numbers: + +writeLog(1,"---------- Start list to write the ind file --------------\n",1) +writeLog(1,require 'xindex-pretty'.dump(NewIndex),3) -- only for internal dump +for k=1,#NewIndex do +-- require 'xindex-pretty'.dump(NewIndex[k]) -- only for internal dump + if NewIndex[k]["Entry"] then + local v = NewIndex[k] + writeLog(1," NewIndex[k]: "..v["Entry"].."\n",2) + writeLog(1,require 'xindex-pretty'.dump(v),3) -- only for internal dump + entry = v["Entry"] + writeLog(1,"\nBase start: "..entry.."\n",2) +-- local c = utf.sub(v["sortChar"],1,1) +-- if utf8.codepoint(c) < 12288 then -- Japanese starts at hex 3000 +-- firstChar = v["sortChar"] +-- else + firstChar = utf.sub(v["sortChar"],1,1) -- catch a translatet Ö->OE +-- end + currentChar = firstChar + charType = getCharType(firstChar) + if charType == 0 then + numbers = false + symbols = true + end + if charType == 1 then + numbers = true + symbols = false + end + if charType > 1 then + numbers = false + symbols = false + letters = true + end + if symbols then + writeLog(1,"We have symbols to print ...\n",3) + if firstSLine then + firstSLine = false + if not no_headings then + outFile:write("\\textbf{"..index_header[1].."}\n\\nopagebreak[4]\n") + end + end + if specialItemOutput then + lastItems = specialItemOutput(lastItems, v, hyperpage) + else + lastItems = itemOutput(lastItems, v, hyperpage) + end + else + writeLog(1,"We have no symbols to print ...\n",3) + end + if numbers then + writeLog(1,"We have numbers to print ...\n",3) + if firstNLine then + firstNLine = false + outFile:write("\n\\indexspace\n") + if not no_headings then + outFile:write("\\textbf{"..index_header[2].."}\n\\nopagebreak[4]\n") + end + end + if specialItemOutput then + lastItems = specialItemOutput(lastItems, v, hyperpage) + else + lastItems = itemOutput(lastItems, v, hyperpage) + end + else + writeLog(1,"We have no numbers to print ...\n",3) + end + if letters then + writeLog(1,"We have letters to print ...\n",3) + if (currentChar ~= oldChar) and (charType == 2) then + outFile:write("\n\\indexspace\n") + if not no_headings then + outFile:write("\\textbf{"..currentChar.."}\n\\nopagebreak[4]\n") + end + oldChar = currentChar + end + if specialItemOutput then + lastItems = specialItemOutput(lastItems, v, hyperpage) + else + lastItems = itemOutput(lastItems, v, hyperpage) + end + end + if v["Macro"] then outFile:write(v["Macro"].."\n") end + end +end +outFile:write("\\end{theindex}\n") +outFile:close() + +writeLog(2,"\ndone! closing program\n",0) + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua new file mode 100644 index 00000000000..8237dd5022e --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg-common.lua @@ -0,0 +1,29 @@ +----------------------------------------------------------------------- +-- FILE: xindex-cfg-common.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-cfg-common'] = { + version = 0.05, + comment = "configuration to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +indexheader = { + de = {"Symbole", "Zahlen"}, + en = {"Symbols", "Numbers"}, + fr = {"Symboles","Chiffre"}, + jp = {"シンボル","番号"}, +} + +folium = { + de = {"f", "ff"}, + en = {"f", "ff"}, + fr = {"\\,sq","\\,sqq"}, +} + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua new file mode 100644 index 00000000000..f4d726bd039 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-cfg.lua @@ -0,0 +1,89 @@ +----------------------------------------------------------------------- +-- FILE: xindex-cfg.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-cfg'] = { + version = 0.05, + comment = "main 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 = true -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 +minCompress = 3 -- 14--17 or +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} + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +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', 'Ž' } +} + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua new file mode 100644 index 00000000000..0104f37cece --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-dtk.lua @@ -0,0 +1,157 @@ +----------------------------------------------------------------------- +-- FILE: xindex-cfg.lua +-- DESCRIPTION: configuration file for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-cfg'] = { + version = 0.05, + comment = "DTK 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 = true -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 +minCompress = 3 -- 14--17 or +numericPage = true -- for non numerical pagenumbers, like "VI-17" +sublabels = {"","","",""} -- for the sub(sub(sub-items +pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -- not used !!! +indexOpening = "" --[[\providecommand*\lettergroupDefault[1]{} +\providecommand*\lettergroup[1]{% + \par\textbf{#1}\par + \nopagebreak + } +]] + + +--[[ + Each character's position in this array-like table determines its 'priority'. + Several characters in the same slot have the same 'priority'. +]] +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' } +} + + +function specialGetPageList(v,hyperpage) + local Pages = {} + if v["pages"] then + table.sort(v["pages"],pageCompare)-- nur nötig, da User manuell eine Zeile einfügen kann + if specialCompressPageList then + Pages = specialCompressPageList(v["pages"]) + else + Pages = compressPageList(v["pages"]) + end + local pageNo + if hyperpage then + if string.find(v["pages"][1]["special"],"hyperindexformat") then + pageNo = v["pages"][1]["special"].."{"..checkFF(Pages[1]["number"].."}") + else + pageNo = "\\hyperpage{"..checkFF(Pages[1]["number"]).."}" + end + for i=2,#Pages do + if string.find(v["pages"][i]["special"],"hyperindexformat") then + pageNo = pageNo..", "..v["pages"][i]["special"].."{"..checkFF(Pages[i]["number"].."}") + else + pageNo = pageNo..", \\hyperpage{"..checkFF(Pages[i]["number"]).."}" + end +-- Pages[i] = nil + end + else + if args_v then print("getPageList: "..tostring(Pages[1]["special"])..tostring(Pages[1]["number"])) end + if (Pages[1]["special"] == nil) or (Pages[1]["number"] == nil) then return "" end + if #Pages == 1 then + return "\\relax "..Pages[1]["number"].."\\@nil" + else + pageNo = "\\relax "..Pages[1]["number"] + for i=2,#Pages do + if Pages[i]["number"] then + pageNo = pageNo..", "..Pages[i]["number"] + Pages[i] = {} + end + end + pageNo = pageNo.."\\@nil" -- add \@nil + end + return pageNo + end + else + return "" + end +end + +function specialItemOutput(last, v, hyperpage) + local lastItems = last + local currentItems = {} + local Entry = v["Entry"] + local name = getItem(Entry,0) + local adress = getItem(Entry,1) + outFile:write(" \\item "..name..itemPageDelimiter.."\n") + str = " \\subitem "..itemPageDelimiter.." "..adress..getPageList(v,hyperpage).."\n" + for i, str0 in ipairs(escape_chars) do -- undo the escape char setting + str = str:gsub(str0[2],str0[3]) + end + outFile:write(str) + return last +end + + diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua new file mode 100644 index 00000000000..d0e01e634e6 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lapp.lua @@ -0,0 +1,325 @@ +-- lapp.lua +-- Simple command-line parsing using human-readable specification +----------------------------- +--~ -- args.lua +--~ local args = require ('lapp') [[ +--~ Testing parameter handling +--~ -p Plain flag (defaults to false) +--~ -q,--quiet Plain flag with GNU-style optional long name +--~ -o (string) Required string option +--~ -n (number) Required number option +--~ -s (default 1.0) Option that takes a number, but will default +--~ <start> (number) Required number argument +--~ <input> (default stdin) A parameter which is an input file +--~ <output> (default stdout) One that is an output file +--~ ]] +--~ for k,v in pairs(args) do +--~ print(k,v) +--~ end +------------------------------- +--~ > args -pq -o help -n 2 2.3 +--~ input file (781C1B78) +--~ p true +--~ s 1 +--~ output file (781C1B98) +--~ quiet true +--~ start 2.3 +--~ o help +--~ n 2 +-------------------------------- +if not modules then modules = { } end modules ['xindex-lapp'] = { + version = 0.05, + comment = "read parameter for xindex.lua", + author = "Steve Donovan", + copyright = "Steve Donovan", + license = "MIT" +} + + +lapp = {} + +local append = table.insert +local usage +local open_files = {} +local parms = {} +local aliases = {} +local parmlist = {} + +local filetypes = { + stdin = {io.stdin,'file-in'}, stdout = {io.stdout,'file-out'}, + stderr = {io.stderr,'file-out'} +} + +local function quit(msg,no_usage) + if msg then + io.stderr:write(msg..'\n\n') + end + if not no_usage then + io.stderr:write(usage) + end + os.exit(1); +end + +local function error(msg,no_usage) + quit(arg[0]:gsub('.+[\\/]','')..':'..msg,no_usage) +end + +local function ltrim(line) + return line:gsub('^%s*','') +end + +local function rtrim(line) + return line:gsub('%s*$','') +end + +local function trim(s) + return ltrim(rtrim(s)) +end + +local function open (file,opt) + local val,err = io.open(file,opt) + if not val then error(err,true) end + append(open_files,val) + return val +end + +local function xassert(condn,msg) + if not condn then + error(msg) + end +end + +local function range_check(x,min,max,parm) + xassert(min <= x and max >= x,parm..' out of range') +end + +local function xtonumber(s) + local val = tonumber(s) + if not val then error("unable to convert to number: "..s) end + return val +end + +local function is_filetype(type) + return type == 'file-in' or type == 'file-out' +end + +local types = {} + +local function convert_parameter(ps,val) + if ps.converter then + val = ps.converter(val) + end + if ps.type == 'number' then + val = xtonumber(val) + elseif is_filetype(ps.type) then + val = open(val,(ps.type == 'file-in' and 'r') or 'w' ) + elseif ps.type == 'boolean' then + val = true + end + if ps.constraint then + ps.constraint(val) + end + return val +end + +function lapp.add_type (name,converter,constraint) + types[name] = {converter=converter,constraint=constraint} +end + +local function force_short(short) + xassert(#short==1,short..": short parameters should be one character") +end + +function process_options_string(str) + local res = {} + local varargs + + local function check_varargs(s) + local res,cnt = s:gsub('%.%.%.$','') + varargs = cnt > 0 + return res + end + + local function set_result(ps,parm,val) + if not ps.varargs then + res[parm] = val + else + if not res[parm] then + res[parm] = { val } + else + append(res[parm],val) + end + end + end + + usage = str + + for line in str:gmatch('([^\n]*)\n') do + local optspec,optparm,i1,i2,defval,vtype,constraint + line = ltrim(line) + -- flags: either -<short> or -<short>,<long> + i1,i2,optspec = line:find('^%-(%S+)') + if i1 then + optspec = check_varargs(optspec) + local short,long = optspec:match('([^,]+),(.+)') + if short then + optparm = long:sub(3) + aliases[short] = optparm + force_short(short) + else + optparm = optspec + force_short(optparm) + end + else -- is it <parameter_name>? + i1,i2,optparm = line:find('(%b<>)') + if i1 then + -- so <input file...> becomes input_file ... + optparm = check_varargs(optparm:sub(2,-2)):gsub('%A','_') + append(parmlist,optparm) + end + end + if i1 then -- this is not a pure doc line + local last_i2 = i2 + local sval + line = ltrim(line:sub(i2+1)) + -- do we have (default <val>) or (<type>)? + i1,i2,typespec = line:find('^%s*(%b())') + if i1 then + typespec = trim(typespec:sub(2,-2)) -- trim the parens and any space + sval = typespec:match('default%s+(.+)') + if sval then + local val = tonumber(sval) + if val then -- we have a number! + defval = val + vtype = 'number' + elseif filetypes[sval] then + local ft = filetypes[sval] + defval = ft[1] + vtype = ft[2] + else + defval = sval + vtype = 'string' + end + else + local min,max = typespec:match '([^%.]+)%.%.(.+)' + if min then -- it's (min..max) + vtype = 'number' + min = xtonumber(min) + max = xtonumber(max) + constraint = function(x) + range_check(x,min,max,optparm) + end + else -- () just contains type of required parameter + vtype = typespec + end + end + else -- must be a plain flag, no extra parameter required + defval = false + vtype = 'boolean' + end + local ps = { + type = vtype, + defval = defval, + required = defval == nil, + comment = line:sub((i2 or last_i2)+1) or optparm, + constraint = constraint, + varargs = varargs + } + if types[vtype] then + local converter = types[vtype].converter + if type(converter) == 'string' then + ps.type = converter + else + ps.converter = converter + end + ps.constraint = types[vtype].constraint + end + parms[optparm] = ps + end + end + -- cool, we have our parms, let's parse the command line args + local iparm = 1 + local iextra = 1 + local i = 1 + local parm,ps,val + while i <= #arg do + -- look for a flag, -<short flags> or --<long flag> + local i1,i2,dash,parmstr = arg[i]:find('^(%-+)(%a.*)') + if i1 then -- we have a flag + if #dash == 2 then -- long option + parm = parmstr + else -- short option + if #parmstr == 1 then + parm = parmstr + else -- multiple flags after a '-',? + parm = parmstr:sub(1,1) + if parmstr:find('^%a%d+') then + -- a short option followed by a digit? (exception for AW ;)) + -- push ahead into the arg array + table.insert(arg,i+1,parmstr:sub(2)) + else + -- push multiple flags into the arg array! + for k = 2,#parmstr do + table.insert(arg,i+k-1,'-'..parmstr:sub(k,k)) + end + end + end + end + if parm == 'h' or parm == 'help' then + quit() + end + if aliases[parm] then parm = aliases[parm] end + ps = parms[parm] + if not ps then error("unrecognized parameter: "..parm) end + if ps.type ~= 'boolean' then -- we need a value! This should follow + val = arg[i+1] + i = i + 1 + xassert(val,parm.." was expecting a value") + end + else -- a parameter + parm = parmlist[iparm] + if not parm then + -- extra unnamed parameters are indexed starting at 1 + parm = iextra + iextra = iextra + 1 + ps = { type = 'string' } + else + ps = parms[parm] + end + if not ps.varargs then + iparm = iparm + 1 + end + val = arg[i] + end + ps.used = true + val = convert_parameter(ps,val) + set_result(ps,parm,val) + if is_filetype(ps.type) then + set_result(ps,parm..'_name',arg[i]) + end + if lapp.callback then + lapp.callback(parm,arg[i],res) + end + i = i + 1 + end + -- check unused parms, set defaults and check if any required parameters were missed + for parm,ps in pairs(parms) do + if not ps.used then + if ps.required then error("missing required parameter: "..parm) end + set_result(ps,parm,ps.defval) + end + end + return res +end + +setmetatable(lapp, { + __call = function(tbl,str) return process_options_string(str) end, + __index = { + open = open, + quit = quit, + error = error, + assert = xassert, + } +}) + +return lapp diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua new file mode 100644 index 00000000000..f570771776d --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-lib.lua @@ -0,0 +1,908 @@ +----------------------------------------------------------------------- +-- FILE: xindex-lib.lua +-- DESCRIPTION: library for xindex.lua +-- REQUIREMENTS: +-- AUTHOR: Herbert Voß +-- LICENSE: LPPL1.3 +----------------------------------------------------------------------- + +if not modules then modules = { } end modules ['xindex-lib'] = { + version = 0.05, + comment = "main library to xindex.lua", + author = "Herbert Voss", + copyright = "Herbert Voss", + license = "LPPL 1.3" +} + +local escapechar1 = "\"" +local escapechar2 = "\"\"" +local Letters = "ÄÖÜäöüabcdefghijklmnopqrstuvwxyzßABCDEFGHIJKLMNOPQRSTUVWXYZ" +local Digits = "0123456789" + +-- Looks up the character `character´ in the alphabet and returns its 'normalization' for sorting +local function get_normalized_char( CharList, character ) + for i, alphabet_entry in ipairs(CharList) do + for _, alphabet_char in ipairs(alphabet_entry) do + if character == alphabet_char then + return alphabet_entry[1] + end + end + end + return character +end + +function Lower(strOrig) -- return UTF string.lower + local str = "" + for i=1, utf.len(strOrig) do + local c = utf.sub(strOrig,i,i) + if c == "Ä" then str = str.."ä" + elseif c == "Ö" then str = str.."ö" + elseif c == "Ü" then str = str.."ü" + else str = str..utf.lower(c) + end + end + return str +end + +function NormalizedLower(strOrig) -- return normalized UTF string.lower (ä -> a) + local str = "" + for i=1, utf.len(strOrig) do + local c = get_normalized_char(alphabet_lower,utf.sub(strOrig,i,i)) + str = str..string.lower(c) + end + return str +end + +function NormalizedUpper(strOrig) -- return normalized UTF string.upper (ä -> A) + local str = "" + for i=1, utf.len(strOrig) do + local c = get_normalized_char(alphabet_lower,utf.sub(strOrig,i,i)) + str = str..string.upper(c) + end + strOrig = str + str = "" + for i=1, utf.len(strOrig) do + local c = get_normalized_char(alphabet_upper,utf.sub(strOrig,i,i)) + str = str..string.upper(c) + end + return str +end + +function checkVert(str) -- get the | part + local vert = string.find(str,"|",1,true) + if (vert) then + vertStr = string.sub(str,vert+1) + str = string.sub(str,1,vert-1) + return (vertStr) + else + return ("") + end +end + +function checkEntry(str) -- get the index entry name + local at=string.find(str,"@") + local excl=string.find(str,"!") + if (excl and at) then + if (at < excl) then + return string.sub(str,1,at-1) + else + return string.sub(str,1,excl-1) + end + elseif (excl) then + return string.sub(str,1,excl-1) + elseif (at) then + return string.sub(str,1,at-1) + else + return (str) + end +end + +function replaceAt(str) -- return "bar" from "foo@bar" +-- return str:gsub('[^!|@%s]+@', '') + return str:gsub('[^!|@]+@', '') +end + +function dofile(filename) + local file = kpse.find_file(filename) + local f = assert(loadfile(file)) + return f() +end + +-- see if the file exists +function file_exists(file) +local f = io.open(file, "rb") +if f then f:close() end +return f ~= nil +end + +-- get all lines from a file, returns an empty +-- list/table if the file does not exist +function read_lines_from(infile) + if not file_exists(infile) then return {} end + local lines = {} + local str + local c + for line in io.lines(infile) do + if line ~= "" then + if string.find(line,'\\indexentry',1,true) then + str = line:gsub('^\\%a+%s*{','{') -- remove "\\indexentry " + writeLog(1,"read_lines: str="..str.." ("..utf.sub(str,2,2)..")\n",2) + if getCharType(utf.sub(str,2,2)) == 0 then -- we have a symbol + lines[#lines + 1] = str:gsub('^{*','{ ') -- add a space before the symbol + else + lines[#lines + 1] = str + end + else + lines[#lines + 1] = "\\MACRO<<< "..line -- allow macros between entries + end + end + end + return lines +end + +function array_concat(...) + local t = {} + for n = 1,select("#",...) do + local arg = select(n,...) + if type(arg)=="table" then + for _,v in ipairs(arg) do + t[#t+1] = v + end + else + t[#t+1] = arg + end + end + return t +end + +function findSequences(a) -- look for 1,2,3,4, ... + local b = {} + local firstPage = a[1] -- first page in the sequence + for i=2,#a do -- next page until end of page list + if a[i]-a[i-1] > 1 then -- not next page + lastPage = a[i-1] -- new start for a sequence search + if lastPage - firstPage >= minCompress then -- sequence found + b[#b+1]= tostring(firstPage).."--"..tostring(lastPage) + else + b[#b+1]= firstPage + if (firstPage ~= lastPage) then b[#b+1]= lastPage end + end + firstPage=a[i] + end + end + if a[#a] - firstPage > 2 then -- test file end + b[#b+1]= tostring(firstPage).."--"..tostring(a[#a]) + else + b[#b+1]= firstPage + if (firstPage ~= a[#a]) then b[#b+1]= a[#a] end + end + return (b) +end + + +function deleteOpenClose(v) -- remove |( and/or |) + res, _ = string.gsub(v:gsub('\\[()]%s*$', ''), '\\[()]%s*', ' \\') + return res +end + +-- "\) " -> "" +-- "\)foo" -> \foo + +function checkParenthesis(Entries) -- search for |( ... |) entries + local paraOpen + local paraClose + local firstPage = 0 + local lastPage + local newEntries = {} + for k,v in pairs(Entries) do + if (k % 50) == 0 then writeLog(1,".",1) end + if v["Entry"] then + v["Entry"] = replaceAt(v["Entry"]) -- foo@bar!baz@foobar -> bar!foobar + CurrentEntry = v["Entry"] + paraOpen = v["pages"][1]["special"]:find("\\(",1,true) + paraClose = v["pages"][1]["special"]:find("\\)",1,true) + if paraOpen then + firstPage = v["pages"][1]["number"] + elseif paraClose then + lastPage = v["pages"][1]["number"] + newEntries[#newEntries+1] = { Entry = v["Entry"], + pages = {{ number = firstPage.."--"..lastPage, + special = deleteOpenClose(v["pages"][1]["special"])}}, + sortChar= v["sortChar"], + Macro = v["Macro"] + } + firstPage = 0 + elseif ((firstPage == 0) and not paraClose) then + newEntries[#newEntries+1] = v -- same Entry with greater page or new entry + end + end + end + return newEntries +end + +function replaceVerticalChar(v) +-- res, _ = string.gsub(v:gsub('|[()]$', ''), '|[()]?', ' \\') +-- return res + if not v:match('|') then + return v,"" + else + return v:gsub('|.*',''), v:match('|.*'):gsub('|','\\'):gsub("%s+", "") -- part before, part after | without spaces + end +end + +function getEntryAndPage(w, nextW, EntryList) +-- \indexentry{Aachen, Johann von}{VII/1-215} +-- \indexentry {Document@\idxtextClasses !IEEEtran@{\sfffffamily IEEEtran}}{185} +-- if indexEntry(w) then + local macro = nil + if string.find(nextW,"\\MACRO<<< ") then + macro = string.gsub(nextW,'\\MACRO<<<','') + end + local entry, pageNo = w:match('{(.*)}%s*{(.*)}') +-- if numericPage then +-- if tonumber(pageNo) then -- check for roman numbering +-- pageNo = tonumber(pageNo) +-- end +-- end + local IndexString, Special = replaceVerticalChar(entry) + EntryList[#EntryList+1] = { + Entry = IndexString, -- the index item foo@bar + pages = {{ + number = pageNo, + special = Special }}, -- the page number(s) and the part after | + sortChar= NormalizedUpper(utf.sub(IndexString,1,1)), -- :byte(), -- Initial for later output + Macro = macro + } + if args_v then + if Special == "" then Special = "-" end + writeLog(1,"getEntryAndPage: "..tostring(IndexString,pageNo,Special,utf.sub(IndexString,1,1),macro).."\n",2) + end + return EntryList +end + +function compressEntryList(EntryList) +-- require 'xindex-pretty'.dump(EntryList) -- only for internal dump + local newList = {} + newList[1] = EntryList[1] -- at least one entry + local nPages = 1 + for k=2,#EntryList do + if EntryList[k] then -- exists? + local vEntry = EntryList[k]["Entry"] + local last = EntryList[k-1] -- complete data + if (getSortString(last["Entry"]) == getSortString(vEntry)) then -- Entry exists -> add page +-- require 'xindex-pretty'.dump(EntryList) -- only for internal dump +-- require 'xindex-pretty'.dump(newList) -- only for internal dump + if (newList[#newList]["pages"][nPages]["number"] ~= EntryList[k]["pages"][1]["number"]) -- different pages or special? + or (newList[#newList]["pages"][nPages]["special"] ~= EntryList[k]["pages"][1]["special"]) then + newList[#newList]["pages"][nPages+1] = EntryList[k]["pages"][1] + nPages = nPages + 1 +-- require 'xindex-pretty'.dump(newList) -- only for internal dump + else + -- gleiche Entries, gleiche Seiten, gleiche specials -> nichts tun + end + else -- not the same entry +-- require 'xindex-pretty'.dump(newList) -- only for internal dump + newList[#newList]["pages"] = deletePageDups(newList[#newList]["pages"]) + newList[#newList+1] = EntryList[k] + nPages = 1 + end + end + end + -- last data line + newList[#newList]["pages"] = deletePageDups(newList[#newList]["pages"]) +-- require 'xindex-pretty'.dump(newList) -- only for internal dump + return newList +end + +--[[ example entry +EntryList[2] = { + Entry = "Johann", -- the index item foo@bar + pages = { -- the page number(s) and the part after | + { number = 111, + special = '\\emph' }, + { number = 11, + special = "\\textit"} + }, + sortChar= "", -- Initial for later output + Macro = "" +} +]] + + +function deletePageDups(pages) + if #pages == 1 then return pages end + local newPages = {pages[1]} + local notfound + for i=2,#pages do + notfound = true + for j=1,#newPages do + if (pages[i]["number"] == newPages[j]["number"]) and (pages[i]["special"] == newPages[j]["special"]) then + notfound = false + break + end + end + if notfound then + newPages[#newPages+1] = pages[i] + end + end + return newPages +end + + +function compressPageList(pages) -- called with (v["pages"]) + writeLog(1,"compressPageList: we have "..#pages.." pages for this entry",2) +-- require 'xindex-pretty'.dump(pages) -- only for internal dump + pages = deletePageDups(pages) -- delete duplicate page numners 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 + pages[1]["number"] = pages[1]["number"].."f" + pages[2] = nil +-- elseif (pages[1]["number"] == pages[2]["number"]) and +-- (pages[1]["special"] == pages[2]["special"]) then +-- pages[2] = nil + end + end + return pages + end + -- we have at least three pages + pages[#pages+1] = {number = 9999999, special = ""} -- dummy to sort the last real page number correct + local startIndex + local newPages = {} -- { pages[1], pages[2], ... } + local series = {} -- { pages[1], pages[2], ... } + if tonumber(pages[1]["number"]) then -- if a number we start with seconf page + newPages = {} + series = {pages[1]} + startIndex = 2 + else -- if not a number we start with third page + newPages = {pages[1]} + series = {pages[2]} + startIndex = 3 + end +if args_v then print ("compressPageList: more than two pages for the entry") 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 + (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 + newPages[#newPages+1] = series[1] + series = {pages[i]} + elseif (#series > minCompress) then -- we found series od f pages like 11, 12, 13, 14 + -- the sequenz gets the special from the first page + newPages[#newPages+1] = { number = series[1]["number"].."--"..series[#series]["number"], special = series[1]["special"]} -- first..last + series = {pages[i]} + else -- series < minCompress + if fCompress then + if #series == 2 then -- two pages -> 3f + writeLog(1,"compressPageList: Two consecutive pages for this entry",2) + if series[1]["special"] == series[2]["special"] then + newPages[#newPages+1] = { number = series[1]["number"]..page_folium[1], special = series[1]["special"] } + else + newPages[#newPages+1] = series[1] -- different |\special -> no compress to -f + newPages[#newPages+1] = series[2] + end + else -- must be #series=3 + if (series[1]["special"] == series[2]["special"]) and (series[2]["special"] == series[3]["special"]) then + newPages[#newPages+1] = { number = series[1]["number"]..page_folium[2], special = series[1]["special"] } -- three pages + elseif (series[1]["special"] == series[2]["special"]) then + newPages[#newPages+1] = { number = series[1]["number"]..page_folium[1], special = series[1]["special"] } -- three pages + newPages[#newPages+1] = series[3] + elseif (series[2]["special"] == series[3]["special"]) then + newPages[#newPages+1] = series[1] + newPages[#newPages+1] = { number = series[2]["number"]..page_folium[1], special = series[2]["special"] } -- three pages + else -- all different specials + newPages[#newPages+1] = series[1] + newPages[#newPages+1] = series[2] + newPages[#newPages+1] = series[3] + end + end + else + for i=1,#series do + newPages[#newPages+1] = series[i] + end + end + series = {pages[i]} + end + else -- current or forgoing page is not a number, we simply add it + if tonumber(pages[i]["number"]) then -- p[i-1] is non numeric p[i] is ok and not last no + series = {pages[i]} + else -- current page is non numeric + if (#series > minCompress) then -- we found a page series + newPages[#newPages+1] = { number = series[1]["number"].."--"..series[#series]["number"], -- first..last + special =series[1]["special"] } + series = {pages[i]} + else -- series < minCompress + for i=1,#series do + newPages[#newPages+1] = series[i] + end + series = {pages[i]} + end + end + end + end +-- require 'xindex-pretty'.dump(newPages) + return newPages +end + + +-- 2 letter +-- 1 digit +-- 0 symbol + +UTFdatafile = kpse.find_file("unicode-category.lua") +local category_data = dofile(UTFdatafile) +local floor = math.floor + +local function binary_range_search(code_point, ranges) + local low, mid, high + low, high = 1, #ranges + while low <= high do + mid = floor((low + high) / 2) + local range = ranges[mid] + if code_point < range[1] then + high = mid - 1 + elseif code_point <= range[2] then + return range, mid + else + low = mid + 1 + end + end + return nil, mid +end + +function get_category(code_point) + if category_data.singles[code_point] then + return category_data.singles[code_point] + else + local range = binary_range_search(code_point, category_data.ranges) + return range and range[3] or "Cn" + end +end + +function getCharType(c) +-- print ("getCharType c="..c..": codepoint="..utf8.codepoint(c)) + local category = get_category(utf8.codepoint(c)) +-- print ("getCharType: "..category) + if category == "Nd" then return 1 + elseif category:sub(1, 1) == "L" then return 2 + else return 0 + end +end + +--print(get_category(utf8.codepoint('ö'))) +--print(category_to_number(get_category(utf8.codepoint('ö')))) + +function getCharTypeOld(c) -- in case of Lua < 5.3 (has no utf support) + if utf.find(Letters,c,1,true) then return 2 + elseif utf.find(Digits,c,1,true) then return 1 + else return 0 + end +end + +-- string.gsub('{Entry}{page}', '{[^{}]*}$', '') -> {Entry} +-- str = "\indexentry {foo}{bar}" +-- first, second = str:match('{([^}]*)}%s*{([^}]*)}') -> foo, bar + +function UTFCompare(a,b) +-- a, b are something like \indexentry{foo}{bar} + writeLog(1,"UTFCompare: "..a["Entry"]..", "..a["pages"][1]["number"].." - "..b["Entry"]..", "..b["pages"][1]["number"],2) + k = k + 1 + if (k % 50) == 0 then writeLog(1,".",1) end + local A,B,Apage,Bpage + if numericPage then + if tonumber(a["pages"][1]["number"]) then + Apage = string.format("%09d",a["pages"][1]["number"]) + else + Apage = string.format("%09d",romanToNumber(a["pages"][1]["number"])) + end + if tonumber(b["pages"][1]["number"]) then + Bpage = string.format("%09d",b["pages"][1]["number"]) + else + Bpage = string.format("%09d",romanToNumber(b["pages"][1]["number"])) + end + else + Apage = string.format("%09s",a["pages"][1]["number"]) + Bpage = string.format("%09s",b["pages"][1]["number"]) + end + A = NormalizedUpper(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!',' ')) + B = NormalizedUpper(getSortString(b["Entry"].." "..Bpage..b["pages"][1]["special"]):gsub('!',' ')) +-- print(A,B) +--[[ + if A == B then -- same entry, use also page number + Apage = string.format("%09s",a["pages"][1]["number"]) + Bpage = string.format("%09s",b["pages"][1]["number"]) + A = string.format("%-90s",A)..Apage + B = string.format("%-90s",B)..Bpage + end + if numericPage then + if tonumber(a["pages"][1]["number"]) then + Apage = string.format("%09d",a["pages"][1]["number"]) + else + Apage = string.format("%09d",romanToNumber(a["pages"][1]["number"])) + end + if tonumber(b["pages"][1]["number"]) then + Bpage = string.format("%09d",b["pages"][1]["number"]) + else + Bpage = string.format("%09d",romanToNumber(b["pages"][1]["number"])) + end + else + Apage = string.format("%09s",a["pages"][1]["number"]) + Bpage = string.format("%09s",b["pages"][1]["number"]) + end + A = string.format("%-90s",A)..Apage + B = string.format("%-90s",B)..Bpage +]] + return A < B +end + +function pageCompare(a,b) -- a = {{number=...,special=..},{...,...}} +-- a["number"], b["number"] are something like "3" or "VI-17" or "9--31" + writeLog(1,"pageCompare: "..a["number"].." "..b["number"].."\n",2) + if (a["number"] == nil) or (b["number"] == nil) then return true end -- should be no nil here + local a0 = a["number"] -- can be numeric or alphanumeric + local b0 = b["number"] +-- if pageNoPrefixDel ~= "" then ---- not active +-- A = (a0:gsub(pageNoPrefixPattern,'')) +-- B = (b0:gsub(pageNoPrefixPattern,'')) +-- a0 = tonumber(A) or romanToNumber(A) +-- b0 = tonumber(B) or romanToNumber(B) +-- else + if numericPage then + if (type(a0) == "number") and (type(b0) == "number") then return a0 < b0 end + if romanToNumber(a0) and (type(b0) == "number") then return true end -- ii < 2 + if (type(a0) == "number") and romanToNumber(b0) then return false end -- ii > 2 + if romanToNumber(a0) and romanToNumber(b0) then return a0 < b0 end -- ii < iii + -- now we have some special page numbers + A = tostring(a0) + B = tostring(b0) + A1 = A:find("--",1,true) or A:find("f",1,true) -- sequence or folio pages + B1 = B:find("--",1,true) or B:find("f",1,true) + if A1 then a0 = tonumber(A:sub(1,A1-1)) end + if B1 then b0 = tonumber(B:sub(1,B1-1)) end + return tonumber(a0) < tonumber(b0) -- numeric + else + return a0 < b0 -- alphanumeric (strings) + end +end + +function checkFF(p) + if not p then return p end + local P = tostring(p) + if P:find("ff") then + return P:gsub('%a+','').."\\nohyperpage{"..page_folium[2].."}" + elseif P:find("f") then + return P:gsub('%a+','').."\\nohyperpage{"..page_folium[1].."}" + else + return P + end +end + +function getRawPages(v) + writeLog(1,"getRawPages, Entry: "..v["Entry"]..", page: "..tostring(v["pages"][1]["number"]),2) + if v then + local str = tostring(v["pages"][1]["number"]).."("..tostring(v["pages"][1]["special"])..")" + for i=2,#v["pages"] do + if v["pages"] then + str = str..", "..tostring(v["pages"][i]["number"]).."("..tostring(v["pages"][i]["special"])..")" + end + end + return str + else + return "v->nil" + end +end + +function getRawPagesP(p) -- does the same but uses table pages + if p then + local str = tostring(p[1]["number"]).."("..tostring(p[1]["special"])..")" + for i=2,#p do + if p then + str = str..", "..tostring(p[i]["number"]).."("..tostring(p[i]["special"])..")" + end + end + return str + else + return "pages->nil" + end +end + + +function getPageList(v,hyperpage) + if specialGetPageList then + local pageNo = specialGetPageList(v,hyperpage) + return pageNo + end + local Pages = {} + if v["pages"] then + table.sort(v["pages"],pageCompare)-- nur nötig, da User manuell eine Zeile einfügen kann + if specialCompressPageList then + Pages = specialCompressPageList(v["pages"]) + else + Pages = compressPageList(v["pages"]) + end +-- require 'xindex-pretty'.dump(Pages) -- only for internal dump + local pageNo +--[[ +\indexentry{Auto|hyperindexformat{\textbf}}{1} +-> \item Auto, \hyperindexformat{\textbf}{1} + + add for example \hyperpage{5\nohyperpage{f}} , same for ff + + \item foo, \hyperpage{1\nohyperpage{f}}, + \hyperpage{4\nohyperpage{ff}}, \hyperpage{8} + +]] + if hyperpage then + if string.find(v["pages"][1]["special"],"hyperindexformat") then + pageNo = v["pages"][1]["special"].."{"..checkFF(Pages[1]["number"].."}") + else + pageNo = "\\hyperpage{"..checkFF(Pages[1]["number"]).."}" + end + for i=2,#Pages do + if string.find(v["pages"][i]["special"],"hyperindexformat") then + pageNo = pageNo..", "..v["pages"][i]["special"].."{"..checkFF(Pages[i]["number"].."}") + else + pageNo = pageNo..", \\hyperpage{"..checkFF(Pages[i]["number"]).."}" + end +-- Pages[i] = nil + end + else + writeLog(1,"getPageList: "..tostring(Pages[1]["special"]).."{"..tostring(Pages[1]["number"]).."}\n",2) + if (Pages[1]["special"] == nil) or (Pages[1]["number"] == nil) then return "" end + pageNo = Pages[1]["special"].."{"..Pages[1]["number"].."}" + for i=2,#Pages do + if Pages[i]["number"] then + pageNo = pageNo..", "..Pages[i]["special"].."{"..Pages[i]["number"].."}" + Pages[i] = {} + end + end + end + return pageNo + else + return "" + end +end + + +function getPathFileExt(str) + local filepath = str:match("(.*[/\\])") + local filename = str:match("^.+/(.+)$") + local fileext = str:match("^.+(%..+)$") + return filepath,filename,fileext +end + +function printList(Index,level) + for k,v in pairs(Index) do + if v["Entry"] then + local sortChar = v["sortChar"] + if v["Entry"] and v["Macro"] then + writeLog(1,"Entry: "..v["Entry"].."; Pages: "..getRawPages(v).."Special: "..v["pages"][1]["special"].."; Type: "..sortChar.."; Macro: "..v["Macro"].."\n",level) + else + writeLog(1,"Entry: "..v["Entry"].."; Pages: "..getRawPages(v).."Special: "..v["pages"][1]["special"].."; Type: "..sortChar.."; Macro: nil".."\n",level) + end + end + end +end + +function getItem(str,n) + if n >= 0 then + local item = (str:gsub("!.*", "%0!") + :gsub("[^!]*!", "", n) + :match("^([^!]*)!") ) + writeLog(1,"getItem ("..str..", "..n..") = "..item.."\n",2) + return item + end +end + +local romanMap = { + I = 1, + V = 5, + X = 10, + L = 50, + C = 100, + D = 500, + M = 1000, +} + +local numbers = { 1, 5, 10, 50, 100, 500, 1000 } +local romanchars = { "I", "V", "X", "L", "C", "D", "M" } +local RomanNumerals = { } + +function numberToRoman(s) + --s = tostring(s) + s = tonumber(s) + if not s or s ~= s then error"Unable to convert to number" end + if s == math.huge then error"Unable to convert infinity" end + s = math.floor(s) + if s <= 0 then return s end + local ret = "" + for i = #numbers, 1, -1 do + local num = numbers[i] + while s - num >= 0 and s > 0 do + ret = ret .. romanchars[i] + s = s - num + end + for j = 1, i - 1 do + local n2 = numbers[j] + if s - (num - n2) >= 0 and s < num and s > 0 and num - n2 ~= n2 then + ret = ret .. romanchars[j] .. romanchars[i] + s = s - (num - n2) + break + end + end + end + return ret +end + +function romanToNumber(s) +-- if args_v then print("romanToNumber: "..tostring(s)) end +-- if not s then return end + s = s:upper() + local ret = 0 + local i = 1 + while i <= s:len() do + local c = s:sub(i, i) + if c ~= " " then -- allow spaces + local m = romanMap[c] + if not m then return nil end --error("Unknown Roman Numeral '" .. c .. "'") + local next = s:sub(i + 1, i + 1) + local nextm = romanMap[next] + if next and nextm then + if nextm > m then + ret = ret + (nextm - m) + i = i + 1 + else + ret = ret + m + end + else + ret = ret + m + end + end + i = i + 1 + end + return ret +end + +function commandEntry(line) + return string.find(line,"\\MACRO<<<",1,true) +end + +function checkHyperpage(lines) + local hyperpage = false + for i=1,#lines do + if string.find(lines[i],'hyperpage}') then + hyperpage = true + break + end + end + if hyperpage then + for i=1,#lines do + lines[i] = string.gsub(lines[i],'|?hyperpage}{','}{') + end + return true, lines + else + return false, lines + end + return +end + +function itemOutput(last, v, hyperpage) + local lastItems = last + local currentItems = {} + local Entry = v["Entry"] +-- 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) + writeLog(1,"itemOutput(): The entry has "..excl.." Exclamation characters\n",2) + if excl == 0 then + str = " \\item "..Entry..itemPageDelimiter.." "..getPageList(v,hyperpage).."\n" + for i, str0 in ipairs(escape_chars) do -- undo the escape char setting + str = str:gsub(str0[2],str0[3]) + end + outFile:write(str) +-- lastItems[1] = Entry + else + for i = 1,excl+1 do + currentItems[i] = getItem(Entry,i-1) -- 0 ! 1 ! 2 ! ... + local item = "item" + if (currentItems[i] ~= lastItems[i]) then + writeLog(1,"itemOutput: currentItems[i]: "..tostring(currentItems[i]).."~= lastItems[i]: "..tostring(lastItems[i]).."\n",2) + local space = " " + for j = 2,i do + item = "sub"..item -- get the sub...subitem + space = space.." " + end + if not sublabels[i] then sublabels[i] = "---" end -- only three levels are predefined + writeLog(1,"itemOutput: currentItems[i]: "..currentItems[i].."; item: "..item.."\n",2) + if (i == 1) and (item == "item") then + str = space.."\\"..item.." "..sublabels[i]..currentItems[i].."\n" + else + str = space.."\\"..item.." "..sublabels[i]..currentItems[i]..itemPageDelimiter.." "..getPageList(v,hyperpage).."\n" + end + for i, str0 in ipairs(escape_chars) do -- undo the escape char setting + str = string.gsub(str,str0[2],str0[3]) + end + outFile:write(str) + lastItems[i] = currentItems[i] + else + writeLog(1,"itemOutput: currentItems[i]: "..currentItems[i].."= lastItems[i]: "..lastItems[i].."\n",2) + end + end + end + return lastItems +end + +-- \item Bugenhagen, {VII/1-16}, {166}, {17}, {215}, {222f}, {226}, {237f}, {248}, {258f}, {263}, {269}, {316f}, {321}, {361}, {365f}, {368}, {385}, {431}, {57}, {65}, {68}, {71}, {714}, {728}, {73f}, {748}, {75}, {79}, {81}, {85}, {90f}, {VII/2/1-1013}, {1015}, {1049}, {1085}, {1088}, {1097--1100}, {1110}, {1114}, {1120}, {1126}, {1148}, {1175}, {1234}, {1236ff}, {761}, {782}, {785}, {799}, {803--811}, {813f}, {818}, {822f}, {829}, {832--835}, {839f}, {848f}, {851}, {857--862}, {864f}, {867--871}, {873}, {875}, {877}, {880}, {882}, {884}, {961}, {973}, {IX-277} +-- \subitem -\,Johannes, {VII/1-16}, {166}, {17}, {215}, {222f}, {226}, {237f}, {248}, {258f}, {263}, {269}, {316f}, {321}, {361}, {365f}, {368}, {385}, {431}, {57}, {65}, {68}, {71}, {714}, {728}, {73f}, {748}, {75}, {79}, {81}, {85}, {90f}, {VII/2/1-1013}, {1015}, {1049}, {1085}, {1088}, {1097--1100}, {1110}, {1114}, {1120}, {1126}, {1148}, {1175}, {1234}, {1236ff}, {761}, {782}, {785}, {799}, {803--811}, {813f}, {818}, {822f}, {829}, {832--835}, {839f}, {848f}, {851}, {857--862}, {864f}, {867--871}, {873}, {875}, {877}, {880}, {882}, {884}, {961}, {973}, {IX-277} + +local match = function(expr) + local C, Ct, S = lpeg.C, lpeg.Ct, lpeg.S + local sep = S("@!|") + local str = C((1 - sep)^0) + local prefix = function(prefix) + return function(match) + return prefix .. match + end + end + local idx = str * ( "@" * str / prefix("@") + + "!" * str / prefix("!") + + "|" * str / prefix("|"))^0 + return Ct(idx):match(expr) +end + +function getSortString(Entry) + local t = match(Entry) +-- require 'xindex-pretty'.dump(t) -- only for internal dump + local data = t[1] + local c = utf.sub(data,1,1) + if getCharType(c) == 0 then + data = " "..data + end + for i = 2,#t do + if not (t[i]:sub(1,1) == "@") then -- and not (t[i]:sub(1,1) == "|") then + data = data..t[i] + end + end + return data +end + +function writeLog(i, str, level) -- mode i 0->console; 1->logfile: 2->both + if not_quiet then + if level <= vlevel then + if (i ~= 1) or (i < 0) then io.write(tostring(str)) end + if i > 0 then logFile:write(tostring(str)) end + end + else + if level < 0 then + io.write(tostring(str)) + elseif level == 0 then + logFile:write(tostring(str)) + end + end +end + +function string:split() + local sep, fields = " ", {} + local pattern = string.format("([^%s]+)", sep) + self:gsub(pattern, function(c) fields[#fields+1] = c end) + return fields +end + + + +--\indexentry{hello@foo!world@foo!bar|bar}{60} + + +--[[ +\indexentry {Schrift!Höhe}{64} +\indexentry {Schrift!Breite}{64} +\indexentry {Schrift!Tiefe}{64} + +]]
\ No newline at end of file diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua new file mode 100644 index 00000000000..290c30d1c96 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex-pretty.lua @@ -0,0 +1,254 @@ +--- Pretty-printing Lua tables. +-- based on Steve Donovans Penlight package +-- Also provides a sandboxed Lua table reader and +-- a function to present large numbers in human-friendly format. +-- + +if not modules then modules = { } end modules ['xindex-pretty'] = { + version = 0.05, + comment = "dump a Lua table for debugging", + author = "Steve Donovan", + copyright = "Steve Donovan", + license = "MIT" +} + +local append = table.insert +local concat = table.concat +local mfloor, mhuge = math.floor, math.huge +local mtype = math.type + +local original_tostring = tostring + +--- Utility function that finds any patterns that match a long string's an open or close. +-- Note that having this function use the least number of equal signs that is possible is a harder algorithm to come up with. +-- Right now, it simply returns the greatest number of them found. +-- @param s The string +-- @return 'nil' if not found. If found, the maximum number of equal signs found within all matches. +local function has_lquote(s) + local lstring_pat = '([%[%]])(=*)%1' + local equals, new_equals, _ + local finish = 1 + repeat + _, finish, _, new_equals = s:find(lstring_pat, finish) + if new_equals then + equals = max(equals or 0, #new_equals) + end + until not new_equals + + return equals +end + +--- Quote the given string and preserve any control or escape characters, such that reloading the string in Lua returns the same result. +-- @param s The string to be quoted. +-- @return The quoted string. + +function quote_string(s) +-- assert_string(1,s) + -- Find out if there are any embedded long-quote sequences that may cause issues. + -- This is important when strings are embedded within strings, like when serializing. + -- Append a closing bracket to catch unfinished long-quote sequences at the end of the string. + local equal_signs = has_lquote(s .. "]") + + -- Note that strings containing "\r" can't be quoted using long brackets + -- as Lua lexer converts all newlines to "\n" within long strings. + if (s:find("\n") or equal_signs) and not s:find("\r") then + -- If there is an embedded sequence that matches a long quote, then + -- find the one with the maximum number of = signs and add one to that number. + equal_signs = ("="):rep((equal_signs or -1) + 1) + -- Long strings strip out leading newline. We want to retain that, when quoting. + if s:find("^\n") then s = "\n" .. s end + local lbracket, rbracket = + "[" .. equal_signs .. "[", + "]" .. equal_signs .. "]" + s = lbracket .. s .. rbracket + else + -- Escape funny stuff. Lua 5.1 does not handle "\r" correctly. + s = ("%q"):format(s):gsub("\r", "\\r") + end + return s +end + +-- Patch tostring to format numbers with better precision +-- and to produce cross-platform results for +-- infinite values and NaN. +local function tostring(value) + if type(value) ~= "number" then + return original_tostring(value) + elseif value ~= value then + return "NaN" + elseif value == mhuge then + return "Inf" + elseif value == -mhuge then + return "-Inf" + elseif (_VERSION ~= "Lua 5.3" or mtype(value) == "integer") and mfloor(value) == value then + return ("%d"):format(value) + else + local res = ("%.14g"):format(value) + if _VERSION == "Lua 5.3" and mtype(value) == "float" and not res:find("%.") then + -- Number is internally a float but looks like an integer. + -- Insert ".0" after first run of digits. + res = res:gsub("%d+", "%0.0", 1) + end + return res + end +end + +local pretty = {} + +local function quote_if_necessary (v) + if not v then return '' + else + --AAS + if v:find ' ' then v = quote_string(v) end + end + return v +end + +local keywords + +local function is_identifier (s) + return type(s) == 'string' and s:find('^[%a_][%w_]*$') and not keywords[s] +end + +local function quote (s) + if type(s) == 'table' then + return pretty.write(s,'') + else + --AAS + return quote_string(s)-- ('%q'):format(tostring(s)) + end +end + +local function index (numkey,key) + --AAS + if not numkey then + key = quote(key) + key = key:find("^%[") and (" " .. key .. " ") or key + end + return '['..key..']' +end + +--- Create a string representation of a Lua table. +-- This function never fails, but may complain by returning an +-- extra value. Normally puts out one item per line, using +-- the provided indent; set the second parameter to an empty string +-- if you want output on one line. +-- @tab tbl Table to serialize to a string. +-- @string[opt] space The indent to use. +-- Defaults to two spaces; pass an empty string for no indentation. +-- @bool[opt] not_clever Pass `true` for plain output, e.g `{['key']=1}`. +-- Defaults to `false`. +-- @return a string +-- @return an optional error message + +function pretty.dump (tbl,space,not_clever) + if type(tbl) ~= 'table' then + local res = tostring(tbl) + if type(tbl) == 'string' then return quote(tbl) end + return res, 'not a table' + end + if not keywords then + keywords = { + ["and"] = true, ["break"] = true, ["do"] = true, + ["else"] = true, ["elseif"] = true, ["end"] = true, + ["false"] = true, ["for"] = true, ["function"] = true, + ["if"] = true, ["in"] = true, ["local"] = true, ["nil"] = true, + ["not"] = true, ["or"] = true, ["repeat"] = true, + ["return"] = true, ["then"] = true, ["true"] = true, + ["until"] = true, ["while"] = true + } + end + local set = ' = ' + if space == '' then set = '=' end + space = space or ' ' + local lines = {} + local line = '' + local tables = {} + + + local function put(s) + if #s > 0 then + line = line..s + end + end + + local function putln (s) + if #line > 0 then + line = line..s + append(lines,line) + line = '' + else + append(lines,s) + end + end + + local function eat_last_comma () + local n = #lines + local lastch = lines[n]:sub(-1,-1) + if lastch == ',' then + lines[n] = lines[n]:sub(1,-2) + end + end + + local writeit + writeit = function (t,oldindent,indent) + local tp = type(t) + if tp ~= 'string' and tp ~= 'table' then + putln(quote_if_necessary(tostring(t))..',') + elseif tp == 'string' then + -- if t:find('\n') then + -- putln('[[\n'..t..']],') + -- else + -- putln(quote(t)..',') + -- end + --AAS + putln(quote_string(t) ..",") + elseif tp == 'table' then + if tables[t] then + putln('<cycle>,') + return + end + tables[t] = true + local newindent = indent..space + putln('{') + local used = {} + if not not_clever then + for i,val in ipairs(t) do + put(indent) + writeit(val,indent,newindent) + used[i] = true + end + end + for key,val in pairs(t) do + local tkey = type(key) + local numkey = tkey == 'number' + if not_clever then + key = tostring(key) + put(indent..index(numkey,key)..set) + writeit(val,indent,newindent) + else + if not numkey or not used[key] then -- non-array indices + if tkey ~= 'string' then + key = tostring(key) + end + if numkey or not is_identifier(key) then + key = index(numkey,key) + end + put(indent..key..set) + writeit(val,indent,newindent) + end + end + end + tables[t] = nil + eat_last_comma() + putln(oldindent..'},') + else + putln(tostring(t)..',') + end + end + writeit(tbl,'',space) + eat_last_comma() + return concat(lines,#space > 0 and '\n' or '') +end + +return pretty diff --git a/Master/texmf-dist/tex/lualatex/xindex/xindex.sty b/Master/texmf-dist/tex/lualatex/xindex/xindex.sty new file mode 100644 index 00000000000..58afc99c20d --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/xindex/xindex.sty @@ -0,0 +1,76 @@ +%% This is file `xindex.sty', +%% +%% Copyright (C) 2018 +%% Herbert Voss +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +% +% $Id: xindex.sty 836 2018-11-11 20:22:56Z herbert $ +% +% ------------------------------------- +\ProvidesPackage{xindex}[2018/11/11 v. 0.02 write into an idx file (hv)] +% +\RequirePackage{xkeyval} + +\newif\if@@imakeidx \@@imakeidxfalse + +\DeclareOptionX{imakeidx}{\@@imakeidxtrue} +\DeclareOptionX*{\PassOptionsToPackage\CurrentOption{imakeidx}} +\ProcessOptionsX\relax + +\@ifpackageloaded{imakeidx}{}{% imakeidx already loaded?? if not then define ... + \newif\ifimki@startedidx + \newif\ifimki@splitindex +} + +\if@@imakeidx + \typeout{xindex: Using package imakeidx}% + \RequirePackage{imakeidx} + \def\imki@progdefault{xindex} + \def\imki@program{xindex} +% + \def\imki@@startidxsplit#1{% + \if@filesw + \def\index{\@bsphack + \@ifnextchar [{\@index}{\@index[\imki@jobname]}} + \expandafter\newwrite\csname #1@idxfile\endcsname + \immediate\openout \csname #1@idxfile\endcsname #1.idx\relax + \def\writeidx##1{\write\expandafter\csname #1@idxfile\endcsname{\noexpand##1}}% + \typeout{Writing index file #1.idx}% + \fi + } + \global\imki@startedidxfalse + \def\imki@@startidxunique#1{% + \if@filesw + \ifimki@startedidx\else + \newwrite\@indexfile + \immediate\openout\@indexfile\imki@jobname.idx% + \def\writeidx##1{\write\@indexfile{\noexpand##1}}% + \global\imki@startedidxtrue + \fi + \def\index{\@bsphack + \@ifnextchar [{\@index}{\@index[\imki@jobname]}} + \expandafter\let\csname #1@idxfile\endcsname\@empty + \typeout{Started index file #1}% + \fi + } +% + \ifimki@splitindex + \let\imki@startidx\imki@@startidxunique + \else + \let\imki@startidx\imki@@startidxsplit + \fi +\else + \typeout{xindex: Using package makeidx}% + \RequirePackage{makeidx} + \def\writeidx#1{\write\@indexfile{\noexpand#1}} +\fi + +\endinput + diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 5a19d4e5425..8f388b4bf55 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -720,7 +720,7 @@ my @TLP_working = qw( xetex-devanagari xetex-itrans xetex-pstricks xetex-tibetan xetexfontinfo xetexko xetexref xevlna xfakebold xfor xgreek xhfill - xifthen xii xii-lat xint xits + xifthen xii xii-lat xindex xint xits xkeyval xlop xltabular xltxtra xmltex xmpincl xnewcommand xoptarg xpatch xpeek xpiano xpicture xpinyin xprintlen xpunctuate xq xsavebox xsim xskak xstring xtab xtuthesis xunicode xurl diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 84b43132491..131250a177b 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1268,7 +1268,6 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'xetex-pstricks',"&MAKEcopy", 'xfakebold', "&MAKEflatten", 'xfrac', "die 'skipping, use mh (I think)'", - 'xindex', "&MAKEflatten", 'xindy-persian',"die 'skipping, do by hand in /texmf-dist/xindy/modules/lang/persian: too painful to preserve rest of xindy'", 'xinitials', "die 'skipping, will be in xpackages when ready (Morten says)'", 'xits', "&MAKEflatten", @@ -1356,6 +1355,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'wsuipa' => '&PREHOOK_wsuipa', 'yathesis' => '&PREHOOK_flatten1', 'xepersian' => '&PREHOOK_flatten1', + 'xindex' => '&PREHOOK_flatten1', 'xsim' => '&PREHOOK_xsim', ); @@ -1577,6 +1577,7 @@ $standarddest = "texmf-dist"; 'xetexfontinfo', 'xetex', 'xetexko', 'xetex', 'xevlna', 'xelatex', + 'xindex', 'lualatex', 'xint', 'generic', 'xltxtra', 'xelatex', 'xstring', 'generic', @@ -1994,6 +1995,7 @@ $standardtex 'xetexfontinfo','\.tex', 'xetexko', '\.tab$|' . $standardtex, 'xwatermark', '\.sty', # no .cfg + 'xindex', 'xindex-.*\.lua$|' . $standardtex, 'xlop', 'xlop\.(tex|sty)', # no manual.sty 'xstring', 'xstring\.tex|' . $standardtex, 'yathesis', '\.(sty|cls)$', # no .cfg @@ -2252,6 +2254,7 @@ $standardtex 'xetexko', 'xetex', 'xetexref', 'xetex', 'xevlna', 'xelatex', + 'xindex', 'lualatex', 'xint', 'generic', 'xltxtra', 'xelatex', 'xq', 'fonts', @@ -2455,6 +2458,7 @@ $standardsource = '(\.(bat|c|drv|dtx|fea|fdd|ins|sfd)' 'translation-tabbing-fr', 'NULL', # doc 'tkz-orm', 'NULL', # no gain ... 'velthuis', 'NULL', + 'xindex', 'NULL', 'xlop', 'manual.sty|' . $standardsource, ); @@ -3042,6 +3046,7 @@ $standardttf = '\.ttf|\.TTC'; 'vpe' => '\.pl$', 'wordcount' => '\.sh$', 'wheretotrim' => '\.pl$', + 'xindex' => 'xindex\.lua$', 'yplan' => 'yplan$', ); diff --git a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc index ece04c68cab..d60a6a17bab 100644 --- a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc @@ -94,4 +94,5 @@ depend tlshell depend tpic2pdftex depend typeoutfileinfo depend web +depend xindex depend xindy diff --git a/Master/tlpkg/tlpsrc/xindex.tlpsrc b/Master/tlpkg/tlpsrc/xindex.tlpsrc new file mode 100644 index 00000000000..dca338c719c --- /dev/null +++ b/Master/tlpkg/tlpsrc/xindex.tlpsrc @@ -0,0 +1 @@ +binpattern f bin/${ARCH}/${PKGNAME} |