我想将图像放在光栅的整个 tcolorbox 上。
但在第一个例子中,该图像不在顶部。
我尝试将图像放在正确的 tcolorbox 上,但我无法使 tcolorbox 具有与光栅第一行相同的高度。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage[frenchb]{babel}
\usepackage[table,x11names]{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{skins, raster}
\usepackage{multicol}
\usepackage[paper=a4paper, margin={1cm,3cm},
headsep=0.5cm, headheight=2.2cm,]{geometry}
\usepackage{MnSymbol}
\usepackage{frcursive}
\usepackage{comicneue}
\usepackage{mwe}
\parindent=0mm
\begin{document}
\begin{tcbitemize}[raster columns=4, raster equal height,]
\tcbitem[raster multirow=2, blankest]
\begin{tcbitemize}[raster columns=1, raster rows=2]
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1]
Prénom : \hrulefill
Date : \hrulefill/\hrulefill/\hrulefill
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1,
overlay={\node[] at (frame.north east) {\includegraphics[width=10mm]{example-image-a}};},]
Signature des parents :
\end{tcbitemize}
\tcbitem[raster multicolumn=3, raster multirow=2,
colback=white, colframe=SkyBlue1]
\comicneue{\textbf{Évaluation d'Histoire {\LARGE $\filledstar$} CE2}}
\comicneue{Le découpage du temps}
Connaissances :
\end{tcbitemize}
\begin{tcbitemize}[raster columns=4, raster equal height,]
\tcbitem[raster multirow=2, blankest]
\begin{tcbitemize}[raster columns=1, raster rows=2]
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1]
Prénom : \hrulefill
Date : \hrulefill/\hrulefill/\hrulefill
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1,]
Signature des parents :
\end{tcbitemize}
\tcbitem[raster multicolumn=3, raster multirow=1]%, blankest]
\begin{tcbitemize}[raster columns=1]
\tcbitem[enhanced, colback=white, colframe=SkyBlue1,
overlay={
\node[] at (frame.west) {\includegraphics[width=10mm]{example-image-a}};}]
\comicneue{\textbf{Évaluation d'Histoire {\LARGE $\filledstar$} CE2}}
\comicneue{Le découpage du temps}
Connaissances :
\end{tcbitemize}
\end{tcbitemize}
\begin{tcbitemize}[raster columns=4, raster equal height,]
\tcbitem[raster multirow=2, blankest]
\begin{tcbitemize}[raster columns=1, raster rows=2]
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1]
Prénom : \hrulefill
Date : \hrulefill/\hrulefill/\hrulefill
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1,]
Signature des parents :
\end{tcbitemize}
\tcbitem[raster multicolumn=3, raster multirow=1, blankest]
\begin{tcbitemize}[raster columns=1]
\tcbitem[enhanced, colback=white, colframe=SkyBlue1,
overlay={
\node[] at (frame.west) {\includegraphics[width=10mm]{example-image-a}};}]
\comicneue{\textbf{Évaluation d'Histoire {\LARGE $\filledstar$} CE2}}
\comicneue{Le découpage du temps}
Connaissances :
\end{tcbitemize}
\end{tcbitemize}
\end{document}
答案1
frame.west
垂直方向较大的框的 是正确的位置,但需要multirow
一个明确的raster height=...
值才能获得正确的位置。 编译对此显示了明确的警告,手册tcolorbox
也对此进行了说明。
为了使图像位于左侧,请使用xshift=...
选项\node
的overlay
。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage[frenchb]{babel}
\usepackage[table,x11names]{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{skins, raster}
\usepackage{multicol}
\usepackage[paper=a4paper, margin={1cm,3cm},
headsep=0.5cm, headheight=2.2cm,]{geometry}
\usepackage{MnSymbol}
\usepackage{frcursive}
\usepackage{comicneue}
\usepackage{mwe}
\parindent=0mm
\begin{document}
\begin{tcbitemize}[raster columns=4, raster equal height,raster height=0.25\textheight]
\tcbitem[raster multirow=2, blankest]
\begin{tcbitemize}[raster columns=1, raster rows=2]
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1]
Prénom : \hrulefill
Date : \hrulefill/\hrulefill/\hrulefill
\tcbitem[left=1mm, right=1mm, enhanced,
colback=white, colframe=SkyBlue1,
]
Signature des parents :
\end{tcbitemize}
\tcbitem[enhanced,raster multicolumn=3, raster multirow=2,
colback=white, colframe=SkyBlue1, overlay={\node[] at (frame.west) {\includegraphics[width=10mm]{example-image-a}};}]
\comicneue{\textbf{Évaluation d'Histoire {\LARGE $\filledstar$} CE2}}
\comicneue{Le découpage du temps}
Connaissances :
\end{tcbitemize}
\end{document}
答案2
Christian Hupfer 解决了您的问题,但我想提供一个使用poster
库而不是的替代解决方案raster
。
tcolorbox-poster
库提供了在网格上分布 tcolorbox 的工具(就像raster
),但功能更灵活。例如,框可以是任意大小,甚至不是行或列的倍数。缺点是分布仅限于一页,海报不像光栅那样可拆分。
作为示例,我复制了您的三个框分布,但略有变化。初始网格由两行四列组成。第一列将由左侧框占据,其余区域将由右侧框覆盖。
在这种情况下,左列分布在两个不同的框中,左上角的框使用 60% 的行高,而左下角的框将覆盖可用空间。由于现在交点不在frame.west
,我将图形放在了第二个框角上。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage[frenchb]{babel}
\usepackage[table,x11names]{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{skins, raster, poster}
\usepackage{multicol}
\usepackage[paper=a4paper, margin={1cm,3cm},
headsep=0.5cm, headheight=2.2cm,]{geometry}
\usepackage{MnSymbol}
\usepackage{frcursive}
\usepackage{comicneue}
\parindent=0mm
\begin{document}
\begin{tcbposter}[
poster = {height=.25\textheight, spacing = 2mm, columns=4, rows=2},
boxes = {enhanced, colback=white, colframe=SkyBlue1}
]
\posterbox[left=1mm, right=1mm]
{name=prenom, column=1,row=1, rowspan=0.6}
{Prénom : \hrulefill\\ Date : \hrulefill/\hrulefill/\hrulefill}
\posterbox{column=2,row=1, span=3, rowspan=2}
{%
\comicneue{\textbf{Évaluation d'Histoire {\LARGE $\filledstar$} CE2}}
\comicneue{Le découpage du temps}
Connaissances:
}
\posterbox[left=1mm, right=1mm,
overlay={\node[shift={(1mm,1mm)}] at (frame.north east)
{\includegraphics[width=1cm]{example-image-A}};}]
{column=1, between= prenom and bottom}
{Signature des parents:}
\end{tcbposter}
\end{document}