summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/scalerel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-12-30 13:20:48 +0000
committerKarl Berry <karl@freefriends.org>2016-12-30 13:20:48 +0000
commit617d2cce1366a0ec63798db148b89f9f3680e508 (patch)
treec4f75bc02f25fe51bbbcc8008c6aee307d9e5916 /Master/texmf-dist/tex/latex/scalerel
parentae5a75110584fa2c7401d54b23d01ceb05016467 (diff)
scalerel (29dec16)
git-svn-id: svn://tug.org/texlive/trunk@42809 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/scalerel')
-rw-r--r--Master/texmf-dist/tex/latex/scalerel/scalerel.sty55
1 files changed, 27 insertions, 28 deletions
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}}%
}%
}