Como adicionar uma entrada ao índice no nível do item sem número de página?

Como adicionar uma entrada ao índice no nível do item sem número de página?

No meu índice, gostaria de agrupar determinados itens sob um nome de entrada de grupo. Como já utilizo os três níveis disponíveis (item, subitem, subsubitem), tentei criar um verbete sem número de página. No exemplo abaixo, "Idiomas Estranhos" não deve ser seguido por um número de página, porque é o título da classe a seguir.

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

O resultado até agora é:

Saída PDF

Como faço para suprimir o número da página de uma entrada individual, aqui "Weird Languages" ou como adiciono um item sem número de página enquanto mantenho os números de página para outros itens normalmente?

Responder1

aqui está um hack que funciona quando eu o uso.

no preâmbulo, adicione estas definições:

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

use-o assim, inserindo texto e argumento de classificação apropriados:

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

não consegui chegar a uma definição "combinada" que incorpore o \idxnopage. (talvez David ou egreg possam melhorar isso.)

editar:aqui está um pequeno exemplo que produzirá a saída descrita acima. observe que é essencial executar makeindexno .idxarquivo produzido pela primeira execução do látex e, em seguida, processar o .texarquivo novamente por meio do látex para realmente incluir o índice na saída.

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

Responder2

Apenas para prova de conceito. Pegando o .indarquivo gerado a partir do arquivo de exemplo fornecido acima, você tem:

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

Se você mudar para:

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

e execute xelatexmais uma vez com a noautomaticopção for imakeidx, você obterá 'Idiomas estranhos' acima de 'Script' e no mesmo nível, mas sem referência de página. Para uma ou duas edições únicas, é bastante simples.

informação relacionada