Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

index packages

164 views
Skip to first unread message

Pluto

unread,
Mar 11, 2010, 6:59:12 AM3/11/10
to
Please, apart from the index package, is there any latest index
package? Thank you.

Lars Madsen

unread,
Mar 11, 2010, 7:30:28 AM3/11/10
to
Pluto wrote:
> Please, apart from the index package, is there any latest index
> package? Thank you.


what do you mean by 'index' package?

which features are you looking for?

--

/daleif (remove RTFSIGNATURE from email address)

LaTeX FAQ: http://www.tex.ac.uk/faq
LaTeX book: http://www.imf.au.dk/system/latex/bog/ (in Danish)
Remember to post minimal examples, see URL below
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl
http://www.minimalbeispiel.de/mini-en.html

Pluto

unread,
Mar 11, 2010, 10:05:00 AM3/11/10
to
On Mar 11, 12:30 pm, Lars Madsen <dal...@RTFMSIGNATUREimf.au.dk>
wrote:

The only packages I have found with documentation on CTAN for indexing
is index (28/02/1995) and splitindex (28/09/2009) . I thought there
would be a more recent indexing package than 'index'. Actually, I have
no special requirements.

Lars Madsen

unread,
Mar 11, 2010, 10:32:19 AM3/11/10
to Pluto

well if it isn't broken don't fix it.

The main development regarding indexes (in my view) is texindy as a
replacement for makeindex


--

/daleif (remove RTFSIGNATURE from email address)

Simon Spiegel

unread,
Mar 11, 2010, 11:08:01 AM3/11/10
to
On 2010-03-11 16:32:19 +0100, Lars Madsen said:

> Pluto wrote:
>> On Mar 11, 12:30 pm, Lars Madsen <dal...@RTFMSIGNATUREimf.au.dk>
>> wrote:
>>> Pluto wrote:
>>>> Please, apart from the index package, is there any latest index
>>>> package? Thank you.
>>> what do you mean by 'index' package?
>>>
>>> which features are you looking for?
>>>
>>> --
>>>
>>> /daleif (remove RTFSIGNATURE from email address)
>>>
>>> LaTeX FAQ: http://www.tex.ac.uk/faq
>>> LaTeX book: http://www.imf.au.dk/system/latex/bog/ (in Danish)
>>> Remember to post minimal examples, see URL
>>> belowhttp://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxamplhttp://www.minimalbeispiel.de/mini-en.html

The
>>>
>> only packages I have found with documentation on CTAN for indexing
>> is index (28/02/1995) and splitindex (28/09/2009) . I thought there
>> would be a more recent indexing package than 'index'. Actually, I have
>> no special requirements.
>
> well if it isn't broken don't fix it.
>
> The main development regarding indexes (in my view) is texindy as a
> replacement for makeindex

Unfortunately, there is currently a serious problem with the
combination of xindy and hyperref. Recent updates to hyperref break
xindy and a quick solution for this doesn't seem to be at hand.

simon

Lars Madsen

unread,
Mar 11, 2010, 11:19:45 AM3/11/10
to

which version of hyperref? and isn't this just related to the problems
Heiko already announced on the TeXLive list, that would be fixed by just
updating within the next few days.

I haven't had problems with texindy a hyperref, but I haven't updated my
TL since the last of February.

--

/daleif (remove RTFSIGNATURE from email address)

Simon Spiegel

unread,
Mar 11, 2010, 11:54:51 AM3/11/10
to
On 2010-03-11 17:19:45 +0100, Lars Madsen said:

> Simon Spiegel wrote:
>> On 2010-03-11 16:32:19 +0100, Lars Madsen said:
>>
>
> which version of hyperref? and isn't this just related to the problems
> Heiko already announced on the TeXLive list, that would be fixed by
> just updating within the next few days.
>
> I haven't had problems with texindy a hyperref, but I haven't updated
> my TL since the last of February.

No, that's not that problem. I don't know exactly when it was
introduced, but here's a copy from the xindy mailing list:

