diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/gindex/README.md | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/gindex/gindex.pdf | bin | 26534 -> 30705 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/gindex/gindex.tex | 82 | ||||
-rw-r--r-- | Master/texmf-dist/makeindex/gindex/gindex.ist | 14 | ||||
-rw-r--r-- | Master/texmf-dist/makeindex/gindex/gindexh.ist | 42 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/gindex/gindex.sty | 62 |
6 files changed, 159 insertions, 49 deletions
diff --git a/Master/texmf-dist/doc/latex/gindex/README.md b/Master/texmf-dist/doc/latex/gindex/README.md index ab045e6f42c..6677a53fecf 100644 --- a/Master/texmf-dist/doc/latex/gindex/README.md +++ b/Master/texmf-dist/doc/latex/gindex/README.md @@ -16,6 +16,14 @@ Then you can define `\indexitem` and the like to whatever you want. ### Recent changes ``` +0.2 2019-10-07 + - Fix - Misplaced R in page_precedence. + - Fix - The last item was discarded. + - \indexspecial, for literal unformatted entries. + - delim_n now set with a macro (\indexpagessep). + - gindex.ist does not add headings anymore. A new style + gindexh.ist does. + 0.1 2019-10-01 - First released version, with the most basic tools. ``` diff --git a/Master/texmf-dist/doc/latex/gindex/gindex.pdf b/Master/texmf-dist/doc/latex/gindex/gindex.pdf Binary files differindex f2c092f75dc..c51d724fdbc 100644 --- a/Master/texmf-dist/doc/latex/gindex/gindex.pdf +++ b/Master/texmf-dist/doc/latex/gindex/gindex.pdf diff --git a/Master/texmf-dist/doc/latex/gindex/gindex.tex b/Master/texmf-dist/doc/latex/gindex/gindex.tex index c240281dfde..42670dfc313 100644 --- a/Master/texmf-dist/doc/latex/gindex/gindex.tex +++ b/Master/texmf-dist/doc/latex/gindex/gindex.tex @@ -4,16 +4,16 @@ % This file may be distributed and/or modified under the conditions of % the MIT License. A version can be found at the end of this file. % -% Repository: https://github.com/jbezos/esindex +% Repository: https://github.com/jbezos/gindex % \documentclass[a4paper]{ltxguide} -\title{\textsf{gindex}\\\large Version 0.1} +\title{\textsf{gindex}\\\large Version 0.2} \author{Javier Bezos\\\texttt{http://www.texnia.com}} -\date{2019-10-01} +\date{2019-10-07} \raggedright \parskip=.8ex @@ -42,8 +42,9 @@ {\fontsize{48}{48}\selectfont \color{notes}{gindex}\par} {\LARGE Formatting indexes with \LaTeX\par} \vspace*{1ex} -Version 0.1 (2019-10-01)\par -Javier Bezos (\texttt{http://www.texnia.com}) +Version 0.2 (2019-10-07)\par +\texttt{https://github.com/jbezos/gindex}\par +Javier Bezos (\texttt{http://www.texnia.com})\par \vspace*{6ex} @@ -53,7 +54,7 @@ the format of index entries from within \LaTeX. With standard classes, it works out of the box with some predefined values, which you can (and in fact should) redefine with |\renewcommand|. -Note it is version 0.1. Changes of the existing features are unlikely +Note it is version 0.2. Changes of the existing features are unlikely to happen (but who knows), but new features, on the other hand, will be added in the near future. @@ -67,7 +68,8 @@ What it does is to generate blocks like this for each first-level entry: \end{verbatim} As you can see, when |\indexitem| is executed, you know the number of -subitems, which is necessary for some styles. +subitems, which is necessary for some styles. Subsubitems are allowed, +but not counted. Only subitems are counted. The default values are: \begin{verbatim} @@ -93,12 +95,9 @@ example will be: This explains the line |\indexnoitem{}{}| above, which by default does nothing. By inspecting the third parameter you decide how to format the current parameter (of course, in most cases you must emit it again at -the end of your definition of |\indexitem|). +the end of your definition of |\indexitem|). See the example below. -Subsubitems are allowed, but not counted. Only subitems are counted. - - -There is a tool to define the most usual entry format, which is used in +There is a tool to define the most usual entry format, which is uesd in the following way: \begin{verbatim} \renewcommand\indexitem[2]{% @@ -118,7 +117,8 @@ Other macros are: \verb|\end{theindex}| (\verb|\relax| by default). \item \verb|\indexskip|, which is \verb|\indexspace| by default, with similar purpose. -\item \verb|\indexheading|, is defined as follows: +\item \verb|\indexheading|, which is added by |gindexh.ist| but no by +|gindex.ist|, is defined as follows: \begin{verbatim} \newcommand\indexheading[1]{% {\bfseries\hfil @@ -127,15 +127,58 @@ with similar purpose. \nopagebreak} \end{verbatim} \item \verb|\indexrangesep|, which by default is |-|. +\item \verb|\indexpagessep|, which by default is |, |. \end{itemize} Remember to set the style to |gindex| when running \textsf{makeindex}: \begin{verbatim} makeindex -s gindex yourfile \end{verbatim} +Or if you want |\indexheading|'s to be included: +\begin{verbatim} + makeindex -s gindexh yourfile +\end{verbatim} + +Note also there is usually no need to run \textsf{makeindex} to fine +tune the format. + +\begin{example} + With the following definitions, items and subitems are typeset, as + usual, as separate paragraphs. However, if the item has no locator, + and there is exactly one subitem, they are joined with a comma as + separator (the code is somewhat low-level): +\begin{verbatim} +\renewcommand\indexitem[5]{% + \def\next{% + \indexitemhang{0pt}{20pt}{:}{, }{#1}{#2}% + #3{#4}{#5}}% + \ifnum\value{indexsubitems}=1\relax + \ifx\\#2\\% + \def\next{% + \indexitemhang{0pt}{20pt}{:}{, }{#1, #4}{#5}}% + \fi + \fi + \next} + +\renewcommand\indexsubitem[2]{% + \indexitemhang{0pt}{40pt}{}{, }{--- #1}{#2}} +\end{verbatim} +\end{example} + +If an item starts with |\indexspecial|, what follows replaces the +current item. +\begin{example} +With |gindex.ist|, you can generate your own headings. If you are sure +there is nothing before |a '''| and |l '''| (actually, it can be +anything provided it is sorted at the right place), the following two +entries will ``group'' the items under two headings. +\begin{verbatim} +\index{a '''@\indexspecial\indexheading{a-k}} +\index{l '''@\indexspecial\indexheading{l-z}} +\end{verbatim} +\end{example} + -Note also there is no need to run \textsf{makeindex} to fine tune the -format. \section{Internals} @@ -148,16 +191,15 @@ The |ind| files is generated by |gindex.ist| with generic macros like: What \textsf{gindex} does is to convert them to the above format. Some parameters should be cuntomized in the |ist| file, however. These are: \begin{verbatim} -headings_flag -1 +headings_flag 0 actual '@' quote '"' level '!' -page_precedence "rnaRA" +page_precedence "rRnaA" keyword "\\indexentry" -delim_n ", " \end{verbatim} -As to |headings_flag|, the recommended way to deal with case is with -|\indexheading|. +As to |headings_flag|, its value is |-1| with |gindexh| and the +recommended way to deal with case is with |\indexheading| \end{document} diff --git a/Master/texmf-dist/makeindex/gindex/gindex.ist b/Master/texmf-dist/makeindex/gindex/gindex.ist index 9200efe1930..c5992630bff 100644 --- a/Master/texmf-dist/makeindex/gindex/gindex.ist +++ b/Master/texmf-dist/makeindex/gindex/gindex.ist @@ -1,7 +1,7 @@ % % Copyright (C) 2019 Javier Bezos http://www.texnia.com % -% 2019/10/01 v0.1 +% 2019/10/07 v0.2 % % This file may be distributed and/or modified under the conditions of % the MIT License. A version can be found at the end of this file. @@ -25,18 +25,18 @@ group_skip "}\n%\n\\addindexskip{" heading_prefix "}\n%\n\\addindexheading{" heading_suffix "}\n%\n{" preamble "\\begin{theindex}\\indexpreamble\n\n{" -postamble "}\n\\indexpostamble\\end{theindex}" +postamble "}\n\\indexflushitem\\indexpostamble\\end{theindex}" indent_space "" indent_length 0 -delim_r "{\\indexrangesep}" +delim_n "\\indexpagessep " +delim_r "\\indexrangesep " % Modify to fit your own requirements % ----------------------------------- -headings_flag -1 % Usually redefining \indexheading is better +headings_flag 0 actual '@' quote '"' level '!' -page_precedence "rnaRA" -keyword "\\indexentry" -delim_n ", "
\ No newline at end of file +page_precedence "rRnaA" +keyword "\\indexentry"
\ No newline at end of file diff --git a/Master/texmf-dist/makeindex/gindex/gindexh.ist b/Master/texmf-dist/makeindex/gindex/gindexh.ist new file mode 100644 index 00000000000..4c1e0d07cbc --- /dev/null +++ b/Master/texmf-dist/makeindex/gindex/gindexh.ist @@ -0,0 +1,42 @@ +% +% Copyright (C) 2019 Javier Bezos http://www.texnia.com +% +% 2019/10/07 v0.2 +% +% This file may be distributed and/or modified under the conditions of +% the MIT License. A version can be found at the end of this file. +% +% Repository: https://github.com/jbezos/gindex +% +% Required by gindex +% ------------------ + +item_0 "}\n\\addindexitem{" +item_1 "}\n \\addindexsubitem{" +item_01 "}\n \\addindexsubitem{" +item_x1 "}{}\n \\addindexsubitem{" +item_2 "}\n \\addindexsubsubitem{" +item_12 "}\n \\addindexsubsubitem{" +item_x2 "}{}\n \\addindexsubsubitem{" +delim_0 "}{" +delim_1 "}{" +delim_2 "}{" +group_skip "}\n%\n\\addindexskip{" +heading_prefix "}\n%\n\\addindexheading{" +heading_suffix "}\n%\n{" +preamble "\\begin{theindex}\\indexpreamble\n\n{" +postamble "}\n\\indexflushitem\\indexpostamble\\end{theindex}" +indent_space "" +indent_length 0 +delim_n "\\indexpagessep " +delim_r "\\indexrangesep " + +% Modify to fit your own requirements +% ----------------------------------- + +headings_flag -1 % Usually redefining \indexheading is better +actual '@' +quote '"' +level '!' +page_precedence "rRnaA" +keyword "\\indexentry"
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/gindex/gindex.sty b/Master/texmf-dist/tex/latex/gindex/gindex.sty index 36311da7f9b..5d86fe60a68 100644 --- a/Master/texmf-dist/tex/latex/gindex/gindex.sty +++ b/Master/texmf-dist/tex/latex/gindex/gindex.sty @@ -7,45 +7,50 @@ % Repository: https://github.com/jbezos/gindex % -\ProvidesPackage{gindex}[2019/10/01 v0.1 Formatting indexes] +\ProvidesPackage{gindex}[2019/10/07 v0.2 Formatting indexes] \newcounter{indexsubitems} -\let\esx@save\@empty +\let\gix@save\@empty \let\indexnoitem\@gobbletwo -\def\addindexitem#1#2{% - \esx@save - \indexnoitem{}{}% - \setcounter{indexsubitems}{0}% - \let\esx@save\@empty - \g@addto@macro\esx@save{\indexitem{#1}{#2}}} +%------------------------ -\def\addindexskip#1{% - \esx@save - \indexnoitem{}{}% - \setcounter{indexsubitems}{0}% - \let\esx@save\@empty - \indexskip{#1}} +\let\indexspecial\relax -\def\addindexheading#1{% - \esx@save - \indexnoitem{}{}% - \setcounter{indexsubitems}{0}% - \let\esx@save\@empty - \indexheading{#1}} +% #4 current macro, #5 locator +\def\gix@getspecial#1\indexspecial#2\indexspecial#3\@@#4#5{% + \ifx\indexspecial#3\@empty + \g@addto@macro\gix@save{#2}% + \else + \g@addto@macro\gix@save{#4{#1}{#5}}% + \fi} + +%------------------------ + +\def\addindexitem#1#2{% + \indexflushitem + \gix@getspecial#1\indexspecial\indexspecial\@@\indexitem{#2}} \def\addindexsubitem#1#2{% \stepcounter{indexsubitems}% - \g@addto@macro\esx@save{\indexsubitem{#1}{#2}}} + \gix@getspecial#1\indexspecial\indexspecial\@@\indexsubitem{#2}} \def\addindexsubsubitem#1#2{% - \g@addto@macro\esx@save{\indexsubsubitem{#1}{#2}}} + \gix@getspecial#1\indexspecial\indexspecial\@@\indexsubsubitem{#2}} \newcommand\indexitem[2]{\item #1\ifx\\#2\\\else, #2\fi} \newcommand\indexsubitem[2]{\subitem #1\ifx\\#2\\\else, #2\fi} \newcommand\indexsubsubitem[2]{\subsubitem #1\ifx\\#2\\\else, #2\fi} +\def\indexflushitem{% + \gix@save + \indexnoitem{}{}% + \setcounter{indexsubitems}{0}% + \let\gix@save\@empty} + +% ---------------------- + \newcommand\indexitemhang[6]{% \par\hangindent#2\relax \ifdim#1=0pt\relax\else @@ -58,6 +63,16 @@ #4#6% \fi} +%---------------------- + +\def\addindexskip#1{% + \indexflushitem + \indexskip{#1}} + +\def\addindexheading#1{% + \indexflushitem + \indexheading{#1}} + \ifx\indexspace\@undefined \newcommand\indexskip[1]{\par\vskip10\p@\@plus5\p@\@minus3\p@\relax} \else @@ -69,10 +84,13 @@ \hfil}% \nopagebreak} +%--------------------- + \let\indexpreamble\relax \let\indexpostamble\relax \def\indexrangesep{-} +\def\indexpagessep{, } \endinput |