amsthm und cref Problem

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

Markdown is OFF

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: amsthm und cref Problem

von ko3rn3r » So 29. Mär 2020, 20:14

Vielen Dank!
Folgender Befehl führt zum Erfolg:

Code: Alles auswählen

\crefname{aufgabe}{Aufgabe}{Aufgaben}
Bartman hat geschrieben:Lies den Abschnitt 8.1.3 "Automatic \newtheorem Definitions".

Off-Topic: Für die aktuelle Rechtschreibung solltest Du besser die Option ngerman wählen. Da sie außer cleveref wahrscheinlich noch weitere Pakete in Deiner Präambel beeinflussen soll, kannst Du sie gleich als Option der Klasse verwenden.

von Bartman » Sa 28. Mär 2020, 23:24

Lies den Abschnitt 8.1.3 "Automatic \newtheorem Definitions".

Off-Topic: Für die aktuelle Rechtschreibung solltest Du besser die Option ngerman wählen. Da sie außer cleveref wahrscheinlich noch weitere Pakete in Deiner Präambel beeinflussen soll, kannst Du sie gleich als Option der Klasse verwenden.

von ko3rn3r » Sa 28. Mär 2020, 22:53

Okay ich hätte doch noch eine Frage und zwar möchte ich gerne, dass mehrere Aufgaben mit einem Befehl zusammen aufgerufen werden (\cref{test1,test2}). Dies klappt auch bei den Teilaufgaben, jedoch nicht wenn die Referenzierung an den "normalen" Aufgaben liegt.

Lieb Grüße

Code: Alles auswählen


\documentclass{report} 
\usepackage{enumitem} 
 
\usepackage{amsthm} 

\newtheoremstyle{Aufgabenstellung}% name of the style to be used 
{}% measure of space to leave above the theorem. E.g.: 3pt 
{}% measure of space to leave below the theorem. E.g.: 3pt 
{}% name of font to use in the body of the theorem 
{}% measure of space to indent 
{\bfseries\sffamily}% name of head font 
{}% punctuation between head and body 
{1em}% space after theorem head; " " = normal interword space 
{\thmname{#1}\thmnumber{ #2}\thmnote{: #3}}% Manually specify head


\usepackage{hyperref}

\usepackage[german,capitalise]{cleveref} 
	\crefname{enumtaski}{Aufgabe}{Aufgaben}
	\newlist{enumtask}{enumerate}{1}
	\setlist[enumtask]{label=\alph*), ref=\theaufgabe\alph*)}

\theoremstyle{Aufgabenstellung}
\newtheorem{aufgabe}{Aufgabe}[chapter]
\renewcommand{\theaufgabe}{\arabic{aufgabe}}

\begin{document}
	
\chapter{Kapitel}

\begin{aufgabe}[Test]\mbox{} \label{test1} 
    \begin{enumtask} 
    \item test 1 \label{foo}
    \item test 2 \label{bar} 
    \end{enumtask} 
\end{aufgabe}

Die \cref{foo,bar} können referenziert werden!

\begin{aufgabe}[Test]\label{test2}
    bla bla bla 
\end{aufgabe} 

Hier scheitert es doch noch mal: \cref{test1,test2}

\end{document}

von ko3rn3r » Sa 28. Mär 2020, 14:06

Vielen Dank für deine Antwort!
Stimmt in der Dokumentation stand es auch unter Punkt 14: Bekannte Bugs.
\newtheorem muss nach cleveref geladen werden. Das ist schon alles.
Hiermit klappt es :)

Code: Alles auswählen

\documentclass{report} 
\usepackage{enumitem} 
 
\usepackage{amsthm} 

\newtheoremstyle{Aufgabenstellung}% name of the style to be used 
{}% measure of space to leave above the theorem. E.g.: 3pt 
{}% measure of space to leave below the theorem. E.g.: 3pt 
{}% name of font to use in the body of the theorem 
{}% measure of space to indent 
{\bfseries\sffamily}% name of head font 
{}% punctuation between head and body 
{1em}% space after theorem head; " " = normal interword space 
{\thmname{#1}\thmnumber{ #2}\thmnote{: #3}}% Manually specify head


\usepackage{hyperref}

\usepackage[capitalise]{cleveref} 
	\crefname{enumtaski}{Aufgabe}{Aufgaben} 
	\newlist{enumtask}{enumerate}{1} 
	\setlist[enumtask]{label=\alph*), ref=\theaufgabe\alph*)} 

\theoremstyle{Aufgabenstellung} 
\newtheorem{aufgabe}{Aufgabe}[chapter] 
\renewcommand{\theaufgabe}{\arabic{aufgabe}}

\begin{document}
	
\chapter{Kapitel}

\begin{aufgabe}[Test]\mbox{} 
    \begin{enumtask} 
    \item test 1 
    \item test 2 \label{bla} 
    \end{enumtask} 
\end{aufgabe}

Die \cref{bla} kann referenziert werden!

\begin{aufgabe}[Test]\label{test} 
    bla bla bla 
\end{aufgabe} 

Hier scheitert es nicht mehr: \cref{test}

\end{document}
Anonymous hat geschrieben:Wenn du erst eine neue Theorem-Umgebung definierst und dann cleveref lädst, kann das Paket natürlich keinen Einfluss mehr darauf nehmen. Daher wird auch immer wieder empfohlen: Erst Pakete laden, dann eigene Definitionen etc. Leider machen das ganz viele Leute nicht so – auch Leute, die Anleitungen schreiben oder diese unsäglichen Vorlagen.

