问题
我正在尝试使用复制下面的图像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 包括:
- 魔法
\expandafter
(可能使用\fpeval
可扩展的魔法会更好,我不知道)... - 您必须手动调整数字
\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
和)以在角落添加一个框并在背景上添加一个删除线。tcbitemize
box
cross
关于计数器,使用起来很困难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}