Uneinheitliche Abstände zwischen den Einträgen im Index

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


Tassadar
Forum-Anfänger
Forum-Anfänger
Beiträge: 27
Registriert: Mi 6. Sep 2017, 00:25

Uneinheitliche Abstände zwischen den Einträgen im Index

Beitrag von Tassadar »

Hallo alle zusammen!

Ich bin gerade dabei ein LaTeX Dokument zu schreiben um die Bögen für ein Herbarium zu drucken. Idee ist, dass man die ganzen Infos in einer externen Datei hat und LaTeX für jede Pflanze eine Seite mit einem einheitlichen Etikett erstellt und ein sortierten Index produziert der am Ende als so ne Art Inhaltsverzeichnis dient.

Mein Problem ist, dass in dem Index der Abstand zwischen den Einträgen nicht einheitlich ist und ich verstehe nicht warum.

Zusatzfrage: Wenn ich mich doch entscheide wieder zwei Spalten zu verwenden, wie kann ich erreichen, dass er den Spaltenumbruch nicht innerhalb eines Indexeintrags macht?

Hier ein MWE:

Code: Alles auswählen

\begin{filecontents*}{pflanzen.dat}
Berg-Ahorn
Acer pseudoplatanus
L.
Sapindaceae
Sapindales
Funddatum
Fundort
Standort

Knoblauchsrauke
Alliaria petiolata
M.Bieb.
Brassicaceae
Brassicales
Funddatum2
Fundort2
Standort2

Bärlauch
Allium ursinum
L.
Amaryllidaceae
Asparagales
Funddatum3
Fundort3
Standort3

Gänseblümchen
Bellis perennis
L.
Asteraceae
Asterales
Funddatum4
Fundort4
Standort4

Hänge-Birke
Betula pendula
Roth
Betulaceae
Fagales
Funddatum5
Fundort5
Standort5

Taube Trespe
Bromus sterilis
L.
Poaceae
Poales
Funddatum6
Fundort6
Standort6
\end{filecontents*}
\begin{filecontents}{indexstyle.ist}
quote '+'
delim_0 " "
delim_1 " "
delim_2 " "
delim_n " "
\end{filecontents}

\documentclass[ngerman]{scrartcl}
\usepackage{textmerg}
\usepackage{isodate}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{imakeidx}\makeindex[columns=1,options=-s indexstyle.ist]

\usepackage[% 
left=1cm, right=1cm,% 
top=2.3cm, bottom=1.5cm]{geometry} 

\pagestyle{empty}

\Fields{\name\latname\autor\familie\gattung\datum\fundort\lage\leer}

\begin{document}
%\tableofcontents

\Merge{pflanzen.dat}{%
  %\addsec[\name\ \protect\normalfont\protect\emph{(\latname)}]
   %      {\name\\{\normalfont\normalsize\emph{\latname}}}%
  $~~$\\
  \index{\familie!\textit{\latname}|phantom}
  \vfill
  \hfill
  \begin{tabularx}{9cm}{|Xr|}
    \hline
    Name:	   & \textbf{\textit{\latname}~\autor}\\
    dt. Name:   & \name\\
    Familie:   & \familie\\
    Gattung:   & \gattung\\
    Gefunden am: & \datum \\
    \strut\phantom{Gefunden~} in: & \fundort\\
    & (\lage)\\
    leg. \& det.: & Name\\
    \hline
  \end{tabularx}
  \newpage
}

\printindex
\end{document}

Tassadar
Forum-Anfänger
Forum-Anfänger
Beiträge: 27
Registriert: Mi 6. Sep 2017, 00:25

Beitrag von Tassadar »

Ok falls es irgendwen mal interessieren sollte, ich habe es selber gelöst.

Der uneinheitliche Abstand kommt daher, dass es eigentlich so vorgesehen ist, dass Einträge mit dem gleichen Anfangsbuchstaben ohne Abstand gelistet werden, und der Abstand zwischen Items mit unterschiedlichem Anfangsbuchstaben gesetzt wird.

Wenn man den Abstand zwischen jedem Item haben möchte, dann kann man folgende Zeile in die style.ist Datei hinzufügen:

Code: Alles auswählen

item_0 "\n\n \\indexspace \n\n\\item "
Um dann zu verhindern, dass sich dieser indexspace mit dem der normalerweise gesetzt würde kumuliert, muss man den normalen zwischen zwei Items mit unterschiedlichem Anfangsbuchstaben entfernen:

Code: Alles auswählen

group_skip " "
Bzgl. der Frage, wie man verhindert, dass zwischen Subitems umgebrochen wird wenn man mehr als eine Spalte verwendet:

Code: Alles auswählen

\makeatletter
\renewcommand{\subitem}{\@idxitem\nobreak\hspace*{20\p@}}
\makeatother

Antworten