¿Cómo agregar una entrada al índice a nivel de elemento sin número de página?

¿Cómo agregar una entrada al índice a nivel de elemento sin número de página?

En mi índice, me gustaría agrupar ciertos elementos bajo un nombre de entrada de grupo. Como ya uso los tres niveles disponibles (elemento, subelemento, subsubelemento), intenté crear una entrada sin número de página. En el siguiente ejemplo, "Idiomas extraños" no debe ir seguido de un número de página, ya que pretende ser el título de clase de lo que sigue.

 \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}

El resultado hasta el momento es:

Salida PDF

¿Cómo suprimo el número de página de una entrada individual, aquí "Idiomas extraños", o cómo agrego un elemento sin número de página y mantengo los números de página de otros elementos normalmente?

Respuesta1

Aquí hay un truco que funciona cuando lo uso.

en el preámbulo, añádanse estas definiciones:

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

Úselo así, insertando el argumento y el texto de clasificación apropiados:

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

No he podido encontrar una definición "combinada" que incorpore \idxnopage. (Quizás David o Egreg puedan mejorar esto).

editar:Aquí hay un pequeño ejemplo que producirá el resultado descrito anteriormente. tenga en cuenta que es esencial ejecutar makeindexel .idxarchivo producido por la primera ejecución de látex y luego procesar el .texarchivo nuevamente a través de látex para incluir realmente el índice en la salida.

\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}

Respuesta2

Sólo como prueba de concepto. Tomando el .indarchivo generado a partir del archivo de ejemplo proporcionado anteriormente, tiene:

\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}

Si lo cambias a:

\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}

y ejecuta xelatexuna vez más con la noautomaticopción para imakeidx, obtendrás 'Idiomas raros' encima de 'Script' y al mismo nivel, pero sin referencia a la página. Para una o dos ediciones únicas, es bastante sencillo.

información relacionada