Seite 1 von 1

Nummerierte Sätze/Definitionen im Inhaltsverzeichnis

Verfasst: Sa 12. Mai 2012, 17:59
von fefi725
Hi,
ich habe ein Problem mit dem folgenden Code:
Im Prinzip bin ich mit der Nummerierung schon ganz zufrieden. Nur würde ich gerne die blöden Klammern im Inhaltsverzeichnis weghaben bei den Definitionen, die keinen Namen haben. Und wie kann ich es realisieren, dass zB eine Bemerkung, die nummeriert ist nicht im Inhaltsverzeichnis auftaucht?
Kann man irgendwie auch Nummer und Bezeichnung im Inhaltsverzeichnis tauschen? Also Definition 1.1 anstatt 1.1 Definition?

Danke schon mal!
\documentclass[11pt,a4paper,openany,oneside]{scrbook}
\usepackage{ngerman}
\usepackage{textcomp}
\usepackage{latexsym}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\newtheoremstyle{dotless}{}{}{\itshape}{}{\bfseries}{}{ }{}
\theoremstyle{dotless}

\newtheorem{thm}{Proposition}[chapter]
\newtheorem{defi}[thm]{Definition}
\newtheorem{sat}[thm]{Satz}
\newtheorem{bem}[thm]{Bemerkung}
\newtheorem*{bemo}{Bemerkung}
\newtheorem{lem}[thm]{Lemma}

\let\amsthmhead\thmhead
\let\amsswappedhead\swappedhead
\makeatletter
\renewcommand*\thmhead[3]{\amsthmhead{#1}{#2}{#3}
\@ifnotempty{#2}{\addcontentsline{toc}{section}{#2 #1 (#3)}}{}}
\renewcommand*\swappedhead[3]{\amsswappedhead{#1}{#2}{#3}
\@ifnotempty{#2}{\addcontentsline{toc}{section}{#2 #1 (#3)}}{}}
\makeatother

\begin{document}
\tableofcontents
\chapter{Erstes Kapitel}
Erstes Kapitel...

\begin{defi}[Körper]
Es sei $K$ eine Menge...
\end{defi}

\begin{bem}
Eine Bemerkung
\end{bem}

\begin{defi}
Eine namenlose Definition...
\end{defi}

\begin{bemo}
Eine Bemerkung ohne Nummer.
\end{bemo}

\begin{lem}
Lemma mit Nummer und im Inhaltsverzeichnis.
\end{lem}
\end{document}

Re: Nummerierte Sätze/Definitionen im Inhaltsverzeichnis

Verfasst: Sa 12. Mai 2012, 21:39
von rais
Hallo,
fefi725 hat geschrieben:Nur würde ich gerne die blöden Klammern im Inhaltsverzeichnis weghaben bei den Definitionen, die keinen Namen haben.
dann musst Du in Deiner \thmhead-Definition erst schauen, ob ein Name vergeben wurde (s.u. \ifx\relax#3\relax: ist #3 leer, wird \relax mit \relax verglichen (wahr))
fefi725 hat geschrieben: Und wie kann ich es realisieren, dass zB eine Bemerkung, die nummeriert ist nicht im Inhaltsverzeichnis auftaucht?
Dazu müsstest Du Deiner \thmhead-Definition beibringen, auch noch auf `Bemerkung' zu testen (s.u. \ifx\thmtxta\thmtxtb)
fefi725 hat geschrieben: Kann man irgendwie auch Nummer und Bezeichnung im Inhaltsverzeichnis tauschen? Also Definition 1.1 anstatt 1.1 Definition?
Dazu hättest Du nur bei den \addcontentsline... #1 mit #2 zu tauschen brauchen.
Hier mit angepasstem \thmhead (wann \swappedhead zum Einsatz kommt, hab ich nicht erkundet, aber wenn es zum Einsatz kommt, musst Du es wohl analog zu \thmhead adaptieren):
\documentclass[oneside]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsthm}

\newtheoremstyle{dotless}{}{}{\itshape}{}{\bfseries}{}{ }{}
\theoremstyle{dotless}

\newtheorem{thm}{Proposition}[chapter]
\newtheorem{defi}[thm]{Definition}
\newtheorem{sat}[thm]{Satz}
\newtheorem{bem}[thm]{Bemerkung}
\newtheorem*{bemo}{Bemerkung}
\newtheorem{lem}[thm]{Lemma}

\let\amsthmhead\thmhead
\let\amsswappedhead\swappedhead
\newcommand*\thmtxta{}
\newcommand*\thmtxtb{}
\makeatletter
\renewcommand*\thmhead[3]{%
  \amsthmhead{#1}{#2}{#3}
  \edef\thmtxta{Bemerkung}%
  \edef\thmtxtb{#1}%
  \@ifnotempty{#2}{%
    \ifx\thmtxta\thmtxtb
      \typeout{#1 #2 aus TOC ferngehalten...}%
    \else
      \ifx\relax#3\relax
        \addcontentsline{toc}{section}{#1 #2}%
      \else
        \addcontentsline{toc}{section}{#1 #2 (#3)}%
      \fi
    \fi
  }{}%
}
\renewcommand*\swappedhead[3]{\amsswappedhead{#1}{#2}{#3}
\@ifnotempty{#2}{\addcontentsline{toc}{section}{#2 #1 (#3)}}{}}
\makeatother

\begin{document}
\tableofcontents
\chapter{Erstes Kapitel}
Erstes Kapitel...

\begin{defi}[Körper]
Es sei $K$ eine Menge...
\end{defi}

\begin{bem}
Eine Bemerkung
\end{bem}

\begin{defi}
Eine namenlose Definition...
\end{defi}

\begin{bemo}
Eine Bemerkung ohne Nummer.
\end{bemo}

\begin{lem}
Lemma mit Nummer und im Inhaltsverzeichnis.
\end{lem}
\end{document}
MfG
Rainer

Verfasst: So 13. Mai 2012, 16:30
von fefi725
Vielen Dank, genau was ich gesucht habe!