Mehrere Indices: Einordnung als \section in TOC

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


tutebatti
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 24. Sep 2019, 11:55

Mehrere Indices: Einordnung als \section in TOC

Beitrag von tutebatti »

Liebes Forum,

ich möchte in meinem Dokument mehrere Indices mittels Paket imakeidx anlegen. Soweit klappt alles. Problematisch ist nur die Formatierung der Hierarchieebene der Überschriften sowie die Einbindung in das Inhaltsverzeichnis; beides soll \section sein. Sie werden mir aber als unnumerierte \chapter angezeigt, wie es scheint. Verschiedene "Stellschrauben" konnten mir bisher nicht helfen, das Problem näher einzugrenzen: Auskommentieren von \appendix, Auskommentieren von \chapter{Indices}, Einstellung von \subsection (mit oder ohne *) bei \indexsetup, Einstellung von [nonewpage] bei \usepackage{imakeidex}...

Die Lösung hier konnte mir nicht weiterhelfen: mehrere-indices-t21375.html

Hier ein Minimalbeispiel, in der Hoffnung, das richtig erstellt zu haben:

Code: Alles auswählen

% Das ist mein LaTeX-Dokument.
\documentclass[11pt, a4paper, draft, oneside]{book}

\usepackage{polyglossia}
\setdefaultlanguage{german}

\usepackage{xltxtra}

\setmainfont[Mapping=tex-text]{Linux Libertine O}


%Indices
\usepackage{imakeidx}

\indexsetup{level=\section,toclevel=section}

%Definition der einzelnen Indices

\makeindex[name=index_syr,title=Index syrischer Begriffe]
\makeindex[name=index_ara,title=Index arabischer Begriffe]
\makeindex[name=index_gr, title=Index griechischer Begriffe]


\usepackage{sectsty}
\chapternumberfont{\large}
\chaptertitlefont{\LARGE}

\usepackage{tocbibind}

\begin{document}

\title{Minimalbeispiel: mehrere Indices}

