Ich habe ein Dokument mit einem Index, in dem einige Einträge (die wichtigsten) fett markiert sind.
Ich verwende Makeindex.
Mein Eintrag, 2, 4-5,10, 15
Wenn ich nun den gleichen Eintrag zweimal auf der Seite habe, auf der derhauptsächlichWenn einer vorhanden ist, wird der Index zweimal gedruckt.
Wenn es beispielsweise My Entry
auf derselben Seite zweimal vorkommt, einmal normal und einmal fett formatiert:
Bla bla\index{My Entry} bla bla \index{My Entry|textbf}
Das Ergebnis ist
Mein Eintrag, 10,10
Die Seite wird zweimal ausgedruckt.
Dies geschieht nicht, wenn die Formatierung nicht vorhanden ist
Mein Eintrag, 10
Irgendein Hinweis?
Bearbeiten
Minimalbeispiel:
\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}
Produziert
Mein Eintrag, 1,1
Während
\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}
Produziert
Mein Eintrag, 1
ohne das Doppelte 1
, da beide auf der gleichen Seite sind
Antwort1
Dies ist mit dem von verwendeten MakeIndex-Backend nicht möglich imakeidx
. Das makeindex
Programm tut dies tatsächlicherkennenwenn dies geschieht, aber es scheint nichts dagegen zu tun. Wenn Sie sich das Kompilierungsprotokoll pdflatex
Ihrer Beispieldatei ansehen tex
, werden Sie sehen
(/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).
Ich sage Ihnen, dass es eine Warnung beim Erstellen des Index gibt. Und wenn Sie das Transkript öffnen, makeindex
sehen Sie
[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.
und es sagt Ihnen genau, dass es aufgefordert wurde, zwei Indexeinträge unter derselben Seite mit demselben Schlüssel, aber mit zwei unterschiedlichen Formatierungen zu drucken. Die implizite Erwartung ist, dassDuwie der Autor damit umgehen sollte.
(Übrigens wurde die gleiche Frage gestelltVor 9 Jahrenund das war im Wesentlichen die dort gegebene Antwort.)
Es ist jedoch nicht alle Hoffnung verloren. Das imakeidx
Paket unterstützt auch die Verwendung xindy
als Backend zum Erstellen des Index, was eine größere Flexibilität bei der Konfiguration bietet (siehe z. B.Der LaTeX-Begleiterfür eine kurze Zusammenfassung, was getan werden kann). Wenn Sie einfach
\usepackage[xindy]{imakeidx}
stattdessen scheinen die Standardeinstellungen texindy
die Duplizierung des Eintrags für Seite 1 zu verhindern, zeigen aber standardmäßig auch den nicht fettgedruckten Eintrag anstelle des fettgedruckten an. Dies liegt an der im Modul angegebenen Zusammenführungsregel latex-loc-fmts.xdy
, die lautet:
(define-attributes (("default" "textbf" "textit" "hyperpage")))
Wenn Sie die Zeile so umordnen, dass sie lautet
(define-attributes (("textbf" "textit" "default" "hyperpage")))
dann hat Fettdruck beim Drucken des Indexes eine höhere Priorität als Standard. Auf meinem Computer ist der Standardsuchpfad für xindy
so konfiguriert, dass Sie einfach
- Suchen und kopieren Sie die
latex-loc-fmts.xdy
Datei in Ihr lokales Verzeichnis - Bearbeiten Sie es, um die Zeile durch
(define-attributes...
den oben aufgeführten Ersatz zu ersetzen. - Führen Sie es
pdflatex
auf Ihrer TeX-Datei aus - Laufen
texindy Persone.idx
- Wiederholung
pdflatex
Damit sollten Sie die gewünschte Ausgabe erhalten. Wenn der Suchpfad anders konfiguriert ist, müssen Sie möglicherweise mit der Einstellung der XINDY_SEARCHPATH
Umgebungsvariable experimentieren.