summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-14 00:41:13 +0000
committerKarl Berry <karl@freefriends.org>2010-04-14 00:41:13 +0000
commitc79d7ee153ff5a211e8293d577718c66a6556f4a (patch)
treeeb0b9751c2276e85208e99365e689dde0d79f966 /Master/texmf-dist/source
parent64ed602ef4531d378c71633c4565bc474a782acf (diff)
xypdf update (13apr10)
git-svn-id: svn://tug.org/texlive/trunk@17858 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/xypdf/xypdf.dtx252
-rw-r--r--Master/texmf-dist/source/latex/xypdf/xypdf.ins244
2 files changed, 288 insertions, 208 deletions
diff --git a/Master/texmf-dist/source/latex/xypdf/xypdf.dtx b/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
index 9912b285b67..6de4e06c3b5 100644
--- a/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
+++ b/Master/texmf-dist/source/latex/xypdf/xypdf.dtx
@@ -36,7 +36,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{xypdf}
-%<package> [2010/04/08 v1.2 PDF output for the Xy-pic package]
+%<package> [2010/04/12 v1.3 PDF output for the Xy-pic package]
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -115,7 +115,7 @@
%</driver>
% \fi
%
-% \CheckSum{5713}
+% \CheckSum{5808}
%
% \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
@@ -165,7 +165,7 @@
%
% \DoNotIndex{\bstartPLACE@,\crv@,\crv@defaultshape,\crv@noobject,\crvSTYLE@@,
% \ctipEdge@,\dir,\DN@,\Drop@@,\Hidden@false,\ifInvisible@,\Invisible@false,
-% \line@,\next@,\removePT@,\repeat@,\splinedefaulttol@,\splinedoubled@,
+% \next@,\removePT@,\repeat@,\splinedefaulttol@,\splinedoubled@,
% \splineribboned@,\splineset@@,\splinetol@,\splinetrebled@,\styledboxz@,\tmp@,
% \xy@@crvaddstack@,\xycrvconn@,\xycrvdrop@}
%
@@ -322,6 +322,36 @@
% \end{tabular}
% \end{center}
%
+% \section{Troubleshooting}\label{sec:trouble}
+%
+% \begin{itemize}
+% \item I get the error message \texttt{pdfTeX version 1.40.0 or higher is needed for the xypdf package with PDF output}
+%
+% You seem the use an old version of pdf\TeX{}. If you cannot update your \TeX{} system for some reason, you may still use the \textsf{xypdf} package in DVI mode and produce a PDF file via dvipdfm(x). The pathway \LaTeX${}\to{}$dvipdfm(x) is preferable in many cases anyway since it usually produces much smaller PDF files.
+%
+% \item I get the error message \texttt{eTeX is needed for the xypdf package}.
+%
+% In some \TeX{} installations, the $\varepsilon$-\TeX{} features are not enabled, although they most certainly can be in any reasonably modern \TeX{} installation. The picture is heterogeneous, e.\,g.\ the author's MiK\TeX{} and \TeX{} Live 2009 have the $\varepsilon$-\TeX{} features enabled without further ado, while another user reported the above error message in his \TeX{} Live 2009. Here is what you can do:
+%
+% You must rebuild the (pdf-)\LaTeX{} format file with $\varepsilon$-\TeX{} enabled. If you are an expert, you may know how to do this anyway and may skip the following items. Otherwise, follow the instructions below for \TeX{} Live. For other \TeX{} distributions, please consult the respective documentation on how to build the format files.
+% \begin{enumerate}
+% \item Locate the file \textsf{fmtutil.cnf} (probably in \textsf{/texmf-var/web2c/}).
+% \item Look at the lines starting with "latex" and "pdflatex". They probably end in "latex.ini" and "pdflatex.ini" \emph{without} a star "*" before these last parameters. If there is a star, the problem is somewhere else.
+% \item Generate a new file \textsf{fmtutil-local.cnf} in \textsf{/texmf-local/web2c/} with the following content:
+% \begin{quote}
+% "#!latex"\\
+% "latex pdftex" \meta{options} "*latex.ini"\\
+% "#!pdflatex"\\
+% "pdflatex pdftex" \meta{options} "*pdflatex.ini"
+% \end{quote}
+% Take the \meta{options} from the corresponding lines in \textsf{fmtutil.cnf}. The important change is the star prefix to the last parameters. This tells \TeX{} to go into extended ($\varepsilon$-\TeX{}) mode.
+% \item Run "tlmgr generate fmtutil" to update the configuration file \textsf{fmtutil.cnf}.
+% \item Run "fmtutil-sys --all" to generate the \TeX{} format files.
+% \end{enumerate}
+%
+%
+% \end{itemize}
+%
% \section{Copyright, license and disclaimer}
%
% The copyright for the \textsf{xypdf} package is by its author, Daniel Müllner. Current contact details will be maintained at \url{http://www.math.uni-bonn.de/people/muellner}.
@@ -355,6 +385,16 @@
% \begin{macrocode}
\RequirePackage{ifpdf}
% \end{macrocode}
+% Test for "\pdfsave", which was introduced in pdf\TeX{} version 1.40.0.
+% \begin{macrocode}
+\ifpdf
+ \ifx\pdfsave\@undefined
+ \PackageError{xypdf}{pdfTeX version 1.40.0 or higher is needed for the %
+ xypdf^^J%
+ package with PDF output}{}
+ \fi
+\fi
+% \end{macrocode}
% \begin{macro}{\xypdfon}
% \begin{macro}{\xypdfoff}
% \begin{macro}{\xP@hook}
@@ -602,6 +642,39 @@
%
% \subsection{Straight lines}
%
+% \begin{macro}{\line@}
+% Also change the code for "\dir{-}" as an object. Now these dashes are not drawn from the dash font any more but by generic PDF line commands.
+% \begin{macrocode}
+\xP@hook{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\box\z@\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@}%
+}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\solid@}
% \begin{macro}{\xP@solid@}
% This is the hook for solid straight lines. Derived from "\xyPSsolid@" in "xyps.tex".
@@ -792,11 +865,9 @@
% \end{macro}
% \begin{macro}{\xP@ifabsless}
% \begin{macrocode}
+\newcommand*\xP@ifabsless[2]{\ifpdfabsdim#1<#2}
\ifx\ifpdfabsdim\@undefined
- \newcommand*\xP@ifabsless[2]{\ifdim\ifdim#1<\z@-\fi#1<\ifdim#2<\z@-\fi#2}
- \@gobble\fi
-\else
- \newcommand*\xP@ifabsless[2]{\ifpdfabsdim#1<#2}
+ \renewcommand*\xP@ifabsless[2]{\ifdim\ifdim#1<\z@-\fi#1<\ifdim#2<\z@-\fi#2}
\@gobble\fi
\fi
% \end{macrocode}
@@ -1235,50 +1306,7 @@
\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
-% \end{macrocode}
-% "\Direction" mod 2048
-% \begin{macrocode}
- \count@-\Direction
- \advance\count@4096
- \divide\count@2048
-% \end{macrocode}
-% Assign the slope in the right way.
-% \begin{macrocode}
- \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
-% \end{macrocode}
-% Bring the pair $("\d@X","\d@Y")$ to norm 1.
-% \begin{macrocode}
- \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}
+% \begin{macro}{\xP@trig}
% Calculate sine and cosine from the angle in "#1".
% \begin{macrocode}
\newcommand*\xP@trig[1]{%
@@ -1369,11 +1397,55 @@
% \end{macrocode}
% \end{macro}
%
-% End of the section for \Xy-pic's “rotate” option.
+% End of the section for \Xy-pic's “rotate” option. The macro "\xP@trigfromdir" below is also used for the "{-}" directional.
% \begin{macrocode}
\xP@endgobble
% \end{macrocode}
%
+% \begin{macro}{\xP@trigfromdir}
+% Calculate sine and cosine from the direction number in "#1".
+% \begin{macrocode}
+\newcommand*\xP@trigfromdir[1]{{%
+ \Direction#1\relax
+% \end{macrocode}
+% "\Direction" mod 2048
+% \begin{macrocode}
+ \count@-\Direction
+ \advance\count@4096
+ \divide\count@2048
+% \end{macrocode}
+% Assign the slope in the right way.
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% Bring the pair $("\d@X","\d@Y")$ to norm 1.
+% \begin{macrocode}
+ \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}
+%
% \subsection{Temporary registers}
%
% The next section is for the “curve” extension!
@@ -1466,6 +1538,8 @@
% \begin{macro}{\xP@lenA}
% \begin{macro}{\xP@lenB}
% \begin{macro}{\xP@partlen}
+% \begin{macro}{\xP@oldpartlen}
+% \begin{macro}{\xP@tolerance}
% \BulletB\ Second set of temporary variables: for the arc length algorithm.
% \begin{macrocode}
\xP@tempvar\xP@parA\L@p
@@ -1481,6 +1555,8 @@
\xP@tempvar\xP@lenA\X@min
\xP@tempvar\xP@lenB\Y@min
\xP@tempvar\xP@partlen\X@max
+\xP@tempvar\xP@oldpartlen\Y@max
+\xP@tempvar\xP@tolerance\almostz@
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1495,13 +1571,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \begin{macro}{\xP@oldpartlen}
-% \begin{macro}{\xP@tolerance}
-% \BulletB
-% \begin{macrocode}
-\xP@tempvar\xP@oldpartlen\Y@max
-\xP@tempvar\xP@tolerance\almostz@
-% \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\xP@A}
@@ -1567,6 +1636,27 @@
% \begin{macro}{\xP@oldobj}
% \begin{macro}{\xP@Tax}
% \begin{macro}{\xP@Tay}
+% \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
+\newdimen\xP@ta
+\newdimen\xP@tb
+\newdimen\xP@tc
+\newdimen\xP@M
+\newdimen\xP@oldobj
+\newdimen\xP@Tax
+\newdimen\xP@Tay
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}{\xP@Tdx}
% \begin{macro}{\xP@Tdy}
% \begin{macro}{\xP@Tmx}
@@ -1579,18 +1669,8 @@
% \begin{macro}{\xP@yc}
% \begin{macro}{\xP@xd}
% \begin{macro}{\xP@yd}
-% \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.
+% \BulletC
% \begin{macrocode}
-\@tempcnta\count11\relax
-\newdimen\xP@off
-\newdimen\xP@ta
-\newdimen\xP@tb
-\newdimen\xP@tc
-\newdimen\xP@M
-\newdimen\xP@oldobj
-\newdimen\xP@Tax
-\newdimen\xP@Tay
\newdimen\xP@Tdx
\newdimen\xP@Tdy
\newdimen\xP@Tmx
@@ -1617,14 +1697,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
% \begin{macro}{\xP@a}
% \begin{macro}{\xP@b}
% \begin{macro}{\xP@c}
@@ -4064,6 +4136,11 @@
% \end{macrocode}
% \end{macro}
%
+% End of the section for \Xy-pic's “curve” option.
+% \begin{macrocode}
+\xP@endgobble
+% \end{macrocode}
+%
% \subsection{Spline continuation}
%
% The following code handles the spline continuation (see \autoref{beziercont}). We introduce global macros which store the last end point of a Bézier segment. If the next segment continues at exactly the same coordinates, the dash/dot/squiggle patterns recognize the continuation.
@@ -4115,7 +4192,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ifxP@splinecont}
-% Switch: does the next spline continue at the end point of the last spline?
+% Switch: does the next line/spline continue at the end point of the last one?
% \begin{macrocode}
\@ifdefinable\ifxP@splinecont\relax
\@ifdefinable\xP@splineconttrue\relax
@@ -4140,14 +4217,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-% End of the section for \Xy-pic's “curve” option.
-% \begin{macrocode}
-\xP@endgobble
-% \end{macrocode}
-%
% \begin{macro}{\ifxP@cont}
-% Switch: shall the spline hack be applied? This is outside the optional section to avoid error messages.
+% Switch: shall the spline hack be applied?
% \begin{macrocode}
\@ifdefinable\ifxP@cont\relax
\@ifdefinable\xP@conttrue\relax
@@ -4192,6 +4263,15 @@
% \item Correct continuation for dashed/dotted/squiggled curves consisting of more than one segment.
% \item Code cleanup
% \end{itemize}
+%
+% \item[v1.3] 2010/04/12
+% \begin{itemize}
+% \item Bug fix: No “"Extra \fi"” if "\ifpdfabsdim" is not defined.
+% \item Bug fix: Moved the code for the spline continuation out of the optional section for curves since it is also needed for straight lines.
+% \item Check the version of pdf\TeX{} since "\pdfsave" is not defined prior to pdf\TeX{} 1.40.0.
+% \item \hyperref[sec:trouble]{“Troubleshooting”} paragraph for \TeX{} Live without the $\varepsilon$-\TeX{} features enabled.
+% \item Generic PDF code for the "{-}" directional object.
+% \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 ef7dae7a519..935f982cb94 100644
--- a/Master/texmf-dist/source/latex/xypdf/xypdf.ins
+++ b/Master/texmf-dist/source/latex/xypdf/xypdf.ins
@@ -1,123 +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 - 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{****************************************************}
+%%
+%% 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