summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/relsize
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-09-23 22:22:33 +0000
committerKarl Berry <karl@freefriends.org>2011-09-23 22:22:33 +0000
commit7b64a1aead3e4e89f3d17737813d522ca8ec66d2 (patch)
tree4525682485730e6db7a15e451f1397145d75623b /Master/texmf-dist/tex/latex/relsize
parentd532726dc875c573a3be147427a7d7f57b11249c (diff)
relsize 4.0 (23sep11)
git-svn-id: svn://tug.org/texlive/trunk@24074 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/relsize')
-rw-r--r--Master/texmf-dist/tex/latex/relsize/relsize.sty301
1 files changed, 131 insertions, 170 deletions
diff --git a/Master/texmf-dist/tex/latex/relsize/relsize.sty b/Master/texmf-dist/tex/latex/relsize/relsize.sty
index febbf0ac7a8..1962f610916 100644
--- a/Master/texmf-dist/tex/latex/relsize/relsize.sty
+++ b/Master/texmf-dist/tex/latex/relsize/relsize.sty
@@ -1,113 +1,40 @@
-% relsize.sty 3.1 July 4, 2003
+% relsize.sty 4.0 Sept 21, 2011
% This software is contributed to the public domain.
-
+%
% LaTex2e version by Donald Arseneau <asnd@triumf.ca> and
% Matt Swift <swift@bu.edu>.
-% Original LaTex2.09 smaller.sty author: Bernie Cosell <cosell@WILMA.BBN.COM>
+% Original LaTex2.09 smaller.sty author: Bernie Cosell <cosell at WILMA.BBN.COM>
%
% Setting the font size relative to the current size
%
% commands are:
% \relsize{n} where n gives the number of steps ("mag-step" = factor of 1.2)
% to change the size by; n = 3 changes from \normalsize to
-% \LARGE size. Negative n selects smaller fonts.
-% \smaller == \relsize{-1}
-% \larger == \relsize{1}
+% \LARGE size. Negative n selects smaller fonts. n is an
+% integer (or half-integer).
+%
+% \smaller == \relsize{-1}, \smaller[n] == \relsize{-n}
+% \larger == \relsize{1}, \larger[n] == \relsize{n}
+%
% \textsmaller{text}, \textlarger{text} - versions that take an argument
%
-% \relscale{f} is equivalent to \relsize, but instead of scale-steps,
-% the parameter is a scale factor, such as .75
+% \relscale{f} like \relsize, but instead of scale-steps,
+% the parameter is a scale factor, such as .75
% \textscale{f}{text}
%
% The font-size command nearest the requested size will be used, and if
% the size error is more than \RSpercentTolerance, then the size will
-% be adjusted more precisely. (The default empty \RSpercentTolerance
-% signals automatic handling, choosing the tolerance based on the
-% font declarations.)
+% be adjusted more precisely using \fontsize. (The default empty
+% \RSpercentTolerance signals automatic handling, choosing the tolerance
+% based on the font declarations.)
%
% \mathsmaller{A}, \mathlarger{B} - math versions
% (The math versions are entirely different from the text versions.)
%
-% There are more instructions at the end of this file (after \endinput).
-
-\ProvidesPackage{relsize}[2003/07/04 ver 3.1]
-
-% The next two aren't the real initializations! The real ones are done
-% in \@tempb below. The user can change them afterwards.
-
-\def\RSsmallest{999pt}
-\def\RSlargest{1pt}
-
-% First, right now, we assemble a list of the font sizes
-
-\def\rs@size{\noexpand\rs@size\noexpand}
-\def\rs@fontsizes{}
-\def\@tempa#1{\ifx\@undefined#1\else
- \expandafter\@tempb#1\delimiter{#1}\fi}
-\def\@absVal#1{\ifnum#1<\z@-\fi#1}
-% parse definition of font-size command (like \large)
-% #1 = \@setfontsize #2 = the command (\large) #3 = size #4 = rest
-\def\@tempb#1#2#3#4\delimiter#5{%
- \@tempdimb\z@
- \ifx\@setfontsize#1\relax\ifx#5#2\@firstofone\relax
- \afterassignment\strip@prefix \@tempdimb #3pt>%
- \fi\fi
- \ifdim\@tempdimb=\z@
- \def\rs@fontsizes{}%
- \let\@tempa\@gobble
- \else
- \edef\rs@fontsizes{\rs@fontsizes\rs@size#2{\the\@tempdimb}}%
- \ifdim\@tempdimb<\RSsmallest \edef\RSsmallest{\the\@tempdimb}\fi
- \ifdim\@tempdimb>\RSlargest \edef\RSlargest{\the\@tempdimb}\fi
- \fi}
+% More comments at the end of this file, and full documentation in
+% relsize-doc.pdf
-% examine each (expected) pre-defined font size
-\@tempa\normalsize
-\@tempa\small
-\@tempa\footnotesize
-\@tempa\large
-\@tempa\Large
-\@tempa\LARGE
-\@tempa\scriptsize
-\@tempa\tiny
-\@tempa\huge
-\@tempa\Huge
-\@tempa\HUGE % moresize.sty
-\@tempa\ssmall
-
-\ifx\rs@fontsizes\@empty % ----------------------------------------------
-
-\PackageWarning{relsize}{Failed to get list of font sizes.\MessageBreak
- Falling back to old definition.}
-
-\DeclareRobustCommand\relsize[1]{%
-\ifmmode \@nomath\relsize\else
- \begingroup
- \@tempcnta % assign number representing current font size
- \ifx\@currsize\normalsize 4\else % funny order is to have most ...
- \ifx\@currsize\small 3\else % ...likely sizes checked first
- \ifx\@currsize\footnotesize 2\else
- \ifx\@currsize\large 5\else
- \ifx\@currsize\Large 6\else
- \ifx\@currsize\LARGE 7\else
- \ifx\@currsize\scriptsize 1\else
- \ifx\@currsize\tiny 0\else
- \ifx\@currsize\huge 8\else
- \ifx\@currsize\Huge 9\else
- 4\rs@unknown@warning % unknown state: \normalsize as starting point
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
-% Change the number by the given increment:
- \advance\@tempcnta#1\relax
-% watch out for size underflow:
- \ifnum\@tempcnta<\z@ \rs@size@warning{small}{\string\tiny}\@tempcnta\z@ \fi
- \expandafter\endgroup
- \ifcase\@tempcnta % set new size based on altered number
- \tiny \or \scriptsize \or \footnotesize \or \small \or \normalsize \or
- \large \or \Large \or \LARGE \or \huge \or \Huge \else
- \rs@size@warning{large}{\string\Huge}\Huge
-\fi\fi}
-
-\else % ----------------------------------------------
+\ProvidesPackage{relsize}[2011/09/21 ver 4.0]
\DeclareRobustCommand\relsize[1]{%
\ifmmode \@nomath\relsize\else
@@ -126,7 +53,7 @@
\@whilenum {\@tempcnta>\z@}\do {%
\advance\@tempcnta\m@ne
\@tempdimb\@tempa\@tempdimb}%
- % \message{ target size \the\@tempdimb. }%
+ % \message{ target size \the\@tempdimb. }%
\rs@scaleToB
\fi}
@@ -142,6 +69,7 @@
% Change font size to \@tempdimb. Follows from \relsize or \relscale
\def\rs@scaleToB{%
+ %\message{Change font size from \f@size\space to \the\@tempdimb. }%
% perform automatic tolerance adjustment, if requested
\ifx\RSpercentTolerance\@empty \rs@autoTol \fi
% apply limits
@@ -149,25 +77,29 @@
\rs@size@warning{small}{\RSsmallest}\fi
\ifdim\@tempdimb>\RSlargest \@tempdimb=\RSlargest
\rs@size@warning{large}{\RSlargest}\fi
- % look up that size in list of pre-defined sizes. Puts error of
+ % Look up that size in list of pre-defined sizes. Put error of
% closest match in \@tempdima
- \let\@tempa\relax \@tempdima\maxdimen
+ \def\@tempa{\relax}\@tempdima-\@m\p@
\let\rs@size\rs@lookup \rs@fontsizes
- % \message{ Look up best as \expandafter\string\@tempa\space
- % (off by \the\@tempdima}%
+ %\message{Look up best as \expandafter\string\@tempa, off by \the\@tempdima}%
% See how close match was (abs difference -> \@tempdima)
\ifdim\@tempdima<\z@ \@tempdima-\@tempdima\fi
% ... percentage error in \@tempdima (as a count)
- \@tempdima 100\@tempdima \divide\@tempdima\@tempdimb
- % if error is beyond tolerance, append \fontsize adjustment
- % \message{ or \number\@tempdima \expandafter\@gobble\string\%). }%
+ % (messiness to prevent numeric overflows)
+ \ifdim\@tempdima<160\p@ \@tempdima 100\@tempdima
+ \ifdim\@tempdimb>\p@ \divide\@tempdima\@tempdimb \fi
+ %\message{or \number\@tempdima \@percentchar. }%
+ \fi
+ % if error is beyond tolerance, append \fontsize adjustment.
\ifnum\@tempdima>\RSpercentTolerance
- % \message{ adjust size to \strip@pt\@tempdimb. }%
- \@tempdima1.2\@tempdimb % baselineskip
+ %\message{Adjust size to \strip@pt\@tempdimb. }%
+ \@tempdima1.2\@tempdimb % baselineskip (could be improved)
\edef\@tempa{\expandafter\noexpand\@tempa \noexpand\fontsize
{\strip@pt\@tempdimb}{\strip@pt\@tempdima}\noexpand\selectfont}\fi
% Now execute size-change command \@tempa
- \expandafter\endgroup\@tempa}
+ \expandafter\endgroup\@tempa
+ %\message{Font size is now \f@size. }%
+}
% For each defined font size, compare its actual size to the desired
% size (\@tempdimb) and the error of the best previous match (\@tempdima).
@@ -183,14 +115,10 @@
\endgroup
\fi}
-\fi % ----------------------------------------------
-
% Tolerance for size mis-match (%). The empty definition triggers
% automatic selection: 5 for scalable fonts, 30 otherwise.
-\def\RSpercentTolerance{}
-
\def\rs@autoTol{%
\expandafter\expandafter\expandafter\rs@autoTOL
\expandafter\meaning
@@ -210,17 +138,84 @@
\newcommand\rs@size@warning[2]{\PackageWarning{relsize}{%
Size requested is too #1.\MessageBreak Using #2 instead}}
-\newcommand\rs@unknown@warning{\PackageWarning{relsize}{Current font size
- is unknown! (Why?!?)\MessageBreak Assuming \string\normalsize}}
-
% derived commands
\DeclareRobustCommand\larger[1][\@ne]{\relsize{+#1}}
\DeclareRobustCommand\smaller[1][\@ne]{\relsize{-#1}}
-\DeclareRobustCommand\textlarger[2][\@ne]{{\relsize{+#1}#2}}
-\DeclareRobustCommand\textsmaller[2][\@ne]{{\relsize{-#1}#2}}
+\DeclareRobustCommand\textlarger[2][\@ne]{\leavevmode{\relsize{+#1}#2}}
+\DeclareRobustCommand\textsmaller[2][\@ne]{\leavevmode{\relsize{-#1}#2}}
+
+
+% Some initializations.
+
+% Default empty definition triggers auto-tolerance.
+% Beware that \providecommand makes \long macro that fails to trigger.
+
+\def\RSpercentTolerance{}
+
+% The next two aren't the real initializations! The real ones are done
+% in \@tempb below. The user can change them afterwards.
+
+\def\RSsmallest{999pt}
+\def\RSlargest{1pt}
-% math commands (completely different)
+% Right now we assemble a list of the font sizes
+
+\def\rs@size{\noexpand\rs@size\noexpand}
+\def\rs@fontsizes{}
+\def\@tempa#1{\ifx\@undefined#1\else
+ \expandafter\@tempb#1\@empty\relax\relax\delimiter{#1}\fi}
+\def\@absVal#1{\ifnum#1<\z@-\fi#1}
+% parse definition of font-size command (like \large)
+% #1 = \@setfontsize #2 = the command (\large) #3 = size #4 = rest
+\def\@tempb#1#2#3#4\delimiter#5{%
+ \let\protect\@unexpandable@protect
+ \message{Examine \string#5 starts \string#1 size may be \string#3. }%
+ \ifcase0\ifx\protect#1\@firstofone\relax\ifx\@empty#31\fi\fi % normal
+ \@tempdimb\z@
+ \ifx\@setfontsize#1\relax\ifx#5#2\@firstofone\relax
+ \afterassignment\strip@prefix \@tempdimb #3pt>%
+ \fi\fi
+ \ifdim\@tempdimb=\z@ % Failed to parse size
+ \def\RSpercentTolerance{3}% Both a setting and a flag
+ \else
+ \edef\rs@fontsizes{\rs@fontsizes\rs@size#2{\the\@tempdimb}}%
+ \ifdim\@tempdimb<\RSsmallest \edef\RSsmallest{\the\@tempdimb}\fi
+ \ifdim\@tempdimb>\RSlargest \edef\RSlargest{\the\@tempdimb}\fi
+ \fi
+ \or % self-protected: recurse
+ \expandafter\@tempb#2\@empty\relax\relax\delimiter{#5}%
+ \fi
+ \let\protect\@typeset@protect}
+
+% examine each (expected) pre-defined font size
+\@tempa\normalsize
+\@tempa\small
+\@tempa\footnotesize
+\@tempa\large
+\@tempa\Large
+\@tempa\LARGE
+\@tempa\scriptsize
+\@tempa\tiny
+\@tempa\huge
+\@tempa\Huge
+\@tempa\HUGE % moresize.sty
+\@tempa\ssmall
+
+\ifx\RSpercentTolerance\@empty \else
+
+ \PackageWarningNoLine{relsize}
+ {Failed to get list of defined font sizes.\MessageBreak
+ Size scaling will attempt arbitrary sizes.}
+
+ \def\RSsmallest{\p@}%
+ \def\RSlargest{100pt}%
+ \ifx\rs@fontsizes\@empty \def\RSpercentTolerance{0}\fi
+
+\fi
+
+%
+% Math commands (completely different)
\DeclareRobustCommand\mathsmaller[1]{\bgroup
\let\rs@makechoice\rs@makesmallerchoice
@@ -233,7 +228,9 @@
\futurelet\@tempa\rs@collect@decor
}
-% math so far is in \rs@mathatom; next tok is \@tempa; continuation is \@tempb
+% Collect the tokens that 'decorate' the atom, to apply them directly on the
+% symbol, not after the closing brace.
+% Math so far is in \rs@mathatom; next tok is \@tempa; continuation is \@tempb
% Don't nest \ifs because token may be \if or \fi or \or...
\def\rs@collect@decor{%
\let\@tempb\rs@makechoice
@@ -272,10 +269,10 @@
\endinput
==========================================================
-R E L S I Z E . S T Y ver 3.1 July 4, 2003
+R E L S I Z E . S T Y ver 4.0 Sept 21, 2011
by Donald Arseneau, asnd@triumf.ca, Vancouver, Canada
-origianally based on smaller.sty by Bernie Cosell, cosell@WILMA.BBN.COM,
+originally based on smaller.sty by Bernie Cosell, cosell@WILMA.BBN.COM,
and combined with the version by Matt Swift, swift@bu.edu.
@@ -286,39 +283,19 @@ font sizes of a document at a later time, and makes it hard to write macros
that work at arbitrary sizes. Relsize.sty defines several commands for LaTeX
to set font sizes relative to the current size.
-To refresh your memory, the font sizing commands in LaTeX are, in order:
-\tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large,
-\LARGE, \huge, \Huge (package moresize adds \ssmall and \HUGE). The main
-new command provided by relsize.sty is \relsize, which takes one (positive
-or negative) number as its argument; the number specifies how many "steps"
-by which to change the font size, where each step is a scaling factor of
-1.2, corresponding to the usual difference between the size commands. For
-example, if "{\relsize{-2} smaller}" appears in normal sized text, the word
-"smaller" is printed in script size type. If the same command appears in a
-\Large section title, then "smaller" is printed in normal size.
-
-There are also the commands \larger and \smaller, which normally change the
-font size by one step in the obvious direction; \larger is an abbreviation
-for \relsize{+1}, and \smaller is an abbreviation for \relsize{-1}. For
-example, {\large... \larger{WOW!}} prints "WOW" in \Large type. You can
-also specify bigger steps as an optional argument for \larger and \smaller:
-\larger[3] is equivalent to \relsize{3}; \smaller[2] is \relsize{-2}.
-Both \larger and \smaller accept negative arguments, but please don't make
-things so obscure! If you want to change size by several steps it is
-much better to give an increment than to string several \larger commands
-together; i.e., \relsize{3} or \larger[3], but not \larger\larger\larger.
-
-All of the \relsize, \larger, and \smaller commands are "switches" just
-like the regular sizing commands. That is, they change the size for all
-following text until the scope is ended by a closing brace. There are
-alternate versions called \textlarger and \textsmaller that take some text
-as an argument and apply the size change to only that text:
-\textlarger{big}.
-
-Using the number of "magnification steps" to indicate font size can
-be confusing to some people, and limiting in certain uses. There are
-commands with syntax \textscale{factor}{text} and \relscale{factor} to
-select the size based on a scale factor, like {0.75}.
+For i being an integer (or half-integer) magstep increment (like 2),
+and optional arg [i] defaulting to i=1,
+And f being a scale factor (like 0.75)
+And text being the text argument
+
+\relsize{i} ungrouped size change by i steps
+\larger[i] ungrouped size change by (optional) i steps
+\smaller[i] ungrouped size change by (optional) -i steps
+\relscale{f} ungrouped size change by scale factor f
+\textlarger[i]{text} "text" size enlarged by i steps
+\textsmaller[i]{text} "text" size reduced by i steps
+\textscale{f}{text} "text" sized scaled by factor f
+
If the size requested is too small or too large, a warning is given, and
the size will only change as far as appropriate, typically \tiny or \Huge.
@@ -327,13 +304,7 @@ get set automatically when relsize.sty is loaded, but you can redefine them
to other length values: \renewcommand\RSlargest{50pt}.
Fine point: The combination \relsize{n}\relsize{-n} is not guaranteed to
-restore the current font size! That is because the increment "n" may be
-enough to overflow the range of sizes. Say you are in \huge text already,
-and you do \relsize{4}. There is nothing bigger than \Huge so that is the
-size you get. Then an ensuing \relsize{-4} will take four steps smaller
-and change the size to \large. You should use grouping to undo relative
-size changes because it is unsafe to counteract one change with an "equal"
-change in the opposite direction.
+restore the current font size!
Typically, the font-size commands do not select fonts at regular size
intervals. \relsize (and the others) will select, and execute, the command
@@ -345,8 +316,9 @@ is composed of only discrete sizes, and "5" when the fontshape definition
covers ranges of sizes. The higher setting for discrete fonts ensures
only the pre-defined sizes get used. (By default LaTeX uses Computer
Modern fonts at discrete sizes; you get full coverage of sizes by using
-\usepackage{type1cm}.) For special uses, or when the font shape definitions
-are not parsed properly, you can redefine the percent tolerance:
+\usepackage{type1cm} or various other font packages.) For special uses,
+or when the font shape definitions are not parsed properly, you can redefine
+the percent tolerance:
\renewcommand\RSpercentTolerance{10}.
All of the commands described above are text commands; they cannot be used
@@ -369,21 +341,10 @@ Current style \mathsmaller gives \mathlarger gives
\scriptstyle \scriptscriptstyle \textstyle
\scriptscriptstyle \scriptscriptstyle (same) \scriptstyle
-For example, try $\frac{\mathlarger{E}}{E}$. Note that, for most symbols,
-\displaystyle and \textstyle are the same size, so $N \mathlarger{N}$
-gives two identical N's, but \sum and \int do get bigger in display style:
-$\int\mathlarger{\int}$, and fractions are treated differently too:
-$\frac{1}{2} \mathlarger{\frac{1}{2}}$. As you might have guessed,
-\mathlarger and \mathsmaller should only be used in math mode.
-
These commands will attempt to attach superscripts and subscripts to the
-symbol as if the symbol were used alone: $\mathlarger{\int}_{0}^{\infty}$
-but math accents and the math spacing behave as if the symbol is enclosed
-in braces (which it is). Comparing
-\[
-| \times | {\times} | \mathlarger{\times} | \mathbin{\mathlarger{\times}} |
-\]
-shows that operators must be explicitly declared to use the right operator
+symbol as if the symbol were used alone, but math accents and the math
+spacing behave as if the symbol is enclosed in braces (which it is).
+Operators should be explicitly declared to use the right operator
type (\mathrel, \mathbin, \mathop) to get the correct spacing.
Due to their oddities, the math larger/smaller commands should not be