deusdona
16-11-2010, 17:41
Hallo
bei der Erstellung eines zweispaltigen Index mit makeindex sollen die
zwei Spalten auf der letzten Seite ausbalanciert werden. Ich weiß,
dass sich sowohl mit dem Paket idxlayout als auch mit multicolumn
dieses Ziel erreichen lässt. Mein Problem ist allerdings, dass
zwischen einzelnen Indexeinträgen, die eigentlich zum selben
Buchstaben gehören, unerwünschte zusätzliche Zeilendurchschüsse
entstehen. Etwa so
Alexander, 23
Albi, 15
Auxerre, 13
Avignon, 11
Der Fehler scheint aber mit dem Seitenumbruch zusammenzuhängen, da er immer nur in der linken Spalte nach dem jeweils zweiten Eintrag passiert. Da die Einträge in der *.ind-Datei fehlerfrei sind, muss der Fehler wohl beim Ausbalancieren entstehen. Der Fehler ist in einem Minimalbeispiel nur annähernd reproduzierbar, hier konzentriert sich das Problem auf die letzte linke Spalte. Eine Änderung von \parskip auf einen starren Wert ahat keine positiven Auswirkungen. Der Fehler ist übrigens unter Verwendung von idxlayout statt multicol exakt derselbe.
Minimalbeispiel:
\documentclass[ngerman]{book}
\listfiles
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{makeidx}
\makeindex
\usepackage{multicol}
\makeatletter
\renewenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\setlength{\columnseprule}{0pt}
\setlength{\columnsep}{35pt}
\begin{multicols}{2}[\chapter*{\indexname}] %Adjust the 2 for more
columns
\markboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\thispagestyle{plain}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.3pt}
\relax
\let\item\@idxitem}%
{\end{multicols}\if@restonecol\onecolumn\else\clea rpage\fi}
\makeatother
\begin{document}
Ein normaler Eintrag\index{Eintrag!normal}
\newpage
Ein fetter Eintrag\index{Eintrag!fett|textbf}
\newpage
Hier\index{hier} kommt\index{kommt} jetzt\index{jetzt} verdammt
\index{verdammt} sinnloser\index{sinnlos} Text\index{Text}, der nichts
\index{nichts} anderes\index{anderes} macht\index{machen}, als
\index{als} verdammt\index{verdammt} viele\index{viele}
unterschiedlicher\index{unterschiedlich} Wörter\index{Woerter@Wörter}
zu benutzen\index{benutzen}, damit\index{damit} jedes\index{jedes}
einzelne\index{einzeln} verdammte\index{verdammt} Wort\index{Wort} in
einen Index-Eintrag\index{Eintrag!Index} verwandelt\index{verwandeln}
werden kann\index{koennen@können}, um dadurch\index{dadurch} einen
möglichst\index{moeglichst@möglichst} langen\index{lang} Index
\index{Index} zu erzeugen\index{erzeugen}.
\index{a}\index{b}\index{c}\index{d}\index{e}\inde x{f}\index{g}
\index{h}\index{hh}\index{i}\index{j}\index{k}\ind ex{l}\index{m}
\index{n}\index{o}\index{p}\index{q}\index{r}\inde x{s}\index{t}
\index{u}
\index{v}
\index{w}
%\index{x}
%\index{y}
%\index{z}
\index{aa}
\index{bb}
\index{cc}
\index{ww}
\index{www}
\index{wwww}
\index{wwwww}
\index{wwwwww}
\index{wwwwwww}
\index{wwwwwwww}
\index{wa}
\index{wwa}
\index{wwb}
\index{wwc}
\index{wwd}
\index{wwe}
\index{wwdd}
\index{wwf}
\index{wwg}
\index{wwh}
\newpage
\printindex
\end{document}
Vielen Dank für alle Hilfe
Christofer.
bei der Erstellung eines zweispaltigen Index mit makeindex sollen die
zwei Spalten auf der letzten Seite ausbalanciert werden. Ich weiß,
dass sich sowohl mit dem Paket idxlayout als auch mit multicolumn
dieses Ziel erreichen lässt. Mein Problem ist allerdings, dass
zwischen einzelnen Indexeinträgen, die eigentlich zum selben
Buchstaben gehören, unerwünschte zusätzliche Zeilendurchschüsse
entstehen. Etwa so
Alexander, 23
Albi, 15
Auxerre, 13
Avignon, 11
Der Fehler scheint aber mit dem Seitenumbruch zusammenzuhängen, da er immer nur in der linken Spalte nach dem jeweils zweiten Eintrag passiert. Da die Einträge in der *.ind-Datei fehlerfrei sind, muss der Fehler wohl beim Ausbalancieren entstehen. Der Fehler ist in einem Minimalbeispiel nur annähernd reproduzierbar, hier konzentriert sich das Problem auf die letzte linke Spalte. Eine Änderung von \parskip auf einen starren Wert ahat keine positiven Auswirkungen. Der Fehler ist übrigens unter Verwendung von idxlayout statt multicol exakt derselbe.
Minimalbeispiel:
\documentclass[ngerman]{book}
\listfiles
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{makeidx}
\makeindex
\usepackage{multicol}
\makeatletter
\renewenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\setlength{\columnseprule}{0pt}
\setlength{\columnsep}{35pt}
\begin{multicols}{2}[\chapter*{\indexname}] %Adjust the 2 for more
columns
\markboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\thispagestyle{plain}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.3pt}
\relax
\let\item\@idxitem}%
{\end{multicols}\if@restonecol\onecolumn\else\clea rpage\fi}
\makeatother
\begin{document}
Ein normaler Eintrag\index{Eintrag!normal}
\newpage
Ein fetter Eintrag\index{Eintrag!fett|textbf}
\newpage
Hier\index{hier} kommt\index{kommt} jetzt\index{jetzt} verdammt
\index{verdammt} sinnloser\index{sinnlos} Text\index{Text}, der nichts
\index{nichts} anderes\index{anderes} macht\index{machen}, als
\index{als} verdammt\index{verdammt} viele\index{viele}
unterschiedlicher\index{unterschiedlich} Wörter\index{Woerter@Wörter}
zu benutzen\index{benutzen}, damit\index{damit} jedes\index{jedes}
einzelne\index{einzeln} verdammte\index{verdammt} Wort\index{Wort} in
einen Index-Eintrag\index{Eintrag!Index} verwandelt\index{verwandeln}
werden kann\index{koennen@können}, um dadurch\index{dadurch} einen
möglichst\index{moeglichst@möglichst} langen\index{lang} Index
\index{Index} zu erzeugen\index{erzeugen}.
\index{a}\index{b}\index{c}\index{d}\index{e}\inde x{f}\index{g}
\index{h}\index{hh}\index{i}\index{j}\index{k}\ind ex{l}\index{m}
\index{n}\index{o}\index{p}\index{q}\index{r}\inde x{s}\index{t}
\index{u}
\index{v}
\index{w}
%\index{x}
%\index{y}
%\index{z}
\index{aa}
\index{bb}
\index{cc}
\index{ww}
\index{www}
\index{wwww}
\index{wwwww}
\index{wwwwww}
\index{wwwwwww}
\index{wwwwwwww}
\index{wa}
\index{wwa}
\index{wwb}
\index{wwc}
\index{wwd}
\index{wwe}
\index{wwdd}
\index{wwf}
\index{wwg}
\index{wwh}
\newpage
\printindex
\end{document}
Vielen Dank für alle Hilfe
Christofer.