\newcommand{\tscr}[1]{\textit{{#1}}}

%syrische Begriffe: kursiv und indiziert unter Index "index_syr"
\newcommand{\syrix}[1]{\tscr{#1}\index[index_syr]{#1@\tscr{#1}}}

%arabische Begriffe: kursiv und indiziert unter Index "index_ara"
\newcommand{\araix}[1]{\tscr{#1}\index[index_ara]{#1@\tscr{#1}}}

%griechische Begriffe: kursiv und indiziert unter Index "index_gr"
\newcommand{\grix}[1]{\tscr{#1}\index[index_gr]{#1@\tscr{#1}}}

\frontmatter

\maketitle
\tableofcontents

\mainmatter

\chapter{Zoologie}
Dieses Kapitel legt die grundlegenden biologischen Vorstellungen Barhebraeus' über menschliche Fortpflanzung und Schwangerschaft dar. Als Folie hierzu dient das \syrix{Ktābā d-Ḥēwat ḥekmtā} („Rahm der Weisheit“, hiernach \syrix{Ḥēwat}), das Opus magnum Barhebraeus'. Es deckt alle Bereiche ab, die in der Vormoderne zur Philosophie zählten. Innerhalb der Physik gehört hierzu neben grundlegenden Betrachtungen über Bewegung auch die Beschreibung der physischen, d. h. natürlichen Welt. Neben Mineralogie oder Botanik zählt hierunter auch die Zoologie als Wissenschaft vom Leben (gr. \grix{zōyon}).

Die wichtigste Vorlage für das \syrix{Ḥēwat} ist Ibn Sīnās \araix{aš-Šifāʾ}, zahlreiche weitere Quellen wurden mittlerweile identifiziert. Das exzerpierende und kompilatorische Vorgehen Barhebraeus' zeigt sich auch in diesem Werk.

\appendix

\chapter{Indices}
\printindex[index_syr]
\printindex[index_ara]
\printindex[index_gr]

\end{document}
% Ende des Dokumentes 


Ich benutze XeLaTeX (wegen der vielen benötigten Sonderzeichen) unter Ubuntu 18.04, manuelle Installation.

Vielen Dank schon mal!

Florian

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2160
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Das Problem entsteht offenbar, weil tocbibind nach imakeidx geladen wird.

Code: Alles auswählen

\documentclass[11pt, a4paper, draft, oneside]{book}

\usepackage{polyglossia}
\setdefaultlanguage{german}

\usepackage{xltxtra}

\setmainfont[Mapping=tex-text]{Linux Libertine O}

\usepackage{tocbibind}% verschoben
\usepackage{csquotes}% für \enquote
%Indices
\usepackage{imakeidx}

\indexsetup{level=\section, noclearpage}% letzte Option ergänzt

%Definition der einzelnen Indices

% Option column hinzugefügt
\makeindex[columns=1, name=index_syr, title=Index syrischer Begriffe]
\makeindex[columns=1, name=index_ara, title=Index arabischer Begriffe]
\makeindex[columns=1, name=index_gr,  title=Index griechischer Begriffe]


\usepackage{sectsty}
\chapternumberfont{\large}
\chaptertitlefont{\LARGE}

\title{Minimalbeispiel: mehrere Indices}

\newcommand{\tscr}[1]{\textit{{#1}}}

%syrische Begriffe: kursiv und indiziert unter Index "index_syr"
\newcommand{\syrix}[1]{\tscr{#1}\index[index_syr]{#1@\tscr{#1}}}

%arabische Begriffe: kursiv und indiziert unter Index "index_ara"
\newcommand{\araix}[1]{\tscr{#1}\index[index_ara]{#1@\tscr{#1}}}

%griechische Begriffe: kursiv und indiziert unter Index "index_gr"
\newcommand{\grix}[1]{\tscr{#1}\index[index_gr]{#1@\tscr{#1}}}

\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter

\chapter{Zoologie}
Dieses Kapitel legt die grundlegenden biologischen Vorstellungen Barhebraeus' über menschliche Fortpflanzung und Schwangerschaft dar. Als Folie hierzu dient das \syrix{Begriff1} (\enquote{Rahm der Weisheit}, hiernach \syrix{Begriff2}), das Opus magnum Barhebraeus'. Es deckt alle Bereiche ab, die in der Vormoderne zur Philosophie zählten. Innerhalb der Physik gehört hierzu neben grundlegenden Betrachtungen über Bewegung auch die Beschreibung der physischen, d.\,h. natürlichen Welt. Neben Mineralogie oder Botanik zählt hierunter auch die Zoologie als Wissenschaft vom Leben (gr. \grix{Begriff3}).

Die wichtigste Vorlage für das \syrix{Begriff2} ist Ibn text1 \araix{Begriff4}, zahlreiche weitere Quellen wurden mittlerweile identifiziert. Das exzerpierende und kompilatorische Vorgehen Barhebraeus' zeigt sich auch in diesem Werk.

\appendix
\chapter{Indices}
\printindex[index_syr]
\printindex[index_ara]
\printindex[index_gr]
\end{document}

tutebatti
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 24. Sep 2019, 11:55

Beitrag von tutebatti »

Vielen herzlichen Dank, funktioniert jetzt auch im eigentlichen Dokument!

oft gesehener

Beitrag von oft gesehener »

Das ist übrigens nicht so sehr verwunderlich. Sowohl tocbibind als auch imakeidx definieren theindex, die dem Index zugrunde liegende Umgebung, neu. Da gewinnt dann das Paket, das zuletzt kommt und man muss schon froh sein, dass es überhaupt funktioniert. Die ganzen Optionen von tocbibind für den Index funktionieren natürlich auch nicht mehr, wenn man imakeidx danach lädt. Das ist aber kein Problem, weil imakeidx selbst entsprechendes bereit stellt.

Generell gilt: Augen auf, wenn man Pakete kombiniert, die auf denselben Bereich von LaTeX Einfluss nehmen. Das gilt übrigens auch für die Kombination von tocbibind und sectsty, weil tocbibind unter bestimmten Umständen auch \@makechapterhead, eine interne Anweisung aus der Erzeugung der Kapitelüberschriften, manipuliert, nämlich für \simplechapter bzw. \tocchapter.

BTW: Die Verwendung von xltxtra gilt als überholt und sollte durch Verwendung von fontspec (in der Regel genügt das bereits) ersetzt werden. Manchmal braucht man noch metalogo oder realscripts. Als netter Nebeneffekt funktionieren die Dokumente dann meist auch mit lualatex statt nur mit xelatex.

Zur Verwendung von polyglossia gibt es verschiedene Ansichten. Das Paket war lange Zeit eingeschlafen und diverse, bekannte Probleme wurden nicht beseitigt, während die Entwicklung von babel Riesenschritte genommen hat und viele Nachteile beseitigt wurden. Inzwischen ist aber wieder Bewegung in die Entwicklung von polyglossia gekommen und es besteht die berechtigte Hoffnung, dass das auch so bleibt.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2160
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Aber was soll der Themenstarter machen, wenn er tocbibind verwendet, weil er Einträge der Verzeichnisse für die Abbildungen und Tabellen im Inhaltsverzeichnis haben möchte? Er müsste dann bei dieser Klasse \addcontentsline nehmen.

oft gesehener

Beitrag von oft gesehener »

Ich sage ja nicht, dass er das Paket nicht verwenden soll. Ich sage nur, dass er bei Kombination mit bestimmten anderen Paketen mit Probleme rechnen muss und erwähne, welche das nach meinem Wissen, also ohne Anspruch auf Vollständigkeit, sind.

Und natürlich könnte der Themenstarter mal bei den beteiligten Paketautoren nachfragen, ob man die Kompatibilität nicht verbessern könnte.

Und dann gäbe es natürlich noch die Möglichkeit, gleich eine Klasse zu verwenden, bei der er weder tocbibind noch sectsty benötigt. :roll:

Antworten