summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/feyn
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:53:15 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:53:15 +0000
commit288710434a8067688ea5f2eaf63122eec2ae1373 (patch)
treebb3b79c044a0ede782a39cde2ca9e5b04f5e87f5 /Master/texmf-dist/source/latex/feyn
parent54de2dd4926856d7eadb54e5aadcd2b90019a197 (diff)
trunk/Master/texmf-dist/source/latex/feyn
git-svn-id: svn://tug.org/texlive/trunk@279 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/feyn')
-rw-r--r--Master/texmf-dist/source/latex/feyn/LICENCE271
-rw-r--r--Master/texmf-dist/source/latex/feyn/VERSION1
-rw-r--r--Master/texmf-dist/source/latex/feyn/feyn.drv84
-rw-r--r--Master/texmf-dist/source/latex/feyn/feyn.dtx669
-rw-r--r--Master/texmf-dist/source/latex/feyn/feyn.ins14
5 files changed, 1039 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/feyn/LICENCE b/Master/texmf-dist/source/latex/feyn/LICENCE
new file mode 100644
index 00000000000..9b1e1bb34db
--- /dev/null
+++ b/Master/texmf-dist/source/latex/feyn/LICENCE
@@ -0,0 +1,271 @@
+
+GNU GENERAL PUBLIC LICENSE
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is intended
+to guarantee your freedom to share and change free software--to make sure
+the software is free for all its users. This General Public License applies
+to most of the Free Software Foundation's software and to any other program
+whose authors commit to using it. (Some other Free Software Foundation
+software is covered by the GNU Library General Public License instead.) You
+can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And you
+must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must be
+licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the Program
+or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter,
+translation is included without limitation in the term "modification".) Each
+licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program
+is not restricted, and the output from the Program is covered only if its
+contents constitute a work based on the Program (independent of having been
+made by running the Program). Whether that is true depends on what the
+Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code
+as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+License and to the absence of any warranty; and give any other recipients of
+the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+ * a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ * b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any part
+ thereof, to be licensed as a whole at no charge to all third parties
+ under the terms of this License.
+
+ * c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the most ordinary way, to print or display an announcement including
+ an appropriate copyright notice and a notice that there is no warranty
+ (or else, saying that you provide a warranty) and that users may
+ redistribute the program under these conditions, and telling the user
+ how to view a copy of this License. (Exception: if the Program itself
+ is interactive but does not normally print such an announcement, your
+ work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you
+distribute them as separate works. But when you distribute the same sections
+as part of a whole which is a work based on the Program, the distribution of
+the whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise
+the right to control the distribution of derivative or collective works
+based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with
+the Program (or with a work based on the Program) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+ * a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2
+ above on a medium customarily used for software interchange; or,
+
+ * b) Accompany it with a written offer, valid for at least three years,
+ to give any third party, for a charge no more than your cost of
+ physically performing source distribution, a complete machine-readable
+ copy of the corresponding source code, to be distributed under the
+ terms of Sections 1 and 2 above on a medium customarily used for
+ software interchange; or,
+
+ * c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with
+the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed
+it. However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms
+and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein. You are not responsible
+for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot distribute so
+as to satisfy simultaneously your obligations under this License and any
+other pertinent obligations, then as a consequence you may not distribute
+the Program at all. For example, if a patent license would not permit
+royalty-free redistribution of the Program by all those who receive copies
+directly or indirectly through you, then the only way you could satisfy both
+it and this License would be to refrain entirely from distribution of the
+Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents
+or other property right claims or to contest validity of any such claims;
+this section has the sole purpose of protecting the integrity of the free
+software distribution system, which is implemented by public license
+practices. Many people have made generous contributions to the wide range of
+software distributed through that system in reliance on consistent
+application of that system; it is up to the author/donor to decide if he or
+she is willing to distribute software through any other system and a
+licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an
+explicit geographical distribution limitation excluding those countries, so
+that distribution is permitted only in or among countries not thus excluded.
+In such case, this License incorporates the limitation as if written in the
+body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of
+the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
diff --git a/Master/texmf-dist/source/latex/feyn/VERSION b/Master/texmf-dist/source/latex/feyn/VERSION
new file mode 100644
index 00000000000..49d59571fbf
--- /dev/null
+++ b/Master/texmf-dist/source/latex/feyn/VERSION
@@ -0,0 +1 @@
+0.1
diff --git a/Master/texmf-dist/source/latex/feyn/feyn.drv b/Master/texmf-dist/source/latex/feyn/feyn.drv
new file mode 100644
index 00000000000..eab38934d76
--- /dev/null
+++ b/Master/texmf-dist/source/latex/feyn/feyn.drv
@@ -0,0 +1,84 @@
+%%
+%% This is file `feyn.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% feyn.dtx (with options: `driver')
+%% Feyn: package to manage the font feyn10
+%% This software is copyright, 1991, 1994, 2001, Norman Gray.
+%%
+%% 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.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+%%
+%% Author: Norman Gray, norman@astro.gla.ac.uk.
+%% Department of Physics and Astronomy, University of Glasgow, UK
+%%
+%% See the file LICENCE for a copy of the GPL.
+%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html .
+%% RCS Info $Id: feyn.dtx,v 1.11 2002/04/23 11:26:15 norman Exp $
+\def\ParseRCSDate$#1: #2 #3 ${\def\FEYN@Date{#2}}
+\ParseRCSDate$Date: 2002/04/23 11:26:15 $
+\def\filename{feyn}
+\def\fileversion{0.1} %%VERSION%%
+\def\filedate{\FEYN@Date}
+\def\docdate{\FEYN@Date}
+\documentclass{ltxdoc}
+\usepackage{feyn}
+\title{The feyn font%
+ \thanks{This file has version number \fileversion, last revised
+ \filedate}}
+\author{Norman Gray\\(\texttt{norman@astro.gla.ac.uk})}
+\date{Version \fileversion, \filedate}
+\newcommand\Lopt[1]{\textsf {#1}}
+\newcommand\file[1]{\texttt {#1}}
+\newcommand\Lcount[1]{\textsl {\small#1}}
+\newcommand\pstyle[1]{\textsl {#1}}
+%% \url macro (url.sty does this better)
+\def\setpathdots{\discretionary{.}{}{.}}
+\def\setpathslash{\discretionary{/}{}{/}}
+{\catcode`\.=\active
+ \catcode`\/=\active
+ \gdef\pathcats{%
+ \catcode`\%=12 \catcode`\~=12
+ \catcode`\.=\active \let.\setpathdots
+ \catcode`\/=\active \let/\setpathslash
+ \catcode`\#=12 \catcode`\_=12}%
+ }
+\def\setpath#1{\ttfamily <\nobreak #1\nobreak>\endgroup}
+\def\url{\begingroup\pathcats\setpath}
+\parskip=\medskipamount
+\parindent=0pt
+\begin{document}
+\maketitle
+\DocInput{feyn.dtx}
+\end{document}
+%% \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
+%% Lower-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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
+%%
+%% End of file `feyn.drv'.
diff --git a/Master/texmf-dist/source/latex/feyn/feyn.dtx b/Master/texmf-dist/source/latex/feyn/feyn.dtx
new file mode 100644
index 00000000000..e03087a58ed
--- /dev/null
+++ b/Master/texmf-dist/source/latex/feyn/feyn.dtx
@@ -0,0 +1,669 @@
+% \iffalse
+% This is feyn.dtx, which manages the use of the feyn Metafont
+%
+%% This software is copyright, 1991, 1994, 2001, Norman Gray.
+%%
+%% 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.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+%%
+%% Author: Norman Gray, norman@astro.gla.ac.uk.
+%% Department of Physics and Astronomy, University of Glasgow, UK
+%%
+%% See the file LICENCE for a copy of the GPL.
+%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html .
+%
+%<+package|driver>%% RCS Info $Id: feyn.dtx,v 1.11 2002/04/23 11:26:15 norman Exp $
+\def\ParseRCSDate$#1: #2 #3 ${\def\FEYN@Date{#2}}
+\ParseRCSDate$Date: 2002/04/23 11:26:15 $
+\def\filename{feyn}
+\def\fileversion{0.1} %%VERSION%%
+\def\filedate{\FEYN@Date}
+\def\docdate{\FEYN@Date}
+%<+package>\NeedsTeXFormat{LaTeX2e}
+%<+package>\ProvidesPackage{feyn}[\filedate\space\fileversion\space textpos]
+%<+package>\typeout{Package: `feyn' \fileversion\space<\filedate>}
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{feyn}
+\title{The feyn font%
+ \thanks{This file has version number \fileversion, last revised
+ \filedate}}
+\author{Norman Gray\\(\texttt{norman@astro.gla.ac.uk})}
+\date{Version \fileversion, \filedate}
+\newcommand\Lopt[1]{\textsf {#1}}
+\newcommand\file[1]{\texttt {#1}}
+\newcommand\Lcount[1]{\textsl {\small#1}}
+\newcommand\pstyle[1]{\textsl {#1}}
+%% \url macro (url.sty does this better)
+\def\setpathdots{\discretionary{.}{}{.}}
+\def\setpathslash{\discretionary{/}{}{/}}
+{\catcode`\.=\active
+ \catcode`\/=\active
+ \gdef\pathcats{%
+ \catcode`\%=12 \catcode`\~=12
+ \catcode`\.=\active \let.\setpathdots
+ \catcode`\/=\active \let/\setpathslash
+ \catcode`\#=12 \catcode`\_=12}%
+ }
+\def\setpath#1{\ttfamily <\nobreak #1\nobreak>\endgroup}
+\def\url{\begingroup\pathcats\setpath}
+%\RecordChanges
+%\OnlyDescription
+\parskip=\medskipamount
+\parindent=0pt
+\begin{document}
+\maketitle
+\DocInput{feyn.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+%
+% \CheckSum{175}
+%% \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
+%% Lower-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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+%
+%
+%
+%
+%
+% \newcommand{\pslash}{p\llap{/\kern-0.3pt}}
+% \newcommand{\feynx}{\textsl{feyn}}
+% \newcommand{\metafont}{Metafont}
+%
+%
+% This describes the font \feynx, which can be used to produce relatively
+% simple Feynman diagrams within equations in a \LaTeX\ document.
+%
+% The other Feynman diagram package which exists is Thorsten Ohl's
+% \textsl{feynmf}/\textsl{feynmp} package. That
+% works by creating \metafont\ or MetaPost figures using a preprocessor.
+% It's more general than this package, but is at its best when
+% creating relatively large diagrams, for figures.
+% In contrast, the present system consists of a carefully-designed font
+% with which you can write simple diagrams, within equations or within text,
+% in a size matching the surrounding text size.
+%
+% \section{Status}
+%
+% The font, and this associated style file, should be regarded as
+% beta software at present. The propagators and vertices which are
+% implemented are those which \emph{I} needed. I'd be delighted to
+% add more if folk feel they would be useful.
+%
+% \section{Description}
+%
+% \makeatletter
+% \def\refptcirc{\lower\FEYN@maxis \hbox to 0pt{\hss$\circ$\hss}}
+% \makeatother
+% \begin{table}
+% \def\tableskip{\noalign{\smallskip}}
+% \halign{$\refptcirc\feyn{#}$%
+% \hfil\quad & $#$\hfil\quad & # \hfil\qquad && # \cr
+% \omit Character & \omit & Name & Width & Height & Depth \cr
+% \noalign{\smallskip\hrule\smallskip}
+% f & f & fermion$^*$ & 2 & 0 & 0 \cr \tableskip
+% fs & fs & short fermion$^*$ & 1 & 0 & 0 \cr \tableskip
+% fl & fl & fermion loop$^*$ & 4 & 2 & 2 \cr \tableskip
+% fu & fu & upward fermion (45$^\circ$)& $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% fd & fd & downward fermion & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% fv & fv & vertical fermion & 0 & 2 & 0 \cr \tableskip
+% f0 & f0 & spacer$^*$ & 2 & 0 & 0 \cr \tableskip
+% fs0 & fs0 & short spacer$^*$ & 1 & 0 & 0 \cr \tableskip
+% g & g & gluon/photon$^*$ & 2 & 0 & 0 \cr \tableskip
+% gl & gl & gluon loop$^*$ & 0 (4) & 2 & 0 \cr \tableskip
+% glu & glu & gluon loop upsidedown$^*$ & 0 & 0 & 2 \cr \tableskip
+% \smallbosonloop &\omit \verb-\smallbosonloop- &
+% small gauge-boson loop & 0 & 1.4 & 0 \cr \tableskip
+% \bigbosonloop &\omit \verb-\bigbosonloop- &
+% big gauge-boson loop & 0 & 3 & 0 \cr \tableskip
+% gu & gu & upward gluon (45$^\circ$) & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% gd & gd & downward gluon & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% gv & gv & vertical gluon & 0 & 2 & 0 \cr \tableskip
+% gvs & gvs & short vertical gluon& 0 & (1) & 0 \cr \tableskip
+% m & m & massive fermion$^*$ & 2 & 0 & 0 \cr \tableskip
+% ms & ms & short massive fermion$^*$ & 1 & 0 & 0 \cr \tableskip
+% h & h & ghost$^*$ & 2 & 0 & 0 \cr \tableskip
+% hs & hs & short ghost$^*$ & 1 & 0 & 0 \cr \tableskip
+% hu & hu & upward ghost (45$^\circ$) & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% hd & hd & downward ghost & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% x & x & counterterm vertex$^*$ & 0 & (2) & (2) \cr \tableskip
+% p & p & proper vertex$^*$ & (3) & (3) & (3) \cr \tableskip
+% c & c & complete vertex$^*$ & (3) & (3) & (3) \cr \tableskip
+% a & a & arrow$^*$ & 0 & 0 & 0 \cr
+% }
+% \caption[The characters in font \feynx.]{\label{chars}
+% The characters in font \feynx. A~$^*$ means that
+% the character is also available in textstyle size. The~$\circ$ shows the
+% reference point of each character. See the notes on page~\pageref{charnotes}}
+% \end{table}
+% The characters in the font are shown in table~\ref{chars}, and the macros
+% defined in \file{feyn.sty} are described in table~\ref{macros}.
+%
+% \iffalse Notes to table~\ref{chars}:\label{charnotes}\fi
+% \subsubsection*{Notes to table~\ref{chars}\label{charnotes}}
+% \begin{itemize}
+% \item[(1)] The short vertical gluon is slightly shorter than the
+% ordinary
+% \iffalse
+% \tracingmacros=2 \tracingcommands=2
+% \showthe\fontdimen22\textfont\symfeynman
+% \tracingmacros=0 \tracingcommands=0
+% \fi
+% vertical gluon, and is for the diagram~\hbox{$fsfglgvsffs =
+% \feyn{fsfglgvsffs}$}, in which the vertical gluon would not meet the loop
+% properly if it were full size.
+% \item[(2)] The counterterm vertex is the same height as the proper vertex,
+% although the black part is smaller.
+% \item[(3)] The proper vertex and the complete vertex are specified
+% in terms of a `blob-radius' which is about half a module. They have
+% a width of 2~radii, and a height and depth of 1~radius.
+% \item[(4)] All the gluon loops have zero width, and are centred at
+% the centre of the loop.
+% \end{itemize}
+% The unnassigned positions in the \feynx\ font are filled
+% with an obviously wrong dummy character, so that |$\feyn{A}$|, for example,
+% produces $\feyn{A}$.
+%
+% \begin{table}
+% \begin{description}
+% \item[\cs{feyn}] Selects the diagram font. This must be used
+% within math mode. \cs{Feyn} selects the text-mode diagram font.
+% \item[\cs{Diagram\{\}}] For building more complicated diagrams. It
+% takes one argument, which is like the contents of an \texttt{\{array\}}
+% environment---a series of formulae separated by \&'s and \verb-\\-. See
+% below for an example. The result is a box on the math-axis.
+% \item[\cs{maxis}] Raises a formula to the math-axis, which is
+% occasionally useful within in-text equations: eg
+% |$\Feyn{fglf} - \maxis{\Feyn{faf}}$| produces
+% $\Feyn{fglf} - \maxis{\Feyn{faf}}$.
+% \item[\cs{vertexlabel\{p\}\{text\}}] Allows you to label a vertex. If
+% the first parameter~$p$ is~$\wedge$, the~\emph{text} is placed above the
+% point at which the command is given, if it is~\texttt{\_}, it is
+% placed below. For example, |$\feyn{fa\vertexlabel^{p}f}$| produces
+% $\feyn{fa\vertexlabel^{p}f}$.
+% \item[\cs{feynstrut\{h\}\{d\}}] For use within an (eqn)array environment, or
+% the like. It modifies the control sequence \verb-\strut- to be a strut of
+% height~$h$ and depth~$d$, which can therefore be used to space the array
+% out.
+% \item[\cs{annotate\{x\}\{y\}\{text\}}] Puts the \emph{text},
+% between dollars,
+% in a zero width box at offset~$(x,y)$ modules from the position of the
+% |\annotate| command (which is generally the first command(s) after
+% entering math-mode). Because the \emph{text} is in math-mode, anything
+% that is not maths should be in an |\mbox|.
+% \end{description}
+% \caption{\label{macros} The macros defined in \file{feyn.sty}}
+% \end{table}
+%
+% The \feynx\ font is modular, in the sense that all the
+% dimensions are in terms of a module of 10pt, and all sizes given
+% below are in units of modules. As well as 10pt, the font has 11pt
+% and 12pt versions, and the correct one is selected depending on the
+% text size declared (or defaulted) in the |\documentclass| command..
+%
+% You draw a diagram by going into math-mode (between \$\dots\$), and selecting
+% the diagrams font by the font-changing command \verb-\feyn{}-
+% (exactly as you might use \verb-\mathrm- in math-mode). With a couple of
+% exceptions, all the characters are obtained by typing a single
+% letter, or a couple of letters which form a ligature, so that the
+% letter~$f$ in the diagrams font (\verb-$\feyn{f}$-) produces a
+% fermion of length~2 (modules), and~$fs$ produces a short fermion of
+% length~1. As usual in maths mode, space characters are ignored, so
+% you can add whitespace as required to make the expressions more
+% legible. Some of the more heavily used characters are available in
+% both display size and text size, with the text-size version invoked
+% by |\Feyn{...}|, so that |\feyn{fglf}| gives $\feyn{fglf}$ and
+% |\Feyn{fglf}| gives $\Feyn{fglf}$. The displaystyle characters
+% are all on the math-axis, the textstyle ones are on the text line.
+%
+% Here are some examples.
+%
+% \makeatletter
+% \newdimen\halftextwidth
+% \halftextwidth=\textwidth
+% \divide\halftextwidth by 2
+% \advance\halftextwidth by \tabcolsep
+% {\obeyspaces\gdef {\hskip0.5em}}
+% {\@makeother\|% \gdef\startcodeexample{\begin{tabular}{p{\halftextwidth}|c}}}
+% \newenvironment{codeexample}{%
+% \vskip\medskipamount
+% \def\domyspecials{\do\\\do\{\do\}\do\~\do\&\do\#\do\^\do\_\do\~}
+% \def\verbblock{\bgroup \let\do\@makeother\domyspecials
+% \def\par{\hfil\break}\obeylines\obeyspaces\@verbblock}
+% \def\@verbblock##1!{\ttfamily ##1\egroup}
+% \startcodeexample
+% }{%
+% \crcr
+% \end{tabular}
+% \vskip\medskipamount
+% }
+% \makeatother
+%
+% \begin{codeexample}
+% \verbblock\feyn{\vertexlabel^a f a
+% \vertexlabel^p f\vertexlabel^b}
+% = \displaystyle
+% {i\delta^{ab} \over \pslash- m_0}!
+% &
+% \begin{minipage}[t]{\halftextwidth}
+% $\feyn{\vertexlabel^a f a
+% \vertexlabel^p f\vertexlabel^b}
+% = \displaystyle
+% {i\delta^{ab} \over \pslash- m_0}$
+% \\
+% \end{minipage}
+% \end{codeexample}
+% This is a simple one.
+%
+% \begin{codeexample}
+% \verbblock\Diagram{\vertexlabel^a \\
+% fd \\
+% & g\vertexlabel_{\mu,c} \\
+% \vertexlabel_b fu\\
+% }
+% = \displaystyle
+% ig\gamma_\mu (T^c)_{ab}!
+% &
+% \begin{minipage}[t]{\halftextwidth}
+% $\Diagram{\vertexlabel^a \\
+% fd \\
+% & g\vertexlabel_{\mu,c} \\
+% \vertexlabel_b fu\\
+% }
+% = \displaystyle
+% ig\gamma_\mu (T^c)_{ab}$
+% \end{minipage}
+% \end{codeexample}
+% The |\Diagram| command lays out its arguments as an array.
+%
+% Now a few more diagrams:
+% \begin{codeexample}
+% \verbblock\feyn{fs f gl f glu f fs}!
+% &
+% $\feyn{fs f gl f glu f fs}$
+% \end{codeexample}
+% This is a ``short-fermion fermion gluon-loop fermion
+% gluon-loop-upsidedown fermion short-fermion''.
+%
+% We can also have diagrams in the text, like~$\Feyn{fsfglffs}$, and we can
+% annotate the diagrams
+% \begin{codeexample}
+% \verbblock\annotate{2}{-0.5}{\mbox{counterterm}}
+% \annotate{1.3}{0.5}{l}
+% \feyn{msmglgvs msxf}!
+% &
+% \begin{minipage}[t]{\halftextwidth}
+% $\annotate{2}{-0.5}{\mbox{counterterm}}
+% \annotate{1.3}{0.5}{l}
+% \feyn{msmglgvs msxf}$
+% \end{minipage}
+% \end{codeexample}
+% This is a ``short-massive massive gluon-loop short-gluon-vertical
+% short-massive counterterm fermion''.
+%
+% The expression for the heavy-fermion self-energy in the \textsc{ope} is
+% \begin{codeexample}
+% \verbblock\def\bracket#1{%
+% \langle #1 \rangle}
+% \begin{eqnarray*}
+% -i\Sigma_{\rm ope} &=&
+% \left[\feyn{faf + fsfglffs
+% + \cdots} \right] 1 \\
+% && \quad{}+
+% \left[ \feyn{ fxfs0glfs0xf
+% + \cdots} \right]
+% \bracket{\overline\psi M \psi} \\
+% && \quad{}+ \left[
+% \Diagram{ &x &x \\
+% &gv &gv \\
+% fs &fs &fs \\} + \cdots
+% \right]
+% \bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\
+% \end{eqnarray*}!
+% &
+% \begin{minipage}[t]{\halftextwidth}
+% \def\bracket#1{\langle #1 \rangle}
+% \begin{eqnarray*}
+% -i\Sigma_{\rm ope} &=&
+% \left[\feyn{faf + fsfglffs + \cdots} \right] 1 \\
+% && \quad{}+ \left[ \feyn{ fxfs0glfs0xf + \cdots} \right]
+% \bracket{\overline\psi M \psi} \\
+% && \quad{}+ \left[
+% \Diagram{ &x &x \\
+% &gv &gv \\
+% fs &fs &fs \\} + \cdots
+% \right]\bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\
+% \end{eqnarray*}
+% \end{minipage}
+% \end{codeexample}
+%
+% The Feynman Rules are as follows:
+% \begin{verbatim}
+% \def\arraystretch{3} \arraycolsep=0.2cm
+% \begin{array}{rcl}
+% % quark propagator
+% \feyn{\vertexlabel^a f a\vertexlabel^p f\vertexlabel^b}
+% &=& \displaystyle
+% {i\delta^{ab} \over \pslash- m_0} \\
+% % quark-gluon vertex
+% \Diagram{\vertexlabel^a \\ fd \\ & g\vertexlabel_{\mu,c} \\ \vertexlabel_b fu\\}
+% &=& \displaystyle
+% ig\gamma_\mu (t^c)_{ab} \\
+% % gluon propagator
+% \feyn{\vertexlabel^{\mu, a}g a\vertexlabel^k g \vertexlabel^{\nu, b}}
+% &=& \displaystyle
+% {-i\over k^2} \left[g_{\mu\nu} + (a_0 - 1) {k_\mu k_\nu \over k^2}\right]
+% \delta^{ab} \\
+% % 3-gluon vertex
+% \arrow{0.7}{0.7}{7}\arrow{0.7}{-0.7}{1}\arrow{2.41}{0}{4}
+% \annotate{0.9}{0.8}{p}\annotate{0.9}{-0.9}{q}
+% \Diagram{\vertexlabel^{\alpha, a}\\
+% gd \\
+% &gd \\
+% &&g\vertexlabel^{r}g \vertexlabel^{\gamma,c} \\
+% &gu \\
+% gu \\
+% \vertexlabel_{\beta,b}}
+% &=& \displaystyle
+% -g f^{abc} (
+% g_{\beta\gamma} (q-r)_\alpha +
+% g_{\gamma\alpha} (r-p)_\beta +
+% g_{\alpha\beta} (p-q)_\gamma
+% ) \\
+% % ghost propagator
+% \feyn{\vertexlabel^a h a\vertexlabel_p h\vertexlabel^b}
+% &=& \displaystyle
+% {i \over p^2} \delta_{ab} \\
+% % ghost-gluon vertex
+% \Diagram{\vertexlabel^b \\ hd \\ & g\vertexlabel^{\mu,a} \\
+% \vertexlabel_c hu\\}
+% &=& \displaystyle
+% -g f^{abc}p_\mu
+% \quad\raise 1ex\hbox{\hsize = 0pt\vtop{
+% \hbox to \hsize{where $p$ is the momentum of\hss}
+% \hbox to \hsize{the outgoing positive energy ghost\hss}
+% }}
+% \end{array}
+% \end{verbatim}
+% \dots giving
+% \begin{equation}
+% \def\arraystretch{3} \arraycolsep=0.2cm
+% \begin{array}{rcl}
+% \feyn{\vertexlabel^a f a\vertexlabel^p f\vertexlabel^b}
+% &=& \displaystyle
+% {i\delta^{ab} \over \pslash- m_0} \\
+% \Diagram{\vertexlabel^a \\ fd \\ & g\vertexlabel_{\mu,c} \\ \vertexlabel_b fu\\}
+% &=& \displaystyle
+% ig\gamma_\mu (t^c)_{ab} \\
+% \feyn{\vertexlabel^{\mu, a}g a\vertexlabel^k g \vertexlabel^{\nu, b}}
+% &=& \displaystyle
+% {-i\over k^2} \left[g_{\mu\nu} + (a_0 - 1) {k_\mu k_\nu \over k^2}\right]
+% \delta^{ab} \\
+% \arrow{0.7}{0.7}{7}\arrow{0.7}{-0.7}{1}\arrow{2.41}{0}{4}
+% \annotate{0.9}{0.8}{p}\annotate{0.9}{-0.9}{q}
+% \Diagram{\vertexlabel^{\alpha, a}\\
+% gd \\
+% &gd \\
+% &&g\vertexlabel^{r}g \vertexlabel^{\gamma,c} \\
+% &gu \\
+% gu \\
+% \vertexlabel_{\beta,b}}
+% &=& \displaystyle
+% -g f^{abc} (
+% g_{\beta\gamma} (q-r)_\alpha +
+% g_{\gamma\alpha} (r-p)_\beta +
+% g_{\alpha\beta} (p-q)_\gamma
+% ) \\
+% \feyn{\vertexlabel^a h a\vertexlabel_p h\vertexlabel^b}
+% &=& \displaystyle
+% {i \over p^2} \delta_{ab} \\
+% \Diagram{\vertexlabel^b \\ hd \\ & g\vertexlabel^{\mu,a} \\
+% \vertexlabel_c hu\\}
+% &=& \displaystyle
+% -g f^{abc}p_\mu
+% \quad\raise 1ex\hbox{\hsize = 0pt\vtop{
+% \hbox to \hsize{where $p$ is the momentum of\hss}
+% \hbox to \hsize{the outgoing positive energy ghost\hss}
+% }}
+% \end{array}
+% \end{equation}
+%
+% The diagrams can also appear as parts of equations:
+% \begin{eqnarray}
+% \feyn{fcf} &=& \feyn{faf + fpf + fpfpf + \cdots} \\
+% &=& \sum_{n=0}^\infty \feyn{fsafs ( pfsafs)}^n \\
+% &=& \feyn{\frac{fsafs}{1-(pfsafs)}}.
+% \end{eqnarray}
+%
+% \section{Installation}
+%
+% If you have not done so already, you need to extract the package
+% file from the distribution file using |latex feyn.ins|. The
+% resulting \file{feyn.sty} should be installed in the usual location
+% for style files -- that is, something like
+% \file{texmf.local/tex/latex/feyn.sty}. The \metafont\ source files
+% \file{*.mf} should be installed in a directory with a location such as
+% \file{texmf.local/fonts/source/feyn/}. That should be all you need
+% to do as regards the installation of the fonts -- if your \TeX\
+% setup is installed correctly, then the usual font-generation
+% commands (such as \file{mktexpk} for example) should work as normal.
+%
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Declare the feyn math font family. The |\skewchar| for this font
+% (see the \TeX book, p431) can be set to zero, since it's a
+% completely upright maths font (the least of its peculiarities). We
+% don't have the font in much of a range of sizes.
+% \begin{macrocode}
+\DeclareFontFamily{OMS}{feyn}{\skewchar\font'000}
+\DeclareFontShape{OMS}{feyn}{m}{n}{%
+ <-10.5>feyn10%
+ <10.5-11.5>feyn11%
+ <11.5->feyn12%
+ }{}
+% \end{macrocode}
+%
+% Now do the same for the text-size fonts, declaring the textfeyn math
+% font family.
+% \begin{macrocode}
+\DeclareFontFamily{OMS}{textfeyn}{\skewchar\font'000}
+\DeclareFontShape{OMS}{textfeyn}{m}{n}{%
+ <-10.5>feyntext10%
+ <10.5-11.5>feyntext11%
+ <11.5->feyntext12%
+ }{}
+% \end{macrocode}
+%
+% XXX It would be nice to arrange things so that superscripts in
+% the feyn font were drawn from cmmi7, or something. The original
+% feyn.sty arranged this with |\scriptfont\diagramfam=\ninmi|, but
+% it's not clear what the analogue in the FSS is.
+%
+% Now declare the `feynman' symbol font, and make the command |\feyn|
+% set its argument in that font. Similarly have |\Feyn| invoke the
+% feynman symbol font for the text sizes.
+% \begin{macrocode}
+\DeclareSymbolFont{feynman}{OMS}{feyn}{m}{n}
+\DeclareSymbolFontAlphabet{\feyn}{feynman}
+\DeclareSymbolFont{textfeynman}{OMS}{textfeyn}{m}{n}
+\DeclareSymbolFontAlphabet{\Feyn}{textfeynman}
+% \end{macrocode}
+%
+%
+% Now get the size of the `module' (the length of the fermion), and the
+% height of the math-axis, from the font. You might think that the
+% math-axis is obtainable from |\fontdimen22| of the font, but we do
+% not load it as an |{operator}| font when we invoke
+% |\DeclareSymbolFont|, so it does not have all 22 parameters that a
+% symbol font (as the \TeX book uses the term, rather than \LaTeXe's
+% NFSS). I confess I don't \emph{really} understand the ins and outs
+% of this, but this route is robust and not wrong.
+%
+% The character |"7F| in the feyn font is blank, but has width
+% |module#| and height |a#| (using the dimensions of the font
+% file). Use this to set the |\FEYN@module| and |\FEYN@maxis|. Note
+% that the `module' used in this package file is twice the module used
+% in the \metafont\ files themselves.
+% \begin{macro}{\FEYN@module}
+% \begin{macro}{\FEYN@maxis}
+% \begin{macrocode}
+\DeclareMathSymbol{\FeynSpaceChar}{\mathord}{feynman}{"7F}
+\setbox0=\hbox{$\FeynSpaceChar$}
+\newdimen\FEYN@module \FEYN@module=2\wd0
+\newdimen\FEYN@maxis \FEYN@maxis=\ht0
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Diagram}
+% Define the |\Diagram| macro, which lays out a semi-complicated
+% diagram in 2-d.
+% \begin{macrocode}
+\def\Diagram#1{\setbox0=\hbox{\vbox{\offinterlineskip \let\\\cr
+ \halign{&$\displaystyle\feyn{##}$\cr #1\crcr}}}%
+% \end{macrocode}
+% At this point, |\box0| has zero depth. It must be an hbox, because
+% we're fiddling with its height within a enclosing |\vbox|. See the
+% \TeX book pp 388--389. This takes advantage of appx G, rule 8 to
+% move box0 down by the height of the math axis. The construction
+% |\dp0 = -2\fontdimen22 \textfont2| also works, in the sense of
+% moving the box onto the math axis, but makes the box too small,
+% which means that surrounding text can encroach.
+% \begin{macrocode}
+ \@tempdima=\ht0
+ \advance\@tempdima by 2\FEYN@maxis \ht0=\@tempdima
+ \vcenter{\box0}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maxis}
+% Raise the argument to the math axis.
+% \begin{macrocode}
+\def\maxis#1{\raise\FEYN@maxis \hbox{$#1$}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vertexlabel}
+% The command |\vertexlabel^{text}| or |\vertexlabel_{text}| positions
+% the |{text}| in maths mode either above or below, respectively, the
+% current position. It's used at between characters to label a vertex.
+% \begin{macrocode}
+\def\vertexlabel#1#2{\setbox0=\hbox to 0pt{\hss$\scriptstyle #2$\hss}
+ \ifcat #1^
+ \vbox to 0pt{\vss\box0\nointerlineskip\kern2\FEYN@maxis}
+ %\vbox to 0pt{\vss\box0\nointerlineskip\kern6pt}
+ \else\ifcat #1_
+ \vbox to 0pt{\kern\FEYN@maxis\nointerlineskip\box0\vss}
+ %\vbox to 0pt{\kern2pt\nointerlineskip\box0\vss}
+ \else
+ \PackageError{feyn}
+ {Bad arguments for \string\vertexlabel}
+ {Usage: \string\vertexlabel^{text} or \string\vertexlabel_{text}}
+ \fi\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\annotate}
+% The |\annotate| command takes $x$ and $y$ coordinates in units of
+% modules, and text (in math mode) to be placed on a |\diagram|.
+% \begin{macrocode}
+\def\annotate#1#2#3{\vcenter to 0pt{\vss
+ \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{\hss$\scriptstyle #3$\hss}\hss
+ }\vskip #2\FEYN@module}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tannotate}
+% The |\tannotate| command is just the same, but the annotating text
+% is in horizontal mode.
+% \begin{macrocode}
+\def\tannotate#1#2#3{\vcenter to 0pt{\vss
+ \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{\hss #3\hss}\hss
+ }\vskip #2\FEYN@module}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\feynstrut}
+% The macro |\feynstrut#1#2| defines |\strut| to have a height
+% |#1| modules, and depth |#2| modules.
+% \begin{macrocode}
+\def\feynstrut#1#2{\setbox\strutbox=\hbox{\vrule
+ height #1\FEYN@module depth #2\FEYN@module width 0pt}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrow}
+% The command |\arrow#1#2#3| puts an arrow of gradient |#3|${}\times 45^\circ$
+% at position |(#1,#2)|(modules). This doesn't work -- the |\char|
+% results in a |\rm| character appearing, rather than a |\feyn|
+% character. Putting in a symbol like `+' has the same effect, but
+% putting in, say, `a' works as expected. In other words, it's to do
+% with the character's mathcode, and the |\char|
+% should be replaced by a |\mathchar"7?\@tempcnta| somehow. The
+% problem is that that depends on the parameter |\fam| having a
+% suitable value. It's not clear to me what this corresponds to in
+% \LaTeXe. See the \TeX book, chapter 17.
+% \begin{macrocode}
+\def\arrow#1#2#3{\@tempcnta="28 \advance\@tempcnta by #3\vcenter to 0pt{\vss
+ \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{$\feyn{\char\@tempcnta}$}\hss
+ }\vskip #2\FEYN@module}}
+% \end{macrocode}
+% \end{macro}
+%
+% Declare symbols. All of these are ligatures.
+% \begin{macrocode}
+\DeclareMathSymbol{\wfermion}{0}{feynman}{"64}
+%\DeclareMathSymbol{\Wfermion}{0}{feynman}{"44}
+\DeclareMathSymbol{\hfermion}{0}{feynman}{"6B}
+%\DeclareMathSymbol{\Hfermion}{0}{feynman}{"4B}
+\DeclareMathSymbol{\shfermion}{0}{feynman}{"6C}
+%\DeclareMathSymbol{\sHfermion}{0}{feynman}{"4C}
+\DeclareMathSymbol{\whfermion}{0}{feynman}{"6D}
+%\DeclareMathSymbol{\wHfermion}{0}{feynman}{"4D}
+\DeclareMathSymbol{\gvcropped}{0}{feynman}{"07}
+% \end{macrocode}
+% But the following are not ligatures.
+% \begin{macrocode}
+\DeclareMathSymbol{\bigbosonloop}{0}{feynman}{"21}
+\DeclareMathSymbol{\Bigbosonloop}{7}{feynman}{"21}
+\DeclareMathSymbol{\smallbosonloop}{0}{feynman}{"20}
+% \end{macrocode}
+%
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/feyn/feyn.ins b/Master/texmf-dist/source/latex/feyn/feyn.ins
new file mode 100644
index 00000000000..5a56e95876d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/feyn/feyn.ins
@@ -0,0 +1,14 @@
+\input docstrip
+\preamble
+ Feyn: package to manage the font feyn10
+\endpreamble
+\keepsilent
+\askforoverwritefalse
+
+\generate{\file{feyn.drv}{\from{feyn.dtx}{driver}}
+ \file{feyn.sty}{\from{feyn.dtx}{package}}
+ }
+
+\endbatchfile
+
+%% $Id: feyn.ins,v 1.1 2001/08/06 17:21:31 norman Exp $