Glossar nicht nummeriert im Inhaltsverzeichnis (Lösung)

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: Glossar nicht nummeriert im Inhaltsverzeichnis (Lösung)

von KOMA » Do 9. Jun 2011, 14:59

Nur dass Du die letzte statt der ersten Seite des Glossars in das Inhaltsverzeichnis einträgst …

Da inzwischen das Paket glossaries das Paket glossary abgelöst hat, würde ich schlicht einen Blick in dessen Anleitung werfen. Dort ist dann ziemlich früh u. a. auch die Option toc dokumentiert.

von impression » Do 9. Jun 2011, 13:09

Stefan hat geschrieben:Hallo DonCube,

wenn Du ein compilierbares Minimalbeispiel angibst, mit dem man diesen Workaround testen kann, lässt sich besser darüber sprechen. Du hast doch damit bestimmt auch übersetzt und nicht nur den workaround uncompiliert durchdacht. Ich konstruiere mir jetzt kein eigenes Testbeispiel, biete jedoch gern eine Alternative an.
Auf folgende Weise kannst Du bewirken, dass glossary ein richtiges Kapitel anlegt:
\let\stdchapter\chapter
\def\chapter*#1{\stdchapter{#1}}
\printglossary
\let\chapter\stdchapter
Diese Art workaround funktioniert nicht nur für glossary, auch für nomencl oder das Literaturverzeichnis. Analog klappt es mit \section für kapitellose Klassen. Siehe auch change starred command into unstarred.

Viele Grüße,

Stefan

Hi,

ich hab dazu ne Frage. Ich musste den von dir beschriebenen Code einbauen, damit mein Glossar überhaupt im Inhaltsverzeichnis aufgenommen wurde. Nur \printglossaries nimmt das Glossar nicht ins Inhaltsverzeichnis auf.
Ok, aber jetzt habe ich das Problem, dass vor dem Glossar im Inhaltsverzeichnis eine Nummerierung steht. Kann ich das auch noch entfernen?

Danke.


Problem gelöst:
% Glossar
\printglossary[style=long3col, title=Glossar]
\addcontentsline{toc}{chapter}{Glossar} 
Jetzt klappts auch mit dem Inhaltsverzeichnis ohne Zahl davor.

Glossar, Nomencl nummeriert im Inhaltsverzeichnis

von DonCube » Do 31. Jul 2008, 09:37

Hey Stefan,
vielen Dank für Dein Codeschnipsel. Habe es nun getestet und es funktioniert super. Somit kann man sich die Redefinition sparen. Hätte ich auch eher drauf kommen können es so zu probieren.

Komisch das Google nie die Lösung die du bereits in texblog gepostet hast anzeigt. Echt gut. Ich habe es mal für die faulen Leute, welche nie auf Links klicken hier reinkopiert.

Hack: change starred command into unstarred - original on TeXblog from 17 June 2008 by Stefan Kottwitz
Stefan Kottwitz hat geschrieben: Some packages like nomencl, glossary and environments like thebibliography in standard LaTeX classes use the starred sectioning forms \chapter* and \section*. Even if they provide an option to let them added to the table of contents it may be required to use numbered sectioning. In that case you could look at the corresponding source code (article.cls, nomencl.sty, glossary.sty, …) and redefine thebibliography by \renewenvironment or redefine thenomenclature of the nomencl package etc.

Here I will show a way without redefining certain internal environments. I will use the TeX commands \def and \let to temporarily change the meaning of \section:
\let\stdsection\section
\def\section*#1{\stdsection{#1}}
\printnomenclature
% \printglossary
\let\section\stdsection
If you are interested in testing it by yourself you can find complete examples here.

Minimalbeispiel für Workaround

von DonCube » Do 31. Jul 2008, 09:22

Hey Stefan,
so hier ist erstmal der Workaround als compilierbares Minimalbeispiel.
\documentclass[11pt,
paper=a4,
]{scrbook}				
\title{Minimalbeispiel}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{scrpage2}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Glossar
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[
%nonumberlist, 	%keine Seitenzahlen anzeigen  
acronym,      	%ein Abkürzungsverzeichnis erstellen
toc,            %Eintrag im Inhaltsverzeichnis
%section			 	%im Inhaltsverzeichnis auf section-Ebene erscheinen
]{glossary}
\newglossarytype[glg]{glossar}{glo}{gls}
\newcommand{\glossarname}{Glossar}
\setglossarystyle[glossar]{
style=altlist,
header=plain,
border=none,
number=none,
}
\makeglossar


\makeatletter
\renewcommand{\glossarytitle}{%
\@ifundefined{chapter}%
{%
\ifgls@hypertoc
\phantomsection
\@glosaddtoc{section}%
\section*{\@glossaryname}\relax
\else
\section*{\@glossaryname}\relax
\ifgls@toc\@glosaddtoc{section}\fi
\fi}%
{%
\ifthenelse{\boolean{gls@section}}%
{%
\ifgls@hypertoc
\phantomsection
\@glosaddtoc{section}%
\section*{\@glossaryname}\relax
\else
\section*{\@glossaryname}\relax
\ifgls@toc\@glosaddtoc{section}\fi
\fi}%
{%
\ifgls@hypertoc
\@ifundefined{if@twoside}{%
\clearpage}{%
\if@twoside
\@ifundefined{cleardoublepage}{\clearpage}{\cleardoublepage}%
\else
\clearpage
\fi}%
\phantomsection
\@glosaddtoc{chapter}%
\fi\chapter{\@glossaryname}\relax % <--->  \fi\chapter*{\@glossaryname}\relax
%\ifgls@toc\@glosaddtoc{chapter}\fi
}}
\markboth{\@shortglossaryname}{\@shortglossaryname}%
}
\makeatother

\begin{document}

%Glossareintrag
\storeglosentry[glossar]{system}{name=technisches System, description={
Ein technisches System ist das systemtheoretische Modell eines vom Menschen geschaffenen oder gedachten künstlichen Gegenstandes.}}

\tableofcontents

\chapter{Minimalbeispiel}
Ein einfacher Text und eine Einbindung des Glossareintrages \gls{system}

\appendix
\printglossar

\end{document}
Durch auskommentieren der Redefinition erhält man das Verhalten, dass das Glossar nicht nummeriert wird.

So werde nun mal dein vorschlag ausprobieren. Melde mich gleich wieder sobald ich es habe.

Gruß
doncube

von Stefan Kottwitz » Mi 30. Jul 2008, 23:39

Hallo DonCube,

wenn Du ein compilierbares Minimalbeispiel angibst, mit dem man diesen Workaround testen kann, lässt sich besser darüber sprechen. Du hast doch damit bestimmt auch übersetzt und nicht nur den workaround uncompiliert durchdacht. Ich konstruiere mir jetzt kein eigenes Testbeispiel, biete jedoch gern eine Alternative an.
Auf folgende Weise kannst Du bewirken, dass glossary ein richtiges Kapitel anlegt:
\let\stdchapter\chapter
\def\chapter*#1{\stdchapter{#1}}
\printglossary
\let\chapter\stdchapter
Diese Art workaround funktioniert nicht nur für glossary, auch für nomencl oder das Literaturverzeichnis. Analog klappt es mit \section für kapitellose Klassen. Siehe auch change starred command into unstarred.

Viele Grüße,

Stefan

Glossar nicht nummeriert im Inhaltsverzeichnis (Lösung)

von DonCube » Mo 28. Jul 2008, 10:06

Guten morgen,
wie auch bei Maximilian ist bei mir das Problem aufgetreten, dass bei Verwendung des glossary Packages, das erstellte Glossar nicht im Inhaltsverzeichnis nummeriert wird.

Meines erachtens liegt das daran, dass das Package eine \chapter* Umgebung verwendet und nicht \chapter. Ich habe nun mal ein workaround erstellt um dennoch die Nummerierung darzustellen.

Hierzu muss folgender Teil des Glossarpackages in der Präambel redefiniert werden.
\providecommand{\glossarytitle}{%
Der entstandenen Code sieht dann folgendermaßen aus.
\makeatletter
\renewcommand{\glossarytitle}{%
\@ifundefined{chapter}%
{%
\ifgls@hypertoc
\phantomsection
\@glosaddtoc{section}%
\section*{\@glossaryname}\relax
\else
\section*{\@glossaryname}\relax
\ifgls@toc\@glosaddtoc{section}\fi
\fi}%
{%
\ifthenelse{\boolean{gls@section}}%
{%
\ifgls@hypertoc
\phantomsection
\@glosaddtoc{section}%
\section*{\@glossaryname}\relax
\else
\section*{\@glossaryname}\relax
\ifgls@toc\@glosaddtoc{section}\fi
\fi}%
{%
\ifgls@hypertoc
\@ifundefined{if@twoside}{%
\clearpage}{%
\if@twoside
\@ifundefined{cleardoublepage}{\clearpage}{\cleardoublepage}%
\else
\clearpage
\fi}%
\phantomsection
\@glosaddtoc{chapter}%
\fi\chapter{\@glossaryname}\relax % <--->  \fi\chapter*{\@glossaryname}\relax
%\ifgls@toc\@glosaddtoc{chapter}\fi
}}
\markboth{\@shortglossaryname}{\@shortglossaryname}%
}
\makeatother
Hierbei sind die ursprünglichen Codeelemente noch in den Kommentaren zu erkennen. Jetzt wirft sich bei mir aber folgende Fragen auf.

1. Warum muss die folgende Zeile auch gelöscht werden? Bei Existenz dieser Zeile enstehen zwei Einträge im Inhaltsverzeichnis. Ein nummerierter und ein unnummerierter.
\ifgls@toc\@glosaddtoc{chapter}\fi
2. Die Option toc hat nun keine Wirkung mehr. Das Glossar taucht nun immer im Inhaltsverzeichnis auf.

Wie gesagt das Codeschnipsel ist nur ein Workaround. Würde es gerne hier diskutieren.

Gruß
DonCube

PS: \addchap habe ich zuvor schon ausprobiert. Das funktioniert leider nicht wie gewünscht.

Nach oben