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