etiquetas%20(aqu%C3%AD%20para%20tcolorbox%20similar%20a%20una%20subfigura).png)
Por las razoneslos flotadores no se pueden anidar en tcolorboxy quiero que mi (sub)figura sea más elegante, codifiqué entornos nuevos Figure
y Subfigure
newtcolorbox. Aquí hay una versión simplificada de mi código.
\documentclass[12pt,a4paper]{book}
\usepackage{lipsum}
\usepackage[skins, breakable]{tcolorbox}
\newcommand{\figref}[1]{Figure \ref{fig:#1}}
\newtcolorbox[auto counter]{Figure}[1]{
title = {Figure~\thetcbcounter~$-$ #1}
}
\newtcolorbox[
auto counter,
number within=tcb@cnt@Figure,
number freestyle = {(\noexpand\alph{\tcbcounter})}
]
{Subfigure}[3][]{
width = (\linewidth - 4\dimexpr (#2pt - 1pt)\relax)/#2,
before =,
after = \hfill,
box align = center,
title = {\thetcbcounter~#3},
#1
}
\begin{document}
\begin{Figure}
{Title figure}
\begin{Subfigure}[label={fig:a}]{2}
{Title again}
\lipsum[1]
\end{Subfigure}%
%
\begin{Subfigure}{2}
{A nice Subfigure}
\lipsum[2]
\end{Subfigure}
\end{Figure}
See \figref{a}.
\end{document}
con la salida
Me gusta el resultado, pero me gustaría que se imprimiera el texto Figure 1a
en lugar de Figure (a)
y así sin cambiar el título de la subfigura. Más precisamente, podría cambiar el number freestyle
argumento de newtcolorbox para que tenga 1a
como contador de mi subfigura, pero esto cambiaría el título del (a) blabla
que 1a blabla
no quiero.
Tenga en cuenta que uso hyperref
el paquete incluso si lo eliminé de mi Ejemplo de trabajo mínimo.
Yo sé unpregunta similarse ha preguntado, pero no sé qué tan cerca está de mi pregunta ya que no entiendo qué
\makeatletter
\newcommand{\customlabel}[2]{%
\protected@write \@auxout {}{\string \newlabel {#1}{{#2}{}}}}
\makeatother
está haciendo...
Respuesta1
Puede cambiar el formato de la etiqueta usando \labelformat
(verltnews30.pdf
para más información):
\documentclass[12pt,a4paper]{book}
\usepackage{lipsum}
\usepackage[skins, breakable]{tcolorbox}
\newcommand{\figref}[1]{Figure \ref{fig:#1}}
\newtcolorbox[auto counter]{Figure}[1]{
title = {Figure~\thetcbcounter~$-$ #1}
}
\newtcolorbox[
auto counter,
number within=tcb@cnt@Figure,
number freestyle = {(\noexpand\alph{\tcbcounter})}
]
{Subfigure}[3][]{
width = (\linewidth - 4\dimexpr (#2pt - 1pt)\relax)/#2,
before =,
after = \hfill,
box align = center,
title = {\thetcbcounter~#3},
#1
}
\labelformat{tcb@cnt@Subfigure}{\arabic{tcb@cnt@Figure}\alph{tcb@cnt@Subfigure}}
\begin{document}
\begin{Figure}
{Title figure}
\begin{Subfigure}[label={fig:a}]{2}
{Title again}
\lipsum[1]
\end{Subfigure}%
%
\begin{Subfigure}{2}
{A nice Subfigure}
\lipsum[2]
\end{Subfigure}
\end{Figure}
See \figref{a}.
\end{document}
Por cierto: sugeriría utilizar también cleveref
en lugar de definir el suyo propio \figref
.