texlive[52311] Master/texmf-dist: gindex (7oct19)

commits+karl at tug.org commits+karl at tug.org
Mon Oct 7 22:57:44 CEST 2019


Revision: 52311
          http://tug.org/svn/texlive?view=revision&revision=52311
Author:   karl
Date:     2019-10-07 22:57:44 +0200 (Mon, 07 Oct 2019)
Log Message:
-----------
gindex (7oct19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/gindex/README.md
    trunk/Master/texmf-dist/doc/latex/gindex/gindex.pdf
    trunk/Master/texmf-dist/doc/latex/gindex/gindex.tex
    trunk/Master/texmf-dist/makeindex/gindex/gindex.ist
    trunk/Master/texmf-dist/tex/latex/gindex/gindex.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/makeindex/gindex/gindexh.ist

Modified: trunk/Master/texmf-dist/doc/latex/gindex/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/gindex/README.md	2019-10-07 20:57:25 UTC (rev 52310)
+++ trunk/Master/texmf-dist/doc/latex/gindex/README.md	2019-10-07 20:57:44 UTC (rev 52311)
@@ -16,6 +16,14 @@
 ### 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.
 ``` 

Modified: trunk/Master/texmf-dist/doc/latex/gindex/gindex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/gindex/gindex.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/gindex/gindex.tex	2019-10-07 20:57:25 UTC (rev 52310)
+++ trunk/Master/texmf-dist/doc/latex/gindex/gindex.tex	2019-10-07 20:57:44 UTC (rev 52311)
@@ -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 @@
 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 @@
 \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 @@
 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 @@
   \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,6 +127,7 @@
   \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}:
@@ -133,10 +134,52 @@
 \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 no need to run \textsf{makeindex} to fine tune the
-format.
+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}
+
+
+
 \section{Internals}
 
 The |ind| files is generated by |gindex.ist| with generic macros like:
@@ -148,16 +191,15 @@
 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}
 

Modified: trunk/Master/texmf-dist/makeindex/gindex/gindex.ist
===================================================================
--- trunk/Master/texmf-dist/makeindex/gindex/gindex.ist	2019-10-07 20:57:25 UTC (rev 52310)
+++ trunk/Master/texmf-dist/makeindex/gindex/gindex.ist	2019-10-07 20:57:44 UTC (rev 52311)
@@ -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 @@
 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

Added: trunk/Master/texmf-dist/makeindex/gindex/gindexh.ist
===================================================================
--- trunk/Master/texmf-dist/makeindex/gindex/gindexh.ist	                        (rev 0)
+++ trunk/Master/texmf-dist/makeindex/gindex/gindexh.ist	2019-10-07 20:57:44 UTC (rev 52311)
@@ -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


Property changes on: trunk/Master/texmf-dist/makeindex/gindex/gindexh.ist
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/gindex/gindex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/gindex/gindex.sty	2019-10-07 20:57:25 UTC (rev 52310)
+++ trunk/Master/texmf-dist/tex/latex/gindex/gindex.sty	2019-10-07 20:57:44 UTC (rev 52311)
@@ -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 at save\@empty
+\let\gix at save\@empty
 \let\indexnoitem\@gobbletwo
 
-\def\addindexitem#1#2{%
-  \esx at save
-  \indexnoitem{}{}%
-  \setcounter{indexsubitems}{0}%
-  \let\esx at save\@empty
-  \g at addto@macro\esx at save{\indexitem{#1}{#2}}}
+%------------------------
 
-\def\addindexskip#1{%
-  \esx at save
-  \indexnoitem{}{}%
-  \setcounter{indexsubitems}{0}%
-  \let\esx at save\@empty
-  \indexskip{#1}}
+\let\indexspecial\relax
 
-\def\addindexheading#1{%
-  \esx at save
-  \indexnoitem{}{}%
-  \setcounter{indexsubitems}{0}%
-  \let\esx at save\@empty
-  \indexheading{#1}}
+% #4 current macro, #5 locator
+\def\gix at getspecial#1\indexspecial#2\indexspecial#3\@@#4#5{%
+  \ifx\indexspecial#3\@empty
+    \g at addto@macro\gix at save{#2}%
+  \else
+    \g at addto@macro\gix at save{#4{#1}{#5}}%
+  \fi}
 
+%------------------------
+
+\def\addindexitem#1#2{%
+  \indexflushitem
+  \gix at getspecial#1\indexspecial\indexspecial\@@\indexitem{#2}}
+
 \def\addindexsubitem#1#2{%
   \stepcounter{indexsubitems}%
-  \g at addto@macro\esx at save{\indexsubitem{#1}{#2}}}
+  \gix at getspecial#1\indexspecial\indexspecial\@@\indexsubitem{#2}}
 
 \def\addindexsubsubitem#1#2{%
-  \g at addto@macro\esx at save{\indexsubsubitem{#1}{#2}}}
+  \gix at 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 at save
+  \indexnoitem{}{}% 
+  \setcounter{indexsubitems}{0}%
+  \let\gix at 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
 



More information about the tex-live-commits mailing list