Tengo un documento con un índice donde algunas entradas (las principales) están marcadas en negrita.
Estoy usando makeindex.
Mi entrada, 2, 4-5,10, 15
Ahora si tengo la misma entrada dos veces en la página dondeprincipaluno está presente, el índice se imprime dos veces.
Por ejemplo, si My Entry
está en la misma página dos veces, una vez en formato normal y otra en negrita:
Bla bla\index{My Entry} bla bla \index{My Entry|textbf}
el resultado es
Mi entrada, 10,10
La página se imprime dos veces.
Esto no ocurre si el formato no está presente.
Mi entrada, 10
¿Alguna pista?
Editar
Ejemplo 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}
produce
Mi entrada, 1,1
Mientras
\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}
produce
Mi entrada, 1
sin el doble 1
ya que ambos estan en la misma pagina
Respuesta1
Esto no es posible con el backend predeterminado de MakeIndex que utiliza imakeidx
. El makeindex
programa realmente lo hacedetectarcuando esto sucede, pero no parece hacer nada al respecto. Si observa la transcripción de la compilación pdflatex
en su tex
archivo de ejemplo, 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).
Diciéndole que hay un aviso al hacer el índice. Y si abres la transcripción makeindex
verás
[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.
y te dice exactamente que se le ha pedido imprimir dos entradas de índice bajo la misma página con la misma clave pero con dos formatos diferentes. La expectativa implícita es quetúcomo el autor debería abordarlo.
(Por cierto, esta misma pregunta se ha hechoHace 9 añosy esa fue básicamente la respuesta dada allí.)
Sin embargo, no todas las esperanzas están perdidas. El imakeidx
paquete también admite el uso xindy
como backend para crear el índice, que tiene una mayor flexibilidad de configuración (ver, por ejemploEl compañero de látexpara obtener un breve resumen de lo que se puede hacer). Si simplemente
\usepackage[xindy]{imakeidx}
en cambio, la configuración predeterminada de texindy
parece evitar la duplicación de la entrada de la página 1, pero también muestra de forma predeterminada la entrada sin negrita en lugar de la que está en negrita. Esto se debe a la regla de fusión especificada en el latex-loc-fmts.xdy
módulo, que decía
(define-attributes (("default" "textbf" "textit" "hyperpage")))
Si reordenas la línea para leer
(define-attributes (("textbf" "textit" "default" "hyperpage")))
entonces la negrita tendrá mayor prioridad que la predeterminada al imprimir el índice. En mi computadora, la ruta de búsqueda predeterminada xindy
está configurada de manera que usted debería poder simplemente
- busque y copie el
latex-loc-fmts.xdy
archivo en su directorio local - Edítelo para reemplazar la línea para
(define-attributes...
que coincida con el reemplazo mencionado anteriormente - Ejecute
pdflatex
en su archivo TeX - Correr
texindy Persone.idx
- Repetición
pdflatex
Y eso debería brindarle el resultado que desea. Si la ruta de búsqueda está configurada de manera diferente, es posible que tenga que jugar con la configuración de la XINDY_SEARCHPATH
variable de entorno.