>> \documentclass[frenchb]{article}
>> \usepackage[utf8]{inputenc}
>> \usepackage[T1]{fontenc}
>> \usepackage{lmodern, makeidx}
>> \usepackage{babel}
>> \usepackage{hyperref}
>> \makeindex
>> \begin{document}
>> foo\index{foo}
>> \newpage
>> bar\index{bar|see{foo}}
>> \printindex
>> \end{document}
>>
>> leads, when processing through:
>>
>> texindy -v -L french test.idx
>>
>> to the following warning:
>> \index{alpha|hyperindexformat{\textbf}}..."
>>
>> leads [...] to the following warning:
>>
>> WARNING: unknown cross-reference-class `hyperindexformat'! (ignored)
>>
>> Is there a workaround?
>
> No. This is very bad news.
>
> This hyperref change breaks xindy, and a remedy is a serious
> enhancement. One has to introduce attributes for cross reference
> classes.

According to a post from Heiko on de.comp.text.tex this should be fixed
on the xindy side, but Joachim Schrod from xindy said just yesterday
that this hasn't a high priority for him. :(

simon

Lars Madsen

unread,
Mar 11, 2010, 12:00:21 PM3/11/10
to

luckily for me, I don't use those ;-)

also there are several things I'd like to get fixed in xindy, for
example at least a swich such that $ and \$ does not map to the same
entry, which would be handy when one is writing LaTeX manuals

Heiko Oberdiek

unread,
Mar 11, 2010, 2:06:45 PM3/11/10
to
Simon Spiegel <si...@remove.simifilm.ch> wrote:

> According to a post from Heiko on de.comp.text.tex this should be fixed
> on the xindy side, but Joachim Schrod from xindy said just yesterday
> that this hasn't a high priority for him. :(

Nobody of the users of xindy is able to provide a patch?

--
Heiko Oberdiek

Lars Madsen

unread,
Mar 11, 2010, 2:26:05 PM3/11/10
to

Well I can get get it to output something like

\hyperindexformat{\see{foo}}{}

but not

\hyperindexformat{\see{foo}}{2}

I'm not quite sure how xindy parses these \index{bar|see{foo}}

I just noticed that without hyperref

makeindex gives

\item bar, \see{foo}{2}

while texindy gives

\see{foo}{}

so it is down to the parsing

in makeindex.xdy

we find

(define-crossref-class "see")
;; \see takes two parameters, the second one is for the page number.
;; We don't emit one in xindy, so we add an empty second argument.
(markup-crossref-list :class "see" :open "\see{" :sep "; " :close "}{}")

whether we can actually reconfigure it to emit the page number as well
is unknown.

without hyperref the second argument for \see is irrelevant, so it does
not matter in xindy, but with hyperref is another matter

I'll see if I can hack somehing together

otherwise one might need to be a bit more nasty and do some kind of post
processing with both makeindex and texindy

Heiko Oberdiek

unread,
Mar 11, 2010, 2:46:48 PM3/11/10
to
Lars Madsen <dal...@RTFMSIGNATUREimf.au.dk> wrote:

The second argument of \see does not matter at all:
makeidx.sty:
\newcommand*\see[2]{\emph{\seename} #1}

> I'll see if I can hack somehing together

The range operators are the problem, test file:

\documentclass{article}

\usepackage{hyperref}
\usepackage{makeidx}

\makeindex
\listfiles

\begin{document}

\index{test|(textbf}test

\newpage

\index{test|)}test

\printindex

\end{document}

> otherwise one might need to be a bit more nasty and do some kind of post
> processing with both makeindex and texindy

AFAIK makeindex is supported well in hyperref. The latest change
has improved the encap support. Now it is possible to write
\index{entry|textbf}
without getting lost of the page link. In older versions the
workaround was:
\newcommand*{\mytextbf}[1]{\textbf{\hyperpage{#1}}}
\index{entry|mytextbf}

Only xindy makes problems, because it doesn't know \hyperindexformat
yet:


WARNING: unknown cross-reference-class `hyperindexformat'! (ignored)

--
Heiko Oberdiek

Lars Madsen

unread,
Mar 11, 2010, 3:02:06 PM3/11/10
to

> The second argument of \see does not matter at all:
> makeidx.sty:
> \newcommand*\see[2]{\emph{\seename} #1}
>

I realised that on my way home from work. I'll if I can (re)figure out
what I did

give me a few minutes

/daleif

Lars Madsen

unread,
Mar 11, 2010, 3:19:59 PM3/11/10
to

found it!

To test it make a new file called mystyle.xdy containing

(define-crossref-class "hyperindexformat")
(markup-crossref-list :class "hyperindexformat" :open
"\hyperindexformat{" :sep "; " :close "}{}")

(both should be a single line, not sure if it is necessary)

then run

texindy -v -L french test.idx -M mystyle.xdy

and it should produce

\begin{theindex}
\providecommand*\lettergroupDefault[1]{}
\providecommand*\lettergroup[1]{%
\par\textbf{#1}\par
\nopagebreak
}

\lettergroup{B}
\item bar, \hyperindexformat{\see{foo}}{}

\indexspace

\lettergroup{F}
\item foo, \hyperindexformat{1}

\end{theindex}

to do a global fix, add the two lines to texmf/xindy/base/makeindex.sty

(that is the file that also handles \see and \seealso)


Heiko Oberdiek

unread,
Mar 11, 2010, 3:31:03 PM3/11/10
to
Lars Madsen <dal...@imf.au.dk> wrote:

Te page number is missing. It doesn't matter for \see{foo}, but
it does for \textbf, ...

> \indexspace
>
> \lettergroup{F}
> \item foo, \hyperindexformat{1}

\hyperindexformat expects *two* arguments.

My example won't work either:

| WARNING: Found a :close-range in the index that wasn't opened before!
| Location-reference is 2 in keyword (test)
| I'll continue and ignore this.
|
| ERROR: Cross-reference-target ("\\textbf") does not exist!

test.idx contains:

\indexentry{test|(hyperindexformat{\textbf}}{1}
\indexentry{test|)}{2}

--
Heiko Oberdiek

Lars Madsen

unread,
Mar 11, 2010, 4:29:17 PM3/11/10
to Heiko Oberdiek

pass, I don't even know how xindy know that |( starts a range

there are many things that makeidnex can that haven't been added to
xindy for some reason

/daleif

Heiko Oberdiek

unread,
Mar 11, 2010, 5:49:46 PM3/11/10
to
Lars Madsen <dal...@imf.au.dk> wrote:

> pass, I don't even know how xindy know that |( starts a range

But thanks for trying.

--
Heiko Oberdiek

0 new messages