texlive[66618] Master/texmf-dist: pdfmsym (17mar23)

commits+karl at tug.org commits+karl at tug.org
Tue Mar 21 17:47:08 CET 2023


Revision: 66618
          http://tug.org/svn/texlive?view=revision&revision=66618
Author:   karl
Date:     2023-03-21 17:47:07 +0100 (Tue, 21 Mar 2023)
Log Message:
-----------
pdfmsym (17mar23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/pdfmsym/README.md
    trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex
    trunk/Master/texmf-dist/tex/generic/pdfmsym/pdfmsym.tex

Modified: trunk/Master/texmf-dist/doc/generic/pdfmsym/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pdfmsym/README.md	2023-03-21 16:46:56 UTC (rev 66617)
+++ trunk/Master/texmf-dist/doc/generic/pdfmsym/README.md	2023-03-21 16:47:07 UTC (rev 66618)
@@ -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:
+Read the documentation (documentation.pdf) for more details.
+The pdfMsym package is provided under the MIT license.
 
-        \input pdfmsym
-        \pdfmsymsetscalefactor{10}
+Compile the documentation via `pdftex pdfsym-doc.tex`.
 
-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 was created and is maintained by Slurp who can be reached via email: slurper04 at gmail.com
+Please report any bugs or issues with the package, doing so would be greatly appreciated.
 
-The pdfMsym package also provides a relatively easy-to-use interface for creating new symbols.
-Read the documentation (pdfmsym-doc.pdf) for more details.
+## 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.
 
-The pdfMsym package is provided under the MIT license.
+It also added support for creating arbitrarily stroked arrows, as well as some more arrows.
 
-Compile the documentation via `pdftex pdfmsym-doc.tex`.
+Lastly, some of the lineheads were altered.
 
-The pdfMsym package was created and is maintained by Slurp who can be reached via email: slurper04 at 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

Modified: trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex	2023-03-21 16:46:56 UTC (rev 66617)
+++ trunk/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex	2023-03-21 16:47:07 UTC (rev 66618)
@@ -8,7 +8,7 @@
 \font\scten  = cmcsc10
 
 \def\fakebold#1{\pdf at literal{2 Tr .2 w}#1\pdf at 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 at literal{q #1 0 0 #1 0 0 cm}\rlap{#2}\pdf at literal{Q}\hfil}}}
 \def\begincenter{\bgroup\leftskip=0pt plus 1fill \rightskip=\leftskip}
 \def\endcenter{\par\egroup}
 
@@ -29,8 +29,8 @@
 
 \newcount\c at section
 \newcount\c at subsection
-\def\section#1{\bigskip\advance\c at section by 1 \c at subsection=0 \bgroup\fontuse cmbx10 scaled 2000 \the\c at section. #1\par\bigskip\egroup}
-\def\subsection#1{\medskip\advance\c at subsection by 1 \bgroup\fontuse cmbx10 scaled 1500 \the\c at section.\the\c at subsection. #1\par\medskip\egroup}
+\def\section#1{\bigskip\advance\c at section by 1 \c at subsection=0 \hbox{\fontuse cmbx10 scaled 2000 \the\c at section. #1}\par\bigskip}
+\def\subsection#1{\medskip\advance\c at subsection by 1 \hbox{\fontuse cmbx10 scaled 1500 \the\c at section.\the\c at 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 at gmail.com}
-\centerline{\it December 21, 2022}
+\centerline{\it\pdfMsymupdate}
 
 \bigskip
 \hbox to \hsize{\hfil\vbox{\hsize=.7\hsize
@@ -211,8 +211,10 @@
 \macrousage \oiNint{<N>} /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 @@
 \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,7 +284,19 @@
 \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}
 Wide accents provide variants to the commonly used accents like \macroname\widehat{} and \macroname\widetilde.
@@ -302,6 +319,7 @@
 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 @@
 \def\@rarrow {\@linehead at 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&#1{.4}{1.5}}
+\def\sclh#1{&\macroname#1&#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 at def{<vector name>}<left cap><right cap>} This creates a vector macro, like \macroname\vecc.
@@ -355,18 +384,55 @@
 /endcode
 \emacroexp
 
-\macroexp{\@Arrow at def{<arrow name>}<left cap><right cap><height displacement>} This creates a double-stroked arrow, like
+\macroexp{\@Arrow at def{<arrow name>}<left cap><right cap>{<height displacement>}} 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 at def{varRightarrow}\@Linecap\@Rarrow{1}
 /endcode
 \emacroexp
 
+\macroexp{\@multi at Arrow@def{<arrow name>}{<number strokes>}<left cap><right cap>{<height displacement>}} This creates an arrow
+with any number of strokes according to {\tt number strokes}.
+Doing \macroname\@multi at Arrow@def{} with $1$ or $2$ strokes is equivalent to \macroname\@arrow at def{} or \macroname\@Arrow at 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 at Arrow@def{varRrightarrow}{3}\@TripleLinecap\@TripleRarrow{1}
+/endcode
+\emacroexp
+
+\macroexp{\@arrow at type<left cap><right cap>{<length>}} 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 at def{}, for example \macroname\varrightarrow{} is defined to be
+\begincode
+\@arrow at type\@linecap\@rarrow{\arrow at len}
+/endcode
+\emacroexp
+
+\macroexp{\@Arrow at type<left cap><right cap>{<length>}{<height displacement>}} This draws a double-stroke arrow, the parameters
+have the same usage as in \macroname\@Arrow at def.
+This is used by \macroname\@Arrow at def, for example \macroname\varRightarrow{} is defined to be:
+\begincode
+\@Arrow at type\@Linecap\@Rarrow{\Arrow at len}{1}
+/endcode
+\emacroexp
+
+\macroexp{\@multi at Arrow@type{<number strokes>}<left cap><right cap>{<length>}{<height displacement>}} 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 at Arrow@def.
+This is used by \macroname\@multi at Arrow@def, for example \macroname\varRrightarrow{} is defined to be:
+\message{MEANING: \meaning\varRrightarrow}
+\begincode
+\@multi at Arrow@type{3}\@TripleLinecap\@TripleRarrow{\Arrow at len}{1.5}
+/endcode
+\emacroexp
+
 \macroexp{\@wide at accent{<pdf code>}} 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 @@
 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 at scale & The amount of scaling relative to $10$pt, this is defined via \macroname\pdfmsymsetscalefactor.\cr
 \string\vecc at w & The height of the arrows, similarly there is \macroname\vecc at hw{} which must be equal to half of \macroname\vecc at w.\cr
 \string\vecc at skew & \pdfMsym{} leaves a space of \macroname\vecc at skew{} between the ends of material and the endpoints of
 the vector on top or below the material.\cr
 \string\vecc at X@s\par\string\vecc at X@sf & \macroname\vecc at 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 at X@sf{} should be numerically equivalent to \macroname\vecc at X@s{} but written as a fraction.
 \pdfMsym{} scales (many, but not all, see \macroname\exsym at X@s{} and \macroname\exsym at X@sf) math macros according to these values.\cr
 \string\vecc at skip & The amount of space between material and the vector symbol above or below it.\cr
 \string\arrow at skip & The math kerning to be used around an arrow.
 \macroname\arrow at skip{} must be defined as glue, eg \icode \mkern1mu/eicode.\cr
+\string\arrow at len & The length of an arrow defined by \macroname\@arrow at def.
+\macroname\arrow at 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 at arrow@len & The length of a long arrow defined by \macroname\@arrow at def.\cr
+\string\Arrow at len & The length of a double stroked arrow defined by \macroname\@Arrow at def.\cr
+\string\long at Arrow@len & The length of a long double stroked arrow defined by \macroname\@Arrow at def.\cr
 \string\xarrow at 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 at skew & Analogous to \macroname\vecc at skew{} but for extendable accents.\cr
 \string\accent at raise & Analogous to \macroname\vecc at skip{} but for extendable accents.\cr
-\string\exsym at X@s\par\string\exsym at X@sf & Analogous to \macroname\vecc at X@s{} and \macroname\vecc at X@sf but used by \macroname\putexsym.\cr
+\string\exsym at X@s\par\string\exsym at X@sf & Analogous to \macroname\vecc at X@s{} and \macroname\vecc at X@sf{} but used by \macroname\putexsym.\cr
 \string\iNint at 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

Modified: trunk/Master/texmf-dist/tex/generic/pdfmsym/pdfmsym.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pdfmsym/pdfmsym.tex	2023-03-21 16:46:56 UTC (rev 66617)
+++ trunk/Master/texmf-dist/tex/generic/pdfmsym/pdfmsym.tex	2023-03-21 16:47:07 UTC (rev 66618)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %              pdfMsym               %
 %      PDF Math Symbols Package      %
-%        Slurp December, 2022        %
+%         Slurp March, 2023          %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \edef\strudelccode{\the\catcode`\@}
@@ -8,7 +8,8 @@
 \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 at A=#1\relax\def\@reg at B{#2}\def\@reg at C{#3}%
         \futurelet\@reg at D\@@ifnextchar%
     }
@@ -50,7 +51,7 @@
 \def\@remzero#10{#1}
 \def\@nopt#1{\expandafter\@ignorept\the\dimexpr #1\relax}
 
-\def\pdf at literal#1{\special{pdf:literal #1}}
+\def\pdf at literal#1{\special{pdf: #1}}
 
 \unless\ifx\saveboxresource\undefined
     \let\pdfxform=\saveboxresource
@@ -84,24 +85,29 @@
                   {\@@linehead at type{#3}{#4}{#1}{#2}[1][1]}%
 }
 
-\def\@rarrow {\@linehead at 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 at 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 at type{0 0 m 2 0 l 1 0 0 1 0 1.5 c S}{2}}
-\def\@lharp  {\@linehead at type{2 0 m 0 0 l 1 0 2 1 2 1.5 c S}{2}}
-\def\@rdharp {\@linehead at type{0 0 m 2 0 l 1 0 0 -1 0 -1.5 c S}{2}}
-\def\@ldharp {\@linehead at type{2 0 m 0 0 l 1 0 2 -1 2 -1.5 c S}{2}}
+\def\@emptylinehead{\@linehead at type{}{0}}
+
+\def\@rarrow {\@linehead at 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 at 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 at type{0 0 m 2 0 l 1 .2 0 1.2 0 1.5 c S}{2}}
+\def\@lharp  {\@linehead at type{2 0 m 0 0 l 1 .2 2 1.2 2 1.5 c S}{2}}
+\def\@rdharp {\@linehead at type{0 0 m 2 0 l 1 -.2 0 -1.2 0 -1.5 c S}{2}}
+\def\@ldharp {\@linehead at type{2 0 m 0 0 l 1 -.2 2 -1.2 2 -1.5 c S}{2}}
 \def\@linecap{\@linehead at type{0 0 m 1 0 l S}{1}}
 \def\@mapcap {\@linehead at type{0 1.5 m 0 -1.5 l 0 0 m 1 0 l S}{1}}
+\def\@mapsfromcap {\@linehead at type{1 1.5 m 1 -1.5 l 1 0 m 0 0 l S}{1}}
 \def\@rsarrow{\@linehead at type{0 0 m 2 0 l 0 1 l 2 0 m 0 -1 l S}{2}}
 \def\@lsarrow{\@linehead at type{2 0 m 0 0 l 2 1 l 0 0 m 2 -1 l S}{2}}
-\def\@backhook{\@linehead at type{1 2 m .5 2 0 1.5 0 1 c 0 .5 .5 0 1 0 c S}{1}}
-\def\@fronthook{\@linehead at type{0 2 m .5 2 1 1.5 1 1 c 1 .5 .5 0 0 0 c S}{1}}
-\def\@doublerarrow{\@linehead at 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 at 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 at type{1 2 m .5 2 0 1.5 0 1 c 0 .5 .5 0 1 0 c S}{1}}
+\def\@frontuphook{\@linehead at type{0 2 m .5 2 1 1.5 1 1 c 1 .5 .5 0 0 0 c S}{1}}
+\def\@backdownhook{\@linehead at type{1 0 m .5 0 0 -.5 0 -1 c 0 -1.5 .5 -2 1 -2 c S}{1}}
+\def\@frontdownhook{\@linehead at type{0 0 m .5 0 1 -.5 1 -1 c 1 -1.5 .5 -2 0 -2 c S}{1}}
+\def\@doublerarrow{\@linehead at 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 at 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 at 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 at 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 at 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 at 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 at 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 at type{0 -1 m 1 -1 l 0 1 m 1 1 l S}{1}}
 \def\@Rightcirclecap{\@linehead at type{0 1 m .5 1 1 .5 1 0 c 1 -.5 .5 -1 0 -1 c S}{1}}
 \def\@Leftcirclecap{\@linehead at 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 at type{1 1 m 0 1 l 0 -1 l 1 -1 l S}{1}}
 \def\@Rightribboncap{\@linehead at type{0 1 m 2 1 l 0 0 l 2 -1 l 0 -1 l S}{2}}
 \def\@Leftribboncap{\@linehead at 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 at type{0 -1.5 m 1 -1.5 l 0 1.5 m 1 1.5 l S}{1}}
+\def\@Rightarrows{\@linehead at 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 at 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 at 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 at 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 at 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 at 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 at 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 at type{0 -2 m 1 -2 l 0 0 m 1 0 l 0 2 m 1 2 l S}{1}}
+\def\@TripleRarrow {\@linehead at 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 at 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 at w{.4} \def\vecc at hw{.2}  \def\vecc at skew{2.5}
 \def\vecc at displaystyle@s{1}       \def\vecc at displaystyle@sf{1}
 \def\vecc at textstyle@s{1}          \def\vecc at 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 at th#1#3$}%
+        \setbox0=\hbox{$\m at 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 at skip{\mkern1mu}
 \def\xarrow at buffer{1}
 \def\@@@xarrow at type#1#2#3#4#5#6#7{\mathrel{\arrow at skip%
-    \vcenter{\hbox{$#7%
+    \vcenter{\hbox{$\m at th#7%
         #1{\vecc at w}{\vecc at hw}[#5][#6]%
         \vrule width\dimexpr \xarrow at buffer pt * \@font at scale\relax height \dimexpr \vecc at w pt * #5 * \@font at scale\relax depth0pt%
         \smash{\mathord{\mathop{\kern\z@\leaders\hrule height \dimexpr \vecc at w pt * #5 * \@font at scale\relax\hfill}\limits^{#3}_{#4}}}%
@@ -216,9 +233,9 @@
 \def\@xarrow at type#1#2#3#4{\mathpalette\@@xarrow at type{{#1}{#2}{#3}{#4}}}
 
 \def\@@@arrow at type#1#2#3#4#5#6{\mathrel{\arrow at skip%
-    \vcenter{\hbox{$#6%
+    \vcenter{\hbox{$\m at th#6%
         #1{\vecc at w}{\vecc at hw}[#4][#5]%
-        \vrule width \dimexpr #3 * #4\relax height \dimexpr \vecc at w pt * #4 * \@font at scale\relax depth 0pt%
+        \vrule width \dimexpr #3pt * #4 * \@font at scale\relax height \dimexpr \vecc at w pt * #4 * \@font at scale\relax depth 0pt%
         #2{\vecc at w}{\vecc at hw}[#4][#5]%
     $}}\arrow at skip%
 }}
@@ -227,9 +244,11 @@
 
 \def\@arrow at type#1#2#3{\mathpalette\@@arrow at type{{#1}{#2}{#3}}}
 
+\def\arrow at len{6}
+\def\long at arrow@len{12}
 \def\@arrow at def#1#2#3{%
-    \expandafter\def\csname #1\endcsname{\@arrow at type{#2}{#3}{1ex}}%
-    \expandafter\def\csname long#1\endcsname{\@arrow at type{#2}{#3}{3ex}}%
+    \expandafter\def\csname #1\endcsname{\@arrow at type{#2}{#3}{\arrow at len}}%
+    \expandafter\def\csname long#1\endcsname{\@arrow at type{#2}{#3}{\long at arrow@len}}%
     \expandafter\def\csname @x#1\endcsname##1[##2]{\@xarrow at type{#2}{#3}{##1}{##2}}%
     \expandafter\def\csname x#1\endcsname##1{%
         \@ifnextchar[ {\csname @x#1\endcsname{##1}}%
@@ -245,8 +264,11 @@
 \@arrow at def{varleftrightharp}\@lharp\@rdharp
 \@arrow at def{varrightleftharp}\@ldharp\@rharp
 \@arrow at def{varmapsto}\@mapcap\@rarrow
-\@arrow at def{varhookrightarrow}\@backhook\@rarrow
-\@arrow at def{varhookleftarrow}\@larrow\@fronthook
+\@arrow at def{varmapsfrom}\@larrow\@mapsfromcap
+\@arrow at def{varuphookrightarrow}\@backuphook\@rarrow
+\@arrow at def{varuphookleftarrow}\@larrow\@frontuphook
+\@arrow at def{vardownhookrightarrow}\@backdownhook\@rarrow
+\@arrow at def{vardownhookleftarrow}\@larrow\@frontdownhook
 \@arrow at def{vardoublerightarrow}\@linecap\@doublerarrow
 \@arrow at def{vardoubleleftarrow}\@doublelarrow\@linecap
 \@arrow at def{varcirclerightarrow}\@circlecap\@rarrow
@@ -270,7 +292,7 @@
 
 % #1 width #2 bar height difference #3 mathstyle scale (fraction)
 \def\@Arrow at rule#1#2#3{%
-    \@@Arrow at rule{\dimexpr #1 * #3\relax}{#2}{#3}%
+    \@@Arrow at rule{\dimexpr #1pt * #3 * \@font at scale\relax}{#2}{#3}%
 }
 
 % #1 left cap
@@ -282,21 +304,21 @@
 % #7 mathstyle scale (decimal)
 % #8 mathstyle
 \def\@@@xArrow at type#1#2#3#4#5#6#7#8{\mathrel{\arrow at skip%
-    {\setbox0=\hbox{$#8-$}\raise.5\dimexpr\ht0-\dp0-(\vecc at w pt * #6 * \@font at scale)\relax\hbox{$#8%
-        \setbox0=\hbox{$\@subscriptconv#8#5$}%
+    {\setbox0=\hbox{$\m at th#8-$}\raise.5\dimexpr\ht0-\dp0-(\vecc at w pt * #6 * \@font at scale)\relax\hbox{$\m at th#8%
+        \setbox0=\hbox{$\m at th\@subscriptconv#8#5$}%
         #1{\vecc at w}{\vecc at hw}[#6][#7]%
-        \@Arrow at rule{\xarrow at buffer pt}{#3 pt}{#6}%
+        \@Arrow at rule{\xarrow at buffer}{#3 pt}{#6}%
         \lower\dimexpr (#3 pt + \vecc at skip ex) * #6 * \@font at scale+\ht0\relax
         \vbox{\offinterlineskip%
             \ialign{\hfil##\hfil\cr
-                $\@subscriptconv#8#4$\cr\noalign{\kern\dimexpr\vecc at skip ex * #6 * \@font at scale\relax}%
+                $\m at th\@subscriptconv#8#4$\cr\noalign{\kern\dimexpr\vecc at skip ex * #6 * \@font at scale\relax}%
                 \leaders\hrule height \dimexpr \vecc at w pt * #6 * \@font at scale\relax\hfill\cr%
                 \noalign{\kern\dimexpr #3 pt * #6 * \@font at scale * 2 - \vecc at w pt * #6 * \@font at scale\relax}%
                 \leaders\hrule height \dimexpr \vecc at w pt * #6 * \@font at scale\relax\hfill\cr\noalign{\kern\dimexpr\vecc at skip ex * #6 * \@font at scale\relax}%
-                $\@subscriptconv#8#5$\cr%
+                $\m at th\@subscriptconv#8#5$\cr%
             }%
         }%
-        \@Arrow at rule{\xarrow at buffer pt}{#3 pt}{#6}%
+        \@Arrow at rule{\xarrow at buffer}{#3 pt}{#6}%
         #2{\vecc at w}{\vecc at hw}[#6][#7]%
     $}}%
     \arrow at skip%
@@ -306,7 +328,7 @@
 \def\@xArrow at type#1#2#3#4#5{\mathpalette\@@xArrow at type{{#1}{#2}{#3}{#4}{#5}}}
 
 \def\@@@Arrow at type#1#2#3#4#5#6#7{\mathrel{\arrow at skip%
-    \vcenter{\hbox{$#7%
+    \vcenter{\hbox{$\m at th#7%
         #1{\vecc at w}{\vecc at hw}[#5][#6]%
         \@Arrow at rule{#3}{#4pt}{#5}%
         #2{\vecc at w}{\vecc at hw}[#5][#6]%
@@ -316,9 +338,11 @@
 \def\@@Arrow at type#1#2{\@@@Arrow at type#2{\csname vecc@\m at strip#1 at sf\endcsname}{\csname vecc@\m at strip#1 at s\endcsname}{#1}}
 \def\@Arrow at type#1#2#3#4{\mathpalette\@@Arrow at type{{#1}{#2}{#3}{#4}}}
 
+\def\Arrow at len{5}
+\def\long at Arrow@len{9}
 \def\@Arrow at def#1#2#3#4{%
-    \expandafter\def\csname #1\endcsname{\@Arrow at type{#2}{#3}{1ex}{#4}}%
-    \expandafter\def\csname long#1\endcsname{\@Arrow at type{#2}{#3}{2ex}{#4}}%
+    \expandafter\def\csname #1\endcsname{\@Arrow at type{#2}{#3}{\Arrow at len}{#4}}%
+    \expandafter\def\csname long#1\endcsname{\@Arrow at type{#2}{#3}{\long at Arrow@len}{#4}}%
     \expandafter\def\csname @x#1\endcsname##1[##2]{\@xArrow at type{#2}{#3}{#4}{##1}{##2}}%
     \expandafter\def\csname x#1\endcsname##1{%
         \@ifnextchar[ {\csname @x#1\endcsname{##1}}%
@@ -336,13 +360,95 @@
 \@Arrow at def{varRibbonleftarrow}\@Larrow\@Rightribboncap{1}
 \@Arrow at def{roundedarrow}\@Leftcirclecap\@Rightcirclecap{1}
 \@Arrow at def{squaredarrow}\@Leftsquarecap\@Rightsquarecap{1}
+\@Arrow at def{varrightarrows}\@BigLinecap\@Rightarrows{1.5}
+\@Arrow at def{varleftarrows}\@Leftarrows\@BigLinecap{1.5}
+\@Arrow at def{varrightleftarrows}\@Leftunderarrow\@Rightoverarrow{1.5}
+\@Arrow at def{varleftrightarrows}\@Leftoverarrow\@Rightunderarrow{1.5}
 \@Arrow at def{rightPP}\@Circlescap\@Rightcirclecap{1}
 \@Arrow at def{leftPP}\@Leftcirclecap\@Circlescap{1}
 
+% #1 number of rules #2 width #3 bar height difference #4 mathstyle scale (fraction)
+\def\@multi at Arrow@rule#1#2#3#4{%
+    \lower\dimexpr #3 * #4 * \@font at scale * (#1 - 1)\relax
+    \vbox{%
+        \pdfmsym at repeated{\numexpr #1 - 1\relax}{%
+            \hrule width \dimexpr #2pt * #4 * \@font at scale\relax height \dimexpr \vecc at w pt * #4 * \@font at scale\relax depth\z@%
+            \kern\dimexpr #3 * #4 * \@font at scale * 2 - \vecc at w pt * #4 * \@font at scale\relax%
+        }%
+        \hrule width \dimexpr #2pt * #4 * \@font at scale\relax height \dimexpr \vecc at w pt * #4 * \@font at 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 at xArrow@type#1#2#3#4#5#6#7#8#9{\mathrel{\arrow at skip%
+    {\setbox0=\hbox{$\m at th#9-$}\raise.5\dimexpr\ht0-\dp0-(\vecc at w pt * #7 * \@font at scale)\relax%
+    \hbox{$\m at th#9%
+        \setbox0=\hbox{$\m at th\@subscriptconv#9#6$}%
+        #2{\vecc at w}{\vecc at hw}[#7][#8]%
+        \@multi at Arrow@rule{#1}{\xarrow at buffer}{#4pt}{#7}%
+        \lower\dimexpr (#4pt * (#1 - 1) + \vecc at skip ex) * #7 * \@font at scale +\ht0\relax
+        \vbox{\offinterlineskip%
+            \ialign{\hfil##\hfil\cr%
+                $\m at th\@subscriptconv#9#5$\cr%
+                \noalign{\kern\dimexpr\vecc at skip ex * #7 * \@font at scale\relax}%
+                \pdfmsym at repeated{\numexpr #1-1\relax}{%
+                    \leaders\hrule height \dimexpr \vecc at w pt * #7 * \@font at scale\relax\hfill\cr%
+                    \noalign{\kern\dimexpr #4pt * #7 * \@font at scale * 2 - \vecc at w pt * #7 * \@font at scale\relax}%
+                }%
+                \leaders\hrule height \dimexpr \vecc at w pt * #7 * \@font at scale\relax\hfill\cr
+                \noalign{\kern\dimexpr\vecc at skip ex * #7 * \@font at scale\relax}%
+                $\m at th\@subscriptconv#9#6$\cr%
+            }%
+        }%
+        \@multi at Arrow@rule{#1}{\xarrow at buffer}{#4pt}{#7}%
+        #3{\vecc at w}{\vecc at hw}[#7][#8]%
+    $}}%
+    \arrow at skip%
+}}
+
+\def\@@multi at xArrow@type#1#2{\@@@multi at xArrow@type#2{\csname vecc@\m at strip#1 at sf\endcsname}{\csname vecc@\m at strip#1 at s\endcsname}{#1}}
+\def\@multi at xArrow@type#1#2#3#4#5#6{\mathpalette\@@multi at xArrow@type{{#1}{#2}{#3}{#4}{#5}{#6}}}
+
+\def\@@@multi at Arrow@type#1#2#3#4#5#6#7#8{\mathrel{\arrow at skip%
+    \vcenter{\hbox{$\m at th#8%
+        #2{\vecc at w}{\vecc at hw}[#6][#7]%
+        \@multi at Arrow@rule{#1}{#4}{#5pt}{#6}%
+        #3{\vecc at w}{\vecc at hw}[#6][#7]%
+    $}}\arrow at skip%
+}}
+
+
+\def\@@multi at Arrow@type#1#2{\@@@multi at Arrow@type#2{\csname vecc@\m at strip#1 at sf\endcsname}{\csname vecc@\m at strip#1 at s\endcsname}{#1}}
+% #1 number of rules #2 left cap #3 right cap #4 length #5 bar height difference
+\def\@multi at Arrow@type#1#2#3#4#5{\mathpalette\@@multi at Arrow@type{{#1}{#2}{#3}{#4}{#5}}}
+
+% #1 name #2 number of rules #3 left cap #4 right cap #5 height difference
+\def\@multi at Arrow@def#1#2#3#4#5{%
+    \expandafter\def\csname #1\endcsname{\@multi at Arrow@type{#2}{#3}{#4}{\Arrow at len}{#5}}%
+    \expandafter\def\csname long#1\endcsname{\@multi at Arrow@type{#2}{#3}{#4}{\long at Arrow@len}{#5}}%
+    \expandafter\def\csname @x#1\endcsname##1[##2]{\@multi at 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 at Arrow@def{varRrightarrow}{3}\@TripleLinecap\@TripleRarrow{1}
+\@multi at Arrow@def{varLleftarrow}{3}\@TripleLarrow\@TripleLinecap{1}
+\@multi at Arrow@def{varLleftRrightarrow}{3}\@TripleLarrow\@TripleRarrow{1}
+
 \def\accent at skew{.4}
 \def\accent at raise{.25}
 \def\@@@wide at accent#1#2#3{{%
-    \setbox0=\hbox{$#3#1$}%
+    \setbox0=\hbox{$\m at th#3#1$}%
     \vbox{\offinterlineskip%
         \ialign{##\cr
             \hbox to \wd0{\hskip\dimexpr \accent at skew ex * \@font at scale\relax%
@@ -423,9 +529,9 @@
 \def\@@putexsym#1#2#3#4#5#6#7#8{{%
     \setbox0=\hbox{$\m at th#8#1$}%
     \setbox1=\hbox{$\m at th#2{\vecc at w}{\vecc at hw}[#6][#7]$}%
-    \kern\dimexpr\wd1 - #5 pt * #6 * \@font at scale\relax\rlap{$#8#1$}\kern-\dimexpr\wd1 - #5pt * #6 * \@font at scale\relax%
+    \kern\dimexpr\wd1 - #5 pt * #6 * \@font at scale\relax\rlap{$\m at th#8#1$}\kern-\dimexpr\wd1 - #5pt * #6 * \@font at scale\relax%
     \raise.5\dimexpr\ht0-\dp0\relax
-    \vbox{\hbox{$#8#2{\vecc at w}{\vecc at hw}[#6][#7]\@@Arrow at rule{\dimexpr\wd0- #5 pt * #6 * \@font at scale * 2\relax}{#4 pt}{#6}#3{\vecc at w}{\vecc at hw}[#6][#7]$}}%
+    \vbox{\hbox{$\m at th#8#2{\vecc at w}{\vecc at hw}[#6][#7]\@@Arrow at rule{\dimexpr\wd0- #5 pt * #6 * \@font at scale * 2\relax}{#4 pt}{#6}#3{\vecc at w}{\vecc at hw}[#6][#7]$}}%
 }}
 
 \def\@putexsym#1#2{\@@putexsym#2{\csname exsym@\m at strip#1 at sf\endcsname}{\csname exsym@\m at strip#1 at 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 at kern@{\mkern-10mu\mathchoice{\mkern-5mu}{}{}{}}
-\def\iNint#1{\pdfmsym at repeated{\numexpr #1-1\relax}{\int\iNint at 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 at repeated{\numexpr #1-1\relax}{\int\iNint at 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 at op{\mathop{\@oiNint{#1}}}{-4}{6}{-10}{10}{-4}{6}\nolimits}
-\def\biNint#1{\@skewedlim at op{\mathop{\@biNint{#1}}}{-6}{6}{-10}{10}{-6}{6}\nolimits}
+\def\oiNint#1{\@skewedlim at op{\mathop{\@oiNint{#1}}}{-4}{6}{-20}{20}{-4}{6}\nolimits}
+\def\biNint#1{\@skewedlim at op{\mathop{\@biNint{#1}}}{-6}{6}{-20}{20}{-6}{6}\nolimits}
+\def\iNint#1{\@skewedlim at 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 at th#1#2$}\rlap{\hbox to \wd0{\hss$\m at th#1#3$\hss}}}}
 \def\@putsym#1#2{\@@putsym#1#2}
 \def\putsym#1#2{\mathpalette\@putsym{{#1}{#2}}\mathopen{}#1}
 
@@ -519,6 +626,38 @@
         -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 at 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 at drawing@math at macro{@ndivs}
         {0.4 w 1 j
         0 3 m 5 7 l s
@@ -591,7 +730,7 @@
     }
 
     \def\@wide at operator#1#2#3#4{%
-        \@slice{$\displaystyle#2$}{#1}{#3}{#4}%
+        \@slice{$\m at th\displaystyle#2$}{#1}{#3}{#4}%
         \expandafter\def\csname #1\endcsname{%
             \mathop{\copy\csname #1 at L\endcsname \xleaders\copy\csname #1 at C\endcsname\hfill \copy\csname #1 at R\endcsname}\limits%
         }%



More information about the tex-live-commits mailing list.