Betrachten wir die folgende Eingabe:

Öffne in Overleaf
\documentclass[envcountsame,envcountsect]{svmono}%%% V5.6 von https://www.springer.com/gp/authors-editors/book-authors-editors/resources-guidelines/rights-permissions-licensing/manuscript-preparation/5636
\def\defAndThmname{Definition und Theorem}\makeatletter\spn@wtheorem{defAndThm}{Definition und Theorem}{\bfseries}{\itshape}\makeatother
%\spnewtheorem{defAndThm}[theorem]{Definition und Theorem}{\bfseries}{\itshape}%%% Geht auch nicht.
\usepackage{cleveref}
\crefname{defAndThm}{Def.\ und Thm.}{Defn.\ und Thme.}
\Crefname{defAndThm}{Definition und Theorem}{Definitionen und Theoreme}
\begin{document}
\chapter{MyChapter}
\section{MySection}
\section{MySubSection}
\begin{theorem}[My Theorem]1+1=2\end{theorem}
\begin{defAndThm}[My Definition and Theorem]\label{defAndThm:MyTheorem}A \emph{white} number is any number equaling its square. All white numbers \(x\) satisfy \(x(x-1)=0\).\end{defAndThm}
Let's reference it: \cref{defAndThm:MyTheorem}.
\end{document}

Die Ausgabe ist pdflatex-Ausgabe

Bisher läuft vieles gut: es gibt einen einzigen Zählen für alle Umgebungen und dieser Zähler folgt der Abschnitt-Nummerierung. Jedoch lautet die letzte Zeile

Let's reference it: theorem 1.2.2.

Richtigerweise sollte es aber

Let's reference it: Def. und Thm. 1.2.2.

heißen. Wie kann man es mit \cref aus cleveref erreichen?

Das Laden von ntheorem ist leider ein No-Go (zu antik, zu fehlerbehaftet). Das Laden von amsthm ist ebenso unerwünscht, vor allem wenn man eigene, von den beinhaltenden Umgebungen abhängige QED-Symbole selbst setzen möchte. Ich hab's jedenfalls mit beiden Paketen erfolglos versucht.

Die Frage steht ebenso unter http://latex.org/forum/viewtopic.php?t=32432 und http://golatex.de/viewtopic,p,106043.html .

gefragt 18 Apr, 14:45

user0's gravatar image

user0
2415
Akzeptiert: 11%

bearbeitet 18 Apr, 16:43

1

Gib beim label den Typ an: \label[defAndThm]{defAndThm:MyTheorem}

(18 Apr, 17:45) Ulrike Fischer

@ulrike-fischer Das ist zwar weniger automatisch als man sich wünschen würde, aber trotzdem eine gute Lösung. Du hast mich abermals gerettet. Ich schaute mir svmono.cls und wurde nicht sonderlich schlau, wieso deine Lösung funktioniert, aber sie tut's. Gibt's irgendein Paket, das man evtl. einfach davorschalten würde, das das Problem so beheben würde, dass einfaches \label{defAndThm:MyTheorem} ohne das optionale Argument ausreichen würde? Nachtrag: http://texwelt.de/wissen/fragen/24626/svmono-v56-richtige-namen-vorhandener-theoremumgebungen-mit-cleveref

(19 Apr, 19:22) user0

Der Kommentar von Ulrike ist meiner Meinung nach die richtige Antwort. Um das ganze etwas zu automatisieren, könnte man innerhalb des entsprechenden Theorems \label so umdefinieren, dass es automatisch den entsprechenden Typ hinzufügt.

Öffne in Overleaf
\documentclass[envcountsame,envcountsect]{svmono}
\usepackage{cleveref}

\makeatletter
\newcommand*\defaultlabel[1]{%
  \renewcommand*\label{\@ifnextchar[{\cref@label}{\cref@label[#1]}}%
}
\makeatother

\spnewtheorem{defAndThm}[theorem]{Definition und Theorem}%
  {\bfseries}% Head format
  {\itshape\defaultlabel{defAndThm}}% Body format
\crefname{defAndThm}{Def.\ und Thm.}{Defn.\ und Thme.}
\Crefname{defAndThm}{Definition und Theorem}{Definitionen und Theoreme}

\begin{document}

\chapter{MyChapter}

\section{MySection}

\section{MySubSection}

\begin{theorem}[My Theorem]
  1+1=2
\end{theorem}

\begin{defAndThm}[My Definition and Theorem]
  \label{defAndThm:MyTheorem}
  A \emph{white} number is any number equaling its square. All white numbers
  \(x\) satisfy \(x(x-1)=0\).
\end{defAndThm}

Let's reference it: \cref{defAndThm:MyTheorem}.

\end{document}
Permanenter link

beantwortet 22 Apr, 23:22

Henri's gravatar image

Henri
14.3k52937

@Henri Danke! Jedoch erhalten wir ein Problem, wenn wir innerhalb von theoremähnlichen Umgebungen \label zusätzlich für etwas anderes, etwa für Gleichungen, nutzen wollen. Vielleicht wäre die "richtigere" Lösung, die Option nospthms zu nutzen und doch amsthm zu laden und stattdessen das Problem zu lösen, wie man unterschiedliche QED-Bezeichnungen an Enden unterschiedlicher Umgebungen reinkriegt.

(24 Apr, 18:03) user0
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×4
×3
×2

Frage gestellt: 18 Apr, 14:45

Frage wurde angeschaut: 233 Mal

Zuletzt aktualisiert: 24 Apr, 18:03