Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zähler bei \index

22 views
Skip to first unread message

danstender

unread,
Jun 30, 2008, 9:52:40 AM6/30/08
to
Hallo Leute,

ist es möglich \index anstatt auf die Seitenzahl auch auf einen
anderen Zähler verweisen zu lassen?

Gruss,
DS

Ralf Menzel

unread,
Jun 30, 2008, 10:07:36 AM6/30/08
to
Hallo,

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

danstender

unread,
Jun 30, 2008, 10:49:18 AM6/30/08
to
Ja o.k. astrein, hab's gefunden, allerdings bekomme ich es noch nicht
zu Laufen:

<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

danstender

unread,
Jun 30, 2008, 11:00:44 AM6/30/08
to
Blödsinn ... der Zähler der mit \newcounter{num} definiert worden ist
heisst ja "thenum"!

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

Ralf Menzel

unread,
Jun 30, 2008, 12:24:09 PM6/30/08
to
Hallo,

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

Heiko Oberdiek

unread,
Jun 30, 2008, 4:23:43 PM6/30/08
to
Ralf Menzel <men...@ls6.cs.uni-dortmund.de> wrote:

> 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>

Heiko Oberdiek

unread,
Jul 11, 2008, 12:06:41 AM7/11/08
to
Heiko Oberdiek <ober...@uni-freiburg.de> wrote:

> 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>

0 new messages