ist es möglich \index anstatt auf die Seitenzahl auch auf einen
anderen Zähler verweisen zu lassen?
Gruss,
DS
danstender <uzs...@uni-bonn.de> writes:
> ist es möglich \index anstatt auf die Seitenzahl auch auf einen
> anderen Zähler verweisen zu lassen?
Ja, das Paket index bietet diese Möglichkeit. Mit dem Befehl \newindex
kann man für einen Index auch festlegen auf welchen Zähler er sich
bezieht. Lies mal die Anleitung zum Paket "Index".
Man kann z. B. das folgende Fragment verwenden, um im Index auf die
Kapitel- und Abschnittsnummer zu verweisen:
--- snip ---
\usepackage{index} \newindex[@currentlabel]{default}{idx}{ind}{Index}
--- snip ---
Wenn man, wie in einem solchen Fall, Zähler der Form "X.Y.Z" habe kann
sollte man einen "index style" verwenden, in dem
page_compositor "."
angegeben ist
Tschüs,
Ralf
<snip>
\usepackage{index}
\newindex[num]{default}{idx}{ind}{Index}
\begin{document}
<...>
\index{sugata-}
\printindex
</snip>
("num" heisst mein Zähler). Es heisst allerdings immer:
<snip>
! Missing \endcsname inserted.
<to be read again>
\csname\endcsname
l.50 \index{sugata-}
</snip>
und foobar.idx ist eine leere Datei nach dem latex-Lauf.
Was mache ich falsch?
Gruss,
DS
So, foobar.idx ist jetzt ordentlich geschrieben, makeindex läuft auch,
foobar.ind ist auch o.k., beim letzten Latex-Lauf gibt es aber ein:
<snip>
! Undefined control sequence.
<argument> \@makeschapterhead
{\indexname }\ifx \index@prologue
\@empty \els...
l.1 \begin{theindex}
</snip>
??
Gruss,
DS
danstender <uzs...@uni-bonn.de> writes:
> So, foobar.idx ist jetzt ordentlich geschrieben, makeindex läuft auch,
> foobar.ind ist auch o.k., beim letzten Latex-Lauf gibt es aber ein:
>
> <snip>
> ! Undefined control sequence.
> <argument> \@makeschapterhead
> {\indexname }\ifx \index@prologue
> \@empty \els...
> l.1 \begin{theindex}
> </snip>
Hm, lass mich raten. Du verwendest als Dokumentklasse scrartcl. Wie
mir scheint ist das Paket "index" nur unter Berücksichtigung der
Klassen article, report und book geschrieben worden. Das Paket testet,
ob die Klasse article geladen ist. Wenn das nicht der Fall ist,
definiert es eine theindex-Umgebung, die den Befehl \@makeschapterhead
verwendet, der in den Dokumentklassen report und book aber auch in
scrreprt oder scrbook definiert ist. In scrartcl z. B. aber nicht.
Ich sehe zwei Möglichkeiten, das Problem zu umgehen:
1. Du gaukelst index.sty vor, dass article.cls geladen wurde. Eine
Definition der folgenden Art (vor \usepackage{index}) könnte das
erreichen:
\namedef{v...@article.cls}{}
(Ungetestet, da kein Minimalbeispiel vorlag.)
2. Du überschreibst die theindex-Umgebung mit einer eigenen. Eine
Vorlage wäre z. B. die theindex-Umgebung, die index.sty verwendet,
wenn article.cls geladen ist.
Tschüs,
Ralf
> 1. Du gaukelst index.sty vor, dass article.cls geladen wurde. Eine
> Definition der folgenden Art (vor \usepackage{index}) könnte das
> erreichen:
>
> \namedef{v...@article.cls}{}
>
> (Ungetestet, da kein Minimalbeispiel vorlag.)
\@namedef{v...@article.cls}{}
Allerdings können andere Pakete nun sowohl article als auch scrartcl
als Klasse sehen. Dem kann man abhelfen, in dem man die
alte Bedeutung von \v...@article.cls wiederherstellt.
\begingroup
\makeatletter
\def\x#1#2{%
\endgroup
\let\Saved@VerArticleCls#1%
\@namedef{v...@article.cls}{}%
#2%
\let#1\Saved@VerArticleCls
}%
\expandafter\x\csname v...@article.cls\endcsname{%
\RequirePackage{index}%
}
Oder als Paket:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{index-scr}%
[2008/06/30 Package index with scr* classes (HO)]%
\@ifpackageloaded{index}{%
\PackageError{index-scr}{%
Package `index' is already loaded%
}\@ehc
\endinput
}{}
\begingroup
\def\x#1#2{%
\endgroup
\let\Saved@VerArticleCls#1%
\providecommand*#1{}%
#2%
\let#1\Saved@VerArticleCls
}%
\@ifclassloaded{scrartcl}{}{%
\def\x{%
\endgroup
\@secondoftwo
}%
}%
\expandafter\x\csname v...@article.cls\endcsname{%
\RequirePackage{index}%
}
\endinput
(auch alles ungetestet)
> 2. Du überschreibst die theindex-Umgebung mit einer eigenen. Eine
> Vorlage wäre z. B. die theindex-Umgebung, die index.sty verwendet,
> wenn article.cls geladen ist.
Oder man nimmt die theindex-Umgebung der verwendeten Klasse scrartcl
und passt sie analog dazu an, wie das das Paket index mit der
theindex-Umgebung von article.cls tut.
%%% cut %%% scrindex.sty %%% cut %%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{scrindex}%
[2008/06/30 Package index with scr* classes (HO)]%
\RequirePackage{index}[2004/01/20]
\@ifclassloaded{scrartcl}{%
\renewenvironment{theindex}{%
\edef\indexname{%
\the\@nameuse{idxtitle@\@indextype}%
}%
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\idx@heading
\thispagestyle{\indexpagestyle}%
\columnseprule\z@
\columnsep 35\p@
\index@preamble\par\nobreak
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\parfillskip\z@ \@plus 1fil\relax
\let\item\@idxitem
}{%
\if@restonecol
\onecolumn
\else
\clearpage
\fi
}%
\@ifclasswith{scrartcl}{idxtotoc}{%
\renewcommand*{\idx@heading}{%
\twocolumn[%
\addsec{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}{%
\renewcommand*{\idx@heading}{%
\twocolumn[%
\section*{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}%
}{}
\@ifclassloaded{scrreprt}{%
\renewenvironment{theindex}{%
\edef\indexname{%
\the\@nameuse{idxtitle@\@indextype}%
}%
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\setchapterpreamble{\index@preamble}%
\idx@heading
\thispagestyle{\indexpagestyle}%
\columnseprule\z@
\columnsep 35\p@
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\parfillskip\z@ \@plus 1fil\relax
\let\item\@idxitem
}{%
\if@restonecol
\onecolumn
\else
\clearpage
\fi
}%
\@ifclasswith{scrreprt}{idxtotoc}{%
\renewcommand*{\idx@heading}{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\twocolumn[%
\addchap{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}{%
\renewcommand*{\idx@heading}{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\twocolumn[%
\chapter*{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}%
}{}
\@ifclassloaded{scrbook}{%
\renewenvironment{theindex}{%
\edef\indexname{%
\the\@nameuse{idxtitle@\@indextype}%
}%
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\setchapterpreamble{\index@preamble}%
\idx@heading
\thispagestyle{\indexpagestyle}%
\columnseprule\z@
\columnsep 35\p@
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\parfillskip\z@ \@plus 1fil\relax
\let\item\@idxitem
}{%
\if@restonecol
\onecolumn
\else
\clearpage
\fi
}%
\@ifclasswith{scrbook}{idxtotoc}{%
\renewcommand*{\idx@heading}{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\twocolumn[%
\addchap{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}{%
\renewcommand*{\idx@heading}{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\twocolumn[%
\chapter*{\indexname}%
\ifx\index@prologue\@empty
\else
\index@prologue
\bigskip
\fi
]%
\@mkboth{\indexname}{\indexname}%
}%
}%
}{}
\endinput
%%% cut %%% scrindex.sty %%% cut %%%
Viele Grüße
Heiko <ober...@uni-freiburg.de>
> Oder man nimmt die theindex-Umgebung der verwendeten Klasse scrartcl
> und passt sie analog dazu an, wie das das Paket index mit der
> theindex-Umgebung von article.cls tut.
>
> %%% cut %%% scrindex.sty %%% cut %%%
> [...]
> %%% cut %%% scrindex.sty %%% cut %%%
Ist nun auch auf CTAN verfügbar.
Viele Grüße
Heiko <ober...@uni-freiburg.de>