我想将阴影(放下提升)仅应用于易碎物品的最后一部分tcolorbox
,但我在文档中找不到任何提示。以下 MWE 是无效的尝试。
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{mwe}
\tcbuselibrary{breakable,skins}
\begin{document}
\begin{tcolorbox}[breakable,drop lifted shadow,skin=enhancedlast]
\lipsum[1-5]
\end{tcolorbox}
\end{document}
因此我的问题是:是否可以将阴影仅应用于可破碎物的最后部分tcolorbox
?
答案1
版本 1(附加内容):
也许最短的解决方案是利用或更新的新extras
选项tcolorbox 3.70 (2015/07/16)
。这些允许为中断序列的不同部分放置选项。在这里,我们需要extras unbroken or last
:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{mwe}
\tcbuselibrary{breakable,skins}
\begin{document}
\begin{tcolorbox}[breakable,
extras unbroken and last={drop lifted shadow},
skin=enhancedlast ]
\lipsum[1-5]
\end{tcolorbox}
\end{document}
版本 2(皮肤):
这是另一种选择。无论如何,更换皮肤是解决问题的方法。如果主皮肤是enhancedlast
,则中断顺序将是enhancedmiddle
(第一个)、 enhancedmiddle
(中间)、enhancedlast
(最后一个)。
使用 subskin 功能,我采用此标准序列并添加适当的阴影选项。这得到:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{mwe}
\tcbuselibrary{breakable,skins}
\begin{document}
\begin{tcolorbox}[breakable,drop lifted shadow,
skin=enhancedlast,
skin first is subskin of={enhancedmiddle}{no shadow},
skin middle is subskin of={enhancedmiddle}{no shadow},
skin last is subskin of={enhancedlast}{drop lifted shadow} ]
\lipsum[1-5]
\end{tcolorbox}
\end{document}
答案2
是的,这是可能的。我定义了一种新样式和一种新皮肤(类似于enhancedmiddle
),可以做到这一点(也许有一个更简单的解决方案):
\documentclass{article}
\usepackage[a6paper]{geometry}% just for the example
\usepackage{tcolorbox}
\usepackage{lipsum}
\tcbuselibrary{breakable,skins}
\makeatletter
\tcbset{
mybase@middle/.style={%
clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,%
set@outerboundary=\tcb@boundaryframe@pathmiddle,%
shape@of@skin=middle,%
set@extensions@preframe={},%
set@extensions@postframe={\tcb@draw@border@middle\tcb@apply@underlay\tcb@apply@overlay},%
set@extensions@final={\tcb@apply@finish}%
}
}
\tcb@new@skin{myenhancedmiddle}{
mybase@middle,%
frame engine=pathmiddle,
interior titled engine=pathmiddle,
interior engine=pathmiddle,
segmentation engine=path,
title engine=pathmiddle,%
skin first=enhancedmiddle,
skin middle=enhancedmiddle,
skin last=enhancedmiddle
}
\makeatother
\begin{document}
\begin{tcolorbox}[
breakable,
skin=myenhancedmiddle,
skin first=myenhancedmiddle,
skin middle=myenhancedmiddle,
drop lifted shadow
]
\lipsum[1-4]
\end{tcolorbox}
\end{document}
输出显示只有破损盒子的最后一个部分接收阴影: