88 lines
2.7 KiB
TeX
88 lines
2.7 KiB
TeX
\ExplSyntaxOn
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Environment for sidebars.
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Standard for every sidebar
|
|
\DeclareTColorBox {__rpg_sidebar} {o}
|
|
{
|
|
before~upper =
|
|
{
|
|
\bool_if:NT \l__rpg_layout_bool
|
|
{
|
|
\bool_if:NF \l__rpg_justified_bool
|
|
{\RaggedRight}
|
|
}
|
|
},
|
|
code={\linespread{.9}},
|
|
frame~hidden,
|
|
boxrule = 0pt,
|
|
enhanced,
|
|
before~skip = 13pt plus 4pt minus 4pt,
|
|
toptitle = 2pt,
|
|
boxsep = 3pt,
|
|
left = 6pt,
|
|
right = 6pt,
|
|
top = 0pt,
|
|
bottom = 2pt,
|
|
fonttitle = \RpgFontSidebarTitle,
|
|
fontupper = \RpgFontSidebarBody,
|
|
fontlower = \RpgFontSidebarBody,
|
|
sharp~corners,
|
|
parbox = false,
|
|
borderline~north = {1pt} {-0.5pt} {black},
|
|
borderline~south = {1pt} {-0.5pt} {black},
|
|
coltitle = black,
|
|
fuzzy~shadow = {0mm} {-3.5pt} {-0.5pt} {0.4mm} {black!60!white},
|
|
overlay =
|
|
{
|
|
\fill [black] ( frame.south~west ) -- ++ ( 7pt, 0 ) -- ++ ( 0, -5pt ) -- cycle;
|
|
\fill [black] ( frame.north~west ) -- ++ ( 7pt, 0 ) -- ++ ( 0, 5pt ) -- cycle;
|
|
\fill [black] ( frame.north~east ) -- ++ ( -7pt, 0 ) -- ++ ( 0, 5pt ) -- cycle;
|
|
\fill [black] ( frame.south~east ) -- ++ ( -7pt, 0 ) -- ++ ( 0, -5pt ) -- cycle;
|
|
},
|
|
after~skip = 14pt plus 4pt minus 4pt,
|
|
#1,
|
|
}
|
|
|
|
% Extra key for controlling the color of the title and the background
|
|
\keys_define:nn { rpg / sidebar }
|
|
{
|
|
color .tl_set:N = \l__rpg_sidebar_color_tl,
|
|
color .initial:n = sidebarcolor,
|
|
color .value_required:n = true,
|
|
}
|
|
|
|
% This function, through its variant, forces the expansion of the tcb keys
|
|
% passed to the environment by the user before it invokes the tcolorbox
|
|
\cs_new_protected:Nn \__rpg_start_sidebar:nn
|
|
{
|
|
\begin {__rpg_sidebar} [ #1, #2 ]
|
|
}
|
|
|
|
\cs_generate_variant:Nn \__rpg_start_sidebar:nn { nV }
|
|
|
|
% The RpgSidebar environment
|
|
% #1 - keys. We handle the custom color key before passing other keys on
|
|
% #2 - title.
|
|
\NewDocumentEnvironment {RpgSidebar} { o m }
|
|
{
|
|
\group_begin:
|
|
\keys_set_known:nnN { rpg / sidebar } {#1} \l_tmpa_tl
|
|
|
|
\str_if_eq:VnT \l_tmpa_tl { -NoValue- }
|
|
{ \tl_set_eq:NN \l_tmpa_tl \c_empty_tl }
|
|
|
|
\__rpg_start_sidebar:nV
|
|
{
|
|
colback = \l__rpg_sidebar_color_tl,
|
|
colbacktitle = \l__rpg_sidebar_color_tl,
|
|
title = {#2},
|
|
}
|
|
{\l_tmpa_tl}
|
|
}
|
|
{
|
|
\end {__rpg_sidebar}
|
|
\group_end:
|
|
}
|