From 97f5151099967e6c823d640a90d87bca92c44035 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 29 Oct 2019 03:00:39 +0000 Subject: CTAN sync 201910290300 --- indexing/xindex/CHANGELOG | 2 + indexing/xindex/doc/tests/HADW.ind | 30 +- indexing/xindex/doc/tests/HADW.pdf | Bin 20275 -> 18924 bytes indexing/xindex/doc/tests/HADW.tex | 3 +- indexing/xindex/doc/tests/Umlaute.ind | 6 +- indexing/xindex/doc/tests/Umlaute.pdf | Bin 17462 -> 15832 bytes indexing/xindex/doc/tests/Umlaute2.ind | 16 +- indexing/xindex/doc/tests/Umlaute2.pdf | Bin 21640 -> 19533 bytes indexing/xindex/doc/tests/buch.ind | 553 +++++++++++++++++++++++++ indexing/xindex/doc/tests/buch.pdf | Bin 49722 -> 40170 bytes indexing/xindex/doc/tests/demo-hyperref.ind | 46 +- indexing/xindex/doc/tests/demo-hyperref.pdf | Bin 32794 -> 29389 bytes indexing/xindex/doc/tests/demo.ind | 50 +-- indexing/xindex/doc/tests/demo.pdf | Bin 39233 -> 35447 bytes indexing/xindex/doc/tests/demo2.ind | 2 +- indexing/xindex/doc/tests/demo3.ind | 2 +- indexing/xindex/doc/tests/demo3.pdf | Bin 10054 -> 9494 bytes indexing/xindex/doc/tests/runTests.sh | 2 +- indexing/xindex/doc/xindex-doc.pdf | Bin 375317 -> 377152 bytes indexing/xindex/doc/xindex-doc.tex | 85 ++-- indexing/xindex/lualatex/xindex-DIN2.lua | 16 +- indexing/xindex/lualatex/xindex-HAdW-eKO.lua | 16 +- indexing/xindex/lualatex/xindex-base.lua | 22 +- indexing/xindex/lualatex/xindex-cfg-common.lua | 13 +- indexing/xindex/lualatex/xindex-cfg.lua | 12 +- indexing/xindex/lualatex/xindex-dtk.lua | 2 +- indexing/xindex/lualatex/xindex-lapp.lua | 2 +- indexing/xindex/lualatex/xindex-lib.lua | 132 +++--- indexing/xindex/lualatex/xindex-pretty.lua | 2 +- indexing/xindex/lualatex/xindex-yannis.lua | 2 +- indexing/xindex/scripts/xindex.lua | 9 +- 31 files changed, 827 insertions(+), 198 deletions(-) create mode 100644 indexing/xindex/doc/tests/buch.ind (limited to 'indexing') diff --git a/indexing/xindex/CHANGELOG b/indexing/xindex/CHANGELOG index d2a227efbe..0a40bef916 100644 --- a/indexing/xindex/CHANGELOG +++ b/indexing/xindex/CHANGELOG @@ -1,3 +1,5 @@ +0.18 2019-10-27 - speed up sorting by modifying the code +0.17 2019-10-15 - fixes in cfg file for missing circum 0.16 2019-10-02 - fixes in the documentation 0.15 2019-09-21 - fixed the corrupt file xindex-lib.lua 0.14 2019-09-01 - added variable idxnewletter diff --git a/indexing/xindex/doc/tests/HADW.ind b/indexing/xindex/doc/tests/HADW.ind index 06c3c2515a..6cf4e5b449 100644 --- a/indexing/xindex/doc/tests/HADW.ind +++ b/indexing/xindex/doc/tests/HADW.ind @@ -2,37 +2,37 @@ \begin{theindex} \indexspace -\textbf{A} +\textbf{A}\label{L-xindex-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 Aachen, Johannes von \dotfill {\colorbox{black!15}{VII/1}:~215} + \item Aarones \dotfill {\colorbox{black!15}{VII/2/1}:~1003}, {1012} + \item Abrahamson \dotfill {\colorbox{black!15}{VII/2/1}:~864}, {991}, {1048}, {1067}, {1156} + \item Adamson \dotfill {\colorbox{black!15}{VII/2/1}:~1223}, {\colorbox{black!15}{IX/1}:~1228} \item Adrian - \subitem -\,Hauster, {VII/1 514}, {XI/1 515} + \subitem -\,Hauster \dotfill {\colorbox{black!15}{VII/1}:~514}, {\colorbox{black!15}{XI/1}:~515} \item Alting - \subitem -\,Mensa, {VII/1 426}, {434}, {453}, {455}, {466f} + \subitem -\,Mensa \dotfill {\colorbox{black!15}{VII/1}:~426}, {434}, {453}, {455}, {466f.} \indexspace -\textbf{B} +\textbf{B}\label{L-xindex-B} \nopagebreak[4] \item Bremen - \subitem -\,Heinz von, Erzbischof, \see{Sachsen-Lauenburg}{} + \subitem -\,Heinz von, Erzbischof \dotfill \see{Sachsen-Lauenburg}{ } \indexspace -\textbf{O} +\textbf{O}\label{L-xindex-O} \nopagebreak[4] \item Osnabrück - \subitem -\,Heinz von, Bischof, \see{Sachsen-Lauenburg}{} + \subitem -\,Heinz von, Bischof \dotfill \see{Sachsen-Lauenburg}{ } \indexspace -\textbf{S} +\textbf{S}\label{L-xindex-S} \nopagebreak[4] \item Schleswig-Holstein - \subitem -\,Rudolf von, Herzog, {VII/2/1 758--761}, {765} + \subitem -\,Rudolf von, Herzog \dotfill {\colorbox{black!15}{VII/2/1}:~758--761}, {765} \indexspace -\textbf{Z} +\textbf{Z}\label{L-xindex-Z} \nopagebreak[4] - \item Zwingl, Haldrich, {IX 479}, {692} + \item Zwingl, Haldrich \dotfill {\colorbox{black!15}{IX}:~479}, {692} \end{theindex} diff --git a/indexing/xindex/doc/tests/HADW.pdf b/indexing/xindex/doc/tests/HADW.pdf index c569984fda..239f431bc9 100644 Binary files a/indexing/xindex/doc/tests/HADW.pdf and b/indexing/xindex/doc/tests/HADW.pdf differ diff --git a/indexing/xindex/doc/tests/HADW.tex b/indexing/xindex/doc/tests/HADW.tex index 2c26732da2..1a837fd93b 100644 --- a/indexing/xindex/doc/tests/HADW.tex +++ b/indexing/xindex/doc/tests/HADW.tex @@ -5,6 +5,7 @@ \usepackage{babel} \usepackage{makeidx} \usepackage{dtk-logos} +\usepackage[table]{xcolor} \makeatletter \def\theindex{% only for demonstration \section*{\indexname} @@ -13,7 +14,7 @@ \makeatother \begin{document} -Run with \verb|xindex --config HAdW| +Run with \verb|xindex --config HAdW-eKO| \printindex \end{document} diff --git a/indexing/xindex/doc/tests/Umlaute.ind b/indexing/xindex/doc/tests/Umlaute.ind index fe7d43950e..3ad13d9ff0 100644 --- a/indexing/xindex/doc/tests/Umlaute.ind +++ b/indexing/xindex/doc/tests/Umlaute.ind @@ -2,13 +2,13 @@ \begin{theindex} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item Fluss \subitem -\,Oder, {479} \indexspace -\textbf{G} +\textbf{G}\label{L-xindex-G} \nopagebreak[4] \item Göbel, {58} \item Goethe, {58} @@ -17,7 +17,7 @@ \item Götz, {58} \indexspace -\textbf{O} +\textbf{O}\label{L-xindex-O} \nopagebreak[4] \item Ober, {4}, {6} \item Oberin, {5f} diff --git a/indexing/xindex/doc/tests/Umlaute.pdf b/indexing/xindex/doc/tests/Umlaute.pdf index 8e5e63500d..d91d9f10ec 100644 Binary files a/indexing/xindex/doc/tests/Umlaute.pdf and b/indexing/xindex/doc/tests/Umlaute.pdf differ diff --git a/indexing/xindex/doc/tests/Umlaute2.ind b/indexing/xindex/doc/tests/Umlaute2.ind index d128238f69..a55b4e2926 100644 --- a/indexing/xindex/doc/tests/Umlaute2.ind +++ b/indexing/xindex/doc/tests/Umlaute2.ind @@ -2,13 +2,13 @@ \begin{theindex} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item Fluss \subitem -\,Oder, {479} \indexspace -\textbf{G} +\textbf{G}\label{L-xindex-G} \nopagebreak[4] \item Göbel, {58} \item Goethe, {58} @@ -17,18 +17,18 @@ \item Goldmann, {58} \indexspace -\textbf{O} +\textbf{O}\label{L-xindex-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 Ober, {4}, {6} + \item Oberin, {5f} + \item Obstler, {7} + \item oder, {8} + \item Oder, \seealso{Fluss}{33}, {58} \item Oligarch, {28} \item Ostern, {3f} \end{theindex} diff --git a/indexing/xindex/doc/tests/Umlaute2.pdf b/indexing/xindex/doc/tests/Umlaute2.pdf index b2d94bde3f..c2b78f3f18 100644 Binary files a/indexing/xindex/doc/tests/Umlaute2.pdf and b/indexing/xindex/doc/tests/Umlaute2.pdf differ diff --git a/indexing/xindex/doc/tests/buch.ind b/indexing/xindex/doc/tests/buch.ind new file mode 100644 index 0000000000..57a3d139cf --- /dev/null +++ b/indexing/xindex/doc/tests/buch.ind @@ -0,0 +1,553 @@ + +\begin{theindex} +\par\textbf{Symbols}\label{L-xindex-Symbols} +\nopagebreak[4] + \item \texttt{\"{}\"{}}, {79} + \item \texttt{\"{}=}, {79} + \item \texttt{\"{}\textasciitilde}, {79} + \item \euro {}, {67} + \item \textacutedbl , {78} + +\indexspace +\textbf{Numbers}\label{L-xindex-Numbers} +\nopagebreak[4] + \item 3D, {752} + \item 4:3, {621} + +\indexspace +\textbf{A}\label{L-xindex-A} +\nopagebreak[4] + \item AMS, {376} + \item ANSI, {67} + \item AUC\TeX , {29} + \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 Anführungszeichen, {81} + \item Anhang, {62} + \item Atom, {400f} + \item Autor, {54} + \item Autor-Stil, {586} + \item Autor(=Jahr(=Schema, {544} + +\indexspace +\textbf{B}\label{L-xindex-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}\label{L-xindex-C} +\nopagebreak[4] + \item CMYK, {671} + \item cc, {859} + \item class option, {386} + \item Clipping, {247} + \item Clippingpfad, {771} + \item Clown, {256} + \item Cluster, {248} + \item cm, {859} + \item Con\TeX t, {879} + \item continued fraction, {430} + \item Cork-Kodierung, {72} + \item Corporate Design, {642} + \item Counter, {862} + +\indexspace +\textbf{D}\label{L-xindex-D} +\nopagebreak[4] + \item DIN\,5007, {512} + \item DIN~476, {91} + \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 displaymath mode, {381} + \item Distribution, {13} + \item Divisior, {431} + \item \idxtextClasses + \subitem -\,{\sffamily IEEEtran}, {185} + \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 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}\label{L-xindex-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}\label{L-xindex-F} +\nopagebreak[4] + \item FNDB, {872} + \item Fallunterscheidung, {392}, {425} + \item Farbe, {236}, {669} + \subitem -\,Modell, {680} + \subitem -\,konvertieren, {680} + \item Farbmodell, {236}, {669} + \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 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}\label{L-xindex-G} +\nopagebreak[4] + \item GUI, {9}, {29} + \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 Guillemets, {82} + +\indexspace +\textbf{H}\label{L-xindex-H} +\nopagebreak[4] + \item Hebräisch, {76} + \item Hintergrundfarbe, {389}, {658}, {679} + \item Hochformat, {96} + \item Homograph, {529} + \item Hurenkind, {102} + +\indexspace +\textbf{I}\label{L-xindex-I} +\nopagebreak[4] + \item IDE, {29} + \item IPA, {72} + \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 IUPAC, {814} + \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 Irisch, {67} + \item Isländisch, {67}, {76} + \item italic, {86} + \item Italic-Korrektur, {88} + \item Italienisch, {76}, {80} + \item Items, {413} + +\indexspace +\textbf{K}\label{L-xindex-K} +\nopagebreak[4] + \item \KOMAScript , {59ff}, {93} + \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} + \subitem -\,ascii, {67} + \item Kolumnentitel, {121}, {126} + \item Komma, {248} + \item Kommutative Diagramme, {448} + \item Konventionen, {213} + \item Kopf\/linie, {62} + \item Kopfzeile, {62}, {119}, {222} + \item kritische Edition, {208} + \item Kroatisch, {67}, {76}, {80} + \item Kursivkorrektur, {88} + +\indexspace +\textbf{L}\label{L-xindex-L} +\nopagebreak[4] + \item LR-Box, {173} + \item \LaTeX -Editor, {29} + \item Label, {181}, {245}, {387}, {626} + \item largesymbols, {396} + \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} + \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} + +\indexspace +\textbf{M}\label{L-xindex-M} +\nopagebreak[4] + \item MLA, {586} + \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 Maßeinheit, {711}, {859f} + \item Maßzahl, {859} + \item math shift, {869} + \item Mathematikmodus, {411} + \item Mathematiksatz, {85} + \item Mathopen-Symbol, {396} + \item Matrix, {227}, {383}, {405f}, {426}, {449} + \item Mediävalziffern, {595} + \item Metronyme, {564} + \item MiK\TeX , {13}, {21}, {23} + \subitem -\,Paketmanager, {21} + \item Mikrotypografie, {7} + \item Minimalbeispiel, {888} + \item Minuskelziffern, {595} + \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}\label{L-xindex-N} +\nopagebreak[4] + \item NEJM, {585} + \item Navigationsleiste, {33}, {616}, {619} + \item Navigator, {33} + \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}\label{L-xindex-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}\label{L-xindex-P} +\nopagebreak[4] + \item \protect \nxLnotation {p}-Spalte, {271} + \item p-Spalte, {268} + \item PDF/A, {189} + \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\TeX , {11}, {13} + \item pdfe\TeX , {11} + \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 pro\TeX t, {22} + \item Produkt, {393}, {438} + \item programmiert, {6} + \item Projekt, {32}, {38}, {210} + \item pt, {860} + \item Punkt, {248} + \item Punkte, {405}, {428} + \item px, {860} + +\indexspace +\textbf{Q}\label{L-xindex-Q} +\nopagebreak[4] + \item Quadratwurzel, {393} + \item Querformat, {96} + \item Querverweis, {212} + +\indexspace +\textbf{R}\label{L-xindex-R} +\nopagebreak[4] + \item \protect \nxLnotation {r}-Spalte, {271} + \item RGB, {674} + \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 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}\label{L-xindex-S} +\nopagebreak[4] + \item SQL-Datenbank, {247} + \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 -\,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 Schrift + \subitem -\,fett, {411}, {451} + \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 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} + \subitem -\,gestockt, {411} + \item Syntax, {214} + \item Systemadministrator, {14} + \item Systemmeldung, {883} + +\indexspace +\textbf{T}\label{L-xindex-T} +\nopagebreak[4] + \item TDS, {172}, {872} + \item TOC, {128} + \item Tabelle, {309f} + \subitem -\,Breite, {214}, {289} + \subitem -\,Farbe, {273} + \subitem -\,Kopf, {222} + \subitem -\,gerahmt, {224} + \subitem -\,geschachtelt, {268} + \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{0--218} +\end{theindex} diff --git a/indexing/xindex/doc/tests/buch.pdf b/indexing/xindex/doc/tests/buch.pdf index 67bfb3d191..5975dd18f7 100644 Binary files a/indexing/xindex/doc/tests/buch.pdf and b/indexing/xindex/doc/tests/buch.pdf differ diff --git a/indexing/xindex/doc/tests/demo-hyperref.ind b/indexing/xindex/doc/tests/demo-hyperref.ind index 6916f4d087..854bf91870 100644 --- a/indexing/xindex/doc/tests/demo-hyperref.ind +++ b/indexing/xindex/doc/tests/demo-hyperref.ind @@ -2,7 +2,7 @@ \begin{theindex} \indexspace -\textbf{A} +\textbf{A}\label{L-xindex-A} \nopagebreak[4] \item aber, \hyperpage{13} \item Ägäis, \hyperpage{17--20} @@ -21,14 +21,14 @@ \item Auto, \hyperindexformat{\textbf}{1} \indexspace -\textbf{B} +\textbf{B}\label{L-xindex-B} \nopagebreak[4] \item Beobachtern, \hyperpage{30} \item braunen, \hyperpage{46} \item Bündnis, \hyperpage{25} \indexspace -\textbf{D} +\textbf{D}\label{L-xindex-D} \nopagebreak[4] \item dabei, \hyperpage{36} \item das, \hyperpage{15}, \hyperpage{25} @@ -36,7 +36,7 @@ \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 der, \hyperpage{9--31}, \hyperpage{34}, \hyperpage{37}, \hyperpage{41} \item Deshalb, \hyperpage{14} \item Deutschland, \hyperpage{8}, \hyperpage{27} \item die, \hyperpage{21}, \hyperpage{39}, \hyperpage{41} @@ -45,7 +45,7 @@ \item durch, \hyperpage{31} \indexspace -\textbf{E} +\textbf{E}\label{L-xindex-E} \nopagebreak[4] \item ein, \hyperpage{36} \item einer, \hyperpage{22} @@ -61,7 +61,7 @@ \item Europaplatz., \hyperpage{25} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item Feindbild, \hyperpage{7} \item Festakt, \hyperpage{19} @@ -70,7 +70,7 @@ \item für, \hyperpage{10}, \hyperpage{26} \indexspace -\textbf{G} +\textbf{G}\label{L-xindex-G} \nopagebreak[4] \item gaben, \hyperpage{30} \item gehabt, \hyperpage{36} @@ -82,7 +82,7 @@ \item gut, \hyperpage{9} \indexspace -\textbf{H} +\textbf{H}\label{L-xindex-H} \nopagebreak[4] \item haben, \hyperpage{32}, \hyperpage{35}, \hyperpage{42} \item haben., \hyperpage{35} @@ -90,7 +90,7 @@ \item Hilfe, \hyperpage{10} \indexspace -\textbf{I} +\textbf{I}\label{L-xindex-I} \nopagebreak[4] \item illegalen, \hyperpage{36} \item Im, \hyperpage{43} @@ -98,26 +98,26 @@ \item ist, \hyperpage{43} \indexspace -\textbf{J} +\textbf{J}\label{L-xindex-J} \nopagebreak[4] \item jedoch, \hyperpage{36} \item jungen, \hyperpage{40} \indexspace -\textbf{K} +\textbf{K}\label{L-xindex-K} \nopagebreak[4] \item keine, \hyperpage{36} \item Kilometer, \hyperpage{23} \item Kundgebung, \hyperpage{23}, \hyperpage{42} \indexspace -\textbf{L} +\textbf{L}\label{L-xindex-L} \nopagebreak[4] \item leben., \hyperpage{14} \item lernen, \hyperpage{14} \indexspace -\textbf{M} +\textbf{M}\label{L-xindex-M} \nopagebreak[4] \item machen., \hyperpage{8} \item mahnte, \hyperpage{2} @@ -134,7 +134,7 @@ \item müsse, \hyperpage{14} \indexspace -\textbf{N} +\textbf{N}\label{L-xindex-N} \nopagebreak[4] \item N, \hyperpage{31} \item nach, \hyperpage{19} @@ -146,14 +146,14 @@ \item Nicht-Perfekten, \hyperpage{14} \indexspace -\textbf{O} +\textbf{O}\label{L-xindex-O} \nopagebreak[4] \item Obwohl, \hyperpage{8} \item Osten, \hyperpage{46} \item Östereich, \hyperpage{1} \indexspace -\textbf{P} +\textbf{P}\label{L-xindex-P} \nopagebreak[4] \item Perfekte, \hyperpage{15} \item Pessimismus., \hyperpage{10} @@ -161,13 +161,13 @@ \item Polizei, \hyperpage{32}, \hyperpage{38} \indexspace -\textbf{R} +\textbf{R}\label{L-xindex-R} \nopagebreak[4] \item rechten, \hyperpage{23} \item richtig, \hyperpage{13} \indexspace -\textbf{S} +\textbf{S}\label{L-xindex-S} \nopagebreak[4] \item sagte, \hyperpage{36} \item sei, \hyperpage{12}, \hyperpage{38} @@ -182,7 +182,7 @@ \item Szenecodes, \hyperpage{31} \indexspace -\textbf{T} +\textbf{T}\label{L-xindex-T} \nopagebreak[4] \item Tag, \hyperpage{29} \item tausend, \hyperpage{33} @@ -190,7 +190,7 @@ \item Teilnehmer, \hyperpage{21}, \hyperpage{30} \indexspace -\textbf{U} +\textbf{U}\label{L-xindex-U} \nopagebreak[4] \item über, \hyperpage{45} \item Überholmanöver, \hyperpage{17} @@ -200,14 +200,14 @@ \item unklar., \hyperpage{43} \indexspace -\textbf{V} +\textbf{V}\label{L-xindex-V} \nopagebreak[4] \item versammelten, \hyperpage{21} \item verwendet, \hyperpage{36} \item Volksvertreter, \hyperpage{6} \indexspace -\textbf{W} +\textbf{W}\label{L-xindex-W} \nopagebreak[4] \item Während, \hyperpage{17} \item warnte, \hyperpage{4} @@ -221,7 +221,7 @@ \item Woher, \hyperpage{38} \indexspace -\textbf{Z} +\textbf{Z}\label{L-xindex-Z} \nopagebreak[4] \item zahlreiche, \hyperpage{30} \item zeitgleich, \hyperpage{21} diff --git a/indexing/xindex/doc/tests/demo-hyperref.pdf b/indexing/xindex/doc/tests/demo-hyperref.pdf index 4feaf3b3fa..dfe9b33aaa 100644 Binary files a/indexing/xindex/doc/tests/demo-hyperref.pdf and b/indexing/xindex/doc/tests/demo-hyperref.pdf differ diff --git a/indexing/xindex/doc/tests/demo.ind b/indexing/xindex/doc/tests/demo.ind index 9f1484209f..91c44b327d 100644 --- a/indexing/xindex/doc/tests/demo.ind +++ b/indexing/xindex/doc/tests/demo.ind @@ -1,16 +1,16 @@ \begin{theindex} -\textbf{Symbole} +\par\textbf{Symbole}\label{L-xindex-Symbole} \nopagebreak[4] \item \textbackslash , {1} \indexspace -\textbf{Zahlen} +\textbf{Zahlen}\label{L-xindex-Zahlen} \nopagebreak[4] \item 4711, {1} \indexspace -\textbf{A} +\textbf{A}\label{L-xindex-A} \nopagebreak[4] \item aber, {13} \item Ägäis, {17}, \seealso{Griechenland}{18}, {19f} @@ -33,14 +33,14 @@ \item Automobil, \fbox{1} \indexspace -\textbf{B} +\textbf{B}\label{L-xindex-B} \nopagebreak[4] \item Beobachtern, {30} \item braunen, {46} \item Bündnis, {25} \indexspace -\textbf{D} +\textbf{D}\label{L-xindex-D} \nopagebreak[4] \item dabei, {36} \item das, {15}, {25} @@ -48,7 +48,7 @@ \item demnach, {35}, {38} \item Demonstration, {29}, {35} \item den, {46} - \item der, {9--31}, {15}, {18f}, {28f}, {34}, {37}, {41} + \item der, {9--31}, {34}, {37}, {41} \item Deshalb, {14} \item Deutschland, {8}, {27} \item die, {21}, {39}, {41} @@ -63,7 +63,7 @@ \item durch, {31} \indexspace -\textbf{E} +\textbf{E}\label{L-xindex-E} \nopagebreak[4] \item ein, {36} \item einer, {22} @@ -79,7 +79,7 @@ \item Europaplatz., {25} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item Feindbild, {7} \item Festakt, {19} @@ -89,7 +89,7 @@ \item für, {10}, {26} \indexspace -\textbf{G} +\textbf{G}\label{L-xindex-G} \nopagebreak[4] \item gaben, {30} \item gehabt, {36} @@ -101,7 +101,7 @@ \item gut, {9} \indexspace -\textbf{H} +\textbf{H}\label{L-xindex-H} \nopagebreak[4] \item haben, {32}, {35}, {42} \item haben., {35} @@ -109,7 +109,7 @@ \item Hilfe, {10} \indexspace -\textbf{I} +\textbf{I}\label{L-xindex-I} \nopagebreak[4] \item illegalen, {36} \item Im, {43} @@ -117,26 +117,26 @@ \item ist, {43} \indexspace -\textbf{J} +\textbf{J}\label{L-xindex-J} \nopagebreak[4] \item jedoch, {36} \item jungen, {40} \indexspace -\textbf{K} +\textbf{K}\label{L-xindex-K} \nopagebreak[4] \item keine, {36} \item Kilometer, {23} \item Kundgebung, {23}, {42} \indexspace -\textbf{L} +\textbf{L}\label{L-xindex-L} \nopagebreak[4] \item leben., {14} \item lernen, {14} \indexspace -\textbf{M} +\textbf{M}\label{L-xindex-M} \nopagebreak[4] \item machen., {8} \item mahnte, {2} @@ -153,7 +153,7 @@ \item müsse, {14} \indexspace -\textbf{N} +\textbf{N}\label{L-xindex-N} \nopagebreak[4] \item nach, {19} \item Nach, {31} @@ -165,14 +165,14 @@ \item Nicht-Perfekten, {14} \indexspace -\textbf{O} +\textbf{O}\label{L-xindex-O} \nopagebreak[4] \item Obwohl, {8} \item Osten, {46} \item Österreich, \textbf{1--38} \indexspace -\textbf{P} +\textbf{P}\label{L-xindex-P} \nopagebreak[4] \item Perfekte, {15} \item Pessimismus., {10} @@ -180,13 +180,13 @@ \item Polizei, {32}, {38} \indexspace -\textbf{R} +\textbf{R}\label{L-xindex-R} \nopagebreak[4] \item rechten, {23} \item richtig, {13} \indexspace -\textbf{S} +\textbf{S}\label{L-xindex-S} \nopagebreak[4] \item sagte, {36} \item sei, {12}, {38} @@ -201,7 +201,7 @@ \item Szenecodes, {31} \indexspace -\textbf{T} +\textbf{T}\label{L-xindex-T} \nopagebreak[4] \item Tag, {29} \item tausend, {33} @@ -209,7 +209,7 @@ \item Teilnehmer, {21}, {30} \indexspace -\textbf{U} +\textbf{U}\label{L-xindex-U} \nopagebreak[4] \item über, {45} \item Überholmanöver, {17} @@ -221,14 +221,14 @@ \item unklar., {43} \indexspace -\textbf{V} +\textbf{V}\label{L-xindex-V} \nopagebreak[4] \item versammelten, {21} \item verwendet, {36} \item Volksvertreter, {6} \indexspace -\textbf{W} +\textbf{W}\label{L-xindex-W} \nopagebreak[4] \item Während, \see{Was\_auch\_immmer}{17} \item warnte, {4} @@ -242,7 +242,7 @@ \item Woher, {38} \indexspace -\textbf{Z} +\textbf{Z}\label{L-xindex-Z} \nopagebreak[4] \item zahlreiche, {30} \item zeitgleich, {21} diff --git a/indexing/xindex/doc/tests/demo.pdf b/indexing/xindex/doc/tests/demo.pdf index 4b988c7d40..0df7056864 100644 Binary files a/indexing/xindex/doc/tests/demo.pdf and b/indexing/xindex/doc/tests/demo.pdf differ diff --git a/indexing/xindex/doc/tests/demo2.ind b/indexing/xindex/doc/tests/demo2.ind index 724acd9654..1461b309fe 100644 --- a/indexing/xindex/doc/tests/demo2.ind +++ b/indexing/xindex/doc/tests/demo2.ind @@ -2,7 +2,7 @@ \begin{theindex} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item foo, {1}, \textit{1}, \see{bar}{2}, {3}, \textbf{3} \end{theindex} diff --git a/indexing/xindex/doc/tests/demo3.ind b/indexing/xindex/doc/tests/demo3.ind index 327fe951e9..fbdb532561 100644 --- a/indexing/xindex/doc/tests/demo3.ind +++ b/indexing/xindex/doc/tests/demo3.ind @@ -2,7 +2,7 @@ \begin{theindex} \indexspace -\textbf{F} +\textbf{F}\label{L-xindex-F} \nopagebreak[4] \item foo, {1f}, \textit{2}, \textbf{3}, {4} \end{theindex} diff --git a/indexing/xindex/doc/tests/demo3.pdf b/indexing/xindex/doc/tests/demo3.pdf index 7c7c67b681..b9718a4e31 100644 Binary files a/indexing/xindex/doc/tests/demo3.pdf and b/indexing/xindex/doc/tests/demo3.pdf differ diff --git a/indexing/xindex/doc/tests/runTests.sh b/indexing/xindex/doc/tests/runTests.sh index 68f6c7850a..678bfa40e7 100755 --- a/indexing/xindex/doc/tests/runTests.sh +++ b/indexing/xindex/doc/tests/runTests.sh @@ -21,7 +21,7 @@ xindex demo-hyperref > /dev/null lualatex demo-hyperref > /dev/null echo "HADW" -xindex -l de -c HAdW HADW > /dev/null +xindex -l de -c HAdW-eKO HADW > /dev/null lualatex HADW > /dev/null echo "Umlaute" diff --git a/indexing/xindex/doc/xindex-doc.pdf b/indexing/xindex/doc/xindex-doc.pdf index f7ecf1e911..8d2a22e4be 100644 Binary files a/indexing/xindex/doc/xindex-doc.pdf and b/indexing/xindex/doc/xindex-doc.pdf differ diff --git a/indexing/xindex/doc/xindex-doc.tex b/indexing/xindex/doc/xindex-doc.tex index c5762e2559..c4d41aca5e 100644 --- a/indexing/xindex/doc/xindex-doc.tex +++ b/indexing/xindex/doc/xindex-doc.tex @@ -4,6 +4,7 @@ \documentclass[paper=a4,fontsize=11pt,DIV=13,parskip=half-, captions=tableabove,twoside=on]{scrartcl} \usepackage{fontspec} +%\usepackage{libertinus-otf} \setmainfont{AccanthisADFStdNo3}[ UprightFont =*-Regular, BoldFont =*-Bold, @@ -79,14 +80,21 @@ \def\setVersion#1{\setVVersion#1!!} \def\setVVersion#1=#2!!{\def\xIndexVersion{#2}} -\setVersion{version = 0.16}% can be autimatically changed by perl +\setVersion{version = 0.18}% can be autimatically changed by perl + +\setkeys{dtk}{cleanup=true,force=false} + \title{Program and package \texttt{xindex} \\--\\ \normalsize \xIndexVersion\ (\today)} -\author{Herbert Voß\thanks{hvoss@tug.org}} +\author{\shortstack{Herbert Voß\\\small \href{mailto:hvoss@tug.org}{hvoss@tug.org}}} \begin{document} \maketitle \tableofcontents +\vfill +Thanks to: \\ +Mark Baudin; +Heiko Oberdiek \clearpage @@ -194,7 +202,7 @@ are alphabetized. compiler=lualatex, crop, xindex, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -255,7 +263,7 @@ are converted into the internal strings and later back to the origin meaning. crop, xindex, xindexOptions=-e ">", - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -294,15 +302,15 @@ They are by default \emph{Symbols} followed by \emph{Numbers}. In a new version 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} +{\Japanese +\begin{Verbatim}[fontfamily=helvetica,commandchars=\\<>] +indexheader = { + de = {"Symbole", "Zahlen"}, + en = {"Symbols", "Numbers"}, + fr = {"Symboles","Chiffre"}, +\Japanese jp = {"シンボル","番号"}, +} +\end{Verbatim} } The following example was run with \verb|xindex -l de .idx|: @@ -315,7 +323,7 @@ The following example was run with \verb|xindex -l de .idx|: crop, xindex, xindexOptions=-l de -e ">", - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -354,33 +362,34 @@ The default sorting is unicode aware and uses a translation table for accented c \begin{verbatim} alphabet_lower = { -- for sorting { ' ' }, -- only for internal tests - { 'a', 'á', 'à', 'ä', 'å', 'æ', }, + { 'a', 'á', 'à', 'ä', 'â', 'å', 'æ', }, { 'b' }, { 'c', 'ç' }, { 'd' }, - { 'e', 'é', 'è', 'ë' }, + { 'e', 'é', 'è', 'ë', 'ê' }, { 'f' }, { 'g' }, { 'h' }, - { 'i', 'í', 'ì', 'ï' }, + { 'i', 'í', 'ì', 'î', 'ï' }, { 'j' }, { 'k' }, { 'l' }, { 'm' }, { 'n', 'ñ' }, - { 'o', 'ó', 'ò', 'ö', 'ø', 'œ'}, + { 'o', 'ó', 'ò', 'ö', 'ô', 'ø', 'œ', 'ø'}, { 'p' }, { 'q' }, { 'r' }, { 's', 'š', 'ß' }, { 't' }, - { 'u', 'ú', 'ù', 'ü' }, + { '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 @@ -393,12 +402,11 @@ the umlauts like ö$\rightarrow$oe: \begin{verbatim} alphabet_upper = { -- for sorting { ' ' }, - { 'A', 'Á', 'À', 'Å', 'Æ'}, - { 'AE', 'Ä'}, + { 'A', 'Á', 'À', 'Ä', 'Å', 'Æ'}, { 'B' }, { 'C', 'Ç' }, { 'D' }, - { 'E', 'È', 'È', 'Ë' }, + { 'E', 'È', 'É', 'Ë' }, { 'F' }, { 'G' }, { 'H' }, @@ -408,15 +416,13 @@ alphabet_upper = { -- for sorting { 'L' }, { 'M' }, { 'N', 'Ñ' }, - { 'O', 'Ó', 'Ò', 'Ø','Œ' }, - { 'OE', 'Ö' }, + { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ', 'Ø' }, { 'P' }, { 'Q' }, { 'R' }, { 'S', 'Š' }, { 'T' }, - { 'U', 'Ú', 'Ù' }, - { 'UE', 'Ü' }, + { 'U', 'Ú', 'Ù', 'Ü' }, { 'V' }, { 'W' }, { 'X' }, @@ -436,7 +442,7 @@ alphabet_upper = { -- for sorting crop, xindex, xindexOptions=-l de, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -494,7 +500,7 @@ the word beginninjg with the letter Ö: crop, xindex, xindexOptions=-c DIN2 -l DE, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -574,7 +580,7 @@ The following runs with \verb|xindex -l jp |: crop, xindex, xindexOptions=-l jp, - force=true, + force=false, runs=2, code=false, docType=latex, @@ -653,7 +659,7 @@ folium = { crop, xindex, xindexOptions=-l fr, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -760,7 +766,7 @@ of the same type, so we get \texttt{1f} in the output. crop, xindex, xindexOptions=-l de, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -1070,7 +1076,7 @@ no limit for \Lprog{xindex}. crop, xindex, % xindexOptions=, - force=true, + force=false, runs=2,code,docType=latex, showFilename, align=\centering, @@ -1260,7 +1266,7 @@ In the documents preamble there is the definition: ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-header'] = { - version = 0.14, + version = 0.18, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -1284,21 +1290,21 @@ idxnewletter = "\\idxnewletter" ]] alphabet_lower = { -- for sorting { ' ' }, -- only for internal tests - { 'a', 'á', 'à', 'ä', 'å', 'æ', }, + { 'a', 'á', 'à', 'ä', 'â', 'å', 'æ', }, { 'b' }, { 'c', 'ç' }, { 'd' }, - { 'e', 'é', 'è', 'ë' }, + { 'e', 'é', 'è', 'ë', 'ê' }, { 'f' }, { 'g' }, { 'h' }, - { 'i', 'í', 'ì', 'ï' }, + { 'i', 'í', 'ì', 'î', 'ï' }, { 'j' }, { 'k' }, { 'l' }, { 'm' }, { 'n', 'ñ' }, - { 'o', 'ó', 'ò', 'ö', 'ø', 'œ'}, + { 'o', 'ó', 'ò', 'ö', 'ô', 'ø', 'œ', 'ø'}, { 'p' }, { 'q' }, { 'r' }, @@ -1317,7 +1323,7 @@ alphabet_upper = { -- for sorting { 'B' }, { 'C', 'Ç' }, { 'D' }, - { 'E', 'È', 'È', 'Ë' }, + { 'E', 'È', 'É', 'Ë' }, { 'F' }, { 'G' }, { 'H' }, @@ -1327,7 +1333,7 @@ alphabet_upper = { -- for sorting { 'L' }, { 'M' }, { 'N', 'Ñ' }, - { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ' }, + { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ', 'Ø' }, { 'P' }, { 'Q' }, { 'R' }, @@ -1340,7 +1346,6 @@ alphabet_upper = { -- for sorting { 'Y', 'Ý', 'Ÿ' }, { 'Z', 'Ž' } } - \end{filecontents*} \makeatletter \def\theindex{% only for demonstration diff --git a/indexing/xindex/lualatex/xindex-DIN2.lua b/indexing/xindex/lualatex/xindex-DIN2.lua index 4a055efd9a..48231b1d83 100644 --- a/indexing/xindex/lualatex/xindex-DIN2.lua +++ b/indexing/xindex/lualatex/xindex-DIN2.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.16, + version = 0.18, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -39,6 +39,8 @@ idxnewletter = "\\textbf" -- Only valid if -n is not set 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', 'á', 'à', 'å', 'æ', }, @@ -46,24 +48,24 @@ alphabet_lower = { -- for sorting { 'b' }, { 'c', 'ç' }, { 'd' }, - { 'e', 'é', 'è', 'ë' }, + { 'e', 'é', 'è', 'ë', 'ê' }, { 'f' }, { 'g' }, { 'h' }, - { 'i', 'í', 'ì', 'ï' }, + { 'i', 'í', 'ì', 'î', 'ï' }, { 'j' }, { 'k' }, { 'l' }, { 'm' }, { 'n', 'ñ' }, - { 'o', 'ó', 'ò', 'ø', 'œ'}, + { 'o', 'ó', 'ò', 'ô', 'ø', 'œ', 'ø'}, { 'oe', 'ö' }, { 'p' }, { 'q' }, { 'r' }, { 's', 'š', 'ß' }, { 't' }, - { 'u', 'ú', 'ù' }, + { 'u', 'ú', 'ù', 'û'}, { 'ue', 'ü' }, { 'v' }, { 'w' }, @@ -78,7 +80,7 @@ alphabet_upper = { -- for sorting { 'B' }, { 'C', 'Ç' }, { 'D' }, - { 'E', 'È', 'È', 'Ë' }, + { 'E', 'È', 'É', 'Ë' }, { 'F' }, { 'G' }, { 'H' }, @@ -88,7 +90,7 @@ alphabet_upper = { -- for sorting { 'L' }, { 'M' }, { 'N', 'Ñ' }, - { 'O', 'Ó', 'Ò', 'Ø','Œ' }, + { 'O', 'Ó', 'Ò', 'Ø','Œ', 'Ø' }, { 'OE', 'Ö' }, { 'P' }, { 'Q' }, diff --git a/indexing/xindex/lualatex/xindex-HAdW-eKO.lua b/indexing/xindex/lualatex/xindex-HAdW-eKO.lua index 2b5fd10dfa..7b2dba332c 100644 --- a/indexing/xindex/lualatex/xindex-HAdW-eKO.lua +++ b/indexing/xindex/lualatex/xindex-HAdW-eKO.lua @@ -9,7 +9,7 @@ -- configuration for index files of the Heidelberger Akademie der Wissenschaften if not modules then modules = { } end modules ['xindex-HAdW-eKO'] = { - version = 0.16, + version = 0.18, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -31,6 +31,13 @@ idxnewletter = "\\textbf" -- Only valid if -n is not set case_sensitive = false -- speeds up running +folium = { + de = {"f.", "ff."}, + en = {"f.", "ff."}, + fr = {"\\,sq","\\,sqq"}, +} + + --[[ Each character's position in this array-like table determines its 'priority'. Several characters in the same slot have the same 'priority'. @@ -55,7 +62,7 @@ alphabet_lower = { -- for sorting { 'p' }, { 'q' }, { 'r' }, - { 's' }, + { 's', 'ß' }, { 't' }, { 'u', 'ú', 'ù', 'ü' }, { 'v' }, @@ -94,6 +101,8 @@ alphabet_upper = { -- for sorting { 'Z' } } +--alphabet_lower_map = CreateCharListMap(alphabet_lower)-- jetzt in xindex.lua +--alphabet_upper_map = CreateCharListMap(alphabet_upper) --\indexentry{Ackers, Carolus}{VII/1-715} --\indexentry{Bremen!Adalbert I. von, Erzbischof}{VII/2/1-948} @@ -215,7 +224,7 @@ end function replaceRomanB(r) local i = romanToNumber(r) if i then return "!//"..string.format("%05d",i).."//." - else return r + else return ("!"..r..".") -- to catch something Neuneburg!a.d. Weichsel end end @@ -315,4 +324,3 @@ function specialGetPageList(v,hyperpage) end end - diff --git a/indexing/xindex/lualatex/xindex-base.lua b/indexing/xindex/lualatex/xindex-base.lua index d736f67b7d..f415505460 100644 --- a/indexing/xindex/lualatex/xindex-base.lua +++ b/indexing/xindex/lualatex/xindex-base.lua @@ -6,7 +6,7 @@ -- LICENSE: LPPL1.3 ----------------------------------------------------------------------- -local info = { version = 0.16 } +local info = { version = 0.18 } -- check config if pageNoPrefixDel ~= "" then @@ -58,10 +58,25 @@ 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 +if SORTprehook then + writeLog(2, "PreHook begin\n", 0) + Index = SORTprehook(Index) + writeLog(2, "PreHook end\n", 0) +end + +writeLog(2, "GenerateSortKeys begin\n", 0) +GenerateSortKeys(Index) +writeLog(2, "GenerateSortKeys end\n", 0) + k = 0 +writeLog(2, "Sort begin\n", 0) table.sort(Index,UTFCompare) -if SORTposthook then Index = SORTposthook(Index) end +writeLog(2, "Sort end\n", 0) +if SORTposthook then + writeLog(2, "PostHook begin\n", 0) + Index = SORTposthook(Index) + writeLog(2, "PostHook end\n", 0) +end writeLog(1,"\n------------------ Start list after table.sort(Index,UTFCompare)------------\n",2) printList(Index,2) @@ -85,7 +100,6 @@ writeLog(1,"------------------ End list after checkParenthesis(Index) ---------- 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 diff --git a/indexing/xindex/lualatex/xindex-cfg-common.lua b/indexing/xindex/lualatex/xindex-cfg-common.lua index 7b84b348a3..f44967f63c 100644 --- a/indexing/xindex/lualatex/xindex-cfg-common.lua +++ b/indexing/xindex/lualatex/xindex-cfg-common.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-common'] = { - version = 0.16, + version = 0.18, comment = "configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -115,3 +115,14 @@ alphabet_uppercase = { { 'ю', 'Ю' }, { 'я', 'Я' } } + +local function create_map(char_list) + local map = {} + for i, pair in ipairs(char_list) do + map[pair[1]] = pair[2] + end + return map +end + +alphabet_uppercase_map = create_map(alphabet_uppercase) + diff --git a/indexing/xindex/lualatex/xindex-cfg.lua b/indexing/xindex/lualatex/xindex-cfg.lua index 7c055f1c3b..89de044ca1 100644 --- a/indexing/xindex/lualatex/xindex-cfg.lua +++ b/indexing/xindex/lualatex/xindex-cfg.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.16, + version = 0.18, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -31,21 +31,21 @@ idxnewletter = "\\textbf" -- Only valid if -n is not set ]] alphabet_lower = { -- for sorting { ' ' }, -- only for internal tests - { 'a', 'á', 'à', 'ä', 'å', 'æ', }, + { 'a', 'á', 'à', 'ä', 'â', 'å', 'æ', }, { 'b' }, { 'c', 'ç' }, { 'd' }, - { 'e', 'é', 'è', 'ë' }, + { 'e', 'é', 'è', 'ë', 'ê' }, { 'f' }, { 'g' }, { 'h' }, - { 'i', 'í', 'ì', 'ï' }, + { 'i', 'í', 'ì', 'î', 'ï' }, { 'j' }, { 'k' }, { 'l' }, { 'm' }, { 'n', 'ñ' }, - { 'o', 'ó', 'ò', 'ö', 'ø', 'œ', 'ø'}, + { 'o', 'ó', 'ò', 'ö', 'ô', 'ø', 'œ', 'ø'}, { 'p' }, { 'q' }, { 'r' }, @@ -64,7 +64,7 @@ alphabet_upper = { -- for sorting { 'B' }, { 'C', 'Ç' }, { 'D' }, - { 'E', 'È', 'È', 'Ë' }, + { 'E', 'È', 'É', 'Ë' }, { 'F' }, { 'G' }, { 'H' }, diff --git a/indexing/xindex/lualatex/xindex-dtk.lua b/indexing/xindex/lualatex/xindex-dtk.lua index 746b4287d3..6c918cc28a 100644 --- a/indexing/xindex/lualatex/xindex-dtk.lua +++ b/indexing/xindex/lualatex/xindex-dtk.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg'] = { - version = 0.16, + version = 0.18, comment = "DTK configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/lualatex/xindex-lapp.lua b/indexing/xindex/lualatex/xindex-lapp.lua index ff4cb80a67..02dea0358b 100644 --- a/indexing/xindex/lualatex/xindex-lapp.lua +++ b/indexing/xindex/lualatex/xindex-lapp.lua @@ -28,7 +28,7 @@ --~ n 2 -------------------------------- if not modules then modules = { } end modules ['xindex-lapp'] = { - version = 0.16, + version = 0.18, comment = "read parameter for xindex.lua", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/indexing/xindex/lualatex/xindex-lib.lua b/indexing/xindex/lualatex/xindex-lib.lua index 8720d3db1b..59193f1d28 100644 --- a/indexing/xindex/lualatex/xindex-lib.lua +++ b/indexing/xindex/lualatex/xindex-lib.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-lib'] = { - version = 0.16, + version = 0.18, comment = "main library to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", @@ -19,16 +19,24 @@ 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 ) +function CreateCharListMap(CharList) + local map = {} 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] + local first_char + for j, alphabet_char in ipairs(alphabet_entry) do + if j == 1 then + first_char = alphabet_char + else + map[alphabet_char] = first_char end end end - return character + return map +end + +-- Looks up the character `character´ in the alphabet and returns its 'normalization' for sorting +local function get_normalized_char( CharListMap, character ) + return CharListMap[character] or character end function Lower(strOrig) -- return UTF string.lower @@ -47,57 +55,60 @@ 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)) + local c = get_normalized_char(alphabet_lower_map,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 = "" + local str = {} local c for i=1, utf.len(strOrig) do - c = get_normalized_char(alphabet_lower,utf.sub(strOrig,i,i)) --- str = str..string.upper(c) - str = str..c + c = get_normalized_char(alphabet_lower_map,utf.sub(strOrig,i,i)) + str[#str + 1] = c end - strOrig = str - str="" + strOrig = table.concat(str) + str = {} for i=1, utf.len(strOrig) do - c = get_normalized_char(alphabet_upper,utf.sub(strOrig,i,i)) + c = get_normalized_char(alphabet_upper_map,utf.sub(strOrig,i,i)) c = NormalizedUppercase(c) - str = str..c + str[#str + 1] = c end - return str + return table.concat(str) end function NormalizedUppercase(chr) -- return normalized UTF uppercase letter - for i, alphabet_entry in ipairs(alphabet_uppercase) do - if chr == alphabet_entry[1] then - return alphabet_entry[2] - end - end - return chr + return alphabet_uppercase_map[chr] or chr end function NormalizedChars(strOrig) -- return normalized UTF string (ä -> a) with first as upper case - local c = string.upper(get_normalized_char(alphabet_lower,utf.sub(strOrig,1,1))) - local str = c - for i=2, utf.len(strOrig) do - c = get_normalized_char(alphabet_lower,utf.sub(strOrig,i,i)) - str = str..c - end - local strOrigTrue = strOrig - strOrig = str - c = string.upper(get_normalized_char(alphabet_upper,utf.sub(strOrig,1,1))) - str = c - for i=2, utf.len(strOrig) do - c = get_normalized_char(alphabet_upper,utf.sub(strOrig,i,i)) - str = str..c - end + local c = get_normalized_char(alphabet_lower_map,utf.sub(strOrig,1,1)) + c = get_normalized_char(alphabet_upper_map, c) + c = string.upper(c) + local str = { c } + for ch in string.utfcharacters(utf.sub(strOrig, 2)) do + c = get_normalized_char(alphabet_lower_map, ch) + c = get_normalized_char(alphabet_upper_map, c) + str[#str + 1] = c + end + return table.concat(str) +end + +-- local strOrigTrue = strOrig +-- strOrig = table.concat(str) +-- c = string.upper(get_normalized_char(alphabet_upper,utf.sub(strOrig,1,1))) +-- str = { c } +-- for i=2, utf.len(strOrig) do +-- c = get_normalized_char(alphabet_upper,utf.sub(strOrig,i,i)) +-- str[#str + 1] = c +-- end +-- for ch in string.utfcharacters(strOrig, 2) do +-- str[#str + 1] = get_normalized_char(alphabet_upper, ch) +-- end -- print(strOrigTrue.." -> "..str) - return str -end +-- return table.concat(str) +--end function checkVert(str) -- get the | part local vert = string.find(str,"|",1,true) @@ -524,34 +535,42 @@ end -- 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"].."\n",2) --- k = k + 1 --- if (k % 50) == 0 then writeLog(1,".",1) end - local A,B,Apage,Bpage +function GenerateSortKey(a) + local A, Apage 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 if no_caseSensitive then A = NormalizedUpper(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!','')) -- replace! by empty - B = NormalizedUpper(getSortString(b["Entry"].." "..Bpage..b["pages"][1]["special"]):gsub('!','')) + a["SortKey"] = A else A = NormalizedChars(getSortString(a["Entry"].." "..Apage..a["pages"][1]["special"]):gsub('!','')) -- replace! by empty - B = NormalizedChars(getSortString(b["Entry"].." "..Bpage..b["pages"][1]["special"]):gsub('!','')) + a["SortKey"] = A end + -- return A +end + +function GenerateSortKeys(Index) + for _, entry in ipairs(Index) do + GenerateSortKey(entry) + end +end + +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"].."\n",2) +-- k = k + 1 +-- if (k % 50) == 0 then writeLog(1,".",1) end + + local A = a["SortKey"] + local B = b["SortKey"] + writeLog(1,"UTFCompare: A--B "..A.."--"..B.."\n",2) -- print(A,B) --[[ @@ -907,7 +926,13 @@ local match = function(expr) return Ct(idx):match(expr) end +local SortStringCache = {} function getSortString(Entry) + local sortString = SortStringCache[Entry] + if sortString ~= nil then + return sortString + end + local t = match(Entry) -- require 'xindex-pretty'.dump(t) -- only for internal dump local data = t[1] @@ -920,6 +945,7 @@ function getSortString(Entry) data = data..t[i] end end + SortStringCache[Entry] = data return data end diff --git a/indexing/xindex/lualatex/xindex-pretty.lua b/indexing/xindex/lualatex/xindex-pretty.lua index 67e5508c5a..1165b6a624 100644 --- a/indexing/xindex/lualatex/xindex-pretty.lua +++ b/indexing/xindex/lualatex/xindex-pretty.lua @@ -5,7 +5,7 @@ -- if not modules then modules = { } end modules ['xindex-pretty'] = { - version = 0.16, + version = 0.18, comment = "dump a Lua table for debugging", author = "Steve Donovan", copyright = "Steve Donovan", diff --git a/indexing/xindex/lualatex/xindex-yannis.lua b/indexing/xindex/lualatex/xindex-yannis.lua index 8d54d82e3e..99b8642293 100644 --- a/indexing/xindex/lualatex/xindex-yannis.lua +++ b/indexing/xindex/lualatex/xindex-yannis.lua @@ -7,7 +7,7 @@ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-yannis'] = { - version = 0.16, + version = 0.18, comment = "main configuration to xindex.lua", author = "Herbert Voss", copyright = "Herbert Voss", diff --git a/indexing/xindex/scripts/xindex.lua b/indexing/xindex/scripts/xindex.lua index fb48a3d748..8183b32bb5 100755 --- a/indexing/xindex/scripts/xindex.lua +++ b/indexing/xindex/scripts/xindex.lua @@ -8,7 +8,7 @@ ----------------------------------------------------------------------- xindex = xindex or { } - local version = 0.16 + local version = 0.18 xindex.version = version --xindex.self = "xindex" @@ -29,6 +29,8 @@ Report bugs to kpse.set_program_name("luatex") +local f = kpse.find_file("lualibs.lua") +print ("Dateiname "..f) require("lualibs") -- all part of LuaTeX require('unicode') require('string') @@ -156,6 +158,11 @@ Config_File = kpse.find_file(config_file) cfg = require(Config_File) writeLog(2," ... done\n",0) +-- Create the character list maps for faster sorting + +alphabet_lower_map = CreateCharListMap(alphabet_lower) +alphabet_upper_map = CreateCharListMap(alphabet_upper) + local esc_char = args.escapechar writeLog(2,"Escapechar = "..esc_char.."\n",1) escape_chars = { -- by default " is the escape char -- cgit v1.2.3