Algorithm2e mit thlabel Thema ist als GELÖST markiert

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


ichbinneu

Algorithm2e mit thlabel

Beitrag von ichbinneu »

Hallo,

die Nummerierung von Sätzen, Algorithmen und co in meinem Dokument ist
Satz 1.2.3
Algorithmus 1.2.4
Beispiel 1.2.5
und so weiter.

Nun bin ich auf das Package algorithm2e umgestiegen.

Ich nutze \thlabel und \thref statt \label und \ref. Bei den Algorithmen geht das allerdings nicht und bringt mir

Undefined control sequence. \begin{algorithm}\thlabel{algo: bpsw}

Hier ein MWE. Wenn ich in Zeile 23 \thlabel nutze, geht es nicht mehr.
(Bitte nicht wundern über das chngctr-Package. In einem anderen Thread frage ich gerade nach Hilfe. Update ist gemacht auf tl 2021).

\documentclass[fontsize=11pt, DIV=15, BCOR = 10mm, parskip=half-, twoside]{scrartcl}
\usepackage[boxruled]{algorithm2e}
\usepackage{chngcntr}
\usepackage{theoremref}

\counterwithin{algocf}{subsection}
\newtheorem{satz}[algocf]{Satz}
\newtheorem{lemma}[algocf]{Lemma}
\newtheorem{algo}[algocf]{Algorithmus}


\begin{document}
	\section{Erste Section}
	\subsection{erste Subsection}
	\begin{satz}\thlabel{satz}
		Die ist der erste Satz. 
	\end{satz}

\begin{lemma}\thlabel{lemma}
	Das lemma
\end{lemma}

\begin{algorithm}\label{algo}
	\caption{der Erste Algorithmus}
	Der Algorithmus stimmt auch 
\end{algorithm}

Nach \thref{satz} kommt \thref{lemma}, dann kommt \ref{algo}
\end{document}

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Algorithm2e mit thlabel

Beitrag von MoeWe »

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.


ichbinneu

Re: Algorithm2e mit thlabel

Beitrag von ichbinneu »

Erstmal danke, das funktioniert im MWE.
In meiner Bachelorarbeit habe ich allerdings bisher ja \thlabel und \thref genutzt.
Jetzt habe ich die alle ersetzt durch \label und \ref, bekomme aber trotzdem 9351 Fehlermeldungen, alle möglichen.


ichbinneu

Re: Algorithm2e mit thlabel

Beitrag von ichbinneu »

Hier mal exemplarisch der erste Fehler.
Die Zeile ist

			\begin{satz}\label{satz: fermat}(Der kleine Satz von Fermat)

Der Fehler ist

No counter 's' defined. \begin{satz}\label


Grummelgast

Re: Algorithm2e mit thlabel

Beitrag von Grummelgast »

Der bisher gezeigt Code erzeugt diesen Fehler (beispielsweise im Online-Compiler) nicht. Vermutlich liegt der Fehler auch nicht an der Verwendung der Umgebung satz, sondern an deren Definition. Wir können aber wenig dazu sagen, wenn du kein echtes Minimalbeispiel (Link beachten!) angibst.


ichbinneu

Re: Algorithm2e mit thlabel

Beitrag von ichbinneu »

Ich habe jetzt das package thoremref auskommentiert und siehe da, es geht.
Da soll mal einer drauf kommen.

Das Problem am MWE dieser Art ist, dass mein Dokument 4.000 Zeilen groß und auf verschiedene Dateien verschachtelt ist (Packages, Befehle, ...).

Danke aber, das hat mir hier sehr geholfen!


ichbinneu

Re: Algorithm2e mit thlabel

Beitrag von ichbinneu »

Nochmal ich.
1) Ich habe in einer enumerate-Umgebung einzelne Items gelabelt.
Wenn ich nun darauf verweise mit \cref gibt er mir

In Punkt (a) sehen wir

aus. Es soll aber ohne "Punkt" ausgegeben werden.

2) Ein Verweis auf eine Erinnerung wird mit "wir sehen in erinnerung 2.1.4 dass" ausgegeben.
Erinnerung muss natürlich groß geschrieben werden.

Wie kann ich das ändern?


Grummelgast

Re: Algorithm2e mit thlabel

Beitrag von Grummelgast »

Wenn du keinen automatischen Präfix haben willst, dann verwende \ref statt \cref.

Da wir nicht wissen, wie erinnerung definiert ist, kann ich nur darauf hinweisen, dass cleveref eine Anleitung hat und darin u.a. das von MoeWe oben bereits vorgeführte \crefname auch dokumentiert ist.

Die Minimalbeispiel-Anleitung erklärt übrigens sehr genau, wie man auch große Dokumente minimiert.


Antworten