diff -r 85428d871089 -r f58334ec3d1d talks/20091108-Riverside/xypdf-f.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/talks/20091108-Riverside/xypdf-f.tex Fri Oct 30 21:05:16 2009 +0000 @@ -0,0 +1,128 @@ +%% xypdf-f.tex from $Id: xypdf-f.doc,v $ +%% +%% Xy-pic ``Frame extension'' PDF backend support. +%% Copyright (c) 1999-1999 Ross Moore +%% +%% This file is part of the Xy-pic package for graphs and diagrams in TeX. +%% See the companion README and INSTALL files for further information. +%% Copyright (c) 1991-1999 Kristoffer H. Rose +%% +%% The Xy-pic package 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. +%% +%% The Xy-pic package 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. +%% +%% You should have received a copy of the GNU General Public License along +%% with this package; if not, write to the Free Software Foundation, Inc., +%% 675 Mass Ave, Cambridge, MA 02139, USA. +%% +%% As a special exception, you may use this file and all files derived +%% from it without restrictions. This special exception was added with +%% version 3.7 of Xy-pic. +%% +\expandafter\ifx\csname xypdf-floaded\endcsname\empty + \message{not reloaded}\endinput \fi +\expandafter\let\csname xypdf-floaded\endcsname=\empty \xycatcodes +\xydef@\installPDFframes@{% + \let\framed@body@@=\xyPDFframed@body@ + \let\circled@x@@=\xyPDFcircled@x@ + \let\ellipsed@x@@=\xyPDFellipsed@x@ + \installPDFfills@ + \xyuncatcodes} +\xydef@\UsePDFframes{\installPDFframes@} +\xydef@\NoPDFframes{\UnloadFrames@} +\xydef@\xyPDFframed@body@{\DN@{\framed@body@}% + \ifx\framehfill\frm@solidh@@ + \DN@{\xyPDFframed@oval@\xyPDFoval@Special}% + \else\ifdim\R@=\z@\else + \ifx\framehfill\frm@dashh@@ + \DN@{\xyPDFframed@oval@\xyPDFdashoval@Special}% + \else\ifx\framehfill\frm@doth@@ + \DN@{\xyPDFframed@oval@\xyPDFdotoval@Special}% + \fi\fi + \fi\fi \next@ } +\xydef@\xyPDFframed@oval@#1{\vglue\U@c + \hbox{\hglue\L@c\xypdfoval@#1\hglue\R@c}\vglue\D@c} +\xydef@\xyPDFcircled@x@{\DN@{\xyPDFcircled@x@@\xyPDFcirc@Special}% + \ifx\framehfill\frm@doth@@ + \DN@{\xyPDFcircled@x@@\xyPDFdotcirc@Special}% + \else\ifx\framehfill\frm@dashh@@ + \DN@{\xyPDFcircled@x@@\xyPDFdashcirc@Special}% + \fi\fi \next@ } +\xydef@\xyPDFcircled@x@@#1{\vglue2\R@ + \hbox{\hglue2\R@\xypdfcircle@#1\hglue2\R@}% + \vglue2\R@} +\xydef@\xyPDFellipsed@x@#1#2{% + \DN@{\xyPDFellipsed@x@@\xyPDFcirc@Special}% + \ifx\framehfill\frm@doth@@ + \DN@{\xyPDFellipsed@x@@\xyPDFdotcirc@Special}% + \else\ifx\framehfill\frm@dashh@@ + \DN@{\xyPDFellipsed@x@@\xyPDFdashcirc@Special}% + \fi\fi \next@{#1}{#2}} +\xydef@\xyPDFellipsed@x@@#1#2#3{\vglue #3\vglue #3\relax + \hbox{\L@c = #2\relax \R@c=\L@c \D@c = #3\relax \U@c=\D@c + \hglue#2\hglue#2\relax\xypdfellipse@#1\hglue#2\hglue#2\relax}% + \vglue #3\vglue #3\relax} +\xydef@\xyPDFdashhfill@{{\SemiDirectionChar=95 \Direction=3072 \xyPDFdash@}} +\xydef@\xyPDFdashvfill@{{\SemiDirection=31 \Direction=1023 \xyPDFdash@}} +\xydef@\xypdfoval@#1{% + \dimen@=\L@c \advance\dimen@\R@c + \dimen@ii=\U@c \advance\dimen@ii\D@c + \ifdim\dimen@ii<\dimen@ \relax \dimen@=\dimen@ii\fi \divide\dimen@\tw@ + \ifdim\R@>\dimen@ \relax \R@=\dimen@ \fi + \D@c=-\D@c \L@c=-\L@c + \edef\tmp@{\expandafter\removePT@\the\R@ + \space\expandafter\removePT@\the\R@c + \space\expandafter\removePT@\the\D@c + \space\expandafter\removePT@\the\L@c + \space\expandafter\removePT@\the\U@c }% + \expandafter#1\expandafter{\tmp@}} +\xydef@\xypdfcircle@#1{\dimen@=\R@ + \edef\tmp@{\expandafter\removePT@\the\dimen@}% + \expandafter#1\expandafter{\tmp@}} +\xydef@\xypdfellipse@#1{\edef\tmp@{% + \expandafter\removePT@\the\U@c \space + \expandafter\removePT@\the\D@c \space + \expandafter\removePT@\the\L@c \space + \expandafter\removePT@\the\R@c }% + \expandafter#1\expandafter{\tmp@}} +\xydef@\xyPDFoval@Special#1{\PDFmacro@{#1 ov}}%%%%<<<---- here +\xydef@\xyPDFcirc@Special#1{\PDFmacro@{#1 ox}}%%%%<<<---- here +\xydef@\xyPDFdotcirc@Special#1{\PDFmacro@{#1 ot}}%%%%<<<---- here +\xydef@\xyPDFdashcirc@Special#1{\PDFmacro@{#1 od}}%%%%<<<---- here +\xydef@\xyPDFdotoval@Special#1{\PDFmacro@{#1 vt}}%%%%<<<---- here +\xydef@\xyPDFdashoval@Special#1{\PDFmacro@{#1 vd}}%%%%<<<---- here +\xydef@\xyPDFfilledRegion#1#2{\setboxz@h{\lower\D@c\vbox{% + \vglue\U@c\hbox{#1#2\empty\hglue\L@c\hglue\R@c}\vglue\D@c}}% + \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} +\xydef@\filledRectangle@PDF{% + \xyPDFfilledRegion{\xypdfoval@\xyPDFfilloval@Special}} +\xydef@\filledCircle@PDF#1{{\R@c=\R@ \L@c=\R@ \U@c=\R@ \D@c=\R@ + \xyPDFfilledRegion{\xypdfcircle@\xyPDFfillcirc@Special}#1}} +\xydef@\filledEllipse@PDF{% + \xyPDFfilledRegion{\xypdfellipse@\xyPDFfillellipse@Special}} +\xydef@\filledOval@PDF{% + \xyPDFfilledRegion{\xypdfoval@\xyPDFfilloval@Special}} +\xydef@\frame@emph@PDF#1{\filled@{#1}\relax} +\xydef@\installPDFfills@{% + \let\frame@emph@@=\frame@emph@PDF + \let\filledRectangle@@=\filledRectangle@PDF + \let\filledOval@@=\filledOval@PDF + \let\filledCircle@@=\filledCircle@PDF + \let\filledEllipse@@=\filledEllipse@PDF +} +\xydef@\xyPDFfilloval@Special#1#2{% + \ifx#2\relax\PDFmacro@{#1 sfo}%%%%%<<<---- here + \else\PDFmacro@{#1 fo}\fi}%%%%<<<---- here +\xydef@\xyPDFfillcirc@Special#1#2{% + \ifx#2\relax\PDFmacro@{#1 sfc}%%%%%<<<---- here + \else\PDFmacro@{#1 fc}\fi}%%%%<<<---- here +\xydef@\xyPDFfillellipse@Special#1#2{% + \ifx#2\relax\PDFmacro@{#1 sfe}%%%%%<<<---- here + \else\PDFmacro@{#1 fe}\fi}%%%%<<<---- here +\endinput