在 tcolorbox 的角落添加一个小的 tcolorbox

在 tcolorbox 的角落添加一个小的 tcolorbox

问题

我正在尝试使用复制下面的图像tcolorbox。我的主要问题是实现以下目标:

  • 我想在几个选定的框的右下角放置一个小框数字
  • 有没有办法让它\thetcbrasternum从 3 开始而不是从 1 开始增加?

试图

在此处输入图片描述

目标

在此处输入图片描述

代码

\documentclass[border=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[skins,raster]{tcolorbox}

\begin{document}

\begin{tcbitemize}[enhanced,
raster columns=4, raster equal height,size=small,sharp corners,
% colframe=red!50!black,colback=red!10!white,colbacktitle=red!50!white,
title=\thetcbrasternum]
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem Kjemi
\tcbitem Termofysikk
\tcbitem Vektorer i rommet
\tcbitem Lys
\tcbitem Bølger
\tcbitem Følger
\tcbitem Integrasjon
\tcbitem Differensial-likninger
\tcbitem Påske
\tcbitem Elektrisitet
\tcbitem Mengdelære
\tcbitem Sannsynlighet
\tcbitem Statikk
\tcbitem Repitisjon
\end{tcbitemize}


\end{document}

答案1

这有点像 hack(好吧,两个 hack),因为我无法找到tcolorbox构建的框架是否有名称。 hack 包括:

  1. 魔法\expandafter(可能使用\fpeval可扩展的魔法会更好,我不知道)...
  2. 您必须手动调整数字\splat...我们的想法是在项目的开始处放置一些 0 大小的东西然后从那里绘制。
\documentclass[border=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[skins,raster]{tcolorbox}

\newcommand{\splat}[1]{%
    \begin{tikzpicture}[overlay, x=\linewidth, y=\linewidth]
        \path (1.05,-.65) node [draw, anchor=south east] {#1};
    \end{tikzpicture}%
}
\newcommand{\ssplat}[1]{%
    \begin{tikzpicture}[overlay, x=\linewidth, y=\linewidth]
        #1;
    \end{tikzpicture}%
}
\begin{document}

\begin{tcbitemize}[enhanced,
raster columns=4, raster equal height,size=small,sharp corners,
% colframe=red!50!black,colback=red!10!white,colbacktitle=red!50!white,
title={\expandafter\pgfmathparse\expandafter{\thetcbrasternum + 2}\pgfmathprintnumber{\pgfmathresult}}]
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem \splat{1}Kjemi
\tcbitem Termofysikk
\tcbitem \splat{2}Vektorer i rommet
\tcbitem Lys
\tcbitem Bølger
\tcbitem Følger
\tcbitem Integrasjon
\tcbitem Differensial-likninger
\tcbitem \ssplat{\draw (0,0) -- (1.05,-.65) (0, -.65) -- (1.05,0)
     node[midway, fill=white]{Påske}}
\tcbitem Elektrisitet
\tcbitem Mengdelære
\tcbitem Sannsynlighet
\tcbitem Statikk
\tcbitem Repitisjon
\end{tcbitemize}
\end{document}

在此处输入图片描述

(显然,您应该对“Påske”框使用正确的颜色以使其混合)。

答案2

或为栅格内的所有框定义通用样式,但您可以将特定样式应用于每个框。在这种情况下,定义了两种样式(tcbraster和)以在角落添加一个框并在背景上添加一个删除线。tcbitemizeboxcross

关于计数器,使用起来很困难thetcbrasternum,定义自己的计数器并根据需要初始化会更容易。

\documentclass[border=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[skins,raster]{tcolorbox}

\newcounter{mycounter}
\setcounter{mycounter}{2}

\tcbset{
    box/.style={overlay={\node[anchor=south east, draw] at (frame.south east) {#1};}},
    cross/.style={underlay={\draw (interior.north west)--(interior.south east) (interior.north east)--(interior.south west);}}
}

\begin{document}

\begin{tcbitemize}[enhanced,
raster columns=4, raster equal height,size=small,sharp corners,
title={\refstepcounter{mycounter}\themycounter},
]
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem Fysikk i væsker og gasser \tcblower Trigonometriske likninger 
\tcbitem[box={1}]Kjemi
\tcbitem Termofysikk
\tcbitem[box=2] Vektorer i rommet
\tcbitem Lys
\tcbitem Bølger
\tcbitem Følger
\tcbitem Integrasjon
\tcbitem Differensial-likninger
\tcbitem[cross, valign=center, halign=center] \tcbox[colback=white, size=small, colframe=white]{Påske}
\tcbitem Elektrisitet
\tcbitem Mengdelære
\tcbitem Sannsynlighet
\tcbitem Statikk
\tcbitem Repitisjon
\end{tcbitemize}
\end{document}

在此处输入图片描述

相关内容