0

When I run makeindex on a large (book-length) document (I'll call it doc here) that uses documentclass memoir and includes...

\makenomenclature
\makeindex[names]
\makeindex

... I'm seeing the following in the document's .ilg:

This is makeindex, version 2.15 [TeX Live 2019] (kpathsea + Thai support).
Scanning style file /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist........
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 36):
   -- Unknown specifier lethead_prefix.
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 37):
   -- Unknown specifier lethead_suffix.
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 38):
   -- Unknown specifier lethead_flag.
....done (12 attributes redefined, 3 ignored).
Scanning input file doc.nlo....done (205 entries accepted, 0 rejected).
Sorting entries.....done (1532 comparisons).
Generating output file doc.nls....done (213 lines written, 0 warnings).
Output written in doc.nls.
Transcript written in doc.ilg.

The only nomencl.ist file on my system is the indicated one from the TeXLive 2019 distribution.

What's wrong?

Added: a MWE

Here's a small example, without needing any nomencl.cfg, to generate the "errors":

\documentclass{memoir}

\usepackage[refpage,norefeq,intoc,english,nocfg]{nomencl} \renewcommand{\nomname}{Index of Notation} \makenomenclature

\begin{document}

\mainmatter

A \emph{map} $f\colon X \to Y$% \nomenclature{$f \colon X \to Y$}{map from $X$ to $Y$}% consists of \dots.

\backmatter

\printnomenclature[3.5cm]

\end{document}

In this case, the .ilg is:

This is makeindex, version 2.15 [TeX Live 2019] (kpathsea + Thai support).
Scanning style file /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist........
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 36):
   -- Unknown specifier lethead_prefix.
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 37):
   -- Unknown specifier lethead_suffix.
** Input style error (file = /usr/local/texlive/2019/texmf-dist/makeindex/nomencl/nomencl.ist, line = 38):
   -- Unknown specifier lethead_flag.
....done (12 attributes redefined, 3 ignored).
Scanning input file nom.nlo....done (1 entries accepted, 0 rejected).
Sorting entries...done (0 comparisons).
Generating output file nom.nls....done (6 lines written, 0 warnings).
Output written in nom.nls.
Transcript written in nom.ilg.

Note: Since no entries were rejected and there were no warnings, why am I asking about this? Because my document is now generating strange error messages mathit allowed only in math mode during processing of doc.ind whose cause I cannot trace. I ask about that separately: Indexing error: \mathit allowed only in math mode.

Stephen
  • 14,890
murray
  • 7,944
  • Can you please make a small example? – egreg Feb 14 '20 at 16:08
  • Anyway, the “errors” about lethead... are actually innocuous warnings. – egreg Feb 14 '20 at 16:41
  • @egreg : Good to have that innocuousness confirmed. (l'm desperately pursuing all leads, however unpromising, in my investigation of the mathit allowed only in math mod index processing error.) – murray Feb 14 '20 at 16:59
  • 1
    These lethead_... were the old names for the current heading_... options, and are kept in makeindex style files for compatibility with older versions of makeindex. Though this is probably useless nowadays: I couldn't dig up a version of makeindex that uses the lethead_... names, so I guess it should be a couple of decades old... – Phelype Oleinik Feb 14 '20 at 17:40

1 Answers1

1

In the comments Phelype Oleinik already wrote:

These lethead_... were the old names for the current heading_... options, and are kept in makeindex style files for compatibility with older versions of makeindex.

When looking into the nomencl.ist file (in TeX Live 2022), it explicitly states that:

%% The next lines will produce some warnings when
%% running Makeindex as they try to cover two different
%% versions of the program:
lethead_prefix "\\nomgroup{"
lethead_suffix "}"
lethead_flag   1
heading_prefix "\\nomgroup{"
heading_suffix "}"
headings_flag  1

Thus, just ignore those "errors".

Stephen
  • 14,890