Anzeige:
Ergebnis 1 bis 9 von 9

Thema: SplitIndex und Indexeinträge mit fortlaufender Seitenangabe zb. 48f + Hyperlink

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297

    SplitIndex und Indexeinträge mit fortlaufender Seitenangabe zb. 48f + Hyperlink

    Hi Profis,

    mir ist gerade etwas in meinem Dokument aufgefallen und zwar erstelle ich mehrere getrennte Index-Verzeichnisse und das klappt mit Splitindex auch problemlos. Allerdings wenn ich dasselbe Stichwort auf zwei aufeinander folgenden Seiten habe taucht es im Index natürlich mit 48f auf, wobei die Zahl 48 die Seitenzahl des ersten Vorkommnisses des Begriffs ist.

    Dummerweise bekomme ich bezüglich dieses Stichworts dann immer eine Warnung: "48f" has been referenced but does not exist, replaced by a fixed one

    Das ist sehr unschön, da ich viele solcher Begriffe habe. Möchte mir jetzt ungern vorher überlegen, wo ein Stichwort mehrfach vorkommt. Das soll ja LaTeX für mich tun

    Weiteres ärgerliches Problem: Wenn ich auf die Zahl 48f klicke, dann lande ich auf der allerersten Seite des Dokuments, der Link funktioniert also nicht. Hätte er nicht auf Seite 48 landen sollen?

    Ich kann gern ein MiniBsp machen (wenn ich das überhaupt reproduzieren kann, da mein Dokument sehr sehr groß ist), aber wenn mir jetzt zb. jmd direkt sagt, das kann LaTeX nicht und das ist normal, dann finde ich mich damit ab. Ist halt irgendwie ärgerlich.

    Vielen Dank schon mal.

    PS: Vielleicht kann man das in SpliIndex irgednwie per Option einstellen, dass er einfach jede Seite auflisten soll, anstatt das "f" dahinerklemmen? Konnte diesbezüglich aber leider nichts finden. (Ist prinzipiell ja auch ziemlich blöd das einzustellen)

    Grüße

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    dann musst du die Stildatei des makeindex-Aufrufes anpassen.

    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297
    Ah da kommen wir der Sache schon näher. Die sieht so aus:

    Code:
    \begin{filecontents}{Index_Stildatei.ist}
     quote '+'
    headings_flag 1
    heading_prefix "{\\bfseries "
    heading_suffix "}\\nopagebreak\n"
    symhead_positive "Symbole" 
    numhead_positive "Zahlen"
    delim_0 "\\dotfill "
    delim_1 "\\dotfill "
    delim_2 "\\dotfill "
    delim_r "~--~"
    suffix_2p "f"
    suffix_3p "ff"
    preamble "\\begin{theindex}\n\n"
    postamble "\n\n\\end{theindex}\n"
    \end{filecontents}
    Bei "suffix_2p" und 3p sehe ich die Zeichen schon, aber kann man hier irgendwie die Links beeinflussen oder sehen, warum die nicht funktionieren?

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297
    Ich habe es tatsächlich geschafft das Problem mit einem "kleinen" MiniBsp zu reproduzieren, hätte ich nicht gedacht, da mein Dokument so umfangreich ist. Bitte wundert euch daher nicht, um diverse "Hacks" oder Packages. Habe jedoch schon das gröbste entfernt. Aber man kann gut sehen, dass er immer auf die erste Seite springt bei dem Indexeintrag

    Code:
    %\listfiles%Listet eine *File List* in der .log-Datei auf
    
    \documentclass[pdftex,
    								final,
    								10pt,
    								toc=indented,
    								listof=totoc,
    								numbers=noenddot,
    								a4paper,
    								pagesize,
    								open=right,
    								twoside,
    								titlepage,
    								ngerman,
    								svgnames,
    								parskip=full-]{scrreprt} 
    
    
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    \begin{filecontents}{Index_Stildatei.ist}
     quote '+'
    headings_flag 1
    heading_prefix "{\\bfseries "
    heading_suffix "}\\nopagebreak\n"
    symhead_positive "Symbole" 
    numhead_positive "Zahlen"
    delim_0 "\\dotfill "
    delim_1 "\\dotfill "
    delim_2 "\\dotfill "
    delim_r "~--~"
    suffix_2p "f"
    suffix_3p "ff"
    preamble "\\begin{theindex}\n\n"
    postamble "\n\n\\end{theindex}\n"
    \end{filecontents}
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    
    
    
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    \usepackage{xspace}%setzt ein Leerzeichen nach einem Befehl ohne Argumente								
    \usepackage{ifthen}
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    			
    
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages		
    \usepackage{cmap}%PDF-Dateien durchsuchbar und kopierbar machen, vor Package: -fontenc- laden! 												               
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[english, ngerman]{babel}
    \usepackage{microtype}
    \usepackage{caption}
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    
    
    %+++++++++++++++++++++++++++++++++++++++ PATCH fuer Zaehlertiefen in den Caption-Packages
    % Patch, muß NACH caption und VOR subcaption eingebunden werden
    % Er bewirkt, daß zusätzlich der Zähler lofdepth bzw. lotdepth beachtet wird 
    \makeatletter
    \def\@@DeclareCaptionSubType#1[#2]#3{%
      \@ifundefined{c@#3}%
        {\caption@Error{No float type '#3' defined}}%
        {\@ifundefined{c@sub#3}%
           {\caption@Debug{New subtype `sub#3'}%
            \newcounter{sub#3}%
            \@namedef{ext@sub#3}{\csname ext@#3\endcsname}%
            \@@@DeclareCaptionSubType{#3}{@dotted\csname ext@#3\endcsname line}%
            \@cons\caption@subtypelist{{#3}}}%
           {\caption@Debug{Modify caption `sub#3'}}%
         \@namedef{sub#3name}{}%
         \@namedef{sub#3autorefname}{\csname #3name\endcsname}%
         #1% is \@firstoftwo in star form, and \@secondoftwo otherwise
         {\@namedef{p@sub#3}{}%
          \@namedef{thesub#3}{\csname the#3\endcsname.\@nameuse{#2}{sub#3}}}%
         {\@namedef{p@sub#3}{\csname the#3\endcsname}%
          \@namedef{thesub#3}{\@nameuse{#2}{sub#3}}}%
         \@namedef{theHsub#3}{\csname theH#3\endcsname.\arabic{sub#3}}%
        }}
    \def\@@@DeclareCaptionSubType#1#2{%
      \@namedef{l@sub#1}{\@nameuse{#2}{2}{3.8em}{3.2em}}%
      \@ifundefined{#2}%
        {\@namedef{#2}##1{%
           \ifnum ##1>\@nameuse{c@\csname ext@#1\endcsname depth}%
             \let\caption@next\@gobblefour
           \else
             \def\caption@next{\@dottedtocline{##1}}%
           \fi\caption@next}}%
        {}}
    \makeatother
    %+++++++++++++++++++++++++++++++++++++++ PATCH fuer Zaehlertiefen in den Caption-Packages
    
    
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    \usepackage[list=on]{subcaption}
    \usepackage{varioref}
    
    
    \usepackage[svgnames]{xcolor}
    \usepackage{fixfoot}%Spezielle Fussnoten
    \usepackage{footmisc}%Spezielle Fussnoten
    %\usepackage[pdftex]{pdfpages}
    \usepackage{pdfpages}
    
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    
    
    
    %_______________________________ Nummerierung der Fussnoten durchgaengig			
    
    %\usepackage{chngcntr}%Fussnoten durchgaengig nummerieren
    %\counterwithout{footnote}{chapter}%Fussnoten durchgaengig nummerieren
    
    \usepackage{remreset} 
    \makeatletter 
    \@removefromreset{footnote}{chapter} 
    \makeatother
    %_______________________________ Nummerierung der Fussnoten durchgaengig
    
    
    \usepackage{scrhack}
    \usepackage{listings}
    
    
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages									
    \usepackage{tikz}
    \usetikzlibrary{shapes,decorations,shadows,fadings}
    \usepackage[explicit]{titlesec}
    \usepackage{titletoc}
    \usepackage{fancybox}
    \usepackage{expdlist}
    \usepackage{calc}%Rechnen mit Abstaenden zb. 12pt-0.5ex
    
    
    
    \usepackage{setspace}
    \usepackage{graphicx}
    \usepackage{eso-pic}
    \usepackage{textcomp}
    \usepackage[style=swiss]{csquotes}
    
    
    \PassOptionsToPackage{hyphens}{url}
    \usepackage{hyperref}%muss vor minitoc geladen werden
    
    
    
    \usepackage[numbers]{natbib}
    \usepackage{multibib}
    \newcites{On}{Online Quellen}
    
    
    \usepackage[ngerman]{translator}
    \usepackage[toc,acronym]{glossaries}
    \usepackage{multicol}
    \usepackage{multirow}
    \usepackage{slashbox}
    
    
    %_______________________________ Index-Package laden (splitidx)
    
    \usepackage{splitidx}
    %_______________________________ Index-Package laden (splitidx)
    
    
    
    \usepackage[inner=2.3cm,outer=1.75cm,top=2.25cm,bottom=2.25cm]{geometry}%twoside
    
    
    
    \usepackage{scrtime}
    \usepackage{framed}
    \usepackage{colortbl}
    \usepackage{ragged2e,booktabs}
    \usepackage{array, tabularx}
    \usepackage{fancyhdr}
    \usepackage{rotating}
    \usepackage{wrapfig}
    \usepackage{placeins}
    \usepackage{picins}
    \usepackage{dirtree}
    \usepackage{mdwlist}
    \usepackage{courier}
    \usepackage{lastpage}
    \usepackage{keystroke}
    %+++++++++++++++++++++++++++++++++++++++ Laden diverser Packages
    
    
    
    \clubpenalty=10000% Vermeidung von Hurenkindern und Schusterjungen
    \widowpenalty=10000                                        
    \displaywidowpenalty=10000                                 
    \hbadness=10000
    \vbadness=10000
    
    
    \makeindex
    
    
    \newindex[Sachregister]{idx}
    \newindex[IT-Register]{itr}
    \newindex[HnF-Interface-Tool-Register]{hnfit}
    \newindex[FlexLM-Controller-Register]{fc}
    
    
    \begin{document}
    
    \chapter{Erste Seite}
    fsldjfisdfjisdfsdf
    
    
    
    \chapter{Testchaper}
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    
    \newpage
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    
    
    
    %+++++++++++++++++++++++++++++++++++++++ Indexverzeichnis (4-fach)
    
    \renewcommand{\indexpagestyle}{fancy}
    \phantomsection
    %\printindex*%gibt alle definierten nacheinander aus
    
    \printindex[idx]
    \printindex[itr]
    \printindex[hnfit]
    \printindex[fc]
    
    %+++++++++++++++++++++++++++++++++++++++ Indexverzeichnis (4-fach)
    
    
    \end{document}

    So und das ganze kompiliere ich mit folgender Batch-Datei:

    Code:
    Mode con cols=100 lines=40
    TITLE ### Erzeugung des LateX-Dokuments (MAX CAPACITY) ###
    @echo off
    CLS
    COLOR 17
    ECHO PDF-Latex-RUN
    ECHO =======================================
    pdflatex --extra-mem-top=2000000 IndexLinkProb
    
    CLS
    COLOR 20
    ECHO MAKEGLOSSARIES-RUN
    ECHO =======================================
    makeglossaries IndexLinkProb
    
    CLS
    COLOR 17
    ECHO PDF-Latex-RUN
    ECHO =======================================
    pdflatex --extra-mem-top=2000000 IndexLinkProb
    
    CLS
    COLOR 20
    ECHO MAKEGLOSSARIES-RUN
    ECHO =======================================
    makeglossaries IndexLinkProb
    
    CLS
    COLOR 47
    ECHO BIBTEX-RUN (MAINDOC)
    ECHO =======================================
    bibtex IndexLinkProb
    
    CLS
    COLOR 47
    ECHO BIBTEX-RUN (ON)
    ECHO =======================================
    bibtex On
    
    CLS
    COLOR 3
    ECHO MAKEINDEX-RUN
    ECHO =======================================
    rem makeindex -s Index_Stildatei.ist -g IndexLinkProb.idx
    splitindex IndexLinkProb.idx -- -s Index_Stildatei.ist -g
    
    CLS
    COLOR 17
    ECHO PDF-Latex-RUN
    ECHO =======================================
    pdflatex --extra-mem-top=2000000 IndexLinkProb
    
    CLS
    COLOR 4
    ECHO PDF-Latex-RUN
    ECHO =======================================
    pdflatex --extra-mem-top=2000000 IndexLinkProb
    
    CLS
    COLOR fc
    ECHO PDF-Latex-RUN
    ECHO =======================================
    pdflatex --extra-mem-top=2000000 IndexLinkProb
    wobei die Tex-datei "IndexLinkProb.tex" heißt. Oder man macht in der Batch-Datei schnell Suchen/Ersetzen

    Ich hoffe mir kann da jmd helfen bei dem blöden Problem

    Vielen Dank auf jeden Fall schon mal...
    Geändert von sharpType (04-08-2011 um 09:55 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    Hallo,

    das sieht nach einem hyperref-Problem aus. Lade das Paket mal *nach* splitidx...

    Christian.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  6. #6
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297
    Hallo,

    leider Fehlanzeige

    Schaut euch mal das folgende MiniBsp an. Habe es geschafft weiter zu minimieren und das Problem besteht immernoch. Habe nun kaum noch etwas drin.

    Code:
    \documentclass[pdftex,
    								final,
    								10pt,
    								toc=indented,
    								listof=totoc,
    								numbers=noenddot,
    								a4paper,
    								pagesize,
    								open=right,
    								twoside,
    								titlepage,
    								ngerman,
    								svgnames,
    								parskip=full-]{scrreprt} 
    
    
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    \begin{filecontents}{Index_Stildatei.ist}
     quote '+'
    headings_flag 1
    heading_prefix "{\\bfseries "
    heading_suffix "}\\nopagebreak\n"
    symhead_positive "Symbole" 
    numhead_positive "Zahlen"
    delim_0 "\\dotfill "
    delim_1 "\\dotfill "
    delim_2 "\\dotfill "
    delim_r "~--~"
    suffix_2p "f"
    suffix_3p "ff"
    preamble "\\begin{theindex}\n\n"
    postamble "\n\n\\end{theindex}\n"
    \end{filecontents}
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    
    
    \usepackage{xspace}						
    \usepackage{ifthen}												               
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[english, ngerman]{babel}
    \usepackage{hyperref}
    \usepackage{splitidx}
    \usepackage[inner=2.3cm,outer=1.75cm,top=2.25cm,bottom=2.25cm]{geometry}%twoside
    \usepackage{fancyhdr}
    
    
    \makeindex
    
    \newindex[Sachregister]{idx}
    \newindex[IT-Register]{itr}
    \newindex[HnF-Interface-Tool-Register]{hnfit}
    \newindex[FlexLM-Controller-Register]{fc}
    
    \begin{document}
    \chapter{Erste Seite}
    fsldjfisdfjisdfsdf
    \chapter{Testchaper}
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    \newpage
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    
    
    \renewcommand{\indexpagestyle}{fancy}
    \phantomsection
    
    
    \printindex[idx]
    \printindex[itr]
    \printindex[hnfit]
    \printindex[fc]
    
    \end{document}

  7. #7
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297
    Also ganz ehrlich: Da stimmt etwas nicht.

    Da ist nichts mehr drin im Beispiel. Kann es vielleicht sein, dass es einfach technisch nicht funktioniert?

    Weiter minimiert:

    Code:
    \documentclass[pdftex]{scrreprt} 
    
    
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    \begin{filecontents}{Index_Stildatei.ist}
     quote '+'
    headings_flag 1
    heading_prefix "{\\bfseries "
    heading_suffix "}\\nopagebreak\n"
    symhead_positive "Symbole" 
    numhead_positive "Zahlen"
    delim_0 "\\dotfill "
    delim_1 "\\dotfill "
    delim_2 "\\dotfill "
    delim_r "~--~"
    suffix_2p "f"
    suffix_3p "ff"
    preamble "\\begin{theindex}\n\n"
    postamble "\n\n\\end{theindex}\n"
    \end{filecontents}
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    
    											               
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[english, ngerman]{babel}
    
    \usepackage{splitidx}
    \usepackage{hyperref}
    
    \makeindex
    
    \newindex[Sachregister]{idx}
    \newindex[IT-Register]{itr}
    \newindex[HnF-Interface-Tool-Register]{hnfit}
    \newindex[FlexLM-Controller-Register]{fc}
    
    \begin{document}
    \chapter{Erste Seite}
    fsldjfisdfjisdfsdf
    \chapter{Testchaper}
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    \newpage
    \section{Testsection}
    Hier ist ein Beispieltext.
    \sindex[fc]{Stichwort}
    
    
    
    \printindex[idx]
    \printindex[itr]
    \printindex[hnfit]
    \printindex[fc]
    
    \end{document}

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von sharpType Beitrag anzeigen
    PS: Vielleicht kann man das in SpliIndex irgednwie per Option einstellen, dass er einfach jede Seite auflisten soll, anstatt das "f" dahinerklemmen? Konnte diesbezüglich aber leider nichts finden. (Ist prinzipiell ja auch ziemlich blöd das einzustellen)
    Wenn Du suffix_2p und suffix_3p nicht definierst und Option -r nicht angibst, sollte MakeIndex genau das tun. Da die Verwendung von SplitIndex hier überhaupt keinen Einfluss auf das Ergebnis hat, hier einfach ein Beispiel mit MakeIndex:
    Code:
    \documentclass[pagesize]{scrreprt} 
    
    
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    \begin{filecontents}{Index_Stildatei.ist}
    quote '+'
    headings_flag 1
    heading_prefix "{\\bfseries "
    heading_suffix "}\\nopagebreak\n"
    symhead_positive "Symbole" 
    numhead_positive "Zahlen"
    delim_0 "\\dotfill "
    delim_1 "\\dotfill "
    delim_2 "\\dotfill "
    delim_r "~--~"
    preamble "\\begin{theindex}\n\n"
    postamble "\n\n\\end{theindex}\n"
    \end{filecontents}
    %+++++++++++++++++++++++++++++++++++++++ INDEX STILDATEI
    
                                                               
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[english, ngerman]{babel}
    
    \usepackage{makeidx}
    \usepackage{hyperref}
    
    \makeindex
    
    \begin{document}
    \chapter{Erste Seite}
    fsldjfisdfjisdfsdf
    \chapter{Testchaper}
    \section{Testsection}
    Hier ist ein Beispieltext.
    \index{Stichwort}
    \newpage
    \section{Testsection}
    Hier ist ein Beispieltext.
    \index{Stichwort}
    
    \printindex
    
    \end{document}
    Sobald man jedoch die beiden suffix_…-Zeilen in die ist-Datei wieder mit reinnimmt, geht es in die Hose. Das liegt dann schlicht daran, dass MakeIndex das f und das ff an die formatierte Seitenzahl anhängt, also ein \hyperpage{2f} produziert und auf der anderen Seite hyperref davon ausgeht, dass das Argument von \hyperpage eine Komma-separierte Liste von Seitenzahlen ist. Deshalb geht \hyperpage davon aus, dass die Seitenzahl 2f lautet. Tatsächlich treibt Heiko inzwischen eine ganze Menge Aufwand, um mit verschiedenen Seitenzahlenformaten zurecht zu kommen. Seitenzahlen mit f- und ff-Anhängsel (letztes ist ohnehin ziemlich unpraktisch) gehören aber nicht dazu.

  9. #9
    Registrierter Benutzer
    Registriert seit
    14.05.2009
    Beiträge
    297
    Hey,

    vielen Dank für den wertvollen Hinweis. Dann nehme ich die einfach raus, fertig.

    Aber es ist gut zu wissen, warum das eigentlich nicht geht.

    Vielen Dank!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •