PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Numbering Index nomenclature



kawasakai
24-08-2011, 10:31
Ich nutze Lyx und habe ein kleines Problem mit der Numerierung der Kapitelüberschiften
Mir fehlt die Numerrierung für die Nomenklatur und vom Index

\appendix
%...andere Dinge die richtig nummeriert werden
\printnomenclature{}
\printindex{}
%...

Als Optionen hab ich bisher toc=listofnumbered, toc=index, toc=bibliographynumbered und ich verwende die Koma (report) Klasse.

Schweinebacke
24-08-2011, 13:18
Einen nummerierten Index fand der KOMA-Script-Autor wohl so abartig, dass er das nicht vorgesehen hat. Man kann es aber trotzdem erreichen, indem man \idx@@heading umdefiniert:
\makeatletter
\renewcommand*{\idx@@heading]{\chapter}% bzw. \section bei scrartcl
\makeatother
Bezüglich der Nomenklatur würde ich zu glossaries raten, das hierfür die Option numberedsections bietet (Beispiel siehe http://www.mrunix.de/forums/showthread.php?p=333984#post333984).

kawasakai
24-08-2011, 15:49
Danke erstmal für die schnelle Antwort. :)

Leider bekomme ich dabei Fehler wenn ich das in den Vorspann einfüge. Ich habe es auch mal so probiert: (denke mal die 2 @ und das "]" war ein Tippfehler) ;)

\makeatletter
\renewcommand*{\idx@heading}{\chapter}% bzw. \section bei scrartcl
\makeatother
was auch folgende Fehler liefert:

! LaTeX Error: Command \@ already defined.
! LaTeX Error: Missing \begin{document}.
! Missing number, treated as zero.
! You already have nine parameters.
! LaTeX Error: Missing \begin{document}.
! You can't use `\end' in internal vertical mode.
! Missing } inserted.
! Extra \endgroup.
! Emergency stop.

bobmalaria
24-08-2011, 16:35
hi,

vielleicht kannst du es patchen


\documentclass{scrreprt}
\usepackage{makeidx}
\makeindex

\usepackage{etoolbox}
\makeatletter
\patchcmd{\idx@@heading}{\chapter*}{\chapter}
\makeatother

\begin{document}
Alpha\index{Alpha}


\printindex
\end{document}


ging bei mir.

gruss

bobmalaria
24-08-2011, 16:51
So, ein kleiner edit,

so geht es bei mir mit nomenklatur und index


\documentclass{scrreprt}
\usepackage{makeidx}
\usepackage[]{nomencl}
\makenomenclature
\makeindex

\usepackage{etoolbox}
\makeatletter
\patchcmd{\idx@@heading}{\chapter*}{\chapter}{}{}
\patchcmd{\thenomenclature}{\chapter*}{\chapter}{} {}
\makeatother

\begin{document}
\tableofcontents
\chapter{Alphakapitel}
Alpha\index{Alpha}
\nomenclature{Beta}{Das Beta}

\printindex
\printnomenclature
\end{document}


beachte das ich die intoc option bei nomencl entfernt habe da durch das patchen des kommandos das nicht mehr noetig ist da \chapter* zu \chapter geaendert wird und das ja sowieso standaedmasessig ins inhaltsverzeichnis kommt.

gruss

Schweinebacke
24-08-2011, 18:21
Danke erstmal für die schnelle Antwort. :)

Leider bekomme ich dabei Fehler wenn ich das in den Vorspann einfüge. Ich habe es auch mal so probiert: (denke mal die 2 @ und das "]" war ein Tippfehler)
Die 2 @ waren keineswegs ein Tippfehler, das ] allerdings schon.

Vgl. doch einfach die Originaldefinition in scrreprt:
\newcommand*{\idx@@heading}{%
\chapter*
} Damit ist klar, dass
\makeatletter
\renewcommand*{\idx@@heading}{%
\chapter
}
\makeatother korrekt ist. Übrigens funktioniert das im Gegensatz zu der patch-Methode unabhängig von den Klassenoptionen.

Allerdings könnte es sein, dass Dir dann der Kolumnentitel nicht gefällt. In dem Fall, sollte man eher \idx@heading statt \idx@@heading umdefinieren:
\makeatletter
\renewcommand*{\idx@heading}{%
\if@openright\cleardoublepage\else\clearpage\fi%
\twocolumn[\chapter{\indexname}]%
}
\makeatotherWenn das bei Dir nicht funktioniert, dann solltest Du ein vollständiges Minimalbeispiel in einer korrekten Code-Umgebung angeben. Außerdem solltest Du darauf achten, dass Du ein halbwegs aktuelles KOMA-Script verwendest.

kawasakai
30-08-2011, 11:03
Wieder vielen Dank für die Hilfe.

