Erster Index-Eintrag nicht bündig

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Erster Index-Eintrag nicht bündig

von Gast » Di 19. Feb 2019, 17:50

Da der \vskip danach negativ ist, wundert mich das zwar etwas, aber es soll mir recht sein.

von Thomas D » Di 19. Feb 2019, 17:07

Das mit dem Verschlanken des Codes hat gut funktioniert. Eine Ergänzung bei \indexheading war noch notwendig, damit nicht der Fall eintritt, dass eine Überschrift auf einer Seite beginnt und die Einträge erst auf der nächsten Seite weitergehen (s. Beispiel im Anhang mit der Überschrift "S").

Durch die Ergänzung mit \nopagebreak ist dieser Fall nun aber auch abgehandelt.
\newcommand*{\indexheading}[1]{
 \vskip \baselineskip
  \textbf{#1}
  \nopagebreak %war noch notwendig
  \vskip-\baselineskip
}
Dateianhänge
Latex Index Number3.png
Latex Index Number3.png (60.62 KiB) 2171 mal betrachtet

von Gast » Di 19. Feb 2019, 15:04

Ich würde damit anfangen, den Code zu vereinfachen und dann auf die richtige Hierarchieebene für den Index achten:
\documentclass[ngerman]{scrbook}
\usepackage{fontspec}
\usepackage{babel}

\makeatletter

\usepackage{imakeidx}
\usepackage{filecontents}

\begin{filecontents*}{index.ist}
headings_flag 1
heading_prefix "\\indexheading{"
heading_suffix "}"

delim_0 " "
delim_1 " "

group_skip "\n"
preamble "\\begin{theindex}\\raggedright\\footnotesize"
postamble "\n\\end{theindex}"
\end{filecontents*}

\newcommand{\indextitle}{Index}
% \indexsetup{level=\section*}% Sorry, aber das ist Unfug, weil es zu einer
                              % inkosistenten Gliederung führt!

\makeindex[
columns=2,
intoc,
title=\indextitle,
options=-s index
]

\newcommand*{\indexheading}[1]{%
  \vskip \baselineskip
  \textbf{#1}%
  \vskip-\baselineskip
}
\makeatletter
\renewcommand*{\@idxitem}
{\par\hangindent 1.5em\hskip 1.5em}
\renewcommand{\subitem}{\par\hskip 2.5em}
\makeatother


\AtBeginDocument{%
  \def\labelitemi{ }%
}

\makeatother

\begin{document}
\chapter{Test}
\index{Affe!Anton} \index{Baum!Bernhard} \index{Baum!Carbara}
\index{Affe!Bnton} \index{Baum!Cernhard} \index{Baum!Darbara}
\index{Affe!Cnton} \index{Baum!Dernhard} \index{Baum!Earbara}
\index{Affe!Dnton} \index{Baum!Eernhard} \index{Baum!Farbara}
\index{Affe!Enton} \index{Baum!Fernhard} \index{Baum!Garbara}
\index{Affe!Fnton} \index{Baum!Gernhard} \index{Baum!Harbara}
\index{Affe!Gnton} \index{Baum!Hernhard} \index{Baum!Iarbara}
\index{Affe!Hnton} \index{Baum!Iernhard} \index{Baum!Jarbara}
\index{Affe!Inton} \index{Baum!Jernhard} \index{Baum!Karbara}
\index{Affe!Jnton} \index{Baum!Kernhard} \index{Baum!Larbara}
\index{Affe!Knton} \index{Baum!Lernhard} \index{Baum!Marbara}

\printindex

\end{document}

Erster Index-Eintrag nicht bündig

von Thomas D » Di 19. Feb 2019, 14:27

Hallo

Ich habe mit imakeidx ein Stichwortverzeichnis erstellt. Es klappt soweit auch alles, wie es soll. Einzig der erste Eintrag im Stichwortverzeichnis ist nicht bündig mit dem Eintrag in der zweiten Spalte (auf den Folgeseiten passt wieder alles). Die Ausgabe siehe Anhang.

Das Minimalbeispiel schaut wie folgt aus:
\documentclass[11pt,ngerman,hyphens]{scrbook}
\usepackage{fontspec}
\usepackage{babel}

\makeatletter

\usepackage{imakeidx}
\usepackage{filecontents}
\usepackage{multicol}

\begin{filecontents*}{index.ist}
headings_flag 1
heading_prefix "\\indexheading{"
heading_suffix "}"

delim_0 " "
delim_1 " "

group_skip "\n"
preamble "\\begin{theindex}\\starttheindex"
postamble "\n\\stoptheindex\\end{theindex}"
\end{filecontents*}

\newcommand{\indextitle}{Index}
\indexsetup{level=\section*}

\makeindex[
columns=2,
intoc,
title=\indextitle,
options=-s index
]

\newcommand*{\indexheading}[1]{
  \indexrule
  \textbf{#1}
\par
  \nopagebreak
  \vskip-\baselineskip
}
\newcommand*{\indexrule}{
  \par\nopagebreak
  \vskip-\ht\strutbox
  \hfill
\par\pagebreak[3]
  \vskip -\baselineskip
  \hfill
\par\nobreak
}
\newcommand*{\starttheindex}{\raggedcolumns\begin{footnotesize}}
\newcommand*{\stoptheindex}{\indexrule\end{footnotesize}}
\makeatletter
\renewcommand*{\@idxitem}
{\par\hangindent 1.5em\hskip 1.5em}
\renewcommand{\subitem}{\par\hskip 2.5em}
\makeatother


\AtBeginDocument{
  \def\labelitemi{ }
}

\makeatother

\begin{document}
\index{Affe!Anton} \index{Baum!Bernhard} \index{Baum!Carbara}
\index{Affe!Bnton} \index{Baum!Cernhard} \index{Baum!Darbara}
\index{Affe!Cnton} \index{Baum!Dernhard} \index{Baum!Earbara}
\index{Affe!Dnton} \index{Baum!Eernhard} \index{Baum!Farbara}
\index{Affe!Enton} \index{Baum!Fernhard} \index{Baum!Garbara}
\index{Affe!Fnton} \index{Baum!Gernhard} \index{Baum!Harbara}
\index{Affe!Gnton} \index{Baum!Hernhard} \index{Baum!Iarbara}
\index{Affe!Hnton} \index{Baum!Iernhard} \index{Baum!Jarbara}
\index{Affe!Inton} \index{Baum!Jernhard} \index{Baum!Karbara}
\index{Affe!Jnton} \index{Baum!Kernhard} \index{Baum!Larbara}
\index{Affe!Knton} \index{Baum!Lernhard} \index{Baum!Marbara}

\begin{flushleft}
\printindex
\par\end{flushleft}
\end{document}
Dateianhänge
Latex Index Number2.png
Latex Index Number2.png (77.08 KiB) 2189 mal betrachtet

Nach oben