我想将“(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}