PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multiind und Hyperref



HATEthePLOT
28-11-2008, 18:19
Hallo zusammen,

Mein Problem: das Paket Hyperref verweist nicht auf die richtigen Seiten der Indizes. Folgt man z.B. dem Link zum Namensverzeichnis, landet man beim letzten funktionierenden Eintrag (im Mini-Bsp. Punkt 1.1)


\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{multind}
\makeindex{index}
\makeindex{name}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\newpage

\section{Test 1}
\subsection{Unter-Test}

\printindex{index}{{Index}}
\printindex{name}{{Namensverzeichnis}}

\end{document}

folgendes habe ich mit Google gefunden: http://osdir.com/ml/tex.german/2003-02/msg00154.html
ich will aber nur ungerne mein Paket wechseln, da ich für sowas eigentlich keine Zeit mehr habe.

Danke schonmal für Hilfe

rais
28-11-2008, 20:53
Moin moin,


Mein Problem: das Paket Hyperref verweist nicht auf die richtigen Seiten der Indizes. Folgt man z.B. dem Link zum Namensverzeichnis, landet man beim letzten funktionierenden Eintrag (im Mini-Bsp. Punkt 1.1)

versuch es so:


\documentclass[paper=a4,fontsize=12pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{multind}
\makeindex{index}
\makeindex{name}

\usepackage{hyperref}

\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}%\printindex{Index}{Name}, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

\begin{document}
\tableofcontents
\newpage

\section{Test 1}
\subsection{Unter-Test}

\printindex{index}{{Index}}
\printindex{name}{{Namensverzeichnis}}

\end{document}

MfG

HATEthePLOT
30-11-2008, 00:03
Vielen Dank,

hat funktioniert mit einer kleinen Änderung:


\makeatother
\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{name}{Namensverzeichnis}, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

vor \printindex in der vor-vorletzten war das %-Zeichen zuviel.

Vielen Dank trotzdem für die schnelle Hilfe, die das Problem lösen konnte!

rais
30-11-2008, 01:06
Vielen Dank,

hat funktioniert mit einer kleinen Änderung:


\makeatother
\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{name}{Namensverzeichnis}, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

vor \printindex in der vor-vorletzten war das %-Zeichen zuviel.

also das musst Du mir schon ein wenig genauer erklären ... einmal ganz agbesehen davon, daß



\makeatother
\makeatletterin meinem Quellcode in dieser Form gar nicht auftaucht:
das `}'-Zeichen vorm vermeintlich überflüssigen `%'-Zeichen beendet gerade die (Re-)Definition von `\printindex', das Kommentarzeichen (%) leitet genau das ein, eben einen Kommentar ... den Du hier auch nicht 1:1 wiedergegeben hast ... und Du bist Dir absolut sicher, daß Du einen `\printindex' bereits in Deiner Präambel benötigst?
MfG

HATEthePLOT
30-11-2008, 10:05
also das musst Du mir schon ein wenig genauer erklären ... einmal ganz agbesehen davon, daß
in meinem Quellcode in dieser Form gar nicht auftaucht:
das `}'-Zeichen vorm vermeintlich überflüssigen `%'-Zeichen beendet gerade die (Re-)Definition von `\printindex', das Kommentarzeichen (%) leitet genau das ein, eben einen Kommentar ... den Du hier auch nicht 1:1 wiedergegeben hast ... und Du bist Dir absolut sicher, daß Du einen `\printindex' bereits in Deiner Präambel benötigst?
MfG

ah ich hab den code falsch kopiert: ich hab deinen vorschlag für jeden meiner beiden indizes verwendet

also in etwa so:

\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{index}{Index}%, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{name}{Namensverzeichnis}%, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

im vorherigen thread hab ich den letzten block kopiert und ausversehen den schluss des ersten blocks mit erwischt.

dazu hab ich den code auch nicht in die präambel, sondern direkt dort eingefügt, wo ich ihn benötige. Sicher nicht die sauberste Art, oder?


\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{multind}
\makeindex{index}
\makeindex{name}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\newpage

\section{Test 1}
\subsection{Unter-Test}

\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{index}{Index}%, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

\makeatletter
\def\printindex#1#2{\@restonecoltrue\if@twocolumn\ @restonecolfalse\fi
\columnseprule \z@ \columnsep 35pt
\twocolumn[\addsec{#2}]
\@input{#1.ind}%
}\printindex{name}{Namensverzeichnis}%, Originaldefinition: siehe multind.sty Version 1.1b (1991/08/31)
\makeatother

\end{document}

funktioniert einwandfrei

HATEthePLOT
30-11-2008, 12:24
Sorry für den Doppelpost:

ich muss mich korrigieren, aber es funktioniert doch nicht so ganz einwandfrei: und zwar übergibt der Index keine Überschrift für z.B. die Kopfzeile. Dort steht dann immer die letzte aktive Überschrift.

Dies passiert mit deiner Lösung, aber auch mit meiner. DIe überschriften werden angegeben, wenn ich deinen Code vor dem Erstellen der Inidzes lade, aber dann funktionieren die Links wieder nicht.

mechanicus
30-11-2008, 13:33
ich muss mich korrigieren, aber es funktioniert doch nicht so ganz einwandfrei: und zwar übergibt der Index keine Überschrift für z.B. die Kopfzeile. Dort steht dann immer die letzte aktive Überschrift.


Hallo,

mir markboth (http://www.weinelt.de/latex/markboth.html) kannst du das einstellen.

Gruß
Marco