|
20 | 20 | \define@key{beamerboxes}{lower}{\def\bmb@lower{#1}}
|
21 | 21 | \define@key{beamerboxes}{width}{\edef\bmb@width{#1}}
|
22 | 22 | \define@key{beamerboxes}{shadow}[true]{\csname bmb@shadow#1\endcsname}
|
| 23 | +\define@key{beamerboxes}{bgopacity}{\def\bmb@bgopacity{#1}} |
23 | 24 |
|
24 | 25 | \newif\ifbmb@shadow
|
25 | 26 | \newbox\bmb@box
|
|
80 | 81 | \else%
|
81 | 82 | \color{upper.bg}%
|
82 | 83 | \fi%
|
| 84 | + \ifdefined\bmb@bgopacity\pgfsetfillopacity{\bmb@bgopacity}\fi |
83 | 85 | \pgfpathqmoveto{-4bp}{-1bp}
|
84 | 86 | \pgfpathqcurveto{-4bp}{1.2bp}{-2.2bp}{3bp}{0bp}{3bp}
|
85 | 87 | \pgfpathlineto{\pgfpoint{\bmb@temp}{3bp}}
|
|
88 | 90 | {\pgfpoint{\bmb@dimb}{1.2bp}}%
|
89 | 91 | {\pgfpoint{\bmb@dimb}{-1bp}}%
|
90 | 92 | \bmb@dima=-\ht\bmb@box%
|
91 |
| - \advance\bmb@dima by-2pt% |
| 93 | + \ifdefined\bmb@bgopacity% |
| 94 | + % Only with explicity specified opacity, make sure that there is no |
| 95 | + % overlap between top and bottom part of the box |
| 96 | + \ifdim\wd\bmb@box=0pt% |
| 97 | + \advance\bmb@dima by .5pt% |
| 98 | + \else% |
| 99 | + \advance\bmb@dima by -1.07pt% |
| 100 | + \fi% |
| 101 | + \else% |
| 102 | + \advance\bmb@dima by -2pt% |
| 103 | + \fi% |
92 | 104 | \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
|
93 | 105 | \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
|
94 | 106 | \pgfusepath{fill}
|
|
105 | 117 | \advance\bmb@dima by8bp%
|
106 | 118 | \pgfpathrectangle{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}}
|
107 | 119 | \pgfusepath{clip}
|
| 120 | + \ifdefined\bmb@bgopacity\pgfsetfillopacity{\bmb@bgopacity}\fi% |
108 | 121 | {\pgftransformshift{\pgfpoint{-4bp}{0bp}}\pgftext[left,base]{\pgfuseshading{bmb@transition}}}%
|
109 | 122 | \end{pgfpicture}%
|
110 | 123 | }%
|
111 | 124 | \nointerlineskip%
|
112 | 125 | \vskip-0.5pt%
|
113 | 126 | \fi%
|
114 |
| - \setbox\bmb@colorbox=\hbox{{\pgfpicturetrue\pgfsetcolor{lower.bg}}}% |
| 127 | + \setbox\bmb@colorbox=\hbox{{\pgfpicturetrue% |
| 128 | + \ifdefined\bmb@bgopacity\pgfsetfillopacity{\bmb@bgopacity}\fi% |
| 129 | + \pgfsetcolor{lower.bg}}}% |
115 | 130 | \setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}%
|
116 | 131 | \vskip2pt%
|
117 | 132 | \usebeamercolor[fg]{\bmb@lower}%
|
|
173 | 188 | \pgfsetcolor{beamer@safeblack}
|
174 | 189 | \pgfpathrectangle{\pgfpoint{4bp}{8.1bp}}{\pgfpoint{\bmb@boxwidth}{\bmb@boxheight-2bp}}
|
175 | 190 | \pgfusepath{fill}
|
| 191 | + \ifdefined\bmb@bgopacity% |
| 192 | + % More precise clipping if bgopacity is specified |
| 193 | + \pgfpathqmoveto{-4bp}{8.2bp} |
| 194 | + \pgfpathqlineto{-4bp}{8bp} |
| 195 | + \pgfpathqcurveto{-4bp}{5.8bp}{-2.2bp}{4bp}{0bp}{4bp} |
| 196 | + \pgfpathlineto{\pgfpoint{\bmb@boxwidth}{4bp}} |
| 197 | + \pgfpathqcurveto{\dimexpr\bmb@boxwidth+2.2bp}{4bp}{\dimexpr\bmb@boxwidth+4bp}{5.8bp}{\dimexpr\bmb@boxwidth+4bp}{8bp} |
| 198 | + \pgfpathqlineto{\dimexpr\bmb@boxwidth+4bp}{8.2bp} |
| 199 | + \pgfusepath{fill} |
| 200 | + \fi% |
176 | 201 | \end{pgfscope}
|
177 | 202 | \end{pgfpicture}%
|
178 | 203 | \hskip4bp%
|
|
204 | 229 | {\pgfpoint{\the\bmb@dimb}{1bp}}%
|
205 | 230 | {
|
206 | 231 | \bmb@dima=\ht\bmb@box%
|
| 232 | + \ifdefined\bmb@bgopacity% |
| 233 | + % Remove overlap with bgtransparency specified |
| 234 | + \advance\bmb@dima by-.5pt% |
| 235 | + \fi% |
207 | 236 | \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
|
208 | 237 | \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
|
209 | 238 | \pgfusepath{fill}
|
|
0 commit comments