von MoeWe » Do 12. Aug 2021, 18:01
Ich würde statt theoremref lieber cleveref nutzen. Letzteres ist deutlich üblicher und scheint mir auf den ersten Blick auch mehr auf dem Kasten zu haben als theoremref (ich hatte bis eben von theoremref noch nie gehört). Außerdem kannst Du dann wie üblich \label statt \thlabel nehmen.
Wenn Du dann noch amsthm für etwas bessere Unterstürzung von \newtheorem lädst, geht fast alles von alleine.
Im Beispiel wäre noch zu beachten, dass \label bei Verwendung zusammen mit \caption erst nach \caption das Erwartete tut.
\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}
\usepackage{babel}
\usepackage{amsthm}
\usepackage[boxruled]{algorithm2e}
% wird nur mit altem LaTeX benötigt
%\usepackage{chngcntr}
\usepackage{hyperref}
\usepackage{cleveref}
\counterwithin{algocf}{subsection}
\newtheorem{satz}[algocf]{Satz}
\newtheorem{lemma}[algocf]{Lemma}
\crefname{satz}{Satz}{Sätze}
\begin{document}
\section{Erste Section}
\subsection{erste Subsection}
\begin{satz}\label{satz}
Die ist der erste Satz.
\end{satz}
\begin{lemma}\label{lemma}
Das lemma
\end{lemma}
\begin{algorithm}
\caption{der Erste Algorithmus}\label{algo}
Der Algorithmus stimmt auch
\end{algorithm}
Nach \cref{satz} kommt \cref{lemma}, dann kommt \cref{algo}.
\end{document}
Ich hab mal die Definition von algo weggelassen, da es hier nicht zum Einsatz kam.
Ich würde statt `theoremref` lieber `cleveref` nutzen. Letzteres ist deutlich üblicher und scheint mir auf den ersten Blick auch mehr auf dem Kasten zu haben als `theoremref` (ich hatte bis eben von `theoremref` noch nie gehört). Außerdem kannst Du dann wie üblich `\label` statt `\thlabel` nehmen.
Wenn Du dann noch `amsthm` für etwas bessere Unterstürzung von `\newtheorem` lädst, geht fast alles von alleine.
Im Beispiel wäre noch zu beachten, dass `\label` bei Verwendung zusammen mit `\caption` erst nach `\caption` das Erwartete tut.
```
\documentclass[ngerman, fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}
\usepackage{babel}
\usepackage{amsthm}
\usepackage[boxruled]{algorithm2e}
% wird nur mit altem LaTeX benötigt
%\usepackage{chngcntr}
\usepackage{hyperref}
\usepackage{cleveref}
\counterwithin{algocf}{subsection}
\newtheorem{satz}[algocf]{Satz}
\newtheorem{lemma}[algocf]{Lemma}
\crefname{satz}{Satz}{Sätze}
\begin{document}
\section{Erste Section}
\subsection{erste Subsection}
\begin{satz}\label{satz}
Die ist der erste Satz.
\end{satz}
\begin{lemma}\label{lemma}
Das lemma
\end{lemma}
\begin{algorithm}
\caption{der Erste Algorithmus}\label{algo}
Der Algorithmus stimmt auch
\end{algorithm}
Nach \cref{satz} kommt \cref{lemma}, dann kommt \cref{algo}.
\end{document}
```
Ich hab mal die Definition von `algo` weggelassen, da es hier nicht zum Einsatz kam.