%% %% This is file `xypdf.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% xypdf.dtx (with options: `basic') %% %% The xypdf package for TeX and LaTeX %% Copyright (c) 2010 by Daniel Müllner (M\"ullner) %% %% -------------------------------------------------------------------------- %% %% 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 2 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 %% . %% %% -------------------------------------------------------------------------- %% %% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf %% package may be distributed and/or modified under the conditions of the %% GNU General Public License as published by the Free Software Foundation, %% either version 2 of the License, or (at your option) any later version. %% The distribution consists of the following files: %% %% xypdf.dtx - Documented source code %% xypdf.ins - Installation script %% xypdf.pdf - Documentation (generated from xypdf.dtx) %% %% The files with the TeX code are generated by the following command: %% %% latex xypdf.ins %% %% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, %% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. %% %% -------------------------------------------------------------------------- %% %% The xypdf package improves the output quality of the Xy-pic package when %% PDF documents are generated. It produces generic PDF code for graphical %% elements like lines, curves and circles instead of approximating these %% elements with glyphs in special fonts as the original Xy-pic package does. %% The xypdf package works with both TeX and LaTeX in the occurrences of %% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being %% integrated and distributed together with Xy-pic, starting with Xy-pic %% version 3.8. %% %% The copyright for the xypdf package is by its author, Daniel Müllner %% (Muellner, M\"ullner). %% \ifx\xyloaded\undefined\input xy \fi \xyprovide{pdf}{PDF driver}{1.7}{Daniel M\"ullner\newline}{\url{http://math.stanford.edu/~muellner}}{} \ifx\makeatletter\undefined\input miniltx \fi \newcommand*\xypdfdate{2011/03/20} \newdriver{\xyaddsupport{pdf}\xP@pdf@on \xyaddsupport{color}\xP@color@on \xyaddsupport{curve}\xP@curve@on \xyaddsupport{frame}\xP@frame@on \xyaddsupport{rotate}\xP@rotate@on } \xyaddunsupport{pdf}\xP@pdf@off \xyaddunsupport{color}\xP@color@off \xyaddunsupport{curve}\xP@curve@off \xyaddunsupport{frame}\xP@frame@off \xyaddunsupport{rotate}\xP@rotate@off \newcommand*\xypdfon{\xP@pdf@on \xP@color@on \xP@curve@on \xP@frame@on \xP@line@on \xP@rotate@on } \newcommand*\xypdfoff{\xP@pdf@off \xP@color@off \xP@curve@off \xP@frame@off \xP@line@off \xP@rotate@off } \ifx\unexpanded\@undefined \PackageError{xypdf}{eTeX is needed for the xypdf package}{} \fi \newcommand*\xP@testpdfsave{\ifpdf \ifx\pdfsave\@undefined \PackageError{xypdf}{pdfTeX version 1.40.0 or higher is needed for the xypdf^^Jpackage with PDF output}{}\fi \fi \let\xP@testpdfsave\@undefined } \ifx\PackageWarning\@undefined \newcommand*\xP@warning[2]{{\newlinechar`\^^J\@warning{Package #1 Warning: #2\@empty.}}} \else \newcommand*\xP@warning{\PackageWarning} \fi \newcommand*\xP@pdf@on{} \newcommand*\xP@pdf@off{} \newcommand*\xP@color@on{} \newcommand*\xP@color@off{} \newcommand*\xP@curve@on{} \newcommand*\xP@curve@off{} \newcommand*\xP@frame@on{} \newcommand*\xP@frame@off{} \newcommand*\xP@line@on{} \newcommand*\xP@line@off{} \newcommand*\xP@rotate@on{} \newcommand*\xP@rotate@off{} \newcommand*\xP@hook[2]{\edef\next@{\let\expandafter\noexpand\csname xP@old@#2\endcsname \expandafter\noexpand\csname#2\endcsname}\next@ \expandafter\edef\csname xP@#1@on\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@on\endcsname}\let\expandafter\noexpand\csname#2\endcsname \expandafter\noexpand\csname xP@#2\endcsname }\expandafter\edef\csname xP@#1@off\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@off\endcsname}\let\expandafter\noexpand\csname#2\endcsname \expandafter\noexpand\csname xP@old@#2\endcsname }} \newcommand*\xP@defpdfliteral{\ifpdf \newcommand*\xP@literal[1]{\pdfsave\pdfliteral{##1}\pdfrestore} \newcommand*\xP@cm[5]{\pdfsave \pdfsetmatrix{##1 ##2 ##3 ##4}##5\pdfrestore } \@ifundefined{@pdfcolorstack}{\def\@pdfcolorstack{\z@}}{}\newcommand*\xP@setcolor[3]{\pdfcolorstack\@pdfcolorstack push{##1 ##2 ##1 ##3}} \newcommand*\xP@resetcolor{\pdfcolorstack\@pdfcolorstack pop\relax}\else \newcommand*\xP@literal{\xP@warning{xypdf}{The produced DVI file is NOT PORTABLE. Convert it with^^Jdvipdfm(x) to the PDF format but do not expect the DVI file itself to be^^Jdisplayed correctly\@gobble}\global\let\xP@literal\xP@literal@ \xP@literal } \newcommand*\xP@literal@[1]{\special{pdf:content ##1}} \newcommand*\xP@cm[5]{\special{pdf:btrans matrix ##1 ##2 ##3 ##4 0 0}##5\special{pdf:etrans}} \newcommand*\xP@setcolor[3]{\special{pdf:bcolor[##1]}} \newcommand*\xP@resetcolor{\special{pdf:ecolor}}\fi \let\xP@defpdfliteral\@undefined } \DN@{\@firstofone} \DNii@{xy} \ifx\@currname\nextii@ \ifx\AtEndOfPackage\@undefined \else \DN@{\AtEndOfPackage}\fi \fi \next@ {\RequirePackage{ifpdf}\xP@testpdfsave \xP@defpdfliteral} \ifx\pdfdecimaldigits\@undefined \newcommand*\xP@digits{2} \else \@ifdefinable\xP@digits\relax \xdef\xP@digits{\the\pdfdecimaldigits} \ifnum\pdfdecimaldigits<2 \xP@warning{xypdf}{The precision in \string\pdfdecimaldigits\space is only \xP@digits\space decimals.^^JIt is recommended to set \string\pdfdecimaldigits\space to 2 or 3 for best output quality\@gobble} \fi \fi \newcommand*\xP@dim[1]{\expandafter\xP@removePT\the\dimexpr(#1)*800/803\relax\space} \newcommand*\xP@precdim[1]{\xP@EARPT\dimexpr(#1)*800/803\relax\space} \newcommand*\xP@EARPT{\expandafter\removePT@\the} \newcommand*\xP@coor[1]{\xP@dim{#1}\xP@dim} \@ifdefinable\xP@removePT\relax {\@makeother\p\@makeother\t\gdef\xP@removePT#1pt{\xP@removePT@#10000@}} \@ifdefinable\xP@removePT@\relax \ifcase\xP@digits \def\xP@removePT@#1.#2#3@{\ifnum#2<5 #1\else \the\numexpr-\if-#1-\else-#1+\fi\@ne\relax \fi } \or \def\xP@removePT@#1#2.#3#4#5@{\ifnum#4<5 #1#2\if#30\else .#3\fi \else \expandafter\xP@removePT \the\dimexpr#1#2.#3pt+\if#1--\fi.12pt\relax \fi } \or \def\xP@removePT@#1#2.#3#4#5#6@{\ifnum#5<5 #1#2\if#40\if#30\else .#3\fi \else .#3#4\fi \else \expandafter\xP@removePT \the\dimexpr#1#2.#3#4pt+\if#1--\fi786sp\relax \fi } \or \def\xP@removePT@#1#2.#3#4#5#6#7@{\ifnum#6<5 #1#2\if#50\if#40\if#30\else .#3\fi \else .#3#4\fi \else .#3#4#5\fi \else \expandafter\xP@removePT \the\dimexpr#1#2.#3#4#5pt+\if#1--\fi79sp\relax \fi } \or \def\xP@removePT@#1#2.#3#4#5#6#7#8@{\ifnum#7<5 #1#2\if#60\if#50\if#40\if#30\else .#3\fi \else .#3#4\fi \else .#3#4#5\fi \else .#3#4#5#6\fi \else \expandafter\xP@removePT \the\dimexpr#1#2.#3#4#5#6pt+\if#1--\fi8sp\relax \fi } \else \let\xP@dim\xP@precdim \fi \AtBeginDocument{{\setboxz@h{$ $}}\@ifdefinable\xP@lw\relax \@ifdefinable\xP@preclw\relax \edef\xP@preclw{\the\fontdimen8\textfont3}\edef\xP@lw{\xP@dim\xP@preclw}\PackageInfo{xypdf}{Line width: \xP@preclw}} \xP@hook{pdf}{line@} \newcommand*\xP@line@{\setboxz@h{\xP@setsolidpat \xP@stroke{0 0 m \xP@coor{\cosDirection\xydashl@}{\sinDirection\xydashl@}l}}\U@c\sinDirection\xydashl@ \D@c\z@ \ifdim\U@c<\z@ \multiply\U@c\m@ne \xP@swapdim\U@c\D@c \fi \ht\z@\U@c \dp\z@\D@c \R@c\cosDirection\xydashl@ \L@c\z@ \ifdim\R@c<\z@ \multiply\R@c\m@ne \xP@swapdim\L@c\R@c \fi \hskip\L@c\boxz@\hskip\R@c \edef\tmp@{\egroup\U@c\the\U@c\D@c\the\D@c\L@c\the\L@c\R@c\the\R@c}\tmp@ \Edge@c={\rectangleEdge}\edef\Upness@{\ifdim\z@<\U@c1\else0\fi}\edef\Leftness@{\ifdim\z@<\L@c1\else0\fi}\def\Drop@@{\styledboxz@}\def\Connect@@{\solid@}} \xP@hook{pdf}{solid@} \newcommand*\xP@solid@{\straight@\xP@solidSpread} \@ifdefinable\xP@solidSpread\relax \def\xP@solidSpread#1\repeat@{{\@tempswatrue \ifdim\X@p=\X@c \ifdim\Y@p=\Y@c \@tempswafalse \fi \fi \if@tempswa \xP@setsolidpat \xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi }} \newcommand*\xP@pattern{} \newcommand*\xP@setsolidpat{\def\xP@pattern{1 J 1 j []0 d}\global\let\xP@lastpattern\xP@solidmacro } \newcommand*\xP@stroke[1]{\xP@literal{\xP@lw w \xP@pattern\space#1 S}} \xP@hook{pdf}{dash@} \newcommand\xP@dash@{\line@\def\Connect@@{\straight@\xP@dashedSpread}} \@ifdefinable\xP@dashedSpread\relax \def\xP@dashedSpread#1\repeat@{{\xP@veclen \ifdim\@tempdimb>\z@ \xP@setdashpat \xP@savec \xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi }} \newcommand*\xP@setdashpat{\xP@testcont\xP@dashmacro \ifxP@splinecont {\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax \global\dimen@i \ifnum\count@>\z@ \dimexpr\@tempdimb/\count@\relax \else \z@ \fi }\@tempdima\dimen@i \edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@ \xP@precdim\@tempdima]\xP@precdim\@tempdima \else ]0 \fi d}\else \@tempdima \ifdim\@tempdimb>\xydashl@ \dimexpr\@tempdimb/(2*((\@tempdimb+\xydashl@)/(2*\xydashl@))-1)\relax \else \z@ \fi \edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@\xP@precdim\@tempdima\fi ]0 d}\fi \global\let\xP@lastpattern\xP@dashmacro } \newcommand*\xP@setcldashpat{{\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax \xdef\@gtempa{1 J 1 j [\ifnum\count@>\z@\xP@precdim{\@tempdimb/\count@}\fi]\ifnum\count@>\z@\xP@precdim{\@tempdimb*3/2/\count@}\else0 \fi d}}\edef\xP@pattern{\@gtempa}} \xP@hook{pdf}{point@} \newcommand*\xP@point@{\xP@zerodot\egroup\Invisible@false \Hidden@false\def\Leftness@{.5}\def\U@pness@{.5}\ctipEdge@ \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\xP@dottedSpread}} \newcommand*\xP@zerodot{\hb@xt@\z@{\hss \vbox to\z@{\vss\hrule\@width\xP@preclw\@height\xP@preclw\vss}\hss}} \@ifdefinable\xP@dottedSpread\relax \def\xP@dottedSpread#1\repeat@{{\xP@veclen \ifdim\@tempdimb>\z@ \xP@setdottedpat \xP@savec \xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi }} \newcommand*\xP@setdottedpat{\xP@testcont\xP@dotmacro \ifxP@splinecont \@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax \edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ \xP@precdim\xP@preclw\xP@precdim\@tempdima \fi ]\xP@precdim{\xP@preclw+1sp}d}\else \advance\@tempdimb-\xP@preclw \ifdim\@tempdimb<\z@\@tempdimb\z@\fi \@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax \edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ \xP@precdim\xP@preclw\xP@precdim\@tempdima \fi ]0 d}\fi \global\let\xP@lastpattern\xP@dotmacro } \newcommand*\xP@setcldottedpat{\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax \edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ \xP@precdim\xP@preclw\xP@precdim\@tempdima \fi ]\xP@precdim{\dimexpr\xP@preclw+\@tempdima/2\relax}d}} \newcommand*\xP@abs[1]{\ifdim#1<\z@\multiply#1\m@ne\fi} \newcommand*\xP@ifabsless[2]{\ifpdfabsdim#1<#2} \ifx\ifpdfabsdim\@undefined \renewcommand*\xP@ifabsless[2]{\ifdim\ifdim#1<\z@-\fi#1<\ifdim#2<\z@-\fi#2} \@gobble\fi \fi \newcommand*\xP@swapdim[2]{\@tempdima#1#1#2#2\@tempdima} \newcommand*\xP@swapnum[2]{\@tempcnta#1#1#2#2\@tempcnta} \newcommand*\xP@min[2]{\ifdim#1<#2#1\else#2\fi} \newcommand*\xP@max[2]{\ifdim#1>#2#1\else#2\fi} \newcommand*\xP@Max[2]{#1\ifdim#2<\z@\xP@max#1{-#2}\else\xP@max#1#2\fi} \newcommand*\xP@sqrt{\loop \@tempdimb\dimexpr(\@tempdimc+(\@tempdima*\p@/\@tempdimc))/2\relax \unless\ifdim\@tempdimc=\@tempdimb \@tempdimc\@tempdimb\relax \repeat } \newcommand*\xP@veclen{{\xP@veclen@ \global\dimen@i\@tempdimb }\@tempdimb\dimen@i } \newcommand*\xP@veclen@{\xP@abs\d@Y \ifdim\d@X=\z@ \@tempdimb\d@Y \else \xP@abs\d@X \ifdim\d@Y=\z@ \@tempdimb\d@X \else \@tempswatrue \ifdim\d@X>5931641sp\relax\@tempswafalse\fi \ifdim\d@Y>5931641sp\relax\@tempswafalse\fi \if@tempswa \count@\@ne \loop \@tempdima\dimexpr\d@X*\d@X/\p@+\d@Y*\d@Y/\p@\relax \ifdim\@tempdima<4096pt \@tempcnta\ifdim\@tempdima<1024pt\ifdim\@tempdima<256pt8\else4\fi\else\tw@\fi \multiply\d@X\@tempcnta \multiply\d@Y\@tempcnta \multiply\count@\@tempcnta \repeat \@tempdimc\dimexpr(\d@X+\d@Y)*3/4\relax \xP@sqrt \@tempdimb\dimexpr\@tempdimb/\count@\relax \else \ifdim\d@X>83042982sp\relax\@tempswatrue\fi \ifdim\d@Y>83042982sp\relax\@tempswatrue\fi \if@tempswa \@tempdima\dimexpr\d@X/182*\d@X/11927552+\d@Y/182*\d@Y/11927552\relax \@tempdimc\dimexpr(\d@X+\d@Y)*3/728\relax \xP@sqrt \multiply\@tempdimb182\relax \else \@tempdima\dimexpr\d@X*\d@X/12845056+\d@Y*\d@Y/12845056\relax \@tempdimc\dimexpr(\d@X+\d@Y)*3/56\relax \xP@sqrt \multiply\@tempdimb14\relax \fi \fi \fi \fi } \xP@hook{pdf}{squiggledSpread@} \@ifdefinable\xP@squiggledSpread@\relax \def\xP@squiggledSpread@#1\repeat@{{\xP@veclen \ifdim\@tempdimb>\z@ \edef\@tempa{\xP@coor\X@p\Y@p m }\toks@\expandafter{\@tempa}\@tempcnta\numexpr\@tempdimb/\xybsqll@\relax \ifnum\@tempcnta<\tw@\@tempcnta\tw@\fi \@tempdima\dimexpr\d@X/\@tempcnta\relax \@tempdimc\dimexpr\d@Y/\@tempcnta\relax \xP@testcont\xP@oddsquigglemacro \ifxP@splinecont \def\xP@squigsign{-}\else \let\xP@squigsign\@empty \fi \count@\z@ \loop \xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta+(\@tempdima -\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta+(\@tempdimc +\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}}\advance\count@\@ne \xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta-(\@tempdima -\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta-(\@tempdimc +\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}\xP@coor{\X@p+\d@X*\count@/\@tempcnta}{\Y@p+\d@Y*\count@/\@tempcnta}c }\ifnum\count@<\@tempcnta \repeat \xP@setsolidpat \global\expandafter\let\expandafter\xP@lastpattern \ifodd\numexpr\count@\if\xP@squigsign-+1\fi\relax \xP@oddsquigglemacro \else \xP@evensquigglemacro \fi \xP@savec \xP@stroke{\the\toks@}\fi }} \newcommand*\xP@squigsign{} \newcommand*\xP@append[2]{{\edef\@tempa{#1{\the#1#2}}\expandafter}\@tempa } \xP@hook{pdf}{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{pdf}{cirrestrict@@} \newcommand*\xP@cirrestrict@@{\count@\z@\relax} \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 } \outer\def\@tempa{\alloc@1\dimen\dimendef\insc@unt} \let\xP@newdimen\newdimen \ifx\newdimen\@tempa \def\xP@newdimen{\alloc@1\dimen\dimendef\insc@unt} \fi \outer\def\@tempa#1{\count@=\escapechar\escapechar=-1 \expandafter\expandafter\expandafter \def\@if#1{true}{\let#1=\iftrue}\expandafter\expandafter\expandafter \def\@if#1{false}{\let#1=\iffalse}\@if#1{false}\escapechar=\count@} \let\@tempa\relax \newcommand*\xP@lastX{} \newcommand*\xP@lastY{} \newcommand*\xP@lastpattern{} \newcommand*\xP@solidmacro{solid} \newcommand*\xP@dotmacro{dot} \newcommand*\xP@dashmacro{dash} \newcommand*\xP@evensquigglemacro{evensquiggle} \newcommand*\xP@oddsquigglemacro{oddsquiggle} \newcommand*\xP@brokensquigglemacro{brokensquiggle} \renewcommand*\xyinside@{\global\let\xP@lastpattern\@empty \saveXyStyle@ \aftergroup\xycheck@end \setboxz@h\bgroup \plainxy@ \X@c=\z@\Y@c=\z@\czeroEdge@ \X@p=\z@\Y@p=\z@\U@p=\z@\D@p=\z@\L@p=\z@\R@p=\z@\Edge@p={\zeroEdge}\X@min=\hsize\X@max=-\hsize\Y@min=\hsize\Y@max=-\hsize \mathsurround=\z@ \expandafter\POS\everyxy@@ } \newcommand*\xP@savec{\xdef\xP@lastX{\the\X@c}\xdef\xP@lastY{\the\Y@c}} \@ifdefinable\ifxP@splinecont\relax \@ifdefinable\xP@splineconttrue\relax \@ifdefinable\xP@splinecontfalse\relax \newif\ifxP@splinecont \newcommand*\xP@testcont[1]{\xP@splinecontfalse \ifxP@cont \ifx\xP@lastpattern#1\ifdim\xP@lastX=\X@p \ifdim\xP@lastY=\Y@p \xP@splineconttrue \fi \fi \fi \fi } \@ifdefinable\ifxP@cont\relax \@ifdefinable\xP@conttrue\relax \@ifdefinable\xP@contfalse\relax \newif\ifxP@cont \newcommand*\xypdfcontpatternon{\xP@conttrue} \newcommand*\xypdfcontpatternoff{\xP@contfalse} \xP@conttrue \let\@tempa\@undefined \let\nextii@\@undefined \DN@{\xywithoption{color}{\message{Xy-pic pdf driver: `color' extension support}\@ifundefined{xypdf-co@loaded}{\input xypdf-co\relax}{\message{not reloaded}}}\xywithoption{curve}{\message{Xy-pic pdf driver: `curve' extension support}\@ifundefined{xypdf-cu@loaded}{\input xypdf-cu\relax}{\message{not reloaded}}}\xywithoption{frame}{\message{Xy-pic pdf driver: `frame' extension support}\@ifundefined{xypdf-fr@loaded}{\input xypdf-fr\relax}{\message{not reloaded}}}\xywithoption{line}{\message{Xy-pic pdf driver: `line' extension support}\@ifundefined{xypdf-li@loaded}{\input xypdf-li\relax}{\message{not reloaded}}}\xywithoption{rotate}{\message{Xy-pic pdf driver: `rotate' extension support}\@ifundefined{xypdf-ro@loaded}{\input xypdf-ro\relax}{\message{not reloaded}}}} \next@ \xyendinput %% %% End of file `xypdf.tex'.