summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-03-21 16:47:07 +0000
committerKarl Berry <karl@freefriends.org>2023-03-21 16:47:07 +0000
commit0cde5db5dc139ef2532052bc6eb5695fa4e85a74 (patch)
treeb68a203c457a03aeda84dee0908cf1930b30d3d3 /Master/texmf-dist/doc/generic
parenta4e7972c7289a6792314d3fd73e74919e424343e (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')
-rw-r--r--Master/texmf-dist/doc/generic/pdfmsym/README.md26
-rw-r--r--Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdfbin219777 -> 231276 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.tex107
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
index bd2dab960b6..9bdb00b52be 100644
--- a/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pdfmsym/pdfmsym-doc.pdf
Binary files differ
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&#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@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