Referenzierung von Counter mit cleveren Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


marco_polo
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: So 11. Jul 2021, 18:48

Referenzierung von Counter mit cleveren

Beitrag von marco_polo »

Moin,

ich hab eine neue Umgebung definiert, der unter Berücksichtigung der Abschnittsnummerierung fortan zählt (hier Fall 1.1, Fall 1.2). Nun würde ich gerne mit Hilfe des cleverref-Pakets darauf verweisen. Ich konnte die Referenzierung soweit modifizieren, dass der Begriff "Fall" mit auftaucht. Nun haben sich zwei Probleme ergeben, die ich nicht lösen konnte.
(1) Wie bekomm ich die Integration des zugehörigen Kapitels hin (also Fall 1.1 statt Fall 1)?
(2) Normale Verweise wie bsp. auf den Abschnitt nutzen sowohl den Begriff wie auch die Nummerierung als Hyperlink. Bei meiner Formatierung wird hingegen nur der Nummer ein Hyperlink hinterlassen. Gerne würde ich das einheitlich halten, sodass auch der Begriff "Fall" teil des Hyperlinks darstellt.

Vielen Dank im Voraus.
\documentclass[ngerman]{scrartcl}

\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\begin{document}
	
\section{Erster Abschnitt}\label{sec:1}
	\newcounter{fall}
%	\counterwithin*{fall}{section}
\crefformat{fall}{Fall~#2#1#3}

\newenvironment{fall}[1][]{%
	\stepcounter{fall}%
	\noindent\textbf{Fall~\thesection.\thefall}:~}%

\crefname{fall}{Fall}{Fälle}
	
\begin{fall}
	Blah	\refstepcounter{fall} \label{fall:a}
\end{fall}	


\section{Zweiter Abschnitt}
\cref{sec:1}\\
\cref{fall:a}
	
\end{document}

ich meine ja nur

Re: Referenzierung von Counter mit cleveren

Beitrag von ich meine ja nur »

Die Probleme liegen daran, dass bei dem Beispiel praktisch alles (bis auf \crefname und \cref) falsch ist. Da beginnt schon damit, dass bei \newenvironment das end-Argument fehlt. Dann verwendet man natürlich bereits bei der Definition \refstepcounter. Außerdem gehören Definitionen, Einstellungen etc. grundsätzlich in die Dokumentpräambel und einiges mehr. Hier einmal ein funktionierendes Beispiel:
\documentclass[ngerman]{scrartcl}

\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\newcounter{fall}
\counterwithin{fall}{section}
\crefname{fall}{Fall}{Fälle}
\Crefname{fall}{Fall}{Fälle}

\newenvironment{fall}[1][]{%
  \par
  \refstepcounter{fall}%
  \noindent\textbf{Fall~\thesection.\thefall}:~\ignorespaces
}{\par}

\begin{document}
	
\section{Erster Abschnitt}\label{sec:1}

\begin{fall}
	Blall\label{fall:a}
\end{fall}	


\section{Zweiter Abschnitt}
\cref{sec:1} vs.
\cref{fall:a}
	
\end{document}
Allerdings bezweifle ich stark, dass das wirklich der Weisheit letzter Schluss ist. Dazu müsste ich aber erst einmal wissen, was das ganze überhaupt soll. Eigentlich sieht mir das nämlich eher nach einem Fall für \subsection oder einen neu definierten Gliederungsbefehl aus. Eventuell wäre aber auch schlicht eine mit enumitem angepasste Aufzählungsumgebung das richtige. Ohne weiter Infos ist das schwer zu sagen.

ich meine ja nur

Re: Referenzierung von Counter mit cleveren

Beitrag von ich meine ja nur »

Da war jetzt natürlich noch ein \thesection. zuviel:
\newenvironment{fall}[1][]{%
  \par
  \refstepcounter{fall}%
  \noindent\textbf{Fall~\thefall}:~\ignorespaces
}{\par}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Referenzierung von Counter mit cleveren

Beitrag von KOMA »

Man sollte übrigens auch noch das Paket babel laden. Dass das sinnvoll ist, sieht man spätestens, wenn man noch ein \tableofcontents hinzufügt. :wink:

Um übrigens einmal zu zeigen, wie man \DeclareNewSectionCommand nutzen kann:
\documentclass[ngerman]{scrartcl}

\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\DeclareNewSectionCommand[style=section,level=\subsectionnumdepth,indent=0pt,toclevel=10,tocentryindent=0pt,tocentrynumwidth=0pt,beforeskip=1\baselineskip,afterskip=0pt,runin=true,counterwithin=section]{fall}
\renewcommand*{\fallformat}{Fall \thefall\nobreakspace}
\renewcommand*{\sectioncatchphraseformat}[4]{\hskip #2#3#4\Ifstr{#1}{fall}{\unskip:\enspace}{}}
\crefname{fall}{Fall}{Fälle}
\Crefname{fall}{Fall}{Fälle}

\begin{document}
	
\section{Erster Abschnitt}\label{sec:1}

\fall{}\label{fall:a}
Blall


\section{Zweiter Abschnitt}
\cref{sec:1} vs.
\cref{fall:a}
	
\end{document}
Aber in der Tat bin auch nicht sicher, ob das nicht besser eine Aufzählungsliste (enumerate mit Hilfe von Paket enumitem) oder auch etwas ganz anderes wäre.

Antworten