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 '19, 20:45

user0's gravatar image

user0
1021227
Akzeptiert-Rate: 0%

bearbeitet 18 Apr '19, 22:43

1

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

(18 Apr '19, 23: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

(20 Apr '19, 01: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 23 Apr '19, 05:22

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

@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.

(25 Apr '19, 00:03) user0
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×5
×4
×3

gestellte Frage: 18 Apr '19, 20:45

Frage wurde gesehen: 6,003 Mal

zuletzt geändert: 25 Apr '19, 00:03