Wie füge ich dem Index auf Artikelebene einen Eintrag ohne Seitenzahl hinzu?

Wie füge ich dem Index auf Artikelebene einen Eintrag ohne Seitenzahl hinzu?

In meinem Index möchte ich bestimmte Einträge unter einem Gruppeneintragsnamen zusammenfassen. Da ich die drei verfügbaren Ebenen (Eintrag, Untereintrag, Unteruntereintrag) bereits verwende, habe ich versucht, einen Eintrag ohne Seitenzahl zu erstellen. Im folgenden Beispiel sollte auf „Weird Languages“ keine Seitenzahl folgen, da diese als Klassentitel für das Folgende gedacht ist.

 \documentclass[12pt,twoside,a4paper,openright]{book}

 \usepackage{xunicode}
 \usepackage{imakeidx} 
 \makeindex[name=texts,title=Texts,columns=1,options=-s mystyle -c -l] 
 \begin{document}

 \index[texts]{Script@\string\textbf{Weird Languages}}

 3.28\index[texts]{Script!Aramaic!3.28}
 5.1\index[texts]{Script!Greek!5.1}
 8.1\index[texts]{Script!Demotic!8.1}

 \printindex[texts]

 \end{document}

Das Ergebnis bisher ist:

PDF-Ausgabe

Wie unterdrücke ich die Seitenzahl eines einzelnen Eintrags, hier „Weird Languages“, bzw. wie füge ich einen Eintrag ohne Seitenzahl hinzu und behalte dabei die Seitenzahlen für andere Einträge wie gewohnt bei?

Antwort1

hier ist ein Hack, der funktioniert, wenn ich ihn verwendet habe.

Fügen Sie in der Präambel folgende Definitionen hinzu:

\newcommand{\idxnopage}[1]{{}}
\providecommand{\gobble}[1]{{}}
\newcommand{\idxsechead}[1]{\textbf{#1}\gobble}

verwenden Sie es folgendermaßen und fügen Sie das entsprechende Sortierargument und den entsprechenden Text ein:

\index{<sort argument>@\idxsechead{<header text>} |idxnopage}

mir ist es nicht gelungen, eine „kombinierte“ Definition zu finden, die das einschließt \idxnopage. (Vielleicht können David oder Egreg das verbessern.)

bearbeiten:hier ist ein kleines Beispiel, das die oben beschriebene Ausgabe erzeugt. Beachten Sie, dass es unbedingt erforderlich ist, die durch den ersten Latex-Lauf erzeugte Datei auszuführen makeindexund .idxdie Datei dann erneut mit Latex zu verarbeiten, .texum den Index tatsächlich in die Ausgabe aufzunehmen.

\documentclass{article}
\usepackage{makeidx}
\newcommand{\idxnopage}[1]{{}}
\providecommand{\gobble}[1]{{}}
\newcommand{\idxsechead}[1]{\textbf{#1}\gobble}
\makeindex

\begin{document}
Here is some text\index{some text} that we want indexed.

We also want a ``header'' in the index.
\index{00@\idxsechead{Header} |idxnopage}
\printindex
\end{document}

Antwort2

Nur als Machbarkeitsnachweis. Wenn Sie die .indaus der oben angegebenen Beispieldatei generierte Datei verwenden, erhalten Sie:

\begin{theindex}

  \item Script
    \subitem Aramaic
      \subsubitem 3.28, 1
    \subitem Demotic
      \subsubitem 8.1, 1
    \subitem Greek
      \subsubitem 5.1, 1
  \item \string, \textbf{Weird Languages}{1}

\end{theindex}

Wenn Sie es ändern in:

\begin{theindex}

  \item \textbf{Weird Languages}
  \item Script
    \subitem Aramaic
      \subsubitem 3.28, 1
    \subitem Demotic
      \subsubitem 8.1, 1
    \subitem Greek
      \subsubitem 5.1, 1

\end{theindex}

und führen Sie es xelatexnoch einmal mit der noautomaticOption für imakeidxaus. Sie erhalten 'Seltsame Sprachen' über 'Skript' und auf derselben Ebene, aber ohne Seitenverweis. Für eine oder zwei einmalige Änderungen ist es ziemlich einfach.

verwandte Informationen