summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-03 23:10:43 +0000
committerKarl Berry <karl@freefriends.org>2010-04-03 23:10:43 +0000
commitf4f2bda7875b29f071a079559aa724434922d1ec (patch)
tree6eb02f162ce806ee2ac6dcad23e58e7f55018644 /Master/texmf-dist
parentce612f56f26d1e7d403ac8cd02d8b4ce9642e93f (diff)
xypdf update (31mar10)
git-svn-id: svn://tug.org/texlive/trunk@17673 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/xypdf/README7
-rw-r--r--Master/texmf-dist/doc/latex/xypdf/xypdf.pdfbin196590 -> 205027 bytes
-rw-r--r--Master/texmf-dist/source/latex/xypdf/xypdf.dtx634
-rw-r--r--Master/texmf-dist/source/latex/xypdf/xypdf.ins238
-rw-r--r--Master/texmf-dist/tex/latex/xypdf/xypdf.sty170
5 files changed, 732 insertions, 317 deletions
diff --git a/Master/texmf-dist/doc/latex/xypdf/README b/Master/texmf-dist/doc/latex/xypdf/README
index c876b7f2030..4a06915fed6 100644
--- a/Master/texmf-dist/doc/latex/xypdf/README
+++ b/Master/texmf-dist/doc/latex/xypdf/README
@@ -1,4 +1,4 @@
-xypdf 2010/03/24 v1.0
+xypdf 2010/03/30 v1.1
Copyright (c) 2010 by Daniel Müllner
http://www.math.uni-bonn.de/people/muellner
@@ -20,7 +20,10 @@ consists of the following files:
README - This file, the distribution guide
xypdf.dtx - Documented source code
xypdf.ins - Installation script
- xypdf.sty - LaTeX style file (generated from xypdf.ins and xypdf.dtx)
xypdf.pdf - Documentation (generated from xypdf.dtx)
+The LaTeX style file xypdf.sty is generated by the following command:
+
+ latex xypdf.ins
+
The GNU General Public License is available at <http://www.gnu.org/licenses/>.
diff --git a/Master/texmf-dist/doc/latex/xypdf/xypdf.pdf b/Master/texmf-dist/doc/latex/xypdf/xypdf.pdf
index fe31d4175dc..46dafafa1bd 100644
--- a/Master/texmf-dist/doc/latex/xypdf/xypdf.pdf
+++ b/Master/texmf-dist/doc/latex/xypdf/xypdf.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/xypdf/xypdf.dtx b/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
index 01609dd9048..a324870ff68 100644
--- a/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
+++ b/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
@@ -22,18 +22,21 @@
% This file is part of the LaTeX2e xypdf package. The package
% consists of the following files:
%
-% README - The distribution guide
-% xypdf.dtx - Documented source code
-% xypdf.ins - Installation script
-% xypdf.sty - LaTeX style file
-% xypdf.pdf - Documentation
+% README - This file, the distribution guide
+% xypdf.dtx - Documented source code
+% xypdf.ins - Installation script
+% xypdf.pdf - Documentation (generated from xypdf.dtx)
+%
+% The LaTeX style file xypdf.sty is generated by the following command:
+%
+% latex xypdf.ins
%
% \fi
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{xypdf}
-%<package> [2010/03/24 v1.0 PDF output for the Xy-pic package]
+%<package> [2010/03/30 v1.1 PDF output for the Xy-pic package]
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -60,22 +63,8 @@
\usepackage{lmodern}
\normalfont
\usepackage[T1]{fontenc}
-\usepackage[arrow,curve]{xy}
+\usepackage[arrow,curve,rotate]{xy}
\usepackage{xypdf}
-\newsavebox\mybox
-\makeatletter
-% Parameter #1: scaling factor
-% Parameter #2: Box content
-\newcommand*\scalebox[2]{%
- \sbox\mybox{#2}%
- \xP@literal{q #1 0 0 #1 0 0 cm}%
- % Zero-sized box with the scaled content
- \vbox to\z@{\vss\hbox to \z@{\usebox\mybox\hss}}%
- \xP@literal{Q}%
- % Dummy box for correct spacing
- \hbox to#1\wd\mybox{\vrule width\z@ height#1\ht\mybox depth#1\dp\mybox\hss}%
-}
-\makeatother
\usepackage{shortvrb}
\MakeShortVerb{\"}
\AtBeginDocument{\DeleteShortVerb{\|}}% revoke the shortcut from ltxdoc.cls
@@ -126,7 +115,7 @@
%</driver>
% \fi
%
-% \CheckSum{4941}
+% \CheckSum{0}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -199,7 +188,7 @@
% As the most recent version 3.7 of \Xy-pic dates from 1999, there is no support for pdf\TeX. In order to produce PDF files with high-quality \Xy-pic diagrams, users had to use so far the Postscript file format as an intermediate step or embed the diagrams as external graphics. However, since many users directly generate PDF files from the \TeX{} or DVI files (with bookmarks, hyperlinks and other PDF features), it is highly desirable to also have the possibility of directly generating \Xy-pic diagrams with high-quality PDF graphics elements.
%
% The present package \textsf{xypdf} adapts the output routines of the \Xy-pic package to generate high-quality graphics for PDF output. It works with both pdf\LaTeX and the two-step compilation \LaTeX${}\to{}$dvipdfm(x) with an intermediate DVI file. Note that some version of $\varepsilon$-\TeX{} is needed (which is anyway used by default in modern \TeX{} installations). \autoref{Fig1} compares the output quality of a small \Xy-pic figure.
-% \newcommand*\testdiag{\scalebox{10}{\xy (5,0): 0;
+% \newcommand*\testdiag{\xy *[*10]\hbox{\xy (5,0): 0;
% a(0) **\dir{-},
% a(6.524)**\dir{-},
% a(13.048) **\dir{-},
@@ -210,7 +199,7 @@
% @+(-.2,.5),
% @+(.5,.3),
% a(70) *+<.5pt>{} **\crvs{-}
-% \endxy}}
+% \endxy}\endxy}
% \begin{figure}\label{Fig1}
% \centering\setlength\tabcolsep{1.5em}
% \begin{tabular}{@{}cc@{}}
@@ -270,6 +259,17 @@
% \showline{\xy *\cir<16pt>{} *\cir<19pt>{} \endxy}&"\xy *\cir<16pt>{} *\cir<19pt>{} \endxy"
% \end{tabular}
% \end{center}
+%
+% \item
+% \textsf{xypdf} supports the “rotate” extension of \Xy-pic:
+% \begin{center}
+% \begin{tabular}{@{}cl@{}}
+% with \textsf{xypdf}&code\\
+% \midrule
+% \xy *!D[@!15]\hbox{Test text} \endxy\vrule width 0pt height 3ex depth 2ex&"\xy *[@!15]\hbox{Test text} \endxy"\\
+% \xy *!D[*1.5]\hbox{Test text} \endxy&"\xy *[*1.5]\hbox{Test text} \endxy"
+% \end{tabular}
+% \end{center}
% \end{itemize}
%
% If you notice any unwanted behavior, please generate a minimal example and e-mail it to the author of this package. Current contact details are available at \url{http://www.math.uni-bonn.de/people/muellner}. Please report situations where the algorithms produce arithmetic overflows. Also, the code is not really optimized for speed but for accuracy, so feel free to report a significant slowdown of the compiling process for your thesis/paper/book.
@@ -296,11 +296,7 @@
% \begin{itemize}
%
% \item
-% Code for the “line styles” extension.
-%
-% \item
-% Code for scaling and rotating diagrams.
-%
+% Support for the “line styles”, “frame” and “color” extensions.
% \end{itemize}
%
% \section{Caveat}
@@ -347,9 +343,9 @@
{\PackageError{xypdf}{Load the Xy-pic package before this package}
{Insert `\string\usepackage[<options>]{xy}' before
`\string\usepackage{xypdf}'}}
-\ifdefined\xypsloaded
- \PackageError{xypdf}{Do not load Xy-pic with a Postscript backend}{}
-\fi
+\xywithoption{ps}{%
+ \PackageError{xypdf}{Do not load Xy-pic with a Postscript backend}{}%
+}
% \end{macrocode}
% Rely on the ifpdf package to test for PDF output.
% \begin{macrocode}
@@ -378,7 +374,14 @@
\expandafter\noexpand\csname xP@old@#1\endcsname
}%
}
-\AtEndOfPackage{\xypdfon\let\xP@hook\@undefined\let\xP@tempvar\@undefined}
+\AtEndOfPackage{%
+ \xypdfon
+ \let\xP@hook\@undefined
+ \let\xP@tempvar\@undefined
+ \let\@tempa\@undefined
+ \let\xP@gobblepart\@undefined
+ \let\xP@endgobble\@undefined
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -390,15 +393,28 @@
\ifpdf
\let\xP@literal\pdfliteral
\else
- \def\xP@literal#1{\special{pdf:literal #1}}
+ \def\xP@literal{%
+ \PackageWarning{xypdf}{The produced DVI file is NOT PORTABLE. Convert it with%
+ ^^J%
+ dvipdfm(x) to the PDF format but do not expect the DVI itself to be displayed%
+ ^^J%
+ correctly\@gobble}%
+ \global\let\xP@literal\xP@literal@
+ \xP@literal
+ }
+ \newcommand*\xP@literal@[1]{\special{pdf:literal #1}}
\fi
% \end{macrocode}
% \end{macro}
% \begin{macro}{\xP@dim}
% Conversion between \TeX{} points (pt) and PDF/Postscript points (bp)
% \begin{macrocode}
-\newcommand*\xP@dim[1]{%
- \expandafter\removePT@\the\dimexpr(#1)*800/803\relax\space}
+\newcommand*\xP@dim[1]{\xP@EARPT\dimexpr(#1)*800/803\relax\space}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@EARPT}
+% \begin{macrocode}
+\newcommand*\xP@EARPT{\expandafter\removePT@\the}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\xP@coor}
@@ -421,7 +437,9 @@
}
% \end{macrocode}
% \end{macro}
+%
% \subsection{Straight lines}
+%
% \begin{macro}{\solid@}
% \begin{macro}{\xP@solid@}
% This is the hook for solid straight lines. Derived from "\xyPSsolid@" in "xyps.tex".
@@ -722,6 +740,7 @@
% \end{macro}
%
% \subsection{Squiggled lines}
+%
% \begin{macro}{\squiggledSpread@}
% \begin{macro}{\xP@squiggledSpread@}
% This is the hook for squiggled straight lines.
@@ -781,8 +800,364 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Circles}
+%
+% \begin{macro}{\circhar@@}
+% \begin{macro}{\xP@circhar@@}
+% Replacement macro for the circle chars.
+% \begin{macrocode}
+\xP@hook{circhar@@}
+\newcommand*\xP@circhar@@[1]{%
+ \expandafter\xP@circhar@@@\ifcase#1 %
+% \end{macrocode}
+% Bézier segments for 1/8 circle.
+% Let
+% \[\tabskip 0pt plus 1fil\openup\jot
+% \halign to \displaywidth{$#$\hfill\cr
+% \noalign{\vskip-\jot}
+% a\coloneq\sqrt{1/2}\approx.707106781,\cr
+% b\coloneq\frac83\sqrt2\cos(\pi/8)\left(1-\cos(\pi/8)\right)\approx.2652164898,\cr
+% c\coloneq\frac13\left(-3+8\cos(\pi/8)-2\cos^2(\pi/8)\right)\approx.8946431596,\cr
+% d\coloneq \frac12b(2+3\cos(\pi/8)-\cos^2(\pi/8))\approx.5195704027.\cr
+% }
+% \]
+% (We have $\cos(\pi/8)=\frac12\sqrt{2+\sqrt2}$.)
+%
+% The fractions below are best possible rational approximations (obtained by continued fractions) to the following coordinates:
+%
+% $(0,0)$, $(0,-b)$, $(1-c, -d)$, $(1-a,a)$
+% \begin{macrocode}
+ 00%
+ 0{-173517671/654249180}%
+ {65307479/619869377}{-34221476/65864945}%
+ {225058681/768398401}{-543339720/768398401}%
+ \or
+% \end{macrocode}
+% $(0,-a)$, $(a-d,-c)$, $(a-b,-1)$, $(a,-1)$
+% \begin{macrocode}
+ 0{-543339720/768398401}%
+ {181455824/967576667}{-554561898/619869377}%
+ {826676217/1870772527}{-1}%
+ {543339720/768398401}{-1}%
+ \or
+% \end{macrocode}
+% $(0,-1)$, $(b,-1)$, $(d,-c)$, $(a,-a)$
+% \begin{macrocode}
+ 0{-1}%
+ {173517671/654249180}{-1}%
+ {34221476/65864945}{-554561898/619869377}%
+ {543339720/768398401}{-543339720/768398401}%
+ \or
+% \end{macrocode}
+% $(0,-a)$, $(c-a,-d)$, $(1-a,-b)$, $(1-a,0)$
+% \begin{macrocode}
+ 0{-543339720/768398401}%
+ {181455824/967576667}{-34221476/65864945}%
+ {225058681/768398401}{-173517671/654249180}%
+ {225058681/768398401}0%
+ \or
+% \end{macrocode}
+% $(0,a)$, $(c-a,d)$, $(1-a,b)$, $(1-a,0)$
+% \begin{macrocode}
+ 0{543339720/768398401}%
+ {181455824/967576667}{34221476/65864945}%
+ {225058681/768398401}{173517671/654249180}%
+ {225058681/768398401}0%
+ \or
+% \end{macrocode}
+% $(0,1)$, $(b,1)$, $(d,c)$, $(a,a)$
+% \begin{macrocode}
+ 01%
+ {173517671/654249180}1%
+ {34221476/65864945}{554561898/619869377}%
+ {543339720/768398401}{543339720/768398401}%
+ \or
+% \end{macrocode}
+% $(0,a)$, $(a-d,c)$, $(a-b,1)$, $(a,1)$
+% \begin{macrocode}
+ 0{543339720/768398401}%
+ {181455824/967576667}{554561898/619869377}%
+ {826676217/1870772527}1%
+ {543339720/768398401}1%
+ \or
+% \end{macrocode}
+% $(0,0)$, $(0,b)$, $(1-c,d)$, $(1-a,a)$
+% \begin{macrocode}
+ 00%
+ 0{173517671/654249180}%
+ {65307479/619869377}{34221476/65864945}%
+ {225058681/768398401}{543339720/768398401}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@circhar@@@}
+% Draw the arc of $1/8$ circle and use the same space as the chars from the circle font do.
+% \begin{macrocode}
+\newcommand\xP@circhar@@@[8]{%
+ \xP@setsolidpat
+ \xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m
+ \xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}%
+ \xP@coor{\R@*#7}{\R@*#8}c}%
+ \vrule width\z@ height\R@ depth\R@
+ \kern\dimexpr\R@*#7\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\cirrestrict@@}
+% \begin{macro}{\xP@cirrestrict@@}
+% Basically, "\cirrestrict@@" is turned into a no-op and does not change the radius.
+% \begin{macrocode}
+\xP@hook{cirrestrict@@}
+\newcommand*\xP@cirrestrict@@{\count@\z@\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Optional code sections}
+%
+% \begin{macro}{\xP@optionalsection}
+% \textbf{Important!} The next sections of the code are executed only if \Xy-pic is loaded with certain extensions. If the extension has not been loaded but is loaded afterwards (e.\,g.\ with "\xyoption{rotate}"), display an error message.
+% \begin{macrocode}
+\newcommand*\xP@optionalsection[1]{%
+ \expandafter\ifx\csname xy#1loaded\endcsname\relax
+ \xywithoption{#1}{\xP@optionerror{#1}}%
+ \expandafter\xP@gobblepart
+ \else
+ \message{`#1' extension support,}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@optionerror}
+% \begin{macrocode}
+\newcommand*\xP@optionerror[1]{%
+ \PackageError{xypdf}{Load the Xy-pic "#1" option before the xypdf package}%
+ {}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@gobblepart}
+% \begin{macrocode}
+\@ifdefinable\xP@gobblepart\relax
+\long\def\xP@gobblepart#1\xP@endgobble{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@endgobble}
+% \begin{macrocode}
+\newcommand*\xP@endgobble{\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Rotation and scaling}
+%
+% Execute the following part only if \Xy-pic's “rotate” option was loaded.
+% \begin{macrocode}
+\xP@optionalsection{rotate}
+% \end{macrocode}
+% \begin{macro}{\xP@scale}
+% Scale the box $0$ to the factors in "#1" and "#2".
+% \begin{macrocode}
+\newcommand*\xP@scale[2]{%
+ \setboxz@h{%
+ \hskip\L@p
+ \hskip-\R@p
+ \lower\U@p\hbox{%
+ \xP@literal{q #1\space0 0 #2\space0 0 cm}%
+ \raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}%
+ \xP@literal{Q}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@rotate}
+% Rotation in the direction "#1".
+% \begin{macrocode}
+\newcommand\xP@rotate{%
+ \xP@rotate@\xP@trigfromdir
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@specialrotate}
+% Rotation by the angle in "#1".
+% \begin{macrocode}
+\@ifdefinable\xP@specialrotate\relax
+\def\xP@specialrotate#1@@{\xP@rotate@\xP@trig{#1\p@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@rotate@}
+% Common code for both rotations: rotate the box $0$.
+% \begin{macrocode}
+\newcommand*\xP@rotate@[2]{%
+ \setboxz@h{%
+ #1{#2}%
+ \hskip\L@p
+ \hskip-\R@p
+ \lower\U@p\hbox{%
+ \xP@literal{q %
+ \cosDirection\space
+ \sinDirection\space
+ \if-\sinDirection\else-\sinDirection\fi\space
+ \cosDirection\space
+ 0 0 cm}%
+ \raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}%
+ \xP@literal{Q}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xyRotate@@}
+% The hooks for planting the code into \Xy-pic.
+% \begin{macrocode}
+\CheckCommand*\xyRotate@@[1]{\xyundefinedRotate@{rotate}{#1}@@}
+\let\xyRotate@@\xP@rotate
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\doSpecialRotate@@}
+% \begin{macrocode}
+\def\@tempa#1@@{\xyundefinedRotate@{special rotate}{#1}@@}
+\@check@eq\doSpecialRotate@@\@tempa
+\let\doSpecialRotate@@\xP@specialrotate
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xyscale@}
+% \begin{macrocode}
+\CheckCommand*\xyscale@[2]{\xyundefinedRotate@{scale}{#1,#2}@@}
+\let\xyscale@@\xP@scale
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@trigfromdir}
+% Calculate sine and cosine from the direction number in "#1".
+% \begin{macrocode}
+\newcommand*\xP@trigfromdir[1]{{%
+ \Direction#1\relax
+ \count@-\Direction
+ \advance\count@4096
+ \divide\count@2048
+ \ifcase\count@
+ \d@X\K@\p@
+ \d@Y\numexpr\Direction-3*\K@\relax\p@
+ \or
+ \d@X\numexpr\Direction-\K@\relax\p@
+ \d@Y-\K@\p@
+ \or
+ \d@X-\K@\p@
+ \d@Y\numexpr-\Direction-\K@\relax\p@
+ \or
+ \d@X\numexpr-\Direction-3*\K@\relax\p@
+ \d@Y\K@\p@
+ \else
+ \PackageError{xypdf}{Unexpected case in direction calculation}%
+ {Feel free to contact the author of the xypdf package with a minimal %
+ example.}%
+ \fi
+ \xP@veclen
+ \xdef\@gtempa{%
+ \def\noexpand\cosDirection{\xP@EARPT\dimexpr\d@X*\p@/\@tempdimb\relax}%
+ \def\noexpand\sinDirection{\xP@EARPT\dimexpr\d@Y*\p@/\@tempdimb\relax}%
+ }%
+ }\@gtempa
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@trigfromdir}
+% Calculate sine and cosine from the angle in "#1".
+% \begin{macrocode}
+\newcommand*\xP@trig[1]{%
+ \@tempdima\dimexpr#1\relax
+ \@tempdimb\@tempdima
+% \end{macrocode}
+% $23592960=360\cdot65536$
+% \begin{macrocode}
+ \divide\@tempdimb23592960
+ \advance\@tempdima-23592960\@tempdimb
+ \ifdim\@tempdima<\z@\advance\@tempdima360pt\fi
+ \@tempdimb\@tempdima
+% \end{macrocode}
+% $5898240=90\cdot65536$
+% \begin{macrocode}
+ \divide\@tempdimb5898240
+ \ifcase\@tempdimb
+ \xP@sinpoly
+ \edef\sinDirection{\xP@EARPT\@tempdimb}%
+ \@tempdima\dimexpr90pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\cosDirection{\xP@EARPT\@tempdimb}%
+ \or
+ \@tempdima\dimexpr180pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\sinDirection{\xP@EARPT\@tempdimb}%
+ \@tempdima\dimexpr90pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}%
+ \or
+ \@tempdima\dimexpr\@tempdima-180pt\relax
+ \xP@sinpoly
+ \edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}%
+ \@tempdima\dimexpr90pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}%
+ \or
+ \@tempdima\dimexpr360pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}%
+ \@tempdima\dimexpr90pt-\@tempdima\relax
+ \xP@sinpoly
+ \edef\cosDirection{\xP@EARPT\@tempdimb}%
+ \else
+ \PackageError{xypdf}{Unexpected case in sin/cos calculation}%
+ {Feel free to contact the author of the xypdf package with a minimal %
+ example.}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xP@sinpoly}
+% Polynomial approximation to the sine in the interval $[0\mathrm{pt},90\mathrm{pt}]$. The deviation should be $\pm1\mathrm{sp}$ maximal (but no guarantee). (3rd order, 4 subintervals, exact values for 0pt and 90pt)
+% \begin{macrocode}
+\newcommand*\xP@sinpoly{{%
+ \ifdim\@tempdima<49pt
+ \ifdim\@tempdima<27pt
+ \@tempdimb\dimexpr((\@tempdima*-529771058/16039085-1384933sp)%
+ *\@tempdima/268756075+10714164sp)*\@tempdima/613777813\relax
+ \else
+ \advance\@tempdima-27pt
+ \@tempdimb\dimexpr(((\@tempdima*-743101305/20672414-238989613sp)%
+ *\@tempdima/80975565+42661556sp)*\@tempdima/622461739+2\p@)%
+ *157520747/693945047\relax
+ \fi
+ \else
+ \ifdim\@tempdima<70pt
+ \advance\@tempdima-49pt
+ \@tempdimb\dimexpr(((\@tempdima*-348406699/107952940-55079229sp)%
+ *\@tempdima/866635628+408805sp)*\@tempdima/26926757+\p@)%
+ *135751711/179873976\relax
+ \else
+ \advance\@tempdima-70pt
+ \@tempdimb\dimexpr(((\@tempdima*-1015850353/137849442-460519207sp)%
+ *\@tempdima/8742349+142263941sp)*\@tempdima/972432199+23\p@)%
+ *31253604/764969669\relax
+ \fi
+ \fi
+ \global\dimen@i\@tempdimb
+ }\@tempdimb\dimen@i
+}
+% \end{macrocode}
+% \end{macro}
+%
+% End of the section for \Xy-pic's “rotate” option.
+% \begin{macrocode}
+\xP@endgobble
+% \end{macrocode}
+%
% \subsection{Temporary registers}
%
+% The next section is for the “curve” extension!
+% \begin{macrocode}
+\xP@optionalsection{curve}
+% \end{macrocode}
% In order to save registers, \textsf{xypdf} shares \Xy-pic's dimension and counter registers but uses different, more descriptive names. Every macro that uses these temporary variables must be safely encapsulated in a group so that the registers are not changed from the outside scope!
%
% The \textsf{xypdf} package uses several sets of temporary variable names for different modules. Since it is important that these assignments do not overlap and that the variables are only used encapsulated within groups, the macros which use temporary variables are marked by colored bullets \BulletA, \BulletB, \BulletC, \BulletD, \BulletE, \BulletF, \BulletG\ with one color for each set of variables.
@@ -912,15 +1287,6 @@
% \begin{macro}{\xP@F}
% \begin{macro}{\xP@G}
% \begin{macro}{\xP@H}
-% \begin{macro}{\xP@I}
-% \begin{macro}{\xP@J}
-% \begin{macro}{\xP@K}
-% \begin{macro}{\xP@L}
-% \begin{macro}{\xP@fa}
-% \begin{macro}{\xP@fd}
-% \begin{macro}{\xP@tm}
-% \begin{macro}{\xP@xm}
-% \begin{macro}{\xP@ym}
% \BulletC\
% Third set of temporary registers: Bézier offset algorithm ans solving linear equations.
% \begin{macrocode}
@@ -932,6 +1298,26 @@
\xP@tempvar\xP@F\Y@origin
\xP@tempvar\xP@G\X@xbase
\xP@tempvar\xP@H\Y@xbase
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\xP@I}
+% \begin{macro}{\xP@J}
+% \begin{macro}{\xP@K}
+% \begin{macro}{\xP@L}
+% \begin{macro}{\xP@fa}
+% \begin{macro}{\xP@fd}
+% \begin{macro}{\xP@tm}
+% \begin{macro}{\xP@xm}
+% \begin{macro}{\xP@ym}
+% \BulletC\
+% \begin{macrocode}
\xP@tempvar\xP@I\X@ybase
\xP@tempvar\xP@J\Y@ybase
\xP@tempvar\xP@K\X@min
@@ -951,16 +1337,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \BulletC\
-% Alas, we need 20 more temporary registers. Hopefully, there are still free slots for dimension registers. We take them for the temporary variables but release them afterwards so that other packages can use them.
% \begin{macro}{\xP@off}
% \begin{macro}{\xP@ta}
% \begin{macro}{\xP@tb}
@@ -981,7 +1357,8 @@
% \begin{macro}{\xP@yc}
% \begin{macro}{\xP@xd}
% \begin{macro}{\xP@yd}
-% \BulletC
+% \BulletC\
+% Alas, we need 20 more temporary registers. Hopefully, there are still free slots for dimension registers. We take them for the temporary variables but release them afterwards so that other packages can use them.
% \begin{macrocode}
\@tempcnta\count11\relax
\newdimen\xP@off
@@ -1067,9 +1444,6 @@
% \begin{macro}{\xP@AAba}
% \begin{macro}{\xP@AAbb}
% \begin{macro}{\xP@AAbc}
-% \begin{macro}{\xP@dta}
-% \begin{macro}{\xP@dtb}
-% \begin{macro}{\xP@dtc}
% \BulletF\
% Sixth set of temporary variables: Solving a linear system approximately.
% \begin{macrocode}
@@ -1084,9 +1458,6 @@
\xP@tempvar\xP@AAba\xP@xb
\xP@tempvar\xP@AAbb\xP@yb
\xP@tempvar\xP@AAbc\xP@xc
-\xP@tempvar\xP@dta\xP@yc
-\xP@tempvar\xP@dtb\xP@xd
-\xP@tempvar\xP@dtc\xP@yd
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1099,6 +1470,15 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \begin{macro}{\xP@dta}
+% \begin{macro}{\xP@dtb}
+% \begin{macro}{\xP@dtc}
+% \BulletF\
+% \begin{macrocode}
+\xP@tempvar\xP@dta\xP@yc
+\xP@tempvar\xP@dtb\xP@xd
+\xP@tempvar\xP@dtc\xP@yd
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1754,6 +2134,7 @@
% \end{macro}
%
% \subsection{A Bézier curve offset algorithm}
+%
% First, all control points are offset by the desired distance and in the direction of the normal vectors at the boundary points of the curve. We then adjust the distance of the inner two control points to the boundary control points along the tangents at the boundary points: $x_b = x_a + f_a T_{ax}$, $x_c = x_d + f_d T_{dx}$, and likewise for the $y$-coordinates. In nondegenerate cases, we have $T_{ax}=x_b-x_a$ and $T_{dx}=x_c-x_d$.
%
% Let $P(a,b,c,d,t)$ denote the Bézier polynomial $a(1-t)^3+3bt(1-t)^2+3ct^2(1-t)+dt^3$. In order to determine the factors $f_a$ and $f_d$, we set up a system of three equations.
@@ -3281,119 +3662,30 @@
}
% \end{macrocode}
% \end{macro}
-%
-% \subsection{Circles}
-% \begin{macro}{\circhar@@}
-% \begin{macro}{\xP@circhar@@}
-% Replacement macro for the circle chars.
+% End of the section for \Xy-pic's “curve” option.
% \begin{macrocode}
-\xP@hook{circhar@@}
-\newcommand*\xP@circhar@@[1]{%
- \expandafter\xP@circhar@@@\ifcase#1 %
+\xP@endgobble
% \end{macrocode}
-% Bézier segments for 1/8 circle.
-% Let
-% \[\tabskip 0pt plus 1fil\openup\jot
-% \halign to \displaywidth{$#$\hfill\cr
-% \noalign{\vskip-\jot}
-% a\coloneq\sqrt{1/2}\approx.707106781,\cr
-% b\coloneq\frac83\sqrt2\cos(\pi/8)\left(1-\cos(\pi/8)\right)\approx.2652164898,\cr
-% c\coloneq\frac13\left(-3+8\cos(\pi/8)-2\cos^2(\pi/8)\right)\approx.8946431596,\cr
-% d\coloneq \frac12b(2+3\cos(\pi/8)-\cos^2(\pi/8))\approx.5195704027.\cr
-% }
-% \]
-% (We have $\cos(\pi/8)=\frac12\sqrt{2+\sqrt2}$.)
%
-% The fractions below are best possible rational approximations (obtained by continued fractions) to the following coordinates:
+% \section{Changelog}
%
-% $(0,0)$, $(0,-b)$, $(1-c, -d)$, $(1-a,a)$
-% \begin{macrocode}
- 00%
- 0{-173517671/654249180}%
- {65307479/619869377}{-34221476/65864945}%
- {225058681/768398401}{-543339720/768398401}%
- \or
-% \end{macrocode}
-% $(0,-a)$, $(a-d,-c)$, $(a-b,-1)$, $(a,-1)$
-% \begin{macrocode}
- 0{-543339720/768398401}%
- {181455824/967576667}{-554561898/619869377}%
- {826676217/1870772527}{-1}%
- {543339720/768398401}{-1}%
- \or
-% \end{macrocode}
-% $(0,-1)$, $(b,-1)$, $(d,-c)$, $(a,-a)$
-% \begin{macrocode}
- 0{-1}%
- {173517671/654249180}{-1}%
- {34221476/65864945}{-554561898/619869377}%
- {543339720/768398401}{-543339720/768398401}%
- \or
-% \end{macrocode}
-% $(0,-a)$, $(c-a,-d)$, $(1-a,-b)$, $(1-a,0)$
-% \begin{macrocode}
- 0{-543339720/768398401}%
- {181455824/967576667}{-34221476/65864945}%
- {225058681/768398401}{-173517671/654249180}%
- {225058681/768398401}0%
- \or
-% \end{macrocode}
-% $(0,a)$, $(c-a,d)$, $(1-a,b)$, $(1-a,0)$
-% \begin{macrocode}
- 0{543339720/768398401}%
- {181455824/967576667}{34221476/65864945}%
- {225058681/768398401}{173517671/654249180}%
- {225058681/768398401}0%
- \or
-% \end{macrocode}
-% $(0,1)$, $(b,1)$, $(d,c)$, $(a,a)$
-% \begin{macrocode}
- 01%
- {173517671/654249180}1%
- {34221476/65864945}{554561898/619869377}%
- {543339720/768398401}{543339720/768398401}%
- \or
-% \end{macrocode}
-% $(0,a)$, $(a-d,c)$, $(a-b,1)$, $(a,1)$
-% \begin{macrocode}
- 0{543339720/768398401}%
- {181455824/967576667}{554561898/619869377}%
- {826676217/1870772527}1%
- {543339720/768398401}1%
- \or
-% \end{macrocode}
-% $(0,0)$, $(0,b)$, $(1-c,d)$, $(1-a,a)$
-% \begin{macrocode}
- 00%
- 0{173517671/654249180}%
- {65307479/619869377}{34221476/65864945}%
- {225058681/768398401}{543339720/768398401}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\xP@circhar@@@}
-% Draw the arc of $1/8$ circle and use the same space as the chars from the circle font do.
-% \begin{macrocode}
-\newcommand\xP@circhar@@@[8]{%
- \xP@setsolidpat
- \xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m
- \xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}%
- \xP@coor{\R@*#7}{\R@*#8}c}%
- \vrule width\z@ height\R@ depth\R@
- \kern\dimexpr\R@*#7\relax
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\cirrestrict@@}
-% \begin{macro}{\xP@cirrestrict@@}
-% Basically, "\cirrestrict@@" is turned into a no-op and does not change the radius.
-% \begin{macrocode}
-\xP@hook{cirrestrict@@}
-\newcommand*\xP@cirrestrict@@{\count@\z@\relax}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \begin{description}
+% \item[v1.0] 2010/03/24
+%
+% Initial version
+%
+% \item[v1.1] 2010/03/30
+% \begin{itemize}
+% \item Added support for the \Xy-pic “rotate” extension.
+%
+% \item The parts of the style file dealing with \Xy-pic extensions (currently “curve” and “rotate”) are only executed when those extension were loaded.
+%
+% \item \textsf{xypdf} does not give an error message when used with \Xy-pic options which query the Postscript drivers (e.\,g.\ “all” or “color”).
+%
+% \item In DVI mode, a warning is issued that the DVI file is not portable, like \Xy-pic does when a Postscript driver is in use.
+%
+% \end{itemize}
%
+% \end{description}
% \Finale
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/xypdf/xypdf.ins b/Master/texmf-dist/source/latex/xypdf/xypdf.ins
index ac0b9513b79..935f982cb94 100644
--- a/Master/texmf-dist/source/latex/xypdf/xypdf.ins
+++ b/Master/texmf-dist/source/latex/xypdf/xypdf.ins
@@ -1,117 +1,123 @@
-%%
-%% Copyright (c) 2010 by Daniel M\"ullner (Müllner)
-%% <http://www.math.uni-bonn.de/people/muellner>
-%% --------------------------------------------------------------------
-%%
-%% This program is free software: you can redistribute it and/or modify
-%% it under the terms of the GNU General Public License as published by
-%% the Free Software Foundation, either version 3 of the License, or
-%% (at your option) any later version.
-%%
-%% This program is distributed in the hope that it will be useful,
-%% but WITHOUT ANY WARRANTY; without even the implied warranty of
-%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%% GNU General Public License for more details.
-%%
-%% The GNU General Public License is available at
-%% <http://www.gnu.org/licenses/>.
-%%
-%% --------------------------------------------------------------------
-%%
-%% This file is part of the LaTeX2e xypdf package. The package
-%% consists of the following files:
-%%
-%% README - The distribution guide
-%% xypdf.dtx - Documented source code
-%% xypdf.ins - Installation script
-%% xypdf.sty - LaTeX style file
-%% xypdf.pdf - Documentation
-%%
-\input docstrip.tex
-% Change docstrip so that it gobbles spaces at the beginning of lines. Also,
-% lines containing a percent sign are merged with the next line.
-%
-% Caution: this only works if the package does not contain percent signs for
-% any other purpose than indicating comments.
-\CheckCommand*\putline@do[3]{\StreamPut#1{\inLine}}
-\renewcommand*\putline@do[3]{%
- \expandafter\docgobblespaces\inLine\endLine
- \docgobblepercent
- \ifx\@tempa\empty
- \StreamPut#1{\@stream}%
- \let\@stream\empty
- \fi}
-\@ifdefinable\space@\relax
-{\catcode`\ =12\global\let\space@= }
-\newcommand*\docgobblespaces{\futurelet\next\docgobblespaces@}
-\newcommand*\docgobblespaces@{%
- \ifx\next\space@
- \def\next@{\afterassignment\docgobblespaces\let\next= }%
- \else
- \def\next@{\definLine}%
- \fi
- \next@
-}
-\@ifdefinable\definLine\relax
-\def\definLine#1\endLine{\def\inLine{#1}}
-
-\newcommand*\@stream{}
-{\catcode`\%=12
-\@ifdefinable\percentchar\relax
-\gdef\percentchar{%}
-\@ifdefinable\docgobblepercent\relax
-\gdef\docgobblepercent{\expandafter\docgobblepercent@\inLine%\endLine}
-\@ifdefinable\docgobblepercent@\relax
-\gdef\docgobblepercent@#1%#2\endLine{\def\inLine{#1}\def\@tempa{#2}\edef\@stream{\@stream\inLine}}
-}
-
-\keepsilent
-\askforoverwritefalse
-\usedir{tex/latex/xypdf}
-\preamble
-
-Copyright (c) 2010 by Daniel M\string\"ullner (Müllner)
-<http://www.math.uni-bonn.de/people/muellner>
---------------------------------------------------------------------
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-The GNU General Public License is available at
-<http://www.gnu.org/licenses/>.
-
---------------------------------------------------------------------
-
-This file is part of the LaTeX2e xypdf package. The package
-consists of the following files:
-
- README - The distribution guide
- xypdf.dtx - Documented source code
- xypdf.ins - Installation script
- xypdf.sty - LaTeX style file
- xypdf.pdf - Documentation
-
-\endpreamble
-\generate{\file{xypdf.sty}{\from{xypdf.dtx}{package}}}
-\obeyspaces
-\Msg{****************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the *}
-\Msg{* following file into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* xypdf.sty *}
-\Msg{* *}
-\Msg{* To produce the documentation run the file *}
-\Msg{* xypdf.dtx through LaTeX. *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{* *}
-\Msg{****************************************************}
+%%
+%% Copyright (c) 2010 by Daniel M\"ullner (Müllner)
+%% <http://www.math.uni-bonn.de/people/muellner>
+%% --------------------------------------------------------------------
+%%
+%% This program is free software: you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation, either version 3 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% The GNU General Public License is available at
+%% <http://www.gnu.org/licenses/>.
+%%
+%% --------------------------------------------------------------------
+%%
+%% This file is part of the LaTeX2e xypdf package. The package
+%% consists of the following files:
+%%
+%% README - This file, the distribution guide
+%% xypdf.dtx - Documented source code
+%% xypdf.ins - Installation script
+%% xypdf.pdf - Documentation (generated from xypdf.dtx)
+%%
+%% The LaTeX style file xypdf.sty is generated by the following command:
+%%
+%% latex xypdf.ins
+%%
+\input docstrip.tex
+% Change docstrip so that it gobbles spaces at the beginning of lines. Also,
+% lines containing a percent sign are merged with the next line.
+%
+% Caution: this only works if the package does not contain percent signs for
+% any other purpose than indicating comments.
+\CheckCommand*\putline@do[3]{\StreamPut#1{\inLine}}
+\renewcommand*\putline@do[3]{%
+ \expandafter\docgobblespaces\inLine\endLine
+ \docgobblepercent
+ \ifx\@tempa\empty
+ \StreamPut#1{\@stream}%
+ \let\@stream\empty
+ \fi}
+\@ifdefinable\space@\relax
+{\catcode`\ =12\global\let\space@= }
+\newcommand*\docgobblespaces{\futurelet\next\docgobblespaces@}
+\newcommand*\docgobblespaces@{%
+ \ifx\next\space@
+ \def\next@{\afterassignment\docgobblespaces\let\next= }%
+ \else
+ \def\next@{\definLine}%
+ \fi
+ \next@
+}
+\@ifdefinable\definLine\relax
+\def\definLine#1\endLine{\def\inLine{#1}}
+
+\newcommand*\@stream{}
+{\catcode`\%=12
+\@ifdefinable\percentchar\relax
+\gdef\percentchar{%}
+\@ifdefinable\docgobblepercent\relax
+\gdef\docgobblepercent{\expandafter\docgobblepercent@\inLine%\endLine}
+\@ifdefinable\docgobblepercent@\relax
+\gdef\docgobblepercent@#1%#2\endLine{\def\inLine{#1}\def\@tempa{#2}\edef\@stream{\@stream\inLine}}
+}
+
+\keepsilent
+\askforoverwritefalse
+\usedir{tex/latex/xypdf}
+\preamble
+
+Copyright (c) 2010 by Daniel M\string\"ullner (Müllner)
+<http://www.math.uni-bonn.de/people/muellner>
+--------------------------------------------------------------------
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+The GNU General Public License is available at
+<http://www.gnu.org/licenses/>.
+
+--------------------------------------------------------------------
+
+This file is part of the LaTeX2e xypdf package. The package
+consists of the following files:
+
+ README - This file, the distribution guide
+ xypdf.dtx - Documented source code
+ xypdf.ins - Installation script
+ xypdf.pdf - Documentation (generated from xypdf.dtx)
+
+The LaTeX style file xypdf.sty is generated by the following command:
+
+ latex xypdf.ins
+
+\endpreamble
+\generate{\file{xypdf.sty}{\from{xypdf.dtx}{package}}}
+\obeyspaces
+\Msg{****************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* xypdf.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* xypdf.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{****************************************************}
\endbatchfile \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/xypdf/xypdf.sty b/Master/texmf-dist/tex/latex/xypdf/xypdf.sty
index f12cea76b0d..904dc3cc8c5 100644
--- a/Master/texmf-dist/tex/latex/xypdf/xypdf.sty
+++ b/Master/texmf-dist/tex/latex/xypdf/xypdf.sty
@@ -28,22 +28,23 @@
%% This file is part of the LaTeX2e xypdf package. The package
%% consists of the following files:
%%
-%% README - The distribution guide
-%% xypdf.dtx - Documented source code
-%% xypdf.ins - Installation script
-%% xypdf.sty - LaTeX style file
-%% xypdf.pdf - Documentation
+%% README - This file, the distribution guide
+%% xypdf.dtx - Documented source code
+%% xypdf.ins - Installation script
+%% xypdf.pdf - Documentation (generated from xypdf.dtx)
+%%
+%% The LaTeX style file xypdf.sty is generated by the following command:
+%%
+%% latex xypdf.ins
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xypdf}
- [2010/03/24 v1.0 PDF output for the Xy-pic package]
+ [2010/03/30 v1.1 PDF output for the Xy-pic package]
\@ifpackageloaded{xy}\relax
{\PackageError{xypdf}{Load the Xy-pic package before this package}
{Insert `\string\usepackage[<options>]{xy}' before
`\string\usepackage{xypdf}'}}
-\ifdefined\xypsloaded
-\PackageError{xypdf}{Do not load Xy-pic with a Postscript backend}{}
-\fi
+\xywithoption{ps}{\PackageError{xypdf}{Do not load Xy-pic with a Postscript backend}{}}
\RequirePackage{ifpdf}
\newcommand*\xypdfon{}
\newcommand*\xypdfoff{}
@@ -54,14 +55,24 @@
}\edef\xypdfoff{\unexpanded\expandafter{\xypdfoff}\let\expandafter\noexpand\csname#1\endcsname
\expandafter\noexpand\csname xP@old@#1\endcsname
}}
-\AtEndOfPackage{\xypdfon\let\xP@hook\@undefined\let\xP@tempvar\@undefined}
+\AtEndOfPackage{\xypdfon
+\let\xP@hook\@undefined
+\let\xP@tempvar\@undefined
+\let\@tempa\@undefined
+\let\xP@gobblepart\@undefined
+\let\xP@endgobble\@undefined
+}
\@ifdefinable\xP@literal\relax
\ifpdf
\let\xP@literal\pdfliteral
\else
-\def\xP@literal#1{\special{pdf:literal #1}}
+\def\xP@literal{\PackageWarning{xypdf}{The produced DVI file is NOT PORTABLE. Convert it with^^Jdvipdfm(x) to the PDF format but do not expect the DVI itself to be displayed^^Jcorrectly\@gobble}\global\let\xP@literal\xP@literal@
+\xP@literal
+}
+\newcommand*\xP@literal@[1]{\special{pdf:literal #1}}
\fi
-\newcommand*\xP@dim[1]{\expandafter\removePT@\the\dimexpr(#1)*800/803\relax\space}
+\newcommand*\xP@dim[1]{\xP@EARPT\dimexpr(#1)*800/803\relax\space}
+\newcommand*\xP@EARPT{\expandafter\removePT@\the}
\newcommand*\xP@coor[1]{\xP@dim{#1}\xP@dim}
\AtBeginDocument{{\setbox0\hbox{$ $}}\@ifdefinable\xP@lw\relax
\edef\xP@lw{\xP@dim{\fontdimen8\textfont3}}\PackageInfo{xypdf}{Line width: \the\fontdimen8\textfont3 }}
@@ -196,6 +207,124 @@
}}
\newcommand*\xP@append[2]{{\edef\@tempa{#1{\the#1#2}}\expandafter}\@tempa
}
+\xP@hook{circhar@@}
+\newcommand*\xP@circhar@@[1]{\expandafter\xP@circhar@@@\ifcase#1 000{-173517671/654249180}{65307479/619869377}{-34221476/65864945}{225058681/768398401}{-543339720/768398401}\or
+0{-543339720/768398401}{181455824/967576667}{-554561898/619869377}{826676217/1870772527}{-1}{543339720/768398401}{-1}\or
+0{-1}{173517671/654249180}{-1}{34221476/65864945}{-554561898/619869377}{543339720/768398401}{-543339720/768398401}\or
+0{-543339720/768398401}{181455824/967576667}{-34221476/65864945}{225058681/768398401}{-173517671/654249180}{225058681/768398401}0\or
+0{543339720/768398401}{181455824/967576667}{34221476/65864945}{225058681/768398401}{173517671/654249180}{225058681/768398401}0\or
+01{173517671/654249180}1{34221476/65864945}{554561898/619869377}{543339720/768398401}{543339720/768398401}\or
+0{543339720/768398401}{181455824/967576667}{554561898/619869377}{826676217/1870772527}1{543339720/768398401}1\or
+000{173517671/654249180}{65307479/619869377}{34221476/65864945}{225058681/768398401}{543339720/768398401}\fi}
+\newcommand\xP@circhar@@@[8]{\xP@setsolidpat
+\xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m
+\xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}\xP@coor{\R@*#7}{\R@*#8}c}\vrule width\z@ height\R@ depth\R@
+\kern\dimexpr\R@*#7\relax
+}
+\xP@hook{cirrestrict@@}
+\newcommand*\xP@cirrestrict@@{\count@\z@\relax}
+\newcommand*\xP@optionalsection[1]{\expandafter\ifx\csname xy#1loaded\endcsname\relax
+\xywithoption{#1}{\xP@optionerror{#1}}\expandafter\xP@gobblepart
+\else
+\message{`#1' extension support,}\fi
+}
+\newcommand*\xP@optionerror[1]{\PackageError{xypdf}{Load the Xy-pic "#1" option before the xypdf package}{}}
+\@ifdefinable\xP@gobblepart\relax
+\long\def\xP@gobblepart#1\xP@endgobble{}
+\newcommand*\xP@endgobble{\relax}
+\xP@optionalsection{rotate}
+\newcommand*\xP@scale[2]{\setboxz@h{\hskip\L@p
+\hskip-\R@p
+\lower\U@p\hbox{\xP@literal{q #1\space0 0 #2\space0 0 cm}\raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}\xP@literal{Q}}}}
+\newcommand\xP@rotate{\xP@rotate@\xP@trigfromdir
+}
+\@ifdefinable\xP@specialrotate\relax
+\def\xP@specialrotate#1@@{\xP@rotate@\xP@trig{#1\p@}}
+\newcommand*\xP@rotate@[2]{\setboxz@h{#1{#2}\hskip\L@p
+\hskip-\R@p
+\lower\U@p\hbox{\xP@literal{q \cosDirection\space
+\sinDirection\space
+\if-\sinDirection\else-\sinDirection\fi\space
+\cosDirection\space
+0 0 cm}\raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}\xP@literal{Q}}}}
+\CheckCommand*\xyRotate@@[1]{\xyundefinedRotate@{rotate}{#1}@@}
+\let\xyRotate@@\xP@rotate
+\def\@tempa#1@@{\xyundefinedRotate@{special rotate}{#1}@@}
+\@check@eq\doSpecialRotate@@\@tempa
+\let\doSpecialRotate@@\xP@specialrotate
+\CheckCommand*\xyscale@[2]{\xyundefinedRotate@{scale}{#1,#2}@@}
+\let\xyscale@@\xP@scale
+\newcommand*\xP@trigfromdir[1]{{\Direction#1\relax
+\count@-\Direction
+\advance\count@4096
+\divide\count@2048
+\ifcase\count@
+\d@X\K@\p@
+\d@Y\numexpr\Direction-3*\K@\relax\p@
+\or
+\d@X\numexpr\Direction-\K@\relax\p@
+\d@Y-\K@\p@
+\or
+\d@X-\K@\p@
+\d@Y\numexpr-\Direction-\K@\relax\p@
+\or
+\d@X\numexpr-\Direction-3*\K@\relax\p@
+\d@Y\K@\p@
+\else
+\PackageError{xypdf}{Unexpected case in direction calculation}{Feel free to contact the author of the xypdf package with a minimal example.}\fi
+\xP@veclen
+\xdef\@gtempa{\def\noexpand\cosDirection{\xP@EARPT\dimexpr\d@X*\p@/\@tempdimb\relax}\def\noexpand\sinDirection{\xP@EARPT\dimexpr\d@Y*\p@/\@tempdimb\relax}}}\@gtempa
+}
+\newcommand*\xP@trig[1]{\@tempdima\dimexpr#1\relax
+\@tempdimb\@tempdima
+\divide\@tempdimb23592960
+\advance\@tempdima-23592960\@tempdimb
+\ifdim\@tempdima<\z@\advance\@tempdima360pt\fi
+\@tempdimb\@tempdima
+\divide\@tempdimb5898240
+\ifcase\@tempdimb
+\xP@sinpoly
+\edef\sinDirection{\xP@EARPT\@tempdimb}\@tempdima\dimexpr90pt-\@tempdima\relax
+\xP@sinpoly
+\edef\cosDirection{\xP@EARPT\@tempdimb}\or
+\@tempdima\dimexpr180pt-\@tempdima\relax
+\xP@sinpoly
+\edef\sinDirection{\xP@EARPT\@tempdimb}\@tempdima\dimexpr90pt-\@tempdima\relax
+\xP@sinpoly
+\edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\or
+\@tempdima\dimexpr\@tempdima-180pt\relax
+\xP@sinpoly
+\edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\@tempdima\dimexpr90pt-\@tempdima\relax
+\xP@sinpoly
+\edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\or
+\@tempdima\dimexpr360pt-\@tempdima\relax
+\xP@sinpoly
+\edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\@tempdima\dimexpr90pt-\@tempdima\relax
+\xP@sinpoly
+\edef\cosDirection{\xP@EARPT\@tempdimb}\else
+\PackageError{xypdf}{Unexpected case in sin/cos calculation}{Feel free to contact the author of the xypdf package with a minimal example.}\fi
+}
+\newcommand*\xP@sinpoly{{\ifdim\@tempdima<49pt
+\ifdim\@tempdima<27pt
+\@tempdimb\dimexpr((\@tempdima*-529771058/16039085-1384933sp)*\@tempdima/268756075+10714164sp)*\@tempdima/613777813\relax
+\else
+\advance\@tempdima-27pt
+\@tempdimb\dimexpr(((\@tempdima*-743101305/20672414-238989613sp)*\@tempdima/80975565+42661556sp)*\@tempdima/622461739+2\p@)*157520747/693945047\relax
+\fi
+\else
+\ifdim\@tempdima<70pt
+\advance\@tempdima-49pt
+\@tempdimb\dimexpr(((\@tempdima*-348406699/107952940-55079229sp)*\@tempdima/866635628+408805sp)*\@tempdima/26926757+\p@)*135751711/179873976\relax
+\else
+\advance\@tempdima-70pt
+\@tempdimb\dimexpr(((\@tempdima*-1015850353/137849442-460519207sp)*\@tempdima/8742349+142263941sp)*\@tempdima/972432199+23\p@)*31253604/764969669\relax
+\fi
+\fi
+\global\dimen@i\@tempdimb
+}\@tempdimb\dimen@i
+}
+\xP@endgobble
+\xP@optionalsection{curve}
\newcommand*\xP@tempvar[2]{\@ifdefinable#1\relax
\let#1#2}
\xP@tempvar\xP@bigdim\quotPTK@
@@ -1229,22 +1358,7 @@
{\xP@posX+\X@max}{\xP@posY-\Y@max}\or
{\xP@posX+\D@p+\X@min}{\xP@posY-\R@p+\Y@min}\fi
}}
-\xP@hook{circhar@@}
-\newcommand*\xP@circhar@@[1]{\expandafter\xP@circhar@@@\ifcase#1 000{-173517671/654249180}{65307479/619869377}{-34221476/65864945}{225058681/768398401}{-543339720/768398401}\or
-0{-543339720/768398401}{181455824/967576667}{-554561898/619869377}{826676217/1870772527}{-1}{543339720/768398401}{-1}\or
-0{-1}{173517671/654249180}{-1}{34221476/65864945}{-554561898/619869377}{543339720/768398401}{-543339720/768398401}\or
-0{-543339720/768398401}{181455824/967576667}{-34221476/65864945}{225058681/768398401}{-173517671/654249180}{225058681/768398401}0\or
-0{543339720/768398401}{181455824/967576667}{34221476/65864945}{225058681/768398401}{173517671/654249180}{225058681/768398401}0\or
-01{173517671/654249180}1{34221476/65864945}{554561898/619869377}{543339720/768398401}{543339720/768398401}\or
-0{543339720/768398401}{181455824/967576667}{554561898/619869377}{826676217/1870772527}1{543339720/768398401}1\or
-000{173517671/654249180}{65307479/619869377}{34221476/65864945}{225058681/768398401}{543339720/768398401}\fi}
-\newcommand\xP@circhar@@@[8]{\xP@setsolidpat
-\xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m
-\xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}\xP@coor{\R@*#7}{\R@*#8}c}\vrule width\z@ height\R@ depth\R@
-\kern\dimexpr\R@*#7\relax
-}
-\xP@hook{cirrestrict@@}
-\newcommand*\xP@cirrestrict@@{\count@\z@\relax}
+\xP@endgobble
\endinput
%%
%% End of file `xypdf.sty'.