diff options
author | Karl Berry <karl@freefriends.org> | 2018-04-09 21:14:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-04-09 21:14:28 +0000 |
commit | db2477c99efe052b36f6f42d0e8666d5de71fcd0 (patch) | |
tree | 4e039ff9a57a55301741b7fef335580017874c5b /Master/texmf-dist/source/latex/adjustbox/trimclip.dtx | |
parent | 20e3b619e46b4054c5e50d58557d23611f8eae38 (diff) |
adjustbox (9apr18)
git-svn-id: svn://tug.org/texlive/trunk@47405 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/adjustbox/trimclip.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/adjustbox/trimclip.dtx | 459 |
1 files changed, 425 insertions, 34 deletions
diff --git a/Master/texmf-dist/source/latex/adjustbox/trimclip.dtx b/Master/texmf-dist/source/latex/adjustbox/trimclip.dtx index a1a6ad7cb37..31dd9eb99b8 100644 --- a/Master/texmf-dist/source/latex/adjustbox/trimclip.dtx +++ b/Master/texmf-dist/source/latex/adjustbox/trimclip.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment %<=*COPYRIGHT> -%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +%% Copyright (C) 2011-2018 by Martin Scharrer <martin@scharrer-online.de> %% ---------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -26,10 +26,10 @@ %<*driver> \ProvidesFile{trimclip.dtx}[% %<=*DATE> - 2012/05/16 + 2018/04/08 %<=/DATE> %<=*VERSION> - v1.0 + v1.1 %<=/VERSION> DTX file for the trimclip package] \documentclass[a4paper]{ydoc}[2011/11/16] @@ -179,6 +179,7 @@ % % % \changes{v1.0}{2012/05/16}{First version after extraction from \pkg{adjustbox} package.} +% \changes{v1.1}{2018/04/08}{Driver support for round corner clipping.} % % \GetFileInfo{trimclip.dtx} % @@ -533,7 +534,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \begin{macrocode} \def\tc@driver{tc-\Gin@driver} -\DeclareOption{pgf}{\def\tc@driver{tc-pgf.def}\PassOptionsToPackage{pgf}{graphicx}} +\DeclareOption{pgf}{\def\tc@driver{tc-pgf.def}\AtEndOfPackage{\RequirePackage{pgf}}} \DeclareOption{pdftex}{\def\tc@driver{tc-pdftex.def}\PassOptionsToPackage{pdftex}{graphicx}} \DeclareOption{xetex}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} \DeclareOption{dvips}{\def\tc@driver{tc-dvips.def}\PassOptionsToPackage{dvips}{graphicx}} @@ -907,6 +908,7 @@ % \end{macro} % % +% % \begin{macro}{\@clipvpbox} % Clips the box using the given trim amounts. % For this the box is first trimmed and then clipped to its official size using a driver dependent macro. @@ -926,6 +928,16 @@ % The clipping support is output driver dependent. The driver selected by \pkg{graphics} is used and a definition file % is used if its exists. Otherwise either the default \texttt{pdftex} implementation or the \pkg{pgf} fall-back driver % is used. +% +% +% +% \begin{macro}{\tc@bezfacn} +% The Bezier factor required to draw rounded corners in same drivers. +% \begin{macrocode} +\def\tc@bezfacn{0.44771525}% +% \end{macrocode} +% \end{macro} +% % \begin{macrocode} \InputIfFileExists{\tc@driver}{% {\let\on@line\@gobble @@ -950,7 +962,7 @@ % \fi % \begin{macrocode} %<!COPYRIGHT> -\ProvidesFile{tc-pgf.def}[2012/05/13 v1.0 trimclip fall-back clipping driver using PGF] +\ProvidesFile{tc-pgf.def}[2018/04/08 v2.1 trimclip fall-back clipping driver using PGF] % \end{macrocode} % % \begin{macrocode} @@ -976,6 +988,60 @@ % \end{macrocode} % \end{macro} % +% +% \begin{macro}{\@clipcornersofbox} +% Clips round corners off. +% \begin{macrocode} +\def\@clipcornersofbox#1#2#3#4#5{% + \setbox#1\hbox{\begin{pgfpicture}% + \pgfpathmoveto{\pgfpoint{\z@}{\ht#1-#2}}% + \pgfpatharc{180}{90}{#2}% + \pgfpathlineto{\pgfpoint{\wd#1-#3}{\ht#1}}% + \pgfpatharc{90}{0}{#3}% + \pgfpathlineto{\pgfpoint{\wd#1}{#4-\dp#1}}% + \pgfpatharc{0}{-90}{#4}% + \pgfpathlineto{\pgfpoint{#5}{-\dp#1}}% + \pgfpatharc{270}{180}{#5}% + \pgfpathlineto{\pgfpoint{\z@}{\ht#1-#2}}% + \pgfpathclose + \pgfusepathqclip + \pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}% + \pgfnode{rectangle}{base west}{\usebox#1}{}{}% + \pgfsetbaselinepointnow{\pgfpoint\z@\z@}% + \end{pgfpicture}}% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@rndframearoundbox} +% Round frame around a box. +% \begin{macrocode} +\def\@rndframearoundbox#1#2#3#4#5{% + \setbox#1\hbox{\begin{pgfpicture}% + \adjsetlength\@tempdima{\fboxsep+.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% + \pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}% + \pgfnode{rectangle}{base west}{\usebox#1}{}{}% + \pgfusepath{}% + \adjbox@rndframe@color + \pgfpathmoveto{\pgfpoint{\z@}{\ht#1-#2}}% + \pgfpatharc{180}{90}{#2}% + \pgfpathlineto{\pgfpoint{\wd#1-#3}{\ht#1}}% + \pgfpatharc{90}{0}{#3}% + \pgfpathlineto{\pgfpoint{\wd#1}{#4-\dp#1}}% + \pgfpatharc{0}{-90}{#4}% + \pgfpathlineto{\pgfpoint{#5}{-\dp#1}}% + \pgfpatharc{270}{180}{#5}% + \pgfpathlineto{\pgfpoint{\z@}{\ht#1-#2}}% + \pgfpathclose + \pgfusepath{stroke}% + \pgfsetbaselinepointnow{\pgfpoint\z@\z@}% + \end{pgfpicture}}% +} +% \end{macrocode} +% \end{macro} +% %^^A vim: ft=tex % \iffalse %</tc-pgf.def> @@ -987,7 +1053,7 @@ % \fi % \begin{macrocode} %<!COPYRIGHT> -\ProvidesFile{tc-pdftex.def}[2012/05/13 v1.0 Clipping driver for pdftex] +\ProvidesFile{tc-pdftex.def}[2018/04/08 v2.1 Clipping driver for pdftex] % \end{macrocode} % % \begin{macro}{\@cliptoboxdim} @@ -998,23 +1064,123 @@ % \begin{macrocode} \def\@cliptoboxdim#1{% \setbox#1=\hbox{% - \Gin@defaultbp\WIDTH{\wd#1}% - \Gin@defaultbp\DEPTH{\dp#1}% - \@tempdima\ht#1% - \advance\@tempdima\dp#1% - \Gin@defaultbp\TOTALHEIGHT{\@tempdima}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\DEPTH{\dp#1}% + \adjcalc@settobp\TOTALHEIGHT{\ht#1+\dp#1}% + \pdfsave + \pdfliteral direct {% + 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re W n + }% + \hbox to 0pt{\copy#1\hss}% + \pdfrestore + \hskip\wd#1 + }% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@clip@bpdimens} +% \begin{macrocode} +\def\@clip@bpdimens#1#2#3#4#5{% + \adjcalc@settobp\TOTALHEIGHT{\ht#1+\dp#1}% + \adjcalc@settobp\HEIGHT{\ht#1}% + \adjcalc@settobp\DEPTH{-\dp#1}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\RADIUSTL{#2}% + \adjcalc@settobp\RADIUSTR{#3}% + \adjcalc@settobp\RADIUSBR{#4}% + \adjcalc@settobp\RADIUSBL{#5}% + \adjcalc@settobp\RADIUSTLb{\tc@bezfacn#2}% + \adjcalc@settobp\HEIGHTmRADIUSTL{\ht#1-#2}% + \adjcalc@settobp\HEIGHTmRADIUSTLb{\ht#1-\tc@bezfacn#2}% + \adjcalc@settobp\HEIGHTmRADIUSTR{\ht#1-#3}% + \adjcalc@settobp\HEIGHTmRADIUSTRb{\ht#1-\tc@bezfacn#3}% + \adjcalc@settobp\WIDTHmRADIUSTR{\wd#1-#3}% + \adjcalc@settobp\WIDTHmRADIUSTRb{\wd#1-\tc@bezfacn#3}% + \adjcalc@settobp\RADIUSBRmDEPTH{#4-\dp#1}% + \adjcalc@settobp\RADIUSBRmDEPTHb{\tc@bezfacn#4-\dp#1}% + \adjcalc@settobp\WIDTHmRADIUSBR{\wd#1-#4}% + \adjcalc@settobp\WIDTHmRADIUSBRb{\wd#1-\tc@bezfacn#4}% + \adjcalc@settobp\RADIUSBLmDEPTH{#5-\dp#1}% + \adjcalc@settobp\RADIUSBLmDEPTHb{\tc@bezfacn#5-\dp#1}% + \adjcalc@settobp\RADIUSBLb{\tc@bezfacn#5}% + \adjcalc@settobp\LINEWIDTH{\fboxrule}% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@clip@roundedbox@pdfcode} +% \begin{macrocode} +\def\@clip@roundedboxpath@pdfcode{% + 0 \HEIGHTmRADIUSTL m + 0 \HEIGHTmRADIUSTLb \RADIUSTLb \HEIGHT \RADIUSTL \HEIGHT c + \WIDTHmRADIUSTR \HEIGHT l + \WIDTHmRADIUSTRb \HEIGHT \WIDTH \HEIGHTmRADIUSTRb \WIDTH \HEIGHTmRADIUSTR c + \WIDTH \RADIUSBRmDEPTH l + \WIDTH \RADIUSBRmDEPTHb \WIDTHmRADIUSBRb \DEPTH \WIDTHmRADIUSBR \DEPTH c + \RADIUSBL \DEPTH l + \RADIUSBLb \DEPTH 0 \RADIUSBLmDEPTHb 0 \RADIUSBLmDEPTH c + 0 \RADIUSBLmDEPTH l +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\@clipcornersofbox} +% Clips round corners off. +% \begin{macrocode} +\def\@clipcornersofbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \@clip@bpdimens{#1}{#2}{#3}{#4}{#5}% + \pdfsave + \pdfliteral direct {% + \@clip@roundedboxpath@pdfcode + h W n + }% + \hbox to 0pt{\copy#1\hss}% + \pdfrestore + \hskip\wd#1% + }% +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\@rndframearoundbox} +% Round frame around a box. +% \begin{macrocode} +\def\@rndframearoundbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \adjsetlength\@tempdima{\fboxsep+.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% + \@clip@bpdimens{#1}{#2}{#3}{#4}{#5}% + % + \hbox to 0pt{\copy#1\hss}% \pdfsave + \hbox to 0pt{% + \color@setgroup + \adjbox@rndframe@color \pdfliteral direct {% - 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re W n + \LINEWIDTH w + \@clip@roundedboxpath@pdfcode + h s }% - \hbox to 0pt{\copy#1\hss}% + \color@endgroup + }% \pdfrestore - \hskip \wd#1 + \hskip\wd#1% }% + \adjsetlength\@tempdima{.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% } % \end{macrocode} % \end{macro} % +% %^^A vim: ft=tex % \iffalse %</tc-pdftex.def> @@ -1026,7 +1192,7 @@ % \fi % \begin{macrocode} %<!COPYRIGHT> -\ProvidesFile{tc-dvips.def}[2012/05/13 v1.0 Clipping driver for dvips] +\ProvidesFile{tc-dvips.def}[2018/04/08 v2.1 Clipping driver for dvips] % \end{macrocode} % % \begin{macro}{\@cliptoboxdim}[1]{box register to clip} @@ -1038,10 +1204,9 @@ % \begin{macrocode} \def\@cliptoboxdim#1{% \setbox#1=\hbox{% - \adjsetlength\@tempdima{\ht#1+\dp#1}% - \edef\TOTALHEIGHT{-\strip@pt\@tempdima\space}% - \edef\DEPTH{\strip@pt\dp#1\space}% - \edef\WIDTH{\strip@pt\wd#1\space}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\DEPTH{\dp#1}% + \adjcalc@settobp\TOTALHEIGHT{-\ht#1-\dp#1}% \special{% ps: /mtrxc matrix currentmatrix def @@ -1054,9 +1219,128 @@ newpath mtrxc setmatrix }% - \box#1% + \hbox to 0pt{\copy#1\hss}% \special{ps: grestore }% + \hskip\wd#1% + }% +} +% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@clipcornersofbox} +% Clips round corners off. +% \begin{macrocode} +\def\@clipcornersofbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \adjcalc@settobp\DEPTHmRADIUSBL\@tempdima + \adjcalc@settobp\TOTALHEIGHT{-\ht#1-\dp#1}% + \adjcalc@settobp\HEIGHT{-\ht#1}% + \adjcalc@settobp\DEPTH{\dp#1}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\RADIUSTL{#2}% + \adjcalc@settobp\RADIUSTR{#3}% + \adjcalc@settobp\RADIUSBR{#4}% + \adjcalc@settobp\RADIUSBL{#5}% + \adjcalc@settobp\RADIUSTLmHEIGHT{#2-\ht#1}% + \adjcalc@settobp\RADIUSTRmHEIGHT{#3-\ht#1}% + \adjcalc@settobp\WIDTHmRADIUSTR{\wd#1-#3}% + \adjcalc@settobp\DEPTHmRADIUSBR{\dp#1-#4}% + \adjcalc@settobp\WIDTHmRADIUSBR{\wd#1-#4}% + \adjcalc@settobp\DEPTHmRADIUSBL{\dp#1-#5}% + \special{% + ps: + /mtrxc matrix currentmatrix def + currentpoint gsave + translate + Resolution 72 div VResolution 72 div + scale + newpath + %0 \DEPTH neg translate + %0 \DEPTH \WIDTH \TOTALHEIGHT rectclip + 0 \RADIUSTLmHEIGHT\space moveto + \RADIUSTL\space \RADIUSTLmHEIGHT\space \RADIUSTL\space 180 -90 arc + \WIDTHmRADIUSTR\space \HEIGHT\space lineto + \WIDTHmRADIUSTR\space \RADIUSTRmHEIGHT\space \RADIUSTR\space -90 0 arc + \WIDTH\space \DEPTHmRADIUSBR\space lineto + \WIDTHmRADIUSBR\space \DEPTHmRADIUSBR\space \RADIUSBR\space 0 90 arc + \RADIUSBL\space \DEPTH\space lineto + \RADIUSBL\space \DEPTHmRADIUSBL\space \RADIUSBL\space -270 -180 arc + closepath + %gsave 0.5 0 0 setrgbcolor stroke grestore + clip + newpath + mtrxc setmatrix + }% + \hbox to 0pt{\copy#1\hss}% + \special{ps: grestore }% + \hskip \wd#1% + }% +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\@rndframearoundbox} +% Clips round corners off. +% \begin{macrocode} +\def\@rndframearoundbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \adjsetlength\@tempdima{\fboxsep+.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% + \adjcalc@settobp\TOTALHEIGHT{-\ht#1-\dp#1}% + \adjcalc@settobp\HEIGHT{-\ht#1}% + \adjcalc@settobp\DEPTH{\dp#1}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\RADIUSTL{#2}% + \adjcalc@settobp\RADIUSTR{#3}% + \adjcalc@settobp\RADIUSBR{#4}% + \adjcalc@settobp\RADIUSBL{#5}% + \adjcalc@settobp\RADIUSTLmHEIGHT{#2-\ht#1}% + \adjcalc@settobp\RADIUSTRmHEIGHT{#3-\ht#1}% + \adjcalc@settobp\WIDTHmRADIUSTR{\wd#1-#3}% + \adjcalc@settobp\DEPTHmRADIUSBR{\dp#1-#4}% + \adjcalc@settobp\WIDTHmRADIUSBR{\wd#1-#4}% + \adjcalc@settobp\DEPTHmRADIUSBL{\dp#1-#5}% + \adjcalc@settobp\LINEWIDTH{\fboxrule}% + % + \hbox to 0pt{\copy#1\hss}% + \hbox to 0pt{% + \color@setgroup + \adjbox@rndframe@color + \special{% + ps: + /mtrxc matrix currentmatrix def + currentpoint gsave + translate + Resolution 72 div VResolution 72 div + scale + newpath + %0 \DEPTH neg translate + %0 \DEPTH \WIDTH \TOTALHEIGHT rectclip + 0 \RADIUSTLmHEIGHT moveto + \RADIUSTL \RADIUSTLmHEIGHT \RADIUSTL 180 -90 arc + \WIDTHmRADIUSTR \HEIGHT lineto + \WIDTHmRADIUSTR \RADIUSTRmHEIGHT \RADIUSTR -90 0 arc + \WIDTH \DEPTHmRADIUSBR lineto + \WIDTHmRADIUSBR \DEPTHmRADIUSBR \RADIUSBR 0 90 arc + \RADIUSBL \DEPTH lineto + \RADIUSBL \DEPTHmRADIUSBL \RADIUSBL -270 -180 arc + closepath + \LINEWIDTH setlinewidth + stroke + newpath + mtrxc setmatrix + grestore + }% + \color@endgroup + }% + \hskip \wd#1% }% + \adjsetlength\@tempdima{.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% } % \end{macrocode} % \end{macro} @@ -1072,7 +1356,7 @@ % \fi % \begin{macrocode} %<!COPYRIGHT> -\ProvidesFile{tc-xetex.def}[2012/05/13 v1.0 Clipping driver for xetex] +\ProvidesFile{tc-xetex.def}[2018/04/08 v2.1 Clipping driver for xetex] % \end{macrocode} % % \begin{macro}{\@cliptoboxdim} @@ -1084,21 +1368,128 @@ % \begin{macrocode} \def\@cliptoboxdim#1{% \setbox#1=\hbox{% - \Gin@defaultbp\WIDTH{\wd#1}% - \Gin@defaultbp\DEPTH{\dp#1}% - \@tempdima\ht#1% - \advance\@tempdima\dp#1% - \Gin@defaultbp\TOTALHEIGHT{\@tempdima}% - \special{pdf:bcontent }% - \special{% - pdf:literal direct - 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\DEPTH{\dp#1}% + \adjcalc@settobp\TOTALHEIGHT{\ht#1+\dp#1}% + \special{pdf:content q }% + \special{pdf:code 0 -\DEPTH \WIDTH \TOTALHEIGHT re W n }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \special{pdf:content q }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \hbox to 0 pt{\copy#1\hss}% + \special{pdf:literal direct Q }% + \special{pdf:literal direct Q }% + \hskip\wd#1% + }% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@clip@bpdimens} +% \begin{macrocode} +\def\@clip@bpdimens#1#2#3#4#5{% + \adjcalc@settobp\TOTALHEIGHT{\ht#1+\dp#1}% + \adjcalc@settobp\HEIGHT{\ht#1}% + \adjcalc@settobp\DEPTH{-\dp#1}% + \adjcalc@settobp\WIDTH{\wd#1}% + \adjcalc@settobp\RADIUSTL{#2}% + \adjcalc@settobp\RADIUSTR{#3}% + \adjcalc@settobp\RADIUSBR{#4}% + \adjcalc@settobp\RADIUSBL{#5}% + \adjcalc@settobp\RADIUSTLb{\tc@bezfacn#2}% + \adjcalc@settobp\HEIGHTmRADIUSTL{\ht#1-#2}% + \adjcalc@settobp\HEIGHTmRADIUSTLb{\ht#1-\tc@bezfacn#2}% + \adjcalc@settobp\HEIGHTmRADIUSTR{\ht#1-#3}% + \adjcalc@settobp\HEIGHTmRADIUSTRb{\ht#1-\tc@bezfacn#3}% + \adjcalc@settobp\WIDTHmRADIUSTR{\wd#1-#3}% + \adjcalc@settobp\WIDTHmRADIUSTRb{\wd#1-\tc@bezfacn#3}% + \adjcalc@settobp\RADIUSBRmDEPTH{#4-\dp#1}% + \adjcalc@settobp\RADIUSBRmDEPTHb{\tc@bezfacn#4-\dp#1}% + \adjcalc@settobp\WIDTHmRADIUSBR{\wd#1-#4}% + \adjcalc@settobp\WIDTHmRADIUSBRb{\wd#1-\tc@bezfacn#4}% + \adjcalc@settobp\RADIUSBLmDEPTH{#5-\dp#1}% + \adjcalc@settobp\RADIUSBLmDEPTHb{\tc@bezfacn#5-\dp#1}% + \adjcalc@settobp\RADIUSBLb{\tc@bezfacn#5}% + \adjcalc@settobp\LINEWIDTH{\fboxrule}% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@clip@roundedbox@pdfcode} +% \begin{macrocode} +\def\@clip@roundedboxpath@pdfcode{% + 0 \HEIGHTmRADIUSTL m + 0 \HEIGHTmRADIUSTLb \RADIUSTLb \HEIGHT \RADIUSTL \HEIGHT c + \WIDTHmRADIUSTR \HEIGHT l + \WIDTHmRADIUSTRb \HEIGHT \WIDTH \HEIGHTmRADIUSTRb \WIDTH \HEIGHTmRADIUSTR c + \WIDTH \RADIUSBRmDEPTH l + \WIDTH \RADIUSBRmDEPTHb \WIDTHmRADIUSBRb \DEPTH \WIDTHmRADIUSBR \DEPTH c + \RADIUSBL \DEPTH l + \RADIUSBLb \DEPTH 0 \RADIUSBLmDEPTHb 0 \RADIUSBLmDEPTH c + 0 \RADIUSBLmDEPTH l +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\@clipcornersofbox} +% Clips round corners off. +% \begin{macrocode} +\def\@clipcornersofbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \@clip@bpdimens{#1}{#2}{#3}{#4}{#5}% + \special{pdf:content q }% + \special{pdf:literal direct + \@clip@roundedboxpath@pdfcode + h W n + }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \special{pdf:content q }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \hbox to 0pt{\copy#1\hss}% + \special{pdf:literal direct Q }% + \special{pdf:literal direct Q }% + \hskip\wd#1% + }% +} +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\@rndframearoundbox} +% Round frame around a box. +% \begin{macrocode} +\def\@rndframearoundbox#1#2#3#4#5{% + \setbox#1=\hbox{% + \adjsetlength\@tempdima{\fboxsep+.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% + \@clip@bpdimens{#1}{#2}{#3}{#4}{#5}% + % + \hbox to 0pt{\copy#1\hss}% + \hbox to 0pt{% + \color@setgroup + \adjbox@rndframe@color + \special{pdf:content q }% + \special{pdf:literal direct + \LINEWIDTH w + \@clip@roundedboxpath@pdfcode + h s + }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \special{pdf:content q }% + \special{pdf:literal direct -1 0 0 -1 0 0 cm }% + \special{pdf:literal direct Q }% + \special{pdf:literal direct Q }% + \color@endgroup }% - \special{pdf:literal direct W }% - \special{pdf:literal direct n }% - \box#1% - \special{pdf:econtent }% + \hskip\wd#1% }% + \adjsetlength\@tempdima{.5\fboxrule}% + \@marginbox#1\@tempdima\@tempdima\@tempdima\@tempdima% } % \end{macrocode} % \end{macro} |