%20r%C3%B3tulos%20(aqui%20para%20tcolorbox%20semelhante%20a%20subfigura).png)
Pelas razõesfloats não podem ser aninhados em tcolorboxe quero que minha (sub)figura seja mais sofisticada, codifiquei ambientes novos Figure
e Subfigure
newtcolorbox. Aqui está uma versão simplificada do meu 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}
com a saída
Gostei do resultado, mas gostaria que o texto fosse impresso Figure 1a
em vez de Figure (a)
e assim sem alterar o título da subfigura. Mais precisamente, eu poderia mudar o number freestyle
argumento do newtcolorbox para ter 1a
como contador da minha subfigura, mas isso mudaria o título de (a) blabla
para 1a blabla
o qual não quero.
Observe que eu uso hyperref
package mesmo que o tenha removido do meu Exemplo Mínimo de Trabalho.
Eu conheço umpergunta semelhantefoi perguntado, mas não sei o quão próximo da minha pergunta está, pois não entendo o que
\makeatletter
\newcommand{\customlabel}[2]{%
\protected@write \@auxout {}{\string \newlabel {#1}{{#2}{}}}}
\makeatother
está fazendo...
Responder1
Você pode alterar o formato da etiqueta usando \labelformat
(vejaltnews30.pdf
Para maiores informações):
\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}
BTW: eu sugeriria usar também cleveref
em vez de definir o seu próprio arquivo \figref
.