From cb77be104201eaab9be41990136901f05d4fa4a6 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 17 Mar 2023 03:01:16 +0000 Subject: CTAN sync 202303170301 --- macros/generic/pdfmsym/README.md | 26 ++-- macros/generic/pdfmsym/pdfmsym-doc.pdf | Bin 219777 -> 231276 bytes macros/generic/pdfmsym/pdfmsym-doc.tex | 107 ++++++++++++--- macros/generic/pdfmsym/pdfmsym.tex | 229 ++++++++++++++++++++++++++------- 4 files changed, 283 insertions(+), 79 deletions(-) (limited to 'macros/generic/pdfmsym') diff --git a/macros/generic/pdfmsym/README.md b/macros/generic/pdfmsym/README.md index f79a98d1cb..ddcb2e5ba1 100644 --- a/macros/generic/pdfmsym/README.md +++ b/macros/generic/pdfmsym/README.md @@ -1,25 +1,17 @@ # PDF Math Symbols - pdfMsym -## version 1.1.0 - The pdfMsym package provides mathematical symbols for PDF-dependent TeX compilers. -pdfMsym requires the font size in order to properly scale its symbols, so the following two lines must be added to your document in order to properly load it: - - \input pdfmsym - \pdfmsymsetscalefactor{10} - -assuming you want to load the package at a 10pt font, you can change the 10 to whatever suits your needs. -If you do not add the `\pdfmsymsetscalefactor` line, all of the macros which require pdf drawing won't work, as well as possibly some other macros. - -The pdfMsym package also provides a relatively easy-to-use interface for creating new symbols. -Read the documentation (pdfmsym-doc.pdf) for more details. - +Read the documentation (documentation.pdf) for more details. The pdfMsym package is provided under the MIT license. -Compile the documentation via `pdftex pdfmsym-doc.tex`. +Compile the documentation via `pdftex pdfsym-doc.tex`. The pdfMsym package was created and is maintained by Slurp who can be reached via email: slurper04@gmail.com Please report any bugs or issues with the package, doing so would be greatly appreciated. -Suggestions for features to add to the package will also be greatly appreciated. -Thank you for using pdfMsym, - - Slurp +## version 1.1.1 +pdfMsym version 1.1.1 fixed a bug which would cause an error when reading a PDF created with pdfMsym in certain PDF readers. + +It also added support for creating arbitrarily stroked arrows, as well as some more arrows. + +Lastly, some of the lineheads were altered. + diff --git a/macros/generic/pdfmsym/pdfmsym-doc.pdf b/macros/generic/pdfmsym/pdfmsym-doc.pdf index bd2dab960b..9bdb00b52b 100644 Binary files a/macros/generic/pdfmsym/pdfmsym-doc.pdf and b/macros/generic/pdfmsym/pdfmsym-doc.pdf differ diff --git a/macros/generic/pdfmsym/pdfmsym-doc.tex b/macros/generic/pdfmsym/pdfmsym-doc.tex index 9c62195832..753e8a31fc 100644 --- a/macros/generic/pdfmsym/pdfmsym-doc.tex +++ b/macros/generic/pdfmsym/pdfmsym-doc.tex @@ -8,7 +8,7 @@ \font\scten = cmcsc10 \def\fakebold#1{\pdf@literal{2 Tr .2 w}#1\pdf@literal{0 Tr 1 w}} -\def\scalebox[#1]#2{{\setbox0=\hbox{#2}\hbox to#1\wd0{\pdfliteral{q #1 0 0 #1 0 0 cm}\rlap{#2}\pdfliteral{Q}\hfil}}} +\def\scalebox[#1]#2{{\setbox0=\hbox{#2}\hbox to#1\wd0{\pdf@literal{q #1 0 0 #1 0 0 cm}\rlap{#2}\pdf@literal{Q}\hfil}}} \def\begincenter{\bgroup\leftskip=0pt plus 1fill \rightskip=\leftskip} \def\endcenter{\par\egroup} @@ -29,8 +29,8 @@ \newcount\c@section \newcount\c@subsection -\def\section#1{\bigskip\advance\c@section by 1 \c@subsection=0 \bgroup\fontuse cmbx10 scaled 2000 \the\c@section. #1\par\bigskip\egroup} -\def\subsection#1{\medskip\advance\c@subsection by 1 \bgroup\fontuse cmbx10 scaled 1500 \the\c@section.\the\c@subsection. #1\par\medskip\egroup} +\def\section#1{\bigskip\advance\c@section by 1 \c@subsection=0 \hbox{\fontuse cmbx10 scaled 2000 \the\c@section. #1}\par\bigskip} +\def\subsection#1{\medskip\advance\c@subsection by 1 \hbox{\fontuse cmbx10 scaled 1500 \the\c@section.\the\c@subsection. #1}\par\medskip} \chardef\fslash=`\/ {\catcode`\^^M=\active% @@ -141,7 +141,7 @@ {\setbox0=\hbox{\fakebold{\pdfMsym}}\centerline{\hbox to8\wd0{\hfil\it version \pdfMsymversion}}} \centerline{\it S. Lurp} \centerline{\tt slurper04@gmail.com} -\centerline{\it December 21, 2022} +\centerline{\it\pdfMsymupdate} \bigskip \hbox to \hsize{\hfil\vbox{\hsize=.7\hsize @@ -211,8 +211,10 @@ This section will simply be an exhaustive list of all the predefined symbols \pd \macrousage \oiNint{} /emacrousage which creates an $N$ dimensional closed loop integral. Similarly \macroname\biNint{} creates a similar integral sign but rectangular instead of elliptical. +Finally there is also \macroname\iNint{} which simply creates multiple integrals (this may be desirable instead of manually doing so since it properly set limits both with \macroname\limits{} and +\macroname\nolimits). -\line{\hfil$\displaystyle{\textstyle\oiNint{3}_A^B}\quad\oiNint{3}_A^B\hfil\biNint{3}_{A}^{B}\quad{\textstyle\biNint{3}_A^B}$\hfil} +\line{\hfil$\displaystyle\oiNint{5}_A^B\quad{\textstyle\oiNint{5}_A^B}\hfil\iNint{5}_{A}^{B}\quad{\textstyle\iNint{5}_A^B}\hfil\biNint{3}_{A}^{B}\quad{\textstyle\biNint{3}_A^B}$\hfil} Additionally, \macroname\lightning{} is provided as a textmode command and renders \lightning. @@ -258,8 +260,11 @@ And creates an extended arrow to fit both the top and bottom material. \showcasearrow\varleftrightharp{A\varleftrightharp B}{A\longvarleftrightharp B}{A\xvarleftrightharp{ABC}[abc] B} \showcasearrow\varrightleftharp{A\varrightleftharp B}{A\longvarrightleftharp B}{A\xvarrightleftharp{ABC}[abc] B} \showcasearrow\varmapsto{A\varmapsto B}{A\longvarmapsto B}{A\xvarmapsto{ABC}[abc] B} -\showcasearrow\varhookrightarrow{A\varhookrightarrow B}{A\longvarhookrightarrow B}{A\xvarhookrightarrow{ABC}[abc] B} -\showcasearrow\varhookleftarrow{A\varhookleftarrow B}{A\longvarhookleftarrow B}{A\xvarhookleftarrow{ABC}[abc] B} +\showcasearrow\varmapsfrom{A\varmapsfrom B}{A\longvarmapsfrom B}{A\xvarmapsfrom{ABC}[abc] B} +\showcasearrow\varuphookrightarrow{A\varuphookrightarrow B}{A\longvaruphookrightarrow B}{A\xvaruphookrightarrow{ABC}[abc] B} +\showcasearrow\varuphookleftarrow{A\varuphookleftarrow B}{A\longvaruphookleftarrow B}{A\xvaruphookleftarrow{ABC}[abc] B} +\showcasearrow\vardownhookrightarrow{A\vardownhookrightarrow B}{A\longvardownhookrightarrow B}{A\xvardownhookrightarrow{ABC}[abc] B} +\showcasearrow\vardownhookleftarrow{A\vardownhookleftarrow B}{A\longvardownhookleftarrow B}{A\xvardownhookleftarrow{ABC}[abc] B} \showcasearrow\vardoublerightarrow{A\vardoublerightarrow B}{A\longvardoublerightarrow B}{A\xvardoublerightarrow{ABC}[abc] B} \showcasearrow\vardoubleleftarrow{A\vardoubleleftarrow B}{A\longvardoubleleftarrow B}{A\xvardoubleleftarrow{ABC}[abc] B} \showcasearrow\varcirclerightarrow{A\varcirclerightarrow B}{A\longvarcirclerightarrow B}{A\xvarcirclerightarrow{ABC}[abc] B} @@ -279,6 +284,18 @@ an identical usage. \showcasearrow\varRibbonleftarrow{A\varRibbonleftarrow B}{A\longvarRibbonleftarrow B}{A\xvarRibbonleftarrow{ABC}[abc] B} \showcasearrow\squaredarrow{A\squaredarrow B}{A\longsquaredarrow B}{A\xsquaredarrow{ABC}[abc] B} \showcasearrow\roundedarrow{A\roundedarrow B}{A\longroundedarrow B}{A\xroundedarrow{ABC}[abc] B} +\showcasearrow\varrightarrows{A\varrightarrows B}{A\longvarrightarrows B}{A\xvarrightarrows{ABC}[abc] B} +\showcasearrow\varleftarrows{A\varleftarrows B}{A\longvarleftarrows B}{A\xvarleftarrows{ABC}[abc] B} +\showcasearrow\varrightleftarrows{A\varrightleftarrows B}{A\longvarrightleftarrows B}{A\xvarrightleftarrows{ABC}[abc] B} +\showcasearrow\varleftrightarrows{A\varleftrightarrows B}{A\longvarleftrightarrows B}{A\xvarleftrightarrows{ABC}[abc] B} + +\pdfMsym{} doesn't stop at two, but it also provides triple stroke arrows which have the same usage as the other two types +of arrows: + +\bigskip +\showcasearrow\varRrightarrow{A\varRrightarrow B}{A\longvarRrightarrow B}{A\xvarRrightarrow{ABC}[abc] B} +\showcasearrow\varLleftarrow{A\varLleftarrow B}{A\longvarLleftarrow B}{A\xvarLleftarrow{ABC}[abc] B} +\showcasearrow\varLleftRrightarrow{A\varLleftRrightarrow B}{A\longvarLleftRrightarrow B}{A\xvarLleftRrightarrow{ABC}[abc] B} \vfill\eject \subsection{Wide Accents} @@ -302,6 +319,7 @@ $$ \suum_{\hbox{abcdef}}^{\hbox{ABCDEF}} \qquad \prood_{\hbox{abcdef}}^{\hbox{AB These are not available in \xetex. \fi +\vfill\penalty-10000 \section{Defining Your Own Symbols} The following section outlines the interface which \pdfMsym{} utilizes to create its symbols. @@ -324,11 +342,22 @@ For example, the definition of \macroname\@rarrow{} is: \def\@rarrow {\@linehead@type{0 0 m 2 0 l 1 0 0 1 0 1.5 c 2 0 m 1 0 0 -1 0 -1.5 c S}{2}} /endcode -The predefined lineheads are -\icode \@rarrow, \@larrow, \@rharp, \@lharp, \@rdharp, \@rlharp, \@mapcap, \@rsarrow, \@lsarrow, \@backhook, \@fronthook, \@doublerarrow, \@doublelarrow, /hfil/break\@circlecap/eicode. -And the predefined double-stroked/wide lineheads are -\icode \@Rarrow, \@Larrow, \@Linecap, \@Rightcirclecap, \@Leftcirclecap, \@Rightsquarecap, \@Leftsquarecap, \@Rightribboncap, -/hfil/break\@Leftribboncap/eicode. +The following is a table of all the predefined lineheads (scaled for visibility): + +\def\fsclh#1{\macroname#1{.4}{1.5}} +\def\sclh#1{&\macroname#1{.4}{1.5}} +\quitvmode\hbox to\dimexpr\hsize-\leftskip\relax{\hfil\vbox{\pdfmsymsetscalefactor{20}\everycr{\noalign{\hrule}} +\halign{\vrule\kern.1cm\strut#\hfil\tabskip=.25cm&\hfil#\hfil\kern.1cm\vrule\tabskip=0pt&&\kern.1cm#\hfil\tabskip=.25cm&\hfil#\hfil\kern.1cm\vrule\tabskip=0pt\cr +\fsclh\@rarrow \sclh\@larrow \sclh\@rharp \sclh\@lharp\cr +\fsclh\@rdharp \sclh\@ldharp \sclh\@linecap \sclh\@mapcap\cr +\fsclh\@mapsfromcap \sclh\@rsarrow \sclh\@lsarrow \sclh\@backuphook\cr +\fsclh\@frontuphook \sclh\@backdownhook \sclh\@frontdownhook \sclh\@doublerarrow\cr +\fsclh\@doublelarrow \sclh\@Rarrow \sclh\@Larrow \sclh\@Linecap\cr +\fsclh\@Rightcirclecap \sclh\@Leftcirclecap \sclh\@Rightsquarecap \sclh\@Leftsquarecap\cr +\omit\vrule height10pt depth4pt\kern.1cm\fsclh\@Rightribboncap \sclh\@Leftribboncap \sclh\@BigLinecap \sclh\@Rightarrows\cr +\omit\vrule height10pt depth4pt\kern.1cm\fsclh\@Leftarrows \sclh\@Rightunderarrow \sclh\@Leftunderarrow \sclh\@Rightoverarrow\cr +\omit\vrule height10pt depth4pt\kern.1cm\fsclh\@Leftoverarrow \sclh\@TripleLinecap \sclh\@TripleRarrow \sclh\@TripleLarrow \cr +}}\hfil} \emacroexp \macroexp{\@vecc@def{}} This creates a vector macro, like \macroname\vecc. @@ -355,18 +384,55 @@ For example, the definition of the {\it varrightarrow} vectors is: /endcode \emacroexp -\macroexp{\@Arrow@def{}} This creates a double-stroked arrow, like +\macroexp{\@Arrow@def{}{}} This creates a double-stroked arrow, like \macroname\varRightarrow. This macro creates the normal, long, and extendable versions of the arrow. {\it height displacement} is half the difference in height between the two strokes (the difference of height between one stroke and the center). For the default double stroke linecaps \pdfMsym{} defines, this should be $1$. -For example, the definition of {\it varRightarrow} is: +For example, the definition of \macroname\varRightarrow{} is: \begincode \@Arrow@def{varRightarrow}\@Linecap\@Rarrow{1} /endcode \emacroexp +\macroexp{\@multi@Arrow@def{}{}{}} This creates an arrow +with any number of strokes according to {\tt number strokes}. +Doing \macroname\@multi@Arrow@def{} with $1$ or $2$ strokes is equivalent to \macroname\@arrow@def{} or \macroname\@Arrow@def{}, +respectively. +Similar to above, {\it height displacement} is half the difference between two adjacent strokes. +For example, the definition of \macroname\varRrightarrow{} is: +\begincode +\@multi@Arrow@def{varRrightarrow}{3}\@TripleLinecap\@TripleRarrow{1} +/endcode +\emacroexp + +\macroexp{\@arrow@type{}} This draws a single-stroke arrow whose caps are {\it left cap} and +{\it right cap} respectively and whose length is {\tt length}. +This is used by \macroname\@arrow@def{}, for example \macroname\varrightarrow{} is defined to be +\begincode +\@arrow@type\@linecap\@rarrow{\arrow@len} +/endcode +\emacroexp + +\macroexp{\@Arrow@type{}{}} This draws a double-stroke arrow, the parameters +have the same usage as in \macroname\@Arrow@def. +This is used by \macroname\@Arrow@def, for example \macroname\varRightarrow{} is defined to be: +\begincode +\@Arrow@type\@Linecap\@Rarrow{\Arrow@len}{1} +/endcode +\emacroexp + +\macroexp{\@multi@Arrow@type{}{}{}} This draws an \penalty-10 arrow with a +specified number of strokes. +The usage of the parameters is identical to theirs in\hfill\penalty-1000 \macroname\@multi@Arrow@def. +This is used by \macroname\@multi@Arrow@def, for example \macroname\varRrightarrow{} is defined to be: +\message{MEANING: \meaning\varRrightarrow} +\begincode +\@multi@Arrow@type{3}\@TripleLinecap\@TripleRarrow{\Arrow@len}{1.5} +/endcode +\emacroexp + \macroexp{\@wide@accent{}} This creates a wide accent, like \macroname\varwidecheck. The width of the drawing by the {\it pdf code} should be $1$, and it should be filled not stroked (since the accent is transformed to stretch over the material beneath it). @@ -486,23 +552,30 @@ purposes throught its symbol definitions. Dimensions are all defined as macros, and are all dimensionless. If a dimension is defined as $1$ then it corresponds to $1$ in $10$pt font. -{\everycr{\noalign{\kern10pt}}\halign{\tt\vtop{\hsize=.2\hsize#}\hfil\tabskip=.05\hsize&\hfil\vtop{\hsize=.75\hsize#}\tabskip=0pt\cr +{\everycr{\noalign{\kern10pt}}\halign{\tt\vtop{\hsize=.175\hsize#}\hfil\tabskip=.05\hsize&\hfil\vtop{\hsize=.75\hsize#}\tabskip=0pt\cr \string\@font@scale & The amount of scaling relative to $10$pt, this is defined via \macroname\pdfmsymsetscalefactor.\cr \string\vecc@w & The height of the arrows, similarly there is \macroname\vecc@hw{} which must be equal to half of \macroname\vecc@w.\cr \string\vecc@skew & \pdfMsym{} leaves a space of \macroname\vecc@skew{} between the ends of material and the endpoints of the vector on top or below the material.\cr \string\vecc@X@s\par\string\vecc@X@sf & \macroname\vecc@X@s{} is the ratio of the scaling factor (as a decimal) of the -$X$ math style ($X$ can be {\tt displaystyle}, {\tt textstyle}, etc.). +{\tt X} math style ({\tt X} can be {\tt displaystyle}, {\tt textstyle}, etc.). Similarly \macroname\vecc@X@sf{} should be numerically equivalent to \macroname\vecc@X@s{} but written as a fraction. \pdfMsym{} scales (many, but not all, see \macroname\exsym@X@s{} and \macroname\exsym@X@sf) math macros according to these values.\cr \string\vecc@skip & The amount of space between material and the vector symbol above or below it.\cr \string\arrow@skip & The math kerning to be used around an arrow. \macroname\arrow@skip{} must be defined as glue, eg \icode \mkern1mu/eicode.\cr +\string\arrow@len & The length of an arrow defined by \macroname\@arrow@def. +\macroname\arrow@len{} is a unit, for example \pdfMsym{} defines it as {\tt 6}. +This length does not include the lengths of the arrow caps.\cr +\string\long@arrow@len & The length of a long arrow defined by \macroname\@arrow@def.\cr +\string\Arrow@len & The length of a double stroked arrow defined by \macroname\@Arrow@def.\cr +\string\long@Arrow@len & The length of a long double stroked arrow defined by \macroname\@Arrow@def.\cr \string\xarrow@buffer & The amount of extra arrow to add between the caps of an extendable arrow and when the above/below material begins.\cr \string\accent@skew & Analogous to \macroname\vecc@skew{} but for extendable accents.\cr \string\accent@raise & Analogous to \macroname\vecc@skip{} but for extendable accents.\cr -\string\exsym@X@s\par\string\exsym@X@sf & Analogous to \macroname\vecc@X@s{} and \macroname\vecc@X@sf but used by \macroname\putexsym.\cr +\string\exsym@X@s\par\string\exsym@X@sf & Analogous to \macroname\vecc@X@s{} and \macroname\vecc@X@sf{} but used by \macroname\putexsym.\cr \string\iNint@kern@ & The amount of kerning to put between integral signs in \macroname\iNint. This must be given as glue, eg. \icode \mkern-10mu\mathchoice{\mkern-5mu}{}{}{}/eicode.\cr }} + \end diff --git a/macros/generic/pdfmsym/pdfmsym.tex b/macros/generic/pdfmsym/pdfmsym.tex index f08317ac56..72be2071b9 100644 --- a/macros/generic/pdfmsym/pdfmsym.tex +++ b/macros/generic/pdfmsym/pdfmsym.tex @@ -1,14 +1,15 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pdfMsym % % PDF Math Symbols Package % -% Slurp December, 2022 % +% Slurp March, 2023 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \edef\strudelccode{\the\catcode`\@} \catcode`\@=11 \def\pdfMsym{{\scten pdf}{\rm M}{\scten sym}} -\def\pdfMsymversion{1.1.0} +\def\pdfMsymversion{1.1.1} +\def\pdfMsymupdate{March 16, 2023} \ifx\@gobble\undefined \long\def\@gobble#1{} @@ -25,7 +26,7 @@ \fi% } - \def\@ifnextchar#1#2#3{% + \long\def\@ifnextchar#1#2#3{% \let\@reg@A=#1\relax\def\@reg@B{#2}\def\@reg@C{#3}% \futurelet\@reg@D\@@ifnextchar% } @@ -50,7 +51,7 @@ \def\@remzero#10{#1} \def\@nopt#1{\expandafter\@ignorept\the\dimexpr #1\relax} -\def\pdf@literal#1{\special{pdf:literal #1}} +\def\pdf@literal#1{\special{pdf: #1}} \unless\ifx\saveboxresource\undefined \let\pdfxform=\saveboxresource @@ -84,24 +85,29 @@ {\@@linehead@type{#3}{#4}{#1}{#2}[1][1]}% } -\def\@rarrow {\@linehead@type{0 0 m 2 0 l 1 0 0 1.2 0 1.5 c 2 0 m 1 0 0 -1.2 0 -1.5 c S}{2}} -\def\@larrow {\@linehead@type{2 0 m 0 0 l 1 0 2 1.2 2 1.5 c 0 0 m 1 0 2 -1.2 2 -1.5 c S}{2}} -\def\@rharp {\@linehead@type{0 0 m 2 0 l 1 0 0 1 0 1.5 c S}{2}} -\def\@lharp {\@linehead@type{2 0 m 0 0 l 1 0 2 1 2 1.5 c S}{2}} -\def\@rdharp {\@linehead@type{0 0 m 2 0 l 1 0 0 -1 0 -1.5 c S}{2}} -\def\@ldharp {\@linehead@type{2 0 m 0 0 l 1 0 2 -1 2 -1.5 c S}{2}} +\def\@emptylinehead{\@linehead@type{}{0}} + +\def\@rarrow {\@linehead@type{0 0 m 2 0 l 1 .2 0 1.2 0 1.5 c 2 0 m 1 -.2 0 -1.2 0 -1.5 c S}{2}} +\def\@larrow {\@linehead@type{2 0 m 0 0 l 1 .2 2 1.2 2 1.5 c 0 0 m 1 -.2 2 -1.2 2 -1.5 c S}{2}} +\def\@rharp {\@linehead@type{0 0 m 2 0 l 1 .2 0 1.2 0 1.5 c S}{2}} +\def\@lharp {\@linehead@type{2 0 m 0 0 l 1 .2 2 1.2 2 1.5 c S}{2}} +\def\@rdharp {\@linehead@type{0 0 m 2 0 l 1 -.2 0 -1.2 0 -1.5 c S}{2}} +\def\@ldharp {\@linehead@type{2 0 m 0 0 l 1 -.2 2 -1.2 2 -1.5 c S}{2}} \def\@linecap{\@linehead@type{0 0 m 1 0 l S}{1}} \def\@mapcap {\@linehead@type{0 1.5 m 0 -1.5 l 0 0 m 1 0 l S}{1}} +\def\@mapsfromcap {\@linehead@type{1 1.5 m 1 -1.5 l 1 0 m 0 0 l S}{1}} \def\@rsarrow{\@linehead@type{0 0 m 2 0 l 0 1 l 2 0 m 0 -1 l S}{2}} \def\@lsarrow{\@linehead@type{2 0 m 0 0 l 2 1 l 0 0 m 2 -1 l S}{2}} -\def\@backhook{\@linehead@type{1 2 m .5 2 0 1.5 0 1 c 0 .5 .5 0 1 0 c S}{1}} -\def\@fronthook{\@linehead@type{0 2 m .5 2 1 1.5 1 1 c 1 .5 .5 0 0 0 c S}{1}} -\def\@doublerarrow{\@linehead@type{0 0 m 2 0 l 1 0 0 1.2 0 1.5 c 2 0 m 1 0 0 -1.2 0 -1.5 c 2 0 m 4 0 l 3 0 2 1.2 2 1.5 c 4 0 m 3 0 2 -1.2 2 -1.5 c S}{4}} -\def\@doublelarrow{\@linehead@type{4 0 m 2 0 l 3 0 4 1.2 4 1.5 c 2 0 m 3 0 4 -1.2 4 -1.5 c 2 0 m 0 0 l 1 0 2 1.2 2 1.5 c 0 0 m 1 0 2 -1.2 2 -1.5 c S}{4}} +\def\@backuphook{\@linehead@type{1 2 m .5 2 0 1.5 0 1 c 0 .5 .5 0 1 0 c S}{1}} +\def\@frontuphook{\@linehead@type{0 2 m .5 2 1 1.5 1 1 c 1 .5 .5 0 0 0 c S}{1}} +\def\@backdownhook{\@linehead@type{1 0 m .5 0 0 -.5 0 -1 c 0 -1.5 .5 -2 1 -2 c S}{1}} +\def\@frontdownhook{\@linehead@type{0 0 m .5 0 1 -.5 1 -1 c 1 -1.5 .5 -2 0 -2 c S}{1}} +\def\@doublerarrow{\@linehead@type{0 0 m 2 0 l 1 .2 0 1.2 0 1.5 c 2 0 m 1 -.2 0 -1.2 0 -1.5 c 2 0 m 4 0 l 3 .2 2 1.2 2 1.5 c 4 0 m 3 -.2 2 -1.2 2 -1.5 c S}{4}} +\def\@doublelarrow{\@linehead@type{4 0 m 2 0 l 3 .2 4 1.2 4 1.5 c 2 0 m 3 -.2 4 -1.2 4 -1.5 c 2 0 m 0 0 l 1 .2 2 1.2 2 1.5 c 0 0 m 1 -.2 2 -1.2 2 -1.5 c S}{4}} \def\@circlecap{\@linehead@type{0 0 m 0 .5 .5 1 1 1 c 1.5 1 2 .5 2 0 c 2 -.5 1.5 -1 1 -1 c .5 -1 0 -.5 0 0 c S}{2}} -\def\@Rarrow {\@linehead@type{0 -1 m 1 -1 l 0 1 m 1 1 l 3 0 m 1.5 0 0 2 0 2.5 c 3 0 m 1.5 0 0 -2 0 -2.5 c S}{3}} -\def\@Larrow {\@linehead@type{3 -1 m 2 -1 l 3 1 m 2 1 l 0 0 m 1.5 0 3 2 3 2.5 c 0 0 m 1.5 0 3 -2 3 -2.5 c S}{3}} +\def\@Rarrow {\@linehead@type{0 -1 m 1 -1 l 0 1 m 1 1 l 3 0 m 1.5 .3 0 2 0 2.5 c 3 0 m 1.5 -.3 0 -2 0 -2.5 c S}{3}} +\def\@Larrow {\@linehead@type{3 -1 m 2 -1 l 3 1 m 2 1 l 0 0 m 1.5 .3 3 2 3 2.5 c 0 0 m 1.5 -.3 3 -2 3 -2.5 c S}{3}} \def\@Linecap {\@linehead@type{0 -1 m 1 -1 l 0 1 m 1 1 l S}{1}} \def\@Rightcirclecap{\@linehead@type{0 1 m .5 1 1 .5 1 0 c 1 -.5 .5 -1 0 -1 c S}{1}} \def\@Leftcirclecap{\@linehead@type{1 1 m .5 1 0 .5 0 0 c 0 -.5 .5 -1 1 -1 c S}{1}} @@ -109,9 +115,20 @@ \def\@Leftsquarecap{\@linehead@type{1 1 m 0 1 l 0 -1 l 1 -1 l S}{1}} \def\@Rightribboncap{\@linehead@type{0 1 m 2 1 l 0 0 l 2 -1 l 0 -1 l S}{2}} \def\@Leftribboncap{\@linehead@type{1.5 1 m 0 1 l 1.5 0 l 0 -1 l 1.5 -1 l S}{1.5}} +\def\@BigLinecap{\@linehead@type{0 -1.5 m 1 -1.5 l 0 1.5 m 1 1.5 l S}{1}} +\def\@Rightarrows{\@linehead@type{0 -1.5 m 2 -1.5 l 1 -1.3 0 -.5 0 0 c 2 -1.5 m 1 -1.7 0 -2.5 0 -3 c 0 1.5 m 2 1.5 l 1 1.7 0 2.5 0 3 c 2 1.5 m 1 1.3 0 .5 0 0 c S}{2}} +\def\@Leftarrows {\@linehead@type{2 -1.5 m 0 -1.5 l 1 -1.3 2 -.5 2 0 c 0 -1.5 m 1 -1.7 2 -2.5 2 -3 c 2 1.5 m 0 1.5 l 1 1.7 2 2.5 2 3 c 0 1.5 m 1 1.3 2 .5 2 0 c S}{2}} +\def\@Rightunderarrow{\@linehead@type{0 -1.5 m 2 -1.5 l 1 -1.3 0 -.5 0 0 c 2 -1.5 m 1 -1.7 0 -2.5 0 -3 c 0 1.5 m 2 1.5 l S}{2}} +\def\@Leftunderarrow{\@linehead@type{2 -1.5 m 0 -1.5 l 1 -1.3 2 -.5 2 0 c 0 -1.5 m 1 -1.7 2 -2.5 2 -3 c 2 1.5 m 0 1.5 l S}{2}} +\def\@Rightoverarrow{\@linehead@type{0 1.5 m 2 1.5 l 1 1.7 0 2.5 0 3 c 2 1.5 m 1 1.3 0 .5 0 0 c 0 -1.5 m 2 -1.5 l S}{2}} +\def\@Leftoverarrow{\@linehead@type{2 1.5 m 0 1.5 l 1 1.7 2 2.5 2 3 c 0 1.5 m 1 1.3 2 .5 2 0 c 2 -1.5 m 0 -1.5 l S}{2}} \def\@Circlescap{\@linehead@type{0 -1 m 0 -.5 .5 0 1 0 c 1.5 0 2 -.5 2 -1 c 2 -1.5 1.5 -2 1 -2 c .5 -2 0 -1.5 0 -1 c 0 1 m 0 1.5 .5 2 1 2 c 1.5 2 2 1.5 2 1 c 2 .5 1.5 0 1 0 c .5 0 0 .5 0 1 c S}{2}} +\def\@TripleLinecap{\@linehead@type{0 -2 m 1 -2 l 0 0 m 1 0 l 0 2 m 1 2 l S}{1}} +\def\@TripleRarrow {\@linehead@type{0 -2 m .7 -2 l 0 0 m 3.5 0 l 0 2 m .7 2 l 3.5 0 m 2 .5 .5 2 .2 3.2 c 3.5 0 m 2 -.5 .5 -2 .2 -3.2 c S}{3.5}} +\def\@TripleLarrow {\@linehead@type{3.5 -2 m 2.8 -2 l 3.5 0 m 0 0 l 3.5 2 m 2.8 2 l 0 0 m 1.5 .5 3 2 3.3 3.2 c 0 0 m 1.5 -.5 3 -2 3.3 -3.2 c S}{3.5}} + \def\vecc@w{.4} \def\vecc@hw{.2} \def\vecc@skew{2.5} \def\vecc@displaystyle@s{1} \def\vecc@displaystyle@sf{1} \def\vecc@textstyle@s{1} \def\vecc@textstyle@sf{1} @@ -189,8 +206,8 @@ \unless\ifx\pdfxform\undefined \def\@@constvec#1#2#3{{% - \setbox1=\hbox{$#1#3$}% - \setbox0=\hbox{$#1\smash{#3}\vrule height1.3ex width0pt depth\dimexpr\dp1+1pt\relax$}% + \setbox1=\hbox{$\m@th#1#3$}% + \setbox0=\hbox{$\m@th#1\smash{#3}\vrule height1.3ex width0pt depth\dimexpr\dp1+1pt\relax$}% \pdfxform0% #2{\smash{\pdfrefxform\pdflastxform}\vphantom{x}}% }} @@ -201,7 +218,7 @@ \def\arrow@skip{\mkern1mu} \def\xarrow@buffer{1} \def\@@@xarrow@type#1#2#3#4#5#6#7{\mathrel{\arrow@skip% - \vcenter{\hbox{$#7% + \vcenter{\hbox{$\m@th#7% #1{\vecc@w}{\vecc@hw}[#5][#6]% \vrule width\dimexpr \xarrow@buffer pt * \@font@scale\relax height \dimexpr \vecc@w pt * #5 * \@font@scale\relax depth0pt% \smash{\mathord{\mathop{\kern\z@\leaders\hrule height \dimexpr \vecc@w pt * #5 * \@font@scale\relax\hfill}\limits^{#3}_{#4}}}% @@ -216,9 +233,9 @@ \def\@xarrow@type#1#2#3#4{\mathpalette\@@xarrow@type{{#1}{#2}{#3}{#4}}} \def\@@@arrow@type#1#2#3#4#5#6{\mathrel{\arrow@skip% - \vcenter{\hbox{$#6% + \vcenter{\hbox{$\m@th#6% #1{\vecc@w}{\vecc@hw}[#4][#5]% - \vrule width \dimexpr #3 * #4\relax height \dimexpr \vecc@w pt * #4 * \@font@scale\relax depth 0pt% + \vrule width \dimexpr #3pt * #4 * \@font@scale\relax height \dimexpr \vecc@w pt * #4 * \@font@scale\relax depth 0pt% #2{\vecc@w}{\vecc@hw}[#4][#5]% $}}\arrow@skip% }} @@ -227,9 +244,11 @@ \def\@arrow@type#1#2#3{\mathpalette\@@arrow@type{{#1}{#2}{#3}}} +\def\arrow@len{6} +\def\long@arrow@len{12} \def\@arrow@def#1#2#3{% - \expandafter\def\csname #1\endcsname{\@arrow@type{#2}{#3}{1ex}}% - \expandafter\def\csname long#1\endcsname{\@arrow@type{#2}{#3}{3ex}}% + \expandafter\def\csname #1\endcsname{\@arrow@type{#2}{#3}{\arrow@len}}% + \expandafter\def\csname long#1\endcsname{\@arrow@type{#2}{#3}{\long@arrow@len}}% \expandafter\def\csname @x#1\endcsname##1[##2]{\@xarrow@type{#2}{#3}{##1}{##2}}% \expandafter\def\csname x#1\endcsname##1{% \@ifnextchar[ {\csname @x#1\endcsname{##1}}% @@ -245,8 +264,11 @@ \@arrow@def{varleftrightharp}\@lharp\@rdharp \@arrow@def{varrightleftharp}\@ldharp\@rharp \@arrow@def{varmapsto}\@mapcap\@rarrow -\@arrow@def{varhookrightarrow}\@backhook\@rarrow -\@arrow@def{varhookleftarrow}\@larrow\@fronthook +\@arrow@def{varmapsfrom}\@larrow\@mapsfromcap +\@arrow@def{varuphookrightarrow}\@backuphook\@rarrow +\@arrow@def{varuphookleftarrow}\@larrow\@frontuphook +\@arrow@def{vardownhookrightarrow}\@backdownhook\@rarrow +\@arrow@def{vardownhookleftarrow}\@larrow\@frontdownhook \@arrow@def{vardoublerightarrow}\@linecap\@doublerarrow \@arrow@def{vardoubleleftarrow}\@doublelarrow\@linecap \@arrow@def{varcirclerightarrow}\@circlecap\@rarrow @@ -270,7 +292,7 @@ % #1 width #2 bar height difference #3 mathstyle scale (fraction) \def\@Arrow@rule#1#2#3{% - \@@Arrow@rule{\dimexpr #1 * #3\relax}{#2}{#3}% + \@@Arrow@rule{\dimexpr #1pt * #3 * \@font@scale\relax}{#2}{#3}% } % #1 left cap @@ -282,21 +304,21 @@ % #7 mathstyle scale (decimal) % #8 mathstyle \def\@@@xArrow@type#1#2#3#4#5#6#7#8{\mathrel{\arrow@skip% - {\setbox0=\hbox{$#8-$}\raise.5\dimexpr\ht0-\dp0-(\vecc@w pt * #6 * \@font@scale)\relax\hbox{$#8% - \setbox0=\hbox{$\@subscriptconv#8#5$}% + {\setbox0=\hbox{$\m@th#8-$}\raise.5\dimexpr\ht0-\dp0-(\vecc@w pt * #6 * \@font@scale)\relax\hbox{$\m@th#8% + \setbox0=\hbox{$\m@th\@subscriptconv#8#5$}% #1{\vecc@w}{\vecc@hw}[#6][#7]% - \@Arrow@rule{\xarrow@buffer pt}{#3 pt}{#6}% + \@Arrow@rule{\xarrow@buffer}{#3 pt}{#6}% \lower\dimexpr (#3 pt + \vecc@skip ex) * #6 * \@font@scale+\ht0\relax \vbox{\offinterlineskip% \ialign{\hfil##\hfil\cr - $\@subscriptconv#8#4$\cr\noalign{\kern\dimexpr\vecc@skip ex * #6 * \@font@scale\relax}% + $\m@th\@subscriptconv#8#4$\cr\noalign{\kern\dimexpr\vecc@skip ex * #6 * \@font@scale\relax}% \leaders\hrule height \dimexpr \vecc@w pt * #6 * \@font@scale\relax\hfill\cr% \noalign{\kern\dimexpr #3 pt * #6 * \@font@scale * 2 - \vecc@w pt * #6 * \@font@scale\relax}% \leaders\hrule height \dimexpr \vecc@w pt * #6 * \@font@scale\relax\hfill\cr\noalign{\kern\dimexpr\vecc@skip ex * #6 * \@font@scale\relax}% - $\@subscriptconv#8#5$\cr% + $\m@th\@subscriptconv#8#5$\cr% }% }% - \@Arrow@rule{\xarrow@buffer pt}{#3 pt}{#6}% + \@Arrow@rule{\xarrow@buffer}{#3 pt}{#6}% #2{\vecc@w}{\vecc@hw}[#6][#7]% $}}% \arrow@skip% @@ -306,7 +328,7 @@ \def\@xArrow@type#1#2#3#4#5{\mathpalette\@@xArrow@type{{#1}{#2}{#3}{#4}{#5}}} \def\@@@Arrow@type#1#2#3#4#5#6#7{\mathrel{\arrow@skip% - \vcenter{\hbox{$#7% + \vcenter{\hbox{$\m@th#7% #1{\vecc@w}{\vecc@hw}[#5][#6]% \@Arrow@rule{#3}{#4pt}{#5}% #2{\vecc@w}{\vecc@hw}[#5][#6]% @@ -316,9 +338,11 @@ \def\@@Arrow@type#1#2{\@@@Arrow@type#2{\csname vecc@\m@strip#1@sf\endcsname}{\csname vecc@\m@strip#1@s\endcsname}{#1}} \def\@Arrow@type#1#2#3#4{\mathpalette\@@Arrow@type{{#1}{#2}{#3}{#4}}} +\def\Arrow@len{5} +\def\long@Arrow@len{9} \def\@Arrow@def#1#2#3#4{% - \expandafter\def\csname #1\endcsname{\@Arrow@type{#2}{#3}{1ex}{#4}}% - \expandafter\def\csname long#1\endcsname{\@Arrow@type{#2}{#3}{2ex}{#4}}% + \expandafter\def\csname #1\endcsname{\@Arrow@type{#2}{#3}{\Arrow@len}{#4}}% + \expandafter\def\csname long#1\endcsname{\@Arrow@type{#2}{#3}{\long@Arrow@len}{#4}}% \expandafter\def\csname @x#1\endcsname##1[##2]{\@xArrow@type{#2}{#3}{#4}{##1}{##2}}% \expandafter\def\csname x#1\endcsname##1{% \@ifnextchar[ {\csname @x#1\endcsname{##1}}% @@ -336,13 +360,95 @@ \@Arrow@def{varRibbonleftarrow}\@Larrow\@Rightribboncap{1} \@Arrow@def{roundedarrow}\@Leftcirclecap\@Rightcirclecap{1} \@Arrow@def{squaredarrow}\@Leftsquarecap\@Rightsquarecap{1} +\@Arrow@def{varrightarrows}\@BigLinecap\@Rightarrows{1.5} +\@Arrow@def{varleftarrows}\@Leftarrows\@BigLinecap{1.5} +\@Arrow@def{varrightleftarrows}\@Leftunderarrow\@Rightoverarrow{1.5} +\@Arrow@def{varleftrightarrows}\@Leftoverarrow\@Rightunderarrow{1.5} \@Arrow@def{rightPP}\@Circlescap\@Rightcirclecap{1} \@Arrow@def{leftPP}\@Leftcirclecap\@Circlescap{1} +% #1 number of rules #2 width #3 bar height difference #4 mathstyle scale (fraction) +\def\@multi@Arrow@rule#1#2#3#4{% + \lower\dimexpr #3 * #4 * \@font@scale * (#1 - 1)\relax + \vbox{% + \pdfmsym@repeated{\numexpr #1 - 1\relax}{% + \hrule width \dimexpr #2pt * #4 * \@font@scale\relax height \dimexpr \vecc@w pt * #4 * \@font@scale\relax depth\z@% + \kern\dimexpr #3 * #4 * \@font@scale * 2 - \vecc@w pt * #4 * \@font@scale\relax% + }% + \hrule width \dimexpr #2pt * #4 * \@font@scale\relax height \dimexpr \vecc@w pt * #4 * \@font@scale\relax depth\z@% + }% +} + +% #1 number rules +% #2 left cap +% #3 right cap +% #4 bar displacement +% #5 top material +% #6 bottom material +% #7 mathstyle scale (fraction) +% #8 mathstyle scale (decimal) +% #9 mathstyle +\def\@@@multi@xArrow@type#1#2#3#4#5#6#7#8#9{\mathrel{\arrow@skip% + {\setbox0=\hbox{$\m@th#9-$}\raise.5\dimexpr\ht0-\dp0-(\vecc@w pt * #7 * \@font@scale)\relax% + \hbox{$\m@th#9% + \setbox0=\hbox{$\m@th\@subscriptconv#9#6$}% + #2{\vecc@w}{\vecc@hw}[#7][#8]% + \@multi@Arrow@rule{#1}{\xarrow@buffer}{#4pt}{#7}% + \lower\dimexpr (#4pt * (#1 - 1) + \vecc@skip ex) * #7 * \@font@scale +\ht0\relax + \vbox{\offinterlineskip% + \ialign{\hfil##\hfil\cr% + $\m@th\@subscriptconv#9#5$\cr% + \noalign{\kern\dimexpr\vecc@skip ex * #7 * \@font@scale\relax}% + \pdfmsym@repeated{\numexpr #1-1\relax}{% + \leaders\hrule height \dimexpr \vecc@w pt * #7 * \@font@scale\relax\hfill\cr% + \noalign{\kern\dimexpr #4pt * #7 * \@font@scale * 2 - \vecc@w pt * #7 * \@font@scale\relax}% + }% + \leaders\hrule height \dimexpr \vecc@w pt * #7 * \@font@scale\relax\hfill\cr + \noalign{\kern\dimexpr\vecc@skip ex * #7 * \@font@scale\relax}% + $\m@th\@subscriptconv#9#6$\cr% + }% + }% + \@multi@Arrow@rule{#1}{\xarrow@buffer}{#4pt}{#7}% + #3{\vecc@w}{\vecc@hw}[#7][#8]% + $}}% + \arrow@skip% +}} + +\def\@@multi@xArrow@type#1#2{\@@@multi@xArrow@type#2{\csname vecc@\m@strip#1@sf\endcsname}{\csname vecc@\m@strip#1@s\endcsname}{#1}} +\def\@multi@xArrow@type#1#2#3#4#5#6{\mathpalette\@@multi@xArrow@type{{#1}{#2}{#3}{#4}{#5}{#6}}} + +\def\@@@multi@Arrow@type#1#2#3#4#5#6#7#8{\mathrel{\arrow@skip% + \vcenter{\hbox{$\m@th#8% + #2{\vecc@w}{\vecc@hw}[#6][#7]% + \@multi@Arrow@rule{#1}{#4}{#5pt}{#6}% + #3{\vecc@w}{\vecc@hw}[#6][#7]% + $}}\arrow@skip% +}} + + +\def\@@multi@Arrow@type#1#2{\@@@multi@Arrow@type#2{\csname vecc@\m@strip#1@sf\endcsname}{\csname vecc@\m@strip#1@s\endcsname}{#1}} +% #1 number of rules #2 left cap #3 right cap #4 length #5 bar height difference +\def\@multi@Arrow@type#1#2#3#4#5{\mathpalette\@@multi@Arrow@type{{#1}{#2}{#3}{#4}{#5}}} + +% #1 name #2 number of rules #3 left cap #4 right cap #5 height difference +\def\@multi@Arrow@def#1#2#3#4#5{% + \expandafter\def\csname #1\endcsname{\@multi@Arrow@type{#2}{#3}{#4}{\Arrow@len}{#5}}% + \expandafter\def\csname long#1\endcsname{\@multi@Arrow@type{#2}{#3}{#4}{\long@Arrow@len}{#5}}% + \expandafter\def\csname @x#1\endcsname##1[##2]{\@multi@xArrow@type{#2}{#3}{#4}{#5}{##1}{##2}}% + \expandafter\def\csname x#1\endcsname##1{% + \@ifnextchar[ {\csname @x#1\endcsname{##1}}% + {\csname @x#1\endcsname{##1}[]}% + }% +} + +\@multi@Arrow@def{varRrightarrow}{3}\@TripleLinecap\@TripleRarrow{1} +\@multi@Arrow@def{varLleftarrow}{3}\@TripleLarrow\@TripleLinecap{1} +\@multi@Arrow@def{varLleftRrightarrow}{3}\@TripleLarrow\@TripleRarrow{1} + \def\accent@skew{.4} \def\accent@raise{.25} \def\@@@wide@accent#1#2#3{{% - \setbox0=\hbox{$#3#1$}% + \setbox0=\hbox{$\m@th#3#1$}% \vbox{\offinterlineskip% \ialign{##\cr \hbox to \wd0{\hskip\dimexpr \accent@skew ex * \@font@scale\relax% @@ -423,9 +529,9 @@ \def\@@putexsym#1#2#3#4#5#6#7#8{{% \setbox0=\hbox{$\m@th#8#1$}% \setbox1=\hbox{$\m@th#2{\vecc@w}{\vecc@hw}[#6][#7]$}% - \kern\dimexpr\wd1 - #5 pt * #6 * \@font@scale\relax\rlap{$#8#1$}\kern-\dimexpr\wd1 - #5pt * #6 * \@font@scale\relax% + \kern\dimexpr\wd1 - #5 pt * #6 * \@font@scale\relax\rlap{$\m@th#8#1$}\kern-\dimexpr\wd1 - #5pt * #6 * \@font@scale\relax% \raise.5\dimexpr\ht0-\dp0\relax - \vbox{\hbox{$#8#2{\vecc@w}{\vecc@hw}[#6][#7]\@@Arrow@rule{\dimexpr\wd0- #5 pt * #6 * \@font@scale * 2\relax}{#4 pt}{#6}#3{\vecc@w}{\vecc@hw}[#6][#7]$}}% + \vbox{\hbox{$\m@th#8#2{\vecc@w}{\vecc@hw}[#6][#7]\@@Arrow@rule{\dimexpr\wd0- #5 pt * #6 * \@font@scale * 2\relax}{#4 pt}{#6}#3{\vecc@w}{\vecc@hw}[#6][#7]$}}% }} \def\@putexsym#1#2{\@@putexsym#2{\csname exsym@\m@strip#1@sf\endcsname}{\csname exsym@\m@strip#1@s\endcsname}{#1}} @@ -439,14 +545,15 @@ 0 2 m 0 3 1 4 2 4 c 3 4 4 3 4 2 c 4 1 3 0 2 0 c 1 0 0 1 0 2 c S}{4}} \def\iNint@kern@{\mkern-10mu\mathchoice{\mkern-5mu}{}{}{}} -\def\iNint#1{\pdfmsym@repeated{\numexpr #1-1\relax}{\int\iNint@kern@}\int} -\def\@oiNint#1{\putexsym{\iNint{#1}}\@BigLeftcirclecap\@BigRightcirclecap{2.5}{4}} -\def\@biNint#1{\putexsym{\iNint{#1}}\@BigLeftsquarecap\@BigRightsquarecap{2.5}{4}} +\def\@iNint#1{\pdfmsym@repeated{\numexpr #1-1\relax}{\int\iNint@kern@}\int} +\def\@oiNint#1{\putexsym{\@iNint{#1}}\@BigLeftcirclecap\@BigRightcirclecap{2.5}{4}} +\def\@biNint#1{\putexsym{\@iNint{#1}}\@BigLeftsquarecap\@BigRightsquarecap{2.5}{4}} -\def\oiNint#1{\@skewedlim@op{\mathop{\@oiNint{#1}}}{-4}{6}{-10}{10}{-4}{6}\nolimits} -\def\biNint#1{\@skewedlim@op{\mathop{\@biNint{#1}}}{-6}{6}{-10}{10}{-6}{6}\nolimits} +\def\oiNint#1{\@skewedlim@op{\mathop{\@oiNint{#1}}}{-4}{6}{-20}{20}{-4}{6}\nolimits} +\def\biNint#1{\@skewedlim@op{\mathop{\@biNint{#1}}}{-6}{6}{-20}{20}{-6}{6}\nolimits} +\def\iNint#1{\@skewedlim@op{\mathop{\@iNint{#1}}}{0}{0}{-20}{20}{0}{13}\nolimits} -\def\@@putsym#1#2#3{{\setbox0=\hbox{$#1#2$}\rlap{\hbox to \wd0{\hss$#1#3$\hss}}}} +\def\@@putsym#1#2#3{{\setbox0=\hbox{$\m@th#1#2$}\rlap{\hbox to \wd0{\hss$\m@th#1#3$\hss}}}} \def\@putsym#1#2{\@@putsym#1#2} \def\putsym#1#2{\mathpalette\@putsym{{#1}{#2}}\mathopen{}#1} @@ -518,6 +625,38 @@ 1 J 1 j .6 w -3 10 m -3 4.133975 l 0 5.866025 l 0 0 l -1.125 1.5 l 0 0 l 1.125 1.5 l S} {4.2pt}{10.5pt}{.5pt}{.9pt} +% + \pdf@drawing@macro{(m<3y)} +{.2 w 0 0 0 RG q 1 .75 0 rg 1 J 1 j 12.5 18 m 16 22 l 16.35 22.3 17 19 + 17.5 13 c 7.5 18 m 4 22 l 3.65 22.3 3 19 2.5 13 c B Q q 1 .5 .5 rg 1 J 1 j + 12.2 16.7 m 15.7 20.7 l 16.05 21 16.7 17.7 17.2 11.7 c 7.8 16.7 m 4.3 20.7 + l 3.95 21 3.3 17.7 2.8 11.7 c f Q q 19.0 10 m 19.0 14.97063 14.97063 19.0 10 + 19.0 c 5.02937 19.0 1.0 14.97063 1.0 10 c 1.0 5.02937 5.02937 1.0 10 1.0 c 14.97063 +1.0 19.0 5.02937 19.0 10 c W n q 1 .75 0 rg 19.0 10 m 19.0 14.97063 14.97063 +19.0 10 19.0 c 5.02937 19.0 1.0 14.97063 1.0 10 c 1.0 5.02937 5.02937 1.0 +10 1.0 c 14.97063 1.0 19.0 5.02937 19.0 10 c f Q q 1 1 1 rg 7.75 12 m 7.75 12.82843 +6.9665 13.5 6 13.5 c 5.0335 13.5 4.25 12.82843 4.25 12 c 4.25 11.17157 5.0335 +10.5 6 10.5 c 6.9665 10.5 7.75 11.17157 7.75 12 c 15.75 12 m 15.75 12.82843 +14.9665 13.5 14 13.5 c 13.0335 13.5 12.25 12.82843 12.25 12 c 12.25 11.17157 + 13.0335 10.5 14 10.5 c 14.9665 10.5 15.75 11.17157 15.75 12 c B Q q .3 .1 0 rg +7.4 12 m 7.4 12.7732 6.7732 13.4 6 13.4 c 5.2268 13.4 4.6 12.7732 4.6 12 c 4.6 +11.2268 5.2268 10.6 6 10.6 c 6.7732 10.6 7.4 11.2268 7.4 12 c 15.4 12 m 15.4 + 12.7732 14.7732 13.4 14 13.4 c 13.2268 13.4 12.6 12.7732 12.6 12 c 12.6 11.2268 +13.2268 10.6 14 10.6 c 14.7732 10.6 15.4 11.2268 15.4 12 c B Q q 0 0 0 rg 7.2 +12 m 7.2 12.66273 6.66273 13.2 6 13.2 c 5.33727 13.2 4.8 12.66273 4.8 12 c 4.8 +11.33727 5.33727 10.8 6 10.8 c 6.66273 10.8 7.2 11.33727 7.2 12 c 15.2 12 m +15.2 12.66273 14.66273 13.2 14 13.2 c 13.33727 13.2 12.8 12.66273 12.8 12 c 12.8 +11.33727 13.33727 10.8 14 10.8 c 14.66273 10.8 15.2 11.33727 15.2 12 c f Q q + 1 1 1 rg 1 j 8 21 m 9.5 15 9.5 10 v 9.5 9 8 6.5 v 7 3.5 10 3.75 v 13 +3.5 12 6.5 v 10.5 9 10.5 10 v 10.5 15 12 21 v B Q q 0 0 0 rg 12.3 6.5 m 12.3 + 7.32843 11.27026 8.0 10 8.0 c 8.72974 8.0 7.7 7.32843 7.7 6.5 c 7.7 5.67157 8.72974 +5.0 10 5.0 c 11.27026 5.0 12.3 5.67157 12.3 6.5 c B Q q 1 j 1 J 10 6.5 m + 10 4.5 l 9.5 4 9 4 8.3 4.2 c 10 4.5 m 10.5 4 11 4 11.7 4.2 c S Q 8.5 10 m + 8 7 l 11.5 10 m 12 7 l S Q 19.0 10 m 19.0 14.97063 14.97063 19.0 10 19.0 c + 5.02937 19.0 1.0 14.97063 1.0 10 c 1.0 5.02937 5.02937 1.0 10 1.0 c 14.97063 1.0 +19.0 5.02937 19.0 10 c S q 1 1 1 rg 1 j 1 J 7 1.5 m 8 0 10 -2 v 11 0 13 1.5 +v 11.5 1.2 10.5 1.2 10 1.2 c 7 1.5 m 8.5 1.2 9.5 1.2 10 1.2 c B* Q} + {20pt}{22.4pt}{2.30pt}{0pt} % \pdf@drawing@math@macro{@ndivs} {0.4 w 1 j @@ -591,7 +730,7 @@ } \def\@wide@operator#1#2#3#4{% - \@slice{$\displaystyle#2$}{#1}{#3}{#4}% + \@slice{$\m@th\displaystyle#2$}{#1}{#3}{#4}% \expandafter\def\csname #1\endcsname{% \mathop{\copy\csname #1@L\endcsname \xleaders\copy\csname #1@C\endcsname\hfill \copy\csname #1@R\endcsname}\limits% }% -- cgit v1.2.3