diff options
author | Karl Berry <karl@freefriends.org> | 2023-03-21 16:47:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-03-21 16:47:07 +0000 |
commit | 0cde5db5dc139ef2532052bc6eb5695fa4e85a74 (patch) | |
tree | b68a203c457a03aeda84dee0908cf1930b30d3d3 /Master/texmf-dist/doc/generic/pdfmsym | |
parent | a4e7972c7289a6792314d3fd73e74919e424343e (diff) |
pdfmsym (17mar23)
git-svn-id: svn://tug.org/texlive/trunk@66618 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pdfmsym')
-rw-r--r-- | Master/texmf-dist/doc/generic/pdfmsym/README.md | 26 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf | bin | 219777 -> 231276 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex | 107 |
3 files changed, 99 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/generic/pdfmsym/README.md b/Master/texmf-dist/doc/generic/pdfmsym/README.md index f79a98d1cbd..ddcb2e5ba1a 100644 --- a/Master/texmf-dist/doc/generic/pdfmsym/README.md +++ b/Master/texmf-dist/doc/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/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf b/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf Binary files differindex bd2dab960b6..9bdb00b52be 100644 --- a/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf +++ b/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex b/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex index 9c621958323..753e8a31fca 100644 --- a/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex +++ b/Master/texmf-dist/doc/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{<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 @@ 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{<vector name>}<left cap><right cap>} 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{<arrow name>}<left cap><right cap><height displacement>} This creates a double-stroked arrow, like +\macroexp{\@Arrow@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@def{varRightarrow}\@Linecap\@Rarrow{1} /endcode \emacroexp +\macroexp{\@multi@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@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<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@def{}, for example \macroname\varrightarrow{} is defined to be +\begincode +\@arrow@type\@linecap\@rarrow{\arrow@len} +/endcode +\emacroexp + +\macroexp{\@Arrow@type<left cap><right cap>{<length>}{<height displacement>}} 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{<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@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{<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 @@ 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 |