Beschriftungen%20(hier%20f%C3%BCr%20unterabbildungs%C3%A4hnliche%20tcolorboxen).png)
Aus den GründenFloats können nicht in Tcolorbox verschachtelt werdenund ich möchte, dass meine (Unter-)Figur schicker wird, ich habe neue Figure
und Subfigure
neue Colorbox-Umgebungen programmiert. Hier ist eine vereinfachte Version meines Codes
\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}
mit der Ausgabe
Das Ergebnis gefällt mir, aber ich möchte den Text Figure 1a
statt Figure (a)
und drucken, ohne den Titel der Unterabbildung zu ändern. Genauer gesagt könnte ich das number freestyle
Argument von newtcolorbox ändern, um 1a
als Zähler meiner Unterabbildung zu haben, aber dies würde den Titel von (a) blabla
in ändern 1a blabla
, was ich nicht möchte.
Beachten Sie, dass ich das Paket verwende, hyperref
auch wenn ich es aus meinem minimalen Arbeitsbeispiel entfernt habe.
Ich kenne eineähnliche Fragewurde gefragt, aber ich weiß nicht, wie nah es an meiner Frage ist, da ich nicht verstehe, was
\makeatletter
\newcommand{\customlabel}[2]{%
\protected@write \@auxout {}{\string \newlabel {#1}{{#2}{}}}}
\makeatother
macht gerade...
Antwort1
Sie können das Etikettenformat ändern mit \labelformat
(sieheltnews30.pdf
für mehr Informationen):
\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}
Übrigens: Ich würde auch vorschlagen, zu verwenden, cleveref
anstatt Ihr eigenes zu definieren \figref
.