goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 101661
Top-Poster: Johannes_B (5071)

Wir begrüßen unseren neuesten Benutzer Matt.Shanghai.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

amsthm und cref Problem

 

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2020, 23:19     Titel: amsthm und cref Problem
  Antworten mit Zitat      
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

\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}
 
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 2080
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 15.03.2020, 01:09     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2020, 12:59     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2020, 21:23     Titel:
  Antworten mit Zitat      
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


\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}

 
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2020, 21:35     Titel:
  Antworten mit Zitat      
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.

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2020, 15:06     Titel:
  Antworten mit Zitat      
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

\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 Folgendes 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.
Private Nachricht senden Benutzer-Profile anzeigen

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2020, 23:53     Titel:
  Antworten mit Zitat      
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


\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}

 
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 2080
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 29.03.2020, 00:24     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen

ko3rn3r
Forum-Anfänger
Forum-Anfänger

Beiträge: 42
Anmeldedatum: 23.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: Gestern 20:14     Titel:
  Antworten mit Zitat      
Vielen Dank!
Folgender Befehl führt zum Erfolg:

Code
\crefname{aufgabe}{Aufgabe}{Aufgaben}


Bartman hat Folgendes 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.
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2020 goLaTeX.de