按照tcolorbox 手册,第 148 页,我制作了以下 MWE:
\documentclass[11pt]{book}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage[no-math]{fontspec}
% Define box for questions
\newtcbtheorem{exemplo}{\, Exemplo}%
{ % frame stuff
breakable,
arc=40mm,
size=normal,
enhanced,
colframe=blue,
colback=white,colbacklower=white,
borderline={0pt}{0pt}{blue!10},
% margens da frame
top=0.3cm,left=0.2cm,bottom=0.2cm,right=0.2cm,
lefttitle=0.2cm, toptitle=0.1cm,bottomtitle=0.05cm,
coltitle=blue,
fonttitle=\bfseries,
colbacktitle=blue!10,
}{ex}
\newfontfamily\cooljazz[NFSSFamily=cooljazz,BoldFont={Boogaloo Regular},Scale=0.85,Ligatures=TeX]{cooljazz}
\usepackage[subdued, defaultmathsizes]{mathastext}
\MTfamily{cooljazz}
\Mathastext[cooljazz]
% Environment for solving the questions
\newenvironment{resol}
{ \MTversion{cooljazz}\MTdonotfixfonts
\setmainfont{cooljazz}[Scale = .8, Extension = .ttf ]
}{\par}
% define grid backround
\newtcolorbox{notebook}{
enhanced,
breakable,
sharp corners,
colback=white,
colframe=white,
boxrule=0mm,top=0mm,bottom=0mm,left=0mm,right=0mm,
%left=1.3in,
underlay={%
breakable,
\begin{tcbclipinterior}
\draw[help lines,step=5mm,blue!25,shift={(interior.north west)}]
(interior.south west) grid (interior.north east);
\end{tcbclipinterior}}
}
\begin{document}
Minimum Working Example
\begin{exemplo}{Exemplo}{}
\lipsum[1-1]
\linebreak
\begin{notebook}
\begin{resol}
\lipsum[2-5]
\end{resol}
\end{notebook}
\end{exemplo}
\end{document}
结果是:
我无法将页面顶部的框与书籍类对齐。我可以与文章类对齐,但无论哪种方式,网格框都不会跨页面...此外,网格的最后一条右侧垂直线不会显示,最后一条水平底线也不会显示...我想知道是否有人对如何解决这个问题有建议....
问题似乎是tcolorbox
不允许一个盒子里面的另一个盒子破裂......
提前致谢。
添加:
我能够得到这种效果:
不完美,但目前可以做到。解决方案是添加
\begin{tcbclipinterior}
\draw[help lines, step=5mm, gray25!20, shift={(interior.north west)}]
(interior.south west) grid (interior.north east);
\end{tcbclipinterior}}
到exemplo
框中,然后为标题定义一个空白框:
\newtcolorbox{note}{
enhanced,
breakable,
sharp corners,
colback=white,
colframe=white,
boxrule=-2.25mm,top=2mm,bottom=1mm,left=2mm,right=2mm}
它仍然不完美,因为网格的顶部在框标题之后部分显示......
答案1
我理解 OP 想要一个breakable
带有网格背景的框作为框的下部。这可以通过overlay
仅应用于下部框来实现。类似:
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{exemplo}[2][]{%
enhanced, breakable, segmentation hidden, colback=white,
colframe=blue,
overlay={\begin{tcbclipinterior}
\draw[help lines, step=5mm, blue!50]
(interior.south west) grid (segmentation.south east);
\end{tcbclipinterior}},
title=#2,#1}
\begin{document}
\begin{exemplo}{First}
\lipsum[1]
\tcblower
\lipsum[1-5]
\end{exemplo}
\end{document}
原始代码的问题在于使用了两个嵌套框。tcolorbox
不能打破它们。第 148 页中的代码使用了两个框,一个用于练习,一个用于解决方案,但它们不是嵌套的,而是保持独立的。