From 617d2cce1366a0ec63798db148b89f9f3680e508 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 30 Dec 2016 13:20:48 +0000 Subject: scalerel (29dec16) git-svn-id: svn://tug.org/texlive/trunk@42809 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/scalerel/scalerel.sty | 55 +++++++++++------------ 1 file changed, 27 insertions(+), 28 deletions(-) (limited to 'Master/texmf-dist/tex/latex/scalerel') diff --git a/Master/texmf-dist/tex/latex/scalerel/scalerel.sty b/Master/texmf-dist/tex/latex/scalerel/scalerel.sty index 397f6be945e..5c25e8fa0f1 100644 --- a/Master/texmf-dist/tex/latex/scalerel/scalerel.sty +++ b/Master/texmf-dist/tex/latex/scalerel/scalerel.sty @@ -1,5 +1,5 @@ \ProvidesPackage{scalerel} -[2015/02/18 v1.7 +[2016/12/29 v1.8 Routines for constrained scaling and stretching of objects, relative to a reference object or in absolute terms] % @@ -45,6 +45,12 @@ % and \stretchleftright{}{}{}, which had been causing overflow. % -Made \hstretch and \vstretch routines more efficient, using % optional arguments of \scalebox, instead of \scalerel. +% V1.8 -Fixed divide by 0 bugs that would arise when object to be +% scaled fell completely below the baseline (zero height). +% Required revisions to \scalerelplain, \stretchrelplain, +% \scaleto, and \stretchto. +% -Fixed aspect-ratio bug, that calculated aspect for stretched object +% based only upon portion above baseline \usepackage{calc} \usepackage{graphicx} @@ -54,7 +60,6 @@ \global\newlength\srblobheight \global\newlength\srblobdepth \global\newlength\mnxsrwidth -\newsavebox{\prebox} \newlength\LMex \newlength\LMpt \def\scriptstyleScaleFactor{.7} @@ -63,17 +68,16 @@ \newcommand\scalerel{\@ifstar{\scalerelplain}{\scalerelplus}} \newcommand\scalerelplain[3][99in]{\ThisStyle{% - \sbox{\prebox}{\@obj{#2}}% \setbox0\hbox{\@obj{#3}}% \setlength\srblobheight{\ht0+\dp0}% \setlength\srblobdepth{\dp0}% - \setbox0\hbox{\@obj{#2}}% - \setlength\thesrwidth{\wd0*\ratio{\srblobheight}{\ht0+\dp0}}% - \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0+\dp0}}% + \setbox2\hbox{\@obj{#2}}% + \setbox0\hbox{\raisebox{\dp2}{\@obj{#2}}}% + \setlength\thesrwidth{\wd0*\ratio{\srblobheight}{\ht0}}% + \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0}}% \setlength\mnxsrwidth{#1}% \ifdim\thesrwidth>\mnxsrwidth\setlength\thesrwidth{\mnxsrwidth}\fi% - \raisebox{-\srblobdepth+\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - {\resizebox{\thesrwidth}{\thesrheight}{\usebox{\prebox}}}% + \raisebox{-\srblobdepth}{\resizebox{\thesrwidth}{\thesrheight}{\copy0}}% }% } @@ -82,49 +86,44 @@ \newcommand\stretchrel{\@ifstar{\stretchrelplain}{\stretchrelplus}} \newcommand\stretchrelplain[3][10000]{\ThisStyle{% - \sbox{\prebox}{\@obj{#2}}% \setbox0\hbox{\@obj{#3}}% \setlength\srblobheight{\ht0+\dp0}% \setlength\srblobdepth{\dp0}% - \setbox0\hbox{\@obj{#2}}% + \setbox2\hbox{\@obj{#2}}% + \setbox0\hbox{\raisebox{\dp2}{\@obj{#2}}}% \setlength\thesrwidth{\wd0}% - \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0+\dp0}}% + \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0}}% \setlength\mnxsrwidth{\thesrheight*100/#1}% \ifdim\thesrwidth<\mnxsrwidth\setlength\thesrwidth{\mnxsrwidth}\fi% - \raisebox{-\srblobdepth+\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - {\resizebox{\thesrwidth}{\thesrheight}{\usebox{\prebox}}}% + \raisebox{-\srblobdepth}{\resizebox{\thesrwidth}{\thesrheight}{\copy0}}% }% } \newcommand\stretchrelplus[3][10000]{\stretchrelplain[#1]{#2}{#3}#3} \newcommand\scaleto[3][99in]{\ThisStyle{% - \sbox{\prebox}{\@obj{#2}}% \setlength\srblobheight{#3}% - \setlength\srblobdepth{0pt}% - \setbox0\hbox{\@obj{#2}}% - \setlength\thesrwidth{\wd0*\ratio{\srblobheight}{\ht0+\dp0}}% - \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0+\dp0}}% + \setbox2\hbox{\@obj{#2}}% + \setbox0\hbox{\raisebox{\dp2}{\@obj{#2}}}% + \setlength\thesrwidth{\wd0*\ratio{\srblobheight}{\ht0}}% + \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0}}% \setlength\mnxsrwidth{#1}% \ifdim\thesrwidth>\mnxsrwidth\setlength\thesrwidth{\mnxsrwidth}\fi% - \setlength\srblobdepth{\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - \raisebox{-\srblobdepth+\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - {\resizebox{\thesrwidth}{\thesrheight}{\usebox{\prebox}}}% + \setlength\srblobdepth{\dp2*\ratio{\srblobheight}{\ht0}}% + \raisebox{-\srblobdepth}{\resizebox{\thesrwidth}{\thesrheight}{\copy0}}% }% } \newcommand\stretchto[3][10000]{\ThisStyle{% - \sbox{\prebox}{\@obj{#2}}% \setlength\srblobheight{#3}% - \setlength\srblobdepth{0pt}% - \setbox0\hbox{\@obj{#2}}% + \setbox2\hbox{\@obj{#2}}% + \setbox0\hbox{\raisebox{\dp2}{\@obj{#2}}}% \setlength\thesrwidth{\wd0}% - \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0+\dp0}}% + \setlength\thesrheight{\ht0*\ratio{\srblobheight}{\ht0}}% \setlength\mnxsrwidth{\thesrheight*100/#1}% \ifdim\thesrwidth<\mnxsrwidth\setlength\thesrwidth{\mnxsrwidth}\fi% - \setlength\srblobdepth{\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - \raisebox{-\srblobdepth+\dp0*\ratio{\srblobheight}{\ht0+\dp0}}% - {\resizebox{\thesrwidth}{\thesrheight}{\usebox{\prebox}}}% + \setlength\srblobdepth{\dp2*\ratio{\srblobheight}{\ht0}}% + \raisebox{-\srblobdepth}{\resizebox{\thesrwidth}{\thesrheight}{\copy0}}% }% } -- cgit v1.2.3