Verwenden von Labels mit Umgebung \tcolorbox und persönlichen Titeln

Verwenden von Labels mit Umgebung \tcolorbox und persönlichen Titeln

Ich bin ein bisschen skeptisch, was die Verwendung von Etiketten in meinem Latex-Dokument angeht. Zuerst habe ich diesen Befehl verwendet, um einen persönlichen Titel zu erstellen

\newcommand {\mytitleTeo}[1]{                     
   \node[fill=red!30,
      rounded corners,
      draw=black,
      text=black,
      line width=1pt,
      inner sep=4pt,
      anchor=west,
      xshift=11pt]
   at (frame.north west){\bfseries #1};
}

Danach verwende ich dies im nächsten Code

\newtcolorbox[auto counter,number within=chapter, number freestyle={\noexpand\thechapter.\noexpand\arabic{\tcbcounter}}]{theo}[1]{%
colback = white,
enhanced,
overlay unbroken and first={\mytitleTeo{\textbf{Teorema~\thetcbcounter: #1}}},  
colframe=black,
boxrule=1pt,
arc=3mm,
breakable,
top=15pt,
before=\vskip18pt,

}

Das Problem ist, dass ich nicht weiß, wie ich \label{} in dieser Umgebung verwenden soll, denn wenn ich \ref{} verwende, stimmt die generierte Nummer nicht mit der Nummer der \newtcolorbox überein.

Vielen Dank.

Ich denke, dieser Code wird kompiliert

\documentclass[12pt,oneside,onecolumn,openright]{book} 
\usepackage[T1]{fontenc}
\usepackage{titlesec, blindtext, color}
\definecolor{gray75}{gray}{0.75}
\newcommand{\hsp}{\hspace{20pt}}
\titleformat{\chapter}[hang]{\Huge\bfseries} 
{\thechapter\hsp\textcolor{gray75}{|}\hsp}{0pt}{\Huge\bfseries}
\usepackage {graphicx}
\usepackage{amsfonts, amsmath, amsthm, amssymb, amscd, latexsym 
,cancel,stmaryrd}
\usepackage{pifont}
\usepackage{wrapfig}
%\usepackage[margin=2cm, font=scriptsize, small, bf]{caption}
\usepackage{appendix}
\usepackage{eso-pic}

\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{dsfont}
\usepackage{subfigure,caption}
\usepackage{listings}
\usepackage{mathtools}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,skins}
\usepackage{helvet}
\usepackage[full]{textcomp}
%\usepackage{xcolor}
\usepackage{nameref}
\makeindex
\usepackage{pstricks}
\usepackage{natbib}
\usepackage{xparse}
\usepackage{xargs}
\usepackage{multicol}
%\usepackage[ruled,vlined,lined,linesnumbered,algochapter]{algorithm2e} 
\usepackage{framed}
\usepackage{titletoc} 
%usepackage{etoolbox}
%\usepackage{algorithm}
%\usepackage{algorithmic}
\usepackage[breaklinks,colorlinks=true, pdfstartview=FitV, linkcolor=blue, 
citecolor=blue, urlcolor=blue]{hyperref}
\usepackage{ upgreek }
%\usepackage{pgf,tikz}
%\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\usetikzlibrary{positioning ,shadows ,backgrounds ,arrows.meta, 
circuits.ee.IEC} 
%\usepackage{amsmath}
\usepackage{bm}
\usepackage{lmodern}
%\usepackage{fancyhdr}
%\usepackage{mathrsfs}
%\usetikzlibrary{arrows}
\usepackage{enumerate} 
%\usepackage[dvipsnames]{xcolor}
%\usepackage{vmargin}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[margin=3cm]{geometry} 
\usepackage{makeidx}
\setlength{\parindent}{0cm}
%\usepackage{ mathrsfs }
%\usepackage{ amssymb }
%\usepackage{fancybox, calc}
%\usepackage{framed, color}
%\usepackage{graphicx}
%\usepackage{apacite}
\usepackage{float}
\usepackage{latexsym}
\usepackage{amssymb,amsfonts,amsthm}
\usepackage{pdfpages}
\usepackage{epstopdf}
\usepackage[all]{xy}
\usepackage{hyperref}
%\usepackage[colorlinks=false]{hyperref}
\usepackage{verbatim}
\usepackage[colorinlistoftodos]{todonotes}
%\usepackage[hidelinks]{hyperref}
\newcommand {\mytitleTeo}[2]{                    
\node[fill=red!30,
  rounded corners,
  draw=black,
  text=black,
  line width=1pt,
  inner sep=4pt,
  anchor=west,
  xshift=11pt]
  at (frame.north west){\bfseries #1};
  \label{#2},
    }
  \newtcolorbox[auto counter,number within=chapter, number freestyle= 
  {\noexpand\thechapter.\noexpand\arabic{\tcbcounter}}]{theo}[2]{%
     colback = white,
     enhanced,
     overlay unbroken and first={\mytitleTeo{\textbf{Teorema~\thetcbcounter: 
   #1}}{#2}}, 
     colframe=black,
     boxrule=1pt,
     arc=3mm,
     breakable,
     top=15pt,
     before=\vskip18pt,
    }
\hypersetup{colorlinks=true,linkcolor=Blue}
\begin{document}
\chapter{asdg}
\begin{theo}{Envoltura convexa, afín y positiva}{hola} \label{hola}
  wergregf
\end{theo}
\begin{theo}{sg}{hola} \label{hola2}
   wergregf
\end{theo}
\hyperref[hola]{Teorema \thechapter.\ref{hola}}
\hyperref[hola2]{Teorema \thechapter.\ref{hola2}}
\chapter{jjkk}
\begin{theo}{Envoltura convexa, afín y positiva}{} \label{hola3}
  wergregf
\end{theo}
\begin{theo}{sg}{hola} 
\label{hola4}
   wergregf
\end{theo}
\end{document}

Jetzt denke ich, es funktioniert

Antwort1

Sie müssen nicht a \nodemit a mischen tcolorbox, mit nur a tcolorboxkönnen Sie alles tun. Mehr noch, mit einem \newtcbtheoremBefehl können Sie das Theorem und seinen Aspekt deklarieren (siehe tcolorboxDokumentation oderhttps://tex.stackexchange.com/a/236230/1952).

Nach der Deklaration hat die Theorembox zwei Parameter, den Titel des Theorems und eine Bezeichnung für weitere Referenzen. Diese Bezeichnung ist ein Suffix, das einem Präfix hinzugefügt wird, das aus dem fünften Parameter in newtcbtheoremund einem label separator( :standardmäßig) besteht.

Sie können mit dem folgenden Code beginnen. Ich habe die Präambel aus Ihrem Code entfernt, da Sie viele unnötige oder doppelte Pakete hatten. Es ist einfacher zu beantworten, wenn Sie uns ein angeben minimum working (or not) example, wobei Minimum so kurz wie möglich bedeutet. In Ihrem Fall war der Hauptteil kurz, die Präambel jedoch nicht.

\documentclass[a4paper]{book} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[margin=3cm]{geometry} 
\usepackage{lmodern}

\usepackage[most]{tcolorbox}

\setlength{\parindent}{0cm}

\tcbset{%
    mytheostyle/.style={
        enhanced,
        colback=white,
        colframe=black,
        fonttitle=\bfseries,
        colbacktitle=red!30,
        coltitle=black,
        boxrule=1pt,
        attach boxed title to top left={%
            yshift*=-\tcboxedtitleheight/2, 
            xshift=5mm},
        boxed title style={colframe=black}
    }
}

\newtcbtheorem[auto counter, number within=chapter]{mytheorem}{Teorema}{mytheostyle}{Teo}

\begin{document}

\chapter{uno}

\begin{mytheorem}{Un teorema}{1}
Esto es un teorema
\end{mytheorem}

\begin{mytheorem}{Otro teorema}{2}
Este es el teorema~\ref{Teo:2}, diferente del teorema~\ref{Teo:1}
\end{mytheorem}

Este es el teorema~\ref{Teo:2}, diferente del teorema~\ref{Teo:1} y diferente del teorema~\ref{Teo:3}

\chapter{dos}

\begin{mytheorem}{Otro teorema más}{3}
Este es el primer teorema del segundo capítulo
\end{mytheorem}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen