talks/20091108-Riverside/xypdf-f.tex
author scott@6e1638ff-ae45-0410-89bd-df963105f760
Fri, 30 Oct 2009 21:05:16 +0000
changeset 153 f58334ec3d1d
permissions -rw-r--r--
...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
153
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     1
%% xypdf-f.tex from $Id: xypdf-f.doc,v $
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     2
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     3
%% Xy-pic ``Frame extension'' PDF backend support.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     4
%% Copyright (c) 1999-1999 Ross Moore <ross@mpce.mq.edu.au>
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     5
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     6
%% This file is part of the Xy-pic package for graphs and diagrams in TeX.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     7
%% See the companion README and INSTALL files for further information.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     8
%% Copyright (c) 1991-1999 Kristoffer H. Rose <krisrose@brics.dk>
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
     9
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    10
%% The Xy-pic package is free software; you can redistribute it and/or modify
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    11
%% it under the terms of the GNU General Public License as published by the
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    12
%% Free Software Foundation; either version 2 of the License, or (at your
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    13
%% option) any later version.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    14
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    15
%% The Xy-pic package is distributed in the hope that it will be useful, but
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    16
%% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    17
%% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    18
%% for more details.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    19
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    20
%% You should have received a copy of the GNU General Public License along
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    21
%% with this package; if not, write to the Free Software Foundation, Inc.,
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    22
%% 675 Mass Ave, Cambridge, MA 02139, USA.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    23
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    24
%% As a special exception, you may use this file and all files derived
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    25
%% from it without restrictions. This special exception was added with
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    26
%% version 3.7 of Xy-pic.
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    27
%%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    28
\expandafter\ifx\csname xypdf-floaded\endcsname\empty
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    29
 \message{not reloaded}\endinput \fi
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    30
\expandafter\let\csname xypdf-floaded\endcsname=\empty \xycatcodes
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    31
\xydef@\installPDFframes@{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    32
 \let\framed@body@@=\xyPDFframed@body@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    33
 \let\circled@x@@=\xyPDFcircled@x@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    34
 \let\ellipsed@x@@=\xyPDFellipsed@x@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    35
 \installPDFfills@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    36
 \xyuncatcodes}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    37
\xydef@\UsePDFframes{\installPDFframes@}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    38
\xydef@\NoPDFframes{\UnloadFrames@}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    39
\xydef@\xyPDFframed@body@{\DN@{\framed@body@}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    40
 \ifx\framehfill\frm@solidh@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    41
 \DN@{\xyPDFframed@oval@\xyPDFoval@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    42
 \else\ifdim\R@=\z@\else
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    43
 \ifx\framehfill\frm@dashh@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    44
 \DN@{\xyPDFframed@oval@\xyPDFdashoval@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    45
 \else\ifx\framehfill\frm@doth@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    46
 \DN@{\xyPDFframed@oval@\xyPDFdotoval@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    47
 \fi\fi
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    48
 \fi\fi \next@ }
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    49
\xydef@\xyPDFframed@oval@#1{\vglue\U@c
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    50
 \hbox{\hglue\L@c\xypdfoval@#1\hglue\R@c}\vglue\D@c}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    51
\xydef@\xyPDFcircled@x@{\DN@{\xyPDFcircled@x@@\xyPDFcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    52
 \ifx\framehfill\frm@doth@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    53
 \DN@{\xyPDFcircled@x@@\xyPDFdotcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    54
 \else\ifx\framehfill\frm@dashh@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    55
 \DN@{\xyPDFcircled@x@@\xyPDFdashcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    56
 \fi\fi \next@ }
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    57
\xydef@\xyPDFcircled@x@@#1{\vglue2\R@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    58
 \hbox{\hglue2\R@\xypdfcircle@#1\hglue2\R@}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    59
 \vglue2\R@}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    60
\xydef@\xyPDFellipsed@x@#1#2{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    61
 \DN@{\xyPDFellipsed@x@@\xyPDFcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    62
 \ifx\framehfill\frm@doth@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    63
 \DN@{\xyPDFellipsed@x@@\xyPDFdotcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    64
 \else\ifx\framehfill\frm@dashh@@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    65
 \DN@{\xyPDFellipsed@x@@\xyPDFdashcirc@Special}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    66
 \fi\fi \next@{#1}{#2}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    67
\xydef@\xyPDFellipsed@x@@#1#2#3{\vglue #3\vglue #3\relax
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    68
 \hbox{\L@c = #2\relax \R@c=\L@c \D@c = #3\relax \U@c=\D@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    69
 \hglue#2\hglue#2\relax\xypdfellipse@#1\hglue#2\hglue#2\relax}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    70
 \vglue #3\vglue #3\relax}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    71
\xydef@\xyPDFdashhfill@{{\SemiDirectionChar=95 \Direction=3072 \xyPDFdash@}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    72
\xydef@\xyPDFdashvfill@{{\SemiDirection=31 \Direction=1023 \xyPDFdash@}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    73
\xydef@\xypdfoval@#1{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    74
 \dimen@=\L@c \advance\dimen@\R@c
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    75
 \dimen@ii=\U@c \advance\dimen@ii\D@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    76
 \ifdim\dimen@ii<\dimen@ \relax \dimen@=\dimen@ii\fi \divide\dimen@\tw@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    77
 \ifdim\R@>\dimen@ \relax \R@=\dimen@ \fi
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    78
 \D@c=-\D@c \L@c=-\L@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    79
 \edef\tmp@{\expandafter\removePT@\the\R@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    80
 \space\expandafter\removePT@\the\R@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    81
 \space\expandafter\removePT@\the\D@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    82
 \space\expandafter\removePT@\the\L@c 
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    83
 \space\expandafter\removePT@\the\U@c }%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    84
 \expandafter#1\expandafter{\tmp@}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    85
\xydef@\xypdfcircle@#1{\dimen@=\R@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    86
 \edef\tmp@{\expandafter\removePT@\the\dimen@}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    87
 \expandafter#1\expandafter{\tmp@}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    88
\xydef@\xypdfellipse@#1{\edef\tmp@{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    89
 \expandafter\removePT@\the\U@c \space
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    90
 \expandafter\removePT@\the\D@c \space
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    91
 \expandafter\removePT@\the\L@c \space
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    92
 \expandafter\removePT@\the\R@c }%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    93
 \expandafter#1\expandafter{\tmp@}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    94
\xydef@\xyPDFoval@Special#1{\PDFmacro@{#1 ov}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    95
\xydef@\xyPDFcirc@Special#1{\PDFmacro@{#1 ox}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    96
\xydef@\xyPDFdotcirc@Special#1{\PDFmacro@{#1 ot}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    97
\xydef@\xyPDFdashcirc@Special#1{\PDFmacro@{#1 od}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    98
\xydef@\xyPDFdotoval@Special#1{\PDFmacro@{#1 vt}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
    99
\xydef@\xyPDFdashoval@Special#1{\PDFmacro@{#1 vd}}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   100
\xydef@\xyPDFfilledRegion#1#2{\setboxz@h{\lower\D@c\vbox{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   101
 \vglue\U@c\hbox{#1#2\empty\hglue\L@c\hglue\R@c}\vglue\D@c}}%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   102
 \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   103
\xydef@\filledRectangle@PDF{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   104
 \xyPDFfilledRegion{\xypdfoval@\xyPDFfilloval@Special}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   105
\xydef@\filledCircle@PDF#1{{\R@c=\R@ \L@c=\R@ \U@c=\R@ \D@c=\R@
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   106
 \xyPDFfilledRegion{\xypdfcircle@\xyPDFfillcirc@Special}#1}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   107
\xydef@\filledEllipse@PDF{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   108
 \xyPDFfilledRegion{\xypdfellipse@\xyPDFfillellipse@Special}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   109
\xydef@\filledOval@PDF{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   110
 \xyPDFfilledRegion{\xypdfoval@\xyPDFfilloval@Special}}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   111
\xydef@\frame@emph@PDF#1{\filled@{#1}\relax}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   112
\xydef@\installPDFfills@{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   113
 \let\frame@emph@@=\frame@emph@PDF
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   114
 \let\filledRectangle@@=\filledRectangle@PDF
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   115
 \let\filledOval@@=\filledOval@PDF
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   116
 \let\filledCircle@@=\filledCircle@PDF
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   117
 \let\filledEllipse@@=\filledEllipse@PDF
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   118
}
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   119
\xydef@\xyPDFfilloval@Special#1#2{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   120
 \ifx#2\relax\PDFmacro@{#1 sfo}%%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   121
 \else\PDFmacro@{#1 fo}\fi}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   122
\xydef@\xyPDFfillcirc@Special#1#2{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   123
 \ifx#2\relax\PDFmacro@{#1 sfc}%%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   124
 \else\PDFmacro@{#1 fc}\fi}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   125
\xydef@\xyPDFfillellipse@Special#1#2{%
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   126
 \ifx#2\relax\PDFmacro@{#1 sfe}%%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   127
 \else\PDFmacro@{#1 fe}\fi}%%%%<<<---- here
scott@6e1638ff-ae45-0410-89bd-df963105f760
parents:
diff changeset
   128
\endinput