von Gast » Fr 27. Mär 2020, 20:35

Wenn du erst eine neue Theorem-Umgebung definierst und dann cleveref lädst, kann das Paket natürlich keinen Einfluss mehr darauf nehmen. Daher wird auch immer wieder empfohlen: Erst Pakete laden, dann eigene Definitionen etc. Leider machen das ganz viele Leute nicht so – auch Leute, die Anleitungen schreiben oder diese unsäglichen Vorlagen.

von ko3rn3r » Fr 27. Mär 2020, 20:23

Hallo,
meintest du es so?
Kann es sein, dass man irgendwie noch ein Befehl definieren muss, den man im Label dann aufruft? Also in der Art wie: "fig:bla" oder "sec:bla2" als Bezeichnung des Labels damit "cleverref" weiß was er vorne dran schreiben muss?

Vielen Dank im Voraus und Liebe Grüße!

Code: Alles auswählen


\documentclass{report} 
\usepackage{enumitem} 
  
\usepackage{amsthm} 
\newtheoremstyle{Aufgabenstellung}% name of the style to be used 
{}% measure of space to leave above the theorem. E.g.: 3pt 
{}% measure of space to leave below the theorem. E.g.: 3pt 
{}% name of font to use in the body of the theorem 
{}% measure of space to indent 
{\bfseries\sffamily}% name of head font 
{}% punctuation between head and body 
{1em}% space after theorem head; " " = normal interword space 
{\thmname{#1}\thmnumber{ #2}\thmnote{: #3}}% Manually specify head 

\theoremstyle{Aufgabenstellung} 

\newtheorem{aufgabe}{Aufgabe}[chapter] 
\renewcommand{\theaufgabe}{\arabic{aufgabe}} % zählt die Aufgaben arabisch (1, 2, 3, ...)

\usepackage{hyperref}

\usepackage[capitalise]{cleveref} 
\crefname{enumtaski}{Aufgabe}{Aufgaben} 
\newlist{enumtask}{enumerate}{1} 
\setlist[enumtask]{label=\alph*), ref=\theaufgabe\alph*)} 


\begin{document}
	
\chapter{Kapitel}

\begin{aufgabe}[Test]\mbox{} 
    \begin{enumtask} 
    \item test 1 
    \item test 2 \label{bla} 
    \end{enumtask} 
\end{aufgabe}

Die \cref{bla} kann referenziert werden!

\begin{aufgabe}[Test]\label{test} 
    bla bla bla 
\end{aufgabe} 

Hier scheitert es jedoch: \cref{test}

\end{document}

von ko3rn3r » So 15. Mär 2020, 11:59

Hallo, danke für deine Antwort!
Stimmt, es kommt nicht zu einem Fehler, sondern zu einer Warnung:
" cref reference format for label type `aufgabe' undefined ".

Aber auch wenn ich "cref zum Schluss lade, bleiben die Fragezeichen.

von Bartman » So 15. Mär 2020, 00:09

Ich bekomme keine Fehlermeldung, aber statt der Benennung des Querverweises auf die Aufgaben-Umgebung erhalte ich Fragezeichen. Das lässt sich beheben, wenn man cleveref nach amsthm lädt.

amsthm und cref Problem

von ko3rn3r » Sa 14. Mär 2020, 22:19

Hallo,
ich habe das Problem, dass, wenn ich "amsthm" und "cref" zusammen verwende, es zu einem Fehler kommt, wenn ich den Verweis an die Aufgaben-Umgebung mache: "\begin{aufgabe}[Test]\label{test}".
Nur an dieser Stelle kommt es zu einem Problem. Wenn sich das Label an der "\begin{enumtask}"-Umgebung befindet, funktioniert es.
Wenn ich den markierten Teil (%______) auskommentiere, sprich nicht das "amsthm"-Paket verwende, funktioniert alles (auch mit dem Verweis der Aufgaben-Umgebung: "\begin{aufgabe}[Test]\label{test}").
Das möchte ich aber wirklich ungern, da ich die Umgebung gerne verändern möchte.

Liebe Grüße!

Code: Alles auswählen

\documentclass{report} 
\usepackage{enumitem} 
\usepackage[capitalise]{cleveref} 
  
%_______________________________
\usepackage{amsthm} 
\newtheoremstyle{Aufgabenstellung}% name of the style to be used
{}% measure of space to leave above the theorem. E.g.: 3pt
{}% measure of space to leave below the theorem. E.g.: 3pt
{}% name of font to use in the body of the theorem
{}% measure of space to indent
{\bfseries\sffamily}% name of head font
{}% punctuation between head and body
{1em}% space after theorem head; " " = normal interword space
{\thmname{#1}\thmnumber{ #2}\thmnote{: #3}}% Manually specify head

\theoremstyle{Aufgabenstellung}
%______________________________________________
\newtheorem{aufgabe}{Aufgabe}[chapter]

\newlist{enumtask}{enumerate}{1} 
\setlist[enumtask]{label=\alph*), ref=\theaufgabe\alph*)} 

\crefname{enumtaski}{Aufgabe}{Aufgaben} 



\begin{document} 
\chapter{Kapitel} 
\begin{aufgabe}[Test]\mbox{} 
    \begin{enumtask} 
    \item test 1 
    \item test 2 \label{item:bla} 
    \end{enumtask} 
\end{aufgabe} 
\cref{item:bla} 

\begin{aufgabe}[Test]\label{test} 
    bla bla bla 
\end{aufgabe} 

\cref{test} 
\end{document}

Nach oben