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:
¿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 makeindex
el .idx
archivo producido por la primera ejecución de látex y luego procesar el .tex
archivo 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 .ind
archivo 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 xelatex
una vez más con la noautomatic
opció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.