Ich bekomme irgendwie immer einige Fehler welche mir leider nicht weiterhelfen. (Nach dem Einsetzen von des vorgeschlagenen Codes). Das patchen ging ebenso nicht (in meinen Dokument) aber danke für das Minimalbeispiel das konnte ich auch nachvollziehen/nachahmen.

\idx@@heading wäre schon definiert
\@ ebenso
\begin{dokument} würde fehlen

Mein Vorspann:

% verschieden Symbole, Zeichen wie (c), €
\usepackage{textcomp}

% wähle Vektorschriften, falls vorhanden
\usepackage[T1]{fontenc}

%\makeatletter
%\newcommand*{\idx@@heading}{%
% \chapter
%}
%\makeatother


\usepackage{ %a4wide,
ellipsis, fixltx2e, mparhack, %Fehlerkorrektur für Marginalien
booktabs, longtable %schönere Tabellen
}

\usepackage[automark]{scrpage2}
\clearscrheadfoot
\ohead{\\\headmark}
\ofoot[\pagemark]{\pagemark}

% schönerer Blocksatz!!
\usepackage{microtype}

\usepackage{ifpdf} % part of the hyperref bundle
\ifpdf % if pdflatex is used

%set fonts for nicer pdf view
\IfFileExists{lmodern.sty}{\usepackage{lmodern}}
{\usepackage[scaled=0.92]{helvet}
\usepackage{mathptmx}
\usepackage{courier} }
\fi

% the pages of the TOC are numbered roman
% and a pdf-bookmark for the TOC is added
\pagenumbering{roman}
\let\myTOC\tableofcontents
\renewcommand\tableofcontents{
\myTOC
\clearpage
\pagenumbering{arabic}}

%Bezeichungen anpassen
\addto\captionsngerman{
\renewcommand{\figurename}{Abb.}%
\renewcommand{\tablename}{Tab.}%
\renewcommand{\abstractname}{Kurzfassung}
%\renewcommand{\indexname}{Sachverzeichnis}
%Verzeichnis verwendeter Abkürzungen
\renewcommand{\nomname}{Verzeichnis verwendeter Abkürzungen}
}

%mehr Platz zwischen Überschrift und Tabelle
\newcommand{\@ldtable}{}
\let\@ldtable\table
\renewcommand{\table}{ %
\setlength{\@tempdima}{\abovecaptionskip} %
\setlength{\abovecaptionskip}{\belowcaptionskip} %
\setlength{\belowcaptionskip}{\@tempdima} %
\@ldtable}

\KOMAoptions{draft=true }

%Nomenclatur in TOC
\def\nompreamble{\addcontentsline{toc}{1}{\nomname }\markboth{\nomname}{\nomname}}

Ist wahrscheinlich etwas wild, aber wenn da einige Optionen sinnlos sind oder es ein Wunder ist das überhaupt sowas funktioniert, bin ich dankbar für Hinweise. :D

Schweinebacke
30-08-2011, 13:25
Warum machst Du kein vollständiges Minimalbeispiel? :(
Warum probierst Du nicht die von mir vorgeschlagene verbesserte Definition

\makeatletter
\renewcommand*{\idx@heading}{%
\if@openright\cleardoublepage\else\clearpage\fi%
\twocolumn[\chapter{\indexname}]%
}
\makeatother :confused:

Warum mache ich mir noch die Mühe? :eek:

Fragen über Frage …

kawasakai
30-08-2011, 14:20
Warum probierst Du nicht die von mir vorgeschlagene verbesserte Definition

Ich hatte doch geschrieben das er dann Fehler wirft.


Warum machst Du kein vollständiges Minimalbeispiel? :( Dachte der Fehler liegt eh im Vorspann und euch würde das ins Auge springen, aber beim exportieren der lyx datei in eine reine .tex Datei ist mir aufgefallen dass Lyx anscheined selber schon /makeatletter vor den Vorspan schreibt und es somit zu den besagten Fehlern kam.

Also, die letzte Variante funktioniert nun :).

Für \thenomenclature hab ich mir folgendes Beispiel aus dem Board kopiert:


Hallo LukeS,

Du könntest Dir den Quellcode von nomencl.sty ansehen und \thenomenclature redefinieren. Anhand meiner Version, ungetestet:
\makeatletter
\renewcommand*\thenomenclature{%
\@ifundefined{chapter}%
{
\section{\nomname}
}%
{
\chapter{\nomname}
}%
\nompreamble

\list{}{%
\labelwidth\nom@tempdim
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\itemsep\nomitemsep
\let\makelabel\nomlabel}}
\makeatother


Was scheinbar auch funktioniert.


Warum mache ich mir noch die Mühe? :eek:

In diesem Sinne danke nochmal an die Helfer. :)