Tenho um documento com um índice onde alguns verbetes (os principais) estão marcados em negrito.
Estou usando makeindex.
Minha entrada, 2, 4-5,10, 15
Agora, se eu tiver a mesma entrada duas vezes na página onde oprincipalum está presente, o índice é impresso duas vezes.
Por exemplo, se My Entry
estiver na mesma página duas vezes, uma vez normal e uma vez formatada em negrito:
Bla bla\index{My Entry} bla bla \index{My Entry|textbf}
o resultado é
Minha entrada, 10,10
A página é impressa duas vezes.
Isso não ocorre se a formatação não estiver presente
Minha entrada, 10
Alguma dica?
Editar
Exemplo mínimo:
\documentclass[a4paper]{book}
\usepackage[]{imakeidx}
\makeindex[name=Persone,title=Persone]
\begin{document}
Bla bla\index[Persone]{My Entry} bla bla
Bla bla\index[Persone]{My Entry|textbf} bla bla
\printindex[Persone]
\end{document}
Produz
Minha entrada, 1,1
Enquanto
\documentclass[a4paper]{book}
\usepackage[]{imakeidx}
\makeindex[name=Persone,title=Persone]
\begin{document}
Bla bla\index[Persone]{My Entry} bla bla
Bla bla\index[Persone]{My Entry} bla bla
\printindex[Persone]
\end{document}
Produz
Minha entrada, 1
sem o duplo 1
, pois ambos estão na mesma página
Responder1
Isso não é possível com o back-end MakeIndex padrão usado pelo imakeidx
. O makeindex
programa realmente fazdetectarquando isso acontece, mas parece não fazer nada a respeito. Se você olhar a transcrição da compilação pdflatex
em seu tex
arquivo de exemplo, verá
(/usr/share/texmf-dist/tex/latex/tools/multicol.sty))
Writing index file Persone.idx
(./testindex.aux) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
[2]This is makeindex, version 2.15 [TeX Live 2019] (kpathsea + Thai support).
Scanning input file Persone.idx....done (2 entries accepted, 0 rejected).
Sorting entries....done (2 comparisons).
Generating output file Persone.ind....done (5 lines written, 1 warning).
Output written in Persone.ind.
Transcript written in Persone.ilg.
(./Persone.ind) [3] (./testindex.aux) )</usr/share/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmbx10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts
/cm/cmbx12.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on testindex.pdf (3 pages, 28492 bytes).
Informando ao seu que existe um aviso ao fazer o index. E se você abrir a transcrição para makeindex
ver
[Tue Dec 03 03:35 PM] ArchDesktop ~/tmp/toDelete $ cat Persone.ilg
This is makeindex, version 2.15 [TeX Live 2019] (kpathsea + Thai support).
Scanning input file Persone.idx....done (2 entries accepted, 0 rejected).
Sorting entries....done (2 comparisons).
Generating output file Persone.ind....
## Warning (input = Persone.idx, line = 2; output = Persone.ind, line = 3):
-- Conflicting entries: multiple encaps for the same page under same key.
done (5 lines written, 1 warning).
Output written in Persone.ind.
Transcript written in Persone.ilg.
e informa exatamente que foi solicitado a imprimir duas entradas de índice na mesma página com a mesma chave, mas com duas formatações diferentes. A expectativa implícita é quevocêcomo o autor deve lidar com isso.
(Aliás, esta mesma pergunta foi feita9 anos atráse essa foi basicamente a resposta dada lá.)
Toda a esperança não está perdida, no entanto. O imakeidx
pacote também suporta o uso xindy
como backend para construção do índice que tem maior flexibilidade de configuração (veja, por exemplo,O companheiro LaTeXpara um breve resumo do que pode ser feito). Se você simplesmente
\usepackage[xindy]{imakeidx}
em vez disso, as configurações padrão texindy
parecem impedir a duplicação da entrada da página 1, mas também mostram a entrada sem negrito em vez da entrada em negrito. Isso se deve à regra de mesclagem especificada no latex-loc-fmts.xdy
módulo, que diz
(define-attributes (("default" "textbf" "textit" "hyperpage")))
Se você reordenar a linha para ler
(define-attributes (("textbf" "textit" "default" "hyperpage")))
então, o negrito terá maior prioridade do que o padrão ao imprimir o índice. No meu computador, o caminho de pesquisa padrão xindy
está configurado de forma que você possa apenas
- encontre e copie o
latex-loc-fmts.xdy
arquivo para o seu diretório local - Edite-o para substituir a linha por
(define-attributes...
para corresponder à substituição listada acima - Execute
pdflatex
em seu arquivo TeX - Correr
texindy Persone.idx
- Repetir
pdflatex
E isso deve lhe dar o resultado desejado. Se o caminho de pesquisa estiver configurado de forma diferente, pode ser necessário definir a XINDY_SEARCHPATH
variável de ambiente.