将特定字幕放在 tcolorbox 上

将特定字幕放在 tcolorbox 上

我想将“(2+2+2=6 分)”放入 tcolorbox 下方的小字幕卡中。

这是我的最小示例:

\documentclass[12pt,english]{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\newtcolorbox{mybox}[1]{before skip=16pt, after skip=12pt,breakable, fonttitle=\Large,colback=gray!20,colframe=red!30!black, title=#1}

\begin{document}
\begin{mybox}{Problem 1: blabla}blablabla \vspace*{1cm}
\begin{flushright}
(2+2+2=6 points)
\par\end{flushright}

\end{mybox}
\end{document}

我希望它看起来像我尝试在这里形象化的样子(背景也可以是深红色,我只是快速地使用了油漆):

在此处输入图片描述

我如何实现这个目标?

答案1

你可以做这样的事情:

\documentclass[12pt,english]{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\newtcolorbox{mybox}[1]{before skip=16pt, after skip=0pt,breakable, fonttitle=\Large,colback=gray!20,colframe=red!30!black, title=#1}

\newenvironment{myfullbox}[2][]{\def\Arg{#1}\begin{mybox}{#2}}{\end{mybox}\ifx\Arg\empty\relax\else\vspace{-12pt}\par\begin{flushright}\begin{minipage}[inner sep=0pt,outer sep=0pt]{0.4\linewidth}\begin{mybox}{}\Arg\end{mybox}\end{minipage}\end{flushright}\fi\vspace{12pt}}

\begin{document}
\begin{myfullbox}[(2+2+2=6 points)]{Problem 1: blabla}blablabla \vspace*{1cm}
\end{myfullbox}
\end{document}

输出:

在此处输入图片描述

PS:第二个框可以通过另一个“tcolorbox”有完全不同的设置

答案2

用 就可以轻松完成overlay

\documentclass[12pt,english]{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,skins}
\newtcolorbox{mybox}[2]{before skip=16pt, after skip=12pt,breakable, 
fonttitle=\Large,colback=gray!20,colframe=red!30!black,enhanced,
enlarge bottom by=1.5em,title=#1,overlay={\node[anchor=north east,
 draw,very thick,red!30!black,fill=gray!20] at ([xshift=-3pt]frame.south east){(#2)};}}

\begin{document}
\begin{mybox}{Problem 1: blabla}{2+2+2=6 points}
blablabla \vspace*{1cm}
\end{mybox}
\end{document}

在此处输入图片描述

请注意,我明确设置了包含点的节点的框架颜色和填充颜色。但是,如果您对此感到困扰,可以轻松地从“母框”继承它。

\documentclass[12pt,english]{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,skins}
\newtcolorbox{mybox}[2]{before skip=16pt, after skip=12pt,breakable, 
fonttitle=\Large,colback=gray!20,colframe=red!30!black,enhanced,
enlarge bottom by=1.5em,title=#1,overlay={\node[anchor=north east,
 draw,very thick,tcbcolframe,fill=tcbcolback] at ([xshift=-3pt]frame.south east){(#2)};}}

\begin{document}
\begin{mybox}{Problem 1: blabla}{2+2+2=6 points}
blablabla \vspace*{1cm}
\end{mybox}
\end{document}

相关内容