MakeIndex, Nomenclature, Glossaries and AcronymsChange index "see also" and "see" format

Information and discussion about MakeIndex - the tool to generate subject indices for LaTeX documents.
Post Reply
murraye
Posts: 34
Joined: Sat Aug 15, 2009 6:25 pm

Change index "see also" and "see" format

Post by murraye »

Desired index result

I want an index using makeindex to have entries like the following (where I've used ~~~ and ~~~~~~ to indicate indenting for subentries and sub subentries):

nothing, 1
~~~ nil, 1
~~~~~~ and zero, 1
~~~~~~ (see also null elements}
~~~ null, 1
~~~ See also zero elements
null elements, 1

zero (see zero elements)
zero elements, 1

Note the following formatting requirements shown:
  • A "See also ..." for a main entry begins with an upper-case "S".
  • A "(see also ...)" for a subentry is indented below the subentry and enclosed in parens.
  • A "(see ...)" cross-reference is enclosed in parens.
  • A "(see ...)" cross-reference does not include a comma after the (sub)entry on its line.
  • A "see" or "see also"/"See also" entry does not end with a page number.
Here's a screen shot of the printed index:
Image

A working source file that produces the result

The following source file will accomplish that:

Code: Select all

    \documentclass{book}
    \usepackage{makeidx}

    \newcommand\gobbleone[1]{}
    \newcommand*{\seeonly}[2]{\ (\emph{\seename} #1)}
    \newcommand*{\also}[2]{(\emph{\alsoname} #1)}
    \newcommand{\Also}[2]{\emph{See also} #1}

    \makeindex

    \begin{document}

    This is a short book about zero. Therefore, it's also about nothing.
    Which means null (or nil).
    
    \index{nothing}
    \index{nothing!nil}
    \index{nothing!nil!and zero}   % added for clarity
    \index{nothing!nil!zzzzz@\also{null elements}|gobbleone}
    \index{nothing!null}
    \index{nothing!zzzzz@\Also{zero elements}|gobbleone}
    \index{null elements}

    \index{zero \seeonly{zero elements}|gobbleone}
    \index{zero elements}

    \printindex

    \end{document}   
Simplification & improvement sought

Can this be simplified by suitable definitions that would avoid having to explicitly include the `|gobbleone` in each "see only" and "see" entry? And it would even be better if I did not have to explicitly include the `zzzzz@` sort key that puts the "see also" subentries after all others.

I would strongly prefer definitions written in LaTeX (using `newcommand`) rather than at lower-level TeX (using `\def`).

These related postings unfortunately do not seem to accomplish what I need:

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org
LaTeX Beginner's Guide LaTeX Cookbook LaTeX TikZ graphics TikZによるLaTeXグラフィックス
Post Reply