summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-03 21:37:13 +0000
committerKarl Berry <karl@freefriends.org>2017-11-03 21:37:13 +0000
commit592c25270ddc1358ebd06e93ebc24f8875709c29 (patch)
tree75ab7aa20c9b0a0da69064a52f8367ae78a77833 /Master/texmf-dist/source
parent976dd4b4e298f349b6f4b37b0b4be9a66f60c1c6 (diff)
feyn (3nov17)
git-svn-id: svn://tug.org/texlive/trunk@45679 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/fonts/feyn/feyn.drv28
-rw-r--r--Master/texmf-dist/source/fonts/feyn/feyn.dtx806
2 files changed, 608 insertions, 226 deletions
diff --git a/Master/texmf-dist/source/fonts/feyn/feyn.drv b/Master/texmf-dist/source/fonts/feyn/feyn.drv
index 0c14888b338..a68740fc247 100644
--- a/Master/texmf-dist/source/fonts/feyn/feyn.drv
+++ b/Master/texmf-dist/source/fonts/feyn/feyn.drv
@@ -6,33 +6,15 @@
%%
%% feyn.dtx (with options: `driver')
%% Feyn: package to manage the font feyn10
-%% This software is copyright, 1991, 1994, 2001, 2002, 2005, 2008, 2009 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 .
-%% VCS Info: Mercurial revision 204fc9a2e560, 2009-10-08 12:56 +0100
+%% This software is copyright 1991, 1994, 2001-2, 2005, 2008-17, Norman Gray.
+%% It is distributed under the terms of the 2-clause BSD Licence;
+%% see the file LICENCE for details.
+%% VCS Info: Mercurial revision 558acb5f2e14, 2017-11-03 14:43 +0000, tag 0.4.1 + 0
\documentclass{ltxdoc}
\usepackage{feyn}
\title{The feyn font}
\author{Norman Gray\\(\texttt{norman@astro.gla.ac.uk})}
-\date{Version 0.3.3, 2009 October 8}
+\date{Version 0.4.1, 2017 November 03}
\newcommand\Lopt[1]{\textsf {#1}}
\newcommand\file[1]{\texttt {#1}}
\newcommand\Lcount[1]{\textsl {\small#1}}
diff --git a/Master/texmf-dist/source/fonts/feyn/feyn.dtx b/Master/texmf-dist/source/fonts/feyn/feyn.dtx
index 0ccffc9d72e..cb371f90193 100644
--- a/Master/texmf-dist/source/fonts/feyn/feyn.dtx
+++ b/Master/texmf-dist/source/fonts/feyn/feyn.dtx
@@ -1,39 +1,21 @@
% \iffalse
% This is feyn.dtx, which manages the use of the feyn Metafont
%
-%% This software is copyright, 1991, 1994, 2001, 2002, 2005, 2008, 2009 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>%% VCS Info: Mercurial revision 204fc9a2e560, 2009-10-08 12:56 +0100
+%% This software is copyright 1991, 1994, 2001-2, 2005, 2008-17, Norman Gray.
+%% It is distributed under the terms of the 2-clause BSD Licence;
+%% see the file LICENCE for details.
+%
+%<+package|driver>%% VCS Info: Mercurial revision 558acb5f2e14, 2017-11-03 14:43 +0000, tag 0.4.1 + 0
%<+package>\NeedsTeXFormat{LaTeX2e}
-%<+package>\ProvidesPackage{feyn}[2009/10/08 \space0.3.3\space textpos]
-%<+package>\typeout{Package: `feyn' 0.3.3\space<2009/10/08 >}
+%<+package>\ProvidesPackage{feyn}[2017/11/03 0.4.1]
+%<+package>\typeout{Package: `feyn' 0.4.1 <2017/11/03>}
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{feyn}
\title{The feyn font}
\author{Norman Gray\\(\texttt{norman@astro.gla.ac.uk})}
-\date{Version 0.3.3, 2009 October 8}
+\date{Version 0.4.1, 2017 November 03}
\newcommand\Lopt[1]{\textsf {#1}}
\newcommand\file[1]{\texttt {#1}}
\newcommand\Lcount[1]{\textsl {\small#1}}
@@ -41,10 +23,10 @@
%% \url macro (url.sty does this better)
\def\setpathdots{\discretionary{.}{}{.}}
\def\setpathslash{\discretionary{/}{}{/}}
-{\catcode`\.=\active
- \catcode`\/=\active
+{\catcode`\.=\active
+ \catcode`\/=\active
\gdef\pathcats{%
- \catcode`\%=12 \catcode`\~=12
+ \catcode`\%=12 \catcode`\~=12
\catcode`\.=\active \let.\setpathdots
\catcode`\/=\active \let/\setpathslash
\catcode`\#=12 \catcode`\_=12}%
@@ -81,18 +63,21 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%
+% \CheckSum{680}
%
%
%
%
-%
% \newcommand{\pslash}{p\llap{/\kern-0.3pt}}
-% \newcommand{\feynx}{\textsl{feyn}}
+% \newcommand{\feynx}{\pstyle{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.
+%
+%
+%
+% This document describes the font \feynx, which can be used to produce relatively
+% simple Feynman diagrams within equations in a \LaTeX\ document. The
+% package and font aims to be capable of producing all of the diagrams
+% of one- and two-loop QED and QCD, plus $\phi^4$ theory.
%
% The other Feynman diagram package which exists is Thorsten Ohl's
% \textsl{feynmf}/\textsl{feynmp} package. That
@@ -100,10 +85,10 @@
% 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,
+% with which you can easily write simple diagrams, within equations or within text,
% in a size matching the surrounding text size.
%
-% \iffalse
+% \iftrue
% \textbf{Contents:}
% \def\numberline#1{\space\emph{\S#1}~}
% \def\contentsline#1#2#3{#2,~p#3;}
@@ -112,17 +97,18 @@
%
% \subsection*{Status}
%
-% The propagators and vertices which are implemented are those which
-% seem to appear most often in non-figure displays (the practical
-% definition of `appear most often' is `which I wanted' or `which
+% The propagators and vertices which are implemented are those of one-
+% and two-loop QED and QCD, plus $\phi^4$ theory, plus a few extras
+% which commonly appear in non-figure displays (the practical
+% definition of `commonly appear is `which I wanted' or `which
% people asked me for'). I'd be delighted to add others which folk
% feel would be useful, as long as they're still in the rather simple
-% scope of the font..
+% scope of the font.
%
-%
+% \newpage
% \section{Description}
%
-% You use the font by including the package \texttt{feyn.sty}, as in
+% You use the font by including the package \texttt{feyn.sty}, as in
% \begin{verbatim}
% \usepackage{feyn}
% \end{verbatim}
@@ -136,7 +122,7 @@
% very arcane reason, then you can force the global or local declaration
% of~`!' using the \Lopt{globalbang} and \Lopt{noglobalbang} options
% to the \texttt{$\backslash$usepackage\{feyn\}} command.}
-%
+%
% \makeatletter
% \def\refptcirc{\lower\feyn@maxis \hbox to 0pt{\hss$\circ$\hss}}
% \makeatother
@@ -146,14 +132,16 @@
% \hfil\quad & $#$\hfil\quad & # \hfil\qquad && # \cr
% \omit Character & \omit & Name & Width & Height & Depth \cr
% \noalign{\smallskip\hrule\smallskip}
-% f & f & fermion$^{\dag}$
+% f & f & fermion$^{\dag}$
% & 2 & 0 & 0 \cr \tableskip
% fs & fs & short fermion
% & 1 & 0 & 0 \cr \tableskip
% fl & fl & fermion loop$^{\dag\ddag}$
-% & 0 & 1 & 0 \cr \tableskip
+% & 0 & $2-$ & 0 \cr \tableskip
% flS & flS & fermion loop (small)$^{\dag\ddag}$
% & 0 & 1 & 0 \cr \tableskip
+% flo & flo & fermion loop (for $\phi^4$ theory)$^{\dag}$
+% & 0 & 2 & 0 \cr \tableskip
% fu & fu & upward fermion$^\dag$ (45$^\circ$)
% & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
% fd & fd & downward fermion$^\dag$
@@ -167,7 +155,7 @@
% g & g & gluon/photon$^{\dag}$
% & 2 & 0 & 0 \cr \tableskip
% gl & gl & gluon loop$^{\dag\ddag}$
-% & 0 & 2 & 0 \cr \tableskip
+% & 0 & $2-$ & 0 \cr \tableskip
% glB & glB & gluon loop (big)$^{\dag}$
% & 0 & 2.67 & 0 \cr \tableskip
% glS & glS & gluon loop (small)$^{\dag}$
@@ -186,24 +174,30 @@
% & 2 & 0 & 0 \cr \tableskip
% ms & ms & short massive fermion
% & 1 & 0 & 0 \cr \tableskip
-% h & h & ghost
+% h & h & ghost$^{\dag}$
% & 2 & 0 & 0 \cr \tableskip
% hs & hs & short ghost
% & 1 & 0 & 0 \cr \tableskip
-% hu & hu & upward ghost (45$^\circ$)
+% hu & hu & upward ghost$^{\dag}$ (45$^\circ$)
% & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
-% hd & hd & downward ghost
+% hd & hd & downward ghost$^{\dag}$
% & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip
+% hl & hl & ghost loop$^{\dag\ddag}$
+% & 0 & $2-$ & 0 \cr\tableskip
% x & x & counterterm vertex & 0 & $a$ & $-a$ \cr \tableskip
% p & p & proper vertex & - & - & - \cr \tableskip
% P & P & proper vertex (variant) & - & - & - \cr \tableskip
% c & c & complete vertex & - & - & - \cr \tableskip
-% a & a & arrow & 0 & 0 & 0 \cr
+% a & a & arrow$^\dag$ & 0 & 0 & 0 \cr
% }
-% \caption{\label{chars} The characters in font \feynx. Characters
+% \caption{\label{chars} The characters in font \feynx, and their
+% reference points, marked with circles. Characters
% marked~$\dag$ have arrowed variants indicated with~`A' and~`V' suffixes;
% and characters marked~$\ddag$ have an upside-down variant
-% indicated with a `u' suffix. The `u' must come before the `A' or `V'.}
+% indicated with a `u' suffix. The `u' must come before the `A' or
+% `V'. Character `a' has an `arrowed variant' in the sense that `aV'
+% produces a backward arrow. A length of `$2-$' indicates a length
+% slightly less than two units, for aesthetic reasons.}
% \end{table}
%
% The characters in the font are shown in table~\ref{chars}.
@@ -226,24 +220,49 @@
% upside-down variant, thus `flu' is an upside-down variant of the
% fermion loop, and `fluV' an arrowed variant.
%
+% Note that the fermion, gluon and ghost half-loop characters are
+% slightly shorter than the height you might expect. These characters
+% are deliberately slightly squashed partly because that makes them
+% look slightly better (in my opinion!) in a one-loop self-energy
+% diagram, but also so that the `gl glu' or `fl flu' loop in a
+% two-loop diagram looks better. The loop formed by the pair of `g1
+% g2' is the size you might expect. See section~\ref{s:examples} below
+% for some illustrations of this.
+%
% The unnassigned positions in the \feynx\ font are filled
% with an obviously wrong dummy character, so that |$\feyn{A}$|, for example,
% produces $\feyn{fs0Afs0}$.
-%
+%
+% If you were to print out a font table, you would discover that many
+% of the glyphs in the font can be obtained using single
+% characters, rather than the ligatures mentioned in the table. Do
+% not be tempted to use this as a shortcut, since the assignment of
+% glyphs to character positions may be changed without warning from release to
+% release, as long as the ligature maps remain valid.
+%
% The file \file{feyn.sty} additionally defines a number of macros,
% described here.
% \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{momentum}\{ch\}\{text\}] sets the character
-% ch, which may be a ligature, and puts the given text at the recommended
+% `ch', which may be a ligature, and puts the given text at the recommended
% annotation position for that character. |\momentum[pos]{ch}{text}|
% is the same, except that the optional argument indicates the
% position relative to the annotation position. It must be one of
-% `top', `urt', `lrt', `bot', `llft' or `ulft'. See below for
-% examples. This is rarely used as such, since the |\feyn| and |\Feyn|
+% `top', `urt', `lrt', `bot', `llft' or `ulft'. This is rarely
+% used as such, since the |\feyn| and |\Feyn|
% commands make~`!' a temporarily active character, and define it
-% to be |\momentum|.
+% to be |\momentum|. See section~\ref{s:examples} for
+% examples and further discussion.
+% \item[\cs{belowl\{\}}] A common pattern in diagrams is to have a pair
+% of incoming or outgoing propagators. If the lower one of this
+% pair is enclosed within |\belowl{...}|, then it is set so that it
+% occupies zero horizontal space, and moved leftwards and
+% downwards, to fit under the upper of the pair of propagators.
+% The command |\belowr{...}| is the same, except that the argument
+% is moved rightwards.
+% See examples below.
% \item[\cs{Diagram\{\}}] This is 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
@@ -265,11 +284,13 @@
% than being the strut itself.
% \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
+% |\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|.
+% that is not maths should be in an |\mbox|. You will probably
+% use this only rarely, as the |\momentum| command supports most
+% of the annotation you will need.
% \end{description}
-%
+%
% 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
@@ -279,8 +300,8 @@
% seems to be appropriate for the sizes required, but the author would
% welcome comments on this. The distribution
% contains a sample file using the 18pt \feynx\ font in a
-% \texttt{foiltex} document.
-%
+% \texttt{foiltex} document.
+%
% 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
@@ -294,12 +315,28 @@
% 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.
-%
-% \section{Examples}
+% are all on the math-axis, the textstyle ones are on the text line.
+%
+% The display and text sizes of diagrams (that is, as produced by
+% |\feyn| and |\Feyn| respectively) are intended to be used
+% within equations, and they are sized accordingly. When diagrams
+% have significantly complicated annotation, however, this size can
+% look unhelpfully cramped, and it is for this case that there is an
+% `extended' set of diagram characters, which are approximately double
+% the size, and are available, in |\displaystyle| only, with the
+% |\FEYN| and |\DIAGRAM| macros. These are used exactly like the
+% |\feyn| and |\Diagram| macros. Note
+% that the line width, the module used by the (rare) |\annotate| command, and the math
+% axis, do not change from the sizes they have for the |\feyn|
+% command. That is, this font is \emph{not} the appropriate one to
+% use if you simply want a larger font size -- in that case, simply
+% increase the \LaTeX\ font size and the \feynx\ font will change in
+% size accordingly. See below for an example of the use of |\FEYN|.
+%
+% \subsection{More complicated diagrams}
%
% \newdimen\halftextwidth
-% \halftextwidth=\textwidth
+% \halftextwidth=\textwidth
% \advance\halftextwidth by -\tabcolsep
% \advance\halftextwidth by -\arrayrulewidth
% \divide\halftextwidth by 2
@@ -316,6 +353,78 @@
% \newenvironment{examplerhs}{\begin{minipage}[t]{\halftextwidth}}
% {\\ \end{minipage}}
%
+%
+% The \feynx\ font is designed so that simple diagrams are simple to
+% produce, and are as far as possible writable as a single line of
+% characters. There are a couple of more complicated diagrams which
+% are drawable without too much effort.
+%
+% A common pattern in diagrams is to have a pair
+% of incoming or outgoing propagators. If the lower one of this
+% pair is enclosed within |\belowl{...}|, then it is set so that it
+% occupies zero horizontal space, and moved leftwards and
+% downwards, to fit under the upper of the pair of propagators. For
+% example the sequence |\feyn{f gu \belowl{fd}}| would put the downward
+% fermion directly below the upward gauge boson. See below for this
+% and other examples.
+%
+% The second way of composing more complicated diagrams is to use the
+% |\Diagram| macro. This allows you to lay out a diagram in an
+% array-like environment, each cell of which is set within a
+% |\feyn{...}| macro. On the right is the same diagram drawn with
+% lines indicating the boundaries between the cells.
+% \begin{codeexample}
+% \begin{verbatim}
+% \Diagram{ & x \\
+% fs & gv f & gu \\
+% & & fd }
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \Diagram{ & x \\
+% fs & gv f & gu \\
+% & & fd }
+% \qquad\left(\quad
+% \makeatletter
+% \Diagram{ &\vrule x &\vrule height \feyn@maxis \\
+% \hline fs &\vrule gv f &\vrule height \feyn@module gu \\
+% \hline &\vrule height 0.7\feyn@module &\vrule fd \\
+% \iffalse \hline &\vrule height \feyn@module &\vrule\fi
+% }
+% \quad\right)
+% $\end{examplerhs}
+% \end{codeexample}
+%
+% The |\Diagram| and |\DIAGRAM| macros take an optional argument of
+% either `centre' or `bottom': with `centre', the diagram is centred
+% on the math axis, with `bottom' the reference point of the diagram
+% is the reference point of the bottom-most row of the array. The
+% default is `centre'.
+%
+% Before the introduction of the |\belowl| macro in \feynx~v0.4, this
+% was the only way to produce this pair of angled propagators one on
+% top of the other. With |\belowl|, however, an alternative way of
+% producing this diagram is as shown below.
+% \begin{codeexample}
+% \begin{verbatim}
+% \feyn{fs
+% \Diagram[bottom]{x\\gv}
+% f gu\belowl{fd}}
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \feyn{fs
+% \Diagram[bottom]{x\\gv}
+% f gu\belowl{fd}}
+% $\end{examplerhs}
+% \end{codeexample}
+%
+% Diagrams much more complicated than this are probably better dealt
+% with using Thorsten Ohl's \textsl{feynmf/feynmp} package.
+%
+% \section{Examples}
+% \label{s:examples}
+%
% A simple propagator:
% \begin{codeexample}
% \begin{verbatim}
@@ -333,7 +442,7 @@
% \frac{i\delta^{ab}}{\pslash-m_0}
% $\end{examplerhs}
% \end{codeexample}
-%
+%
% The |\Diagram| command lays out its arguments as an array.
% \begin{codeexample}
% \begin{verbatim}
@@ -342,8 +451,7 @@
% & g\vertexlabel_{\mu,c} \\
% \vertexlabel_b fu\\
% }
-% = \displaystyle
-% ig\gamma_\mu (T^c)_{ab}
+% = ig\gamma_\mu (T^c)_{ab}
% \end{verbatim}
% \Becomes
% \begin{examplerhs}$
@@ -352,11 +460,22 @@
% & g\vertexlabel_{\mu,c} \\
% \vertexlabel_b fu\\
% }
-% = \displaystyle
-% ig\gamma_\mu (T^c)_{ab}
+% = ig\gamma_\mu (T^c)_{ab}
+% $\end{examplerhs}
+% \end{codeexample}
+% The |\Diagram| is here necessary only for the vertex labels.
+% Without those, it would be as simple as:
+% \begin{codeexample}
+% \begin{verbatim}
+% \feyn{fd \belowl{fu} g
+% = ig\gamma_\mu (T^c)_{ab}}
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \feyn{fd \belowl{fu} g} = ig\gamma_\mu (T^c)_{ab}
% $\end{examplerhs}
% \end{codeexample}
-%
+%
% An assortment of two-loop diagrams:
% \begin{codeexample}
% \begin{verbatim}
@@ -368,12 +487,45 @@
% This is a ``short-fermion fermion gluon-loop fermion
% gluon-loop-upsidedown fermion short-fermion''.
%
+% We can include vertical gluons:
% \begin{codeexample}
% \begin{verbatim}
-% \feyn{ms mA gl gv ms x f}
+% \feyn{ms mA g1 gv g2 ms x f}
% \end{verbatim}
% \Becomes
-% $\feyn{ms mA gl gv ms x f}$
+% $\feyn{ms mA g1 gv g2 ms x f}$
+% \end{codeexample}
+% Note, in this example, that the gluon loop is formed by a pair of
+% `g1 g2' characters. This is because the `gl' half-loop character is
+% deliberately slightly squashed, and wouldn't meet the vertical gluon
+% properly. The half-loop character is squashed (as are
+% the fermion and ghost half-loops) partly because it looks
+% slightly better in a one-loop self-energy diagram, but also so that
+% the `gl glu' two-gluon loop in a two-loop diagram looks better:
+% \begin{codeexample}
+% \begin{verbatim}
+% \Diagram{&gl glu\\
+% fsf g1 f&f g2 ffs \\}
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \Diagram{&gl glu\\
+% fsf g1 f&f g2 ffs \\}
+% $\end{examplerhs}
+% \end{codeexample}
+% The diagrams for `hl hlu' or `flA fluV', for example, are very similar.
+%
+% The |\momentum| command (more usually called with simply the~`!'
+% character) allows you to annotate a propagator with a momentum or a
+% particle label. For example
+% \begin{codeexample}
+% \begin{verbatim}
+% \feyn{fA + !{fA}{p} + ![bot]{fA}{p}}
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \feyn{fA + !{fA}{p} + ![bot]{fA}{p}}
+% $\end{examplerhs}
% \end{codeexample}
%
% \begin{codeexample}
@@ -406,14 +558,17 @@
% $\end{examplerhs}
% \end{codeexample}
%
-% \newenvironment{bigdisplay}
-% {\newline
+% \newenvironment{bigdisplay}[1]
+% {\endgraf
+% \penalty 50 \vskip 0.5\baselineskip plus 0.5\textheight
+% \vbox\bgroup
+% #1\endgraf \smallskip
% \vbox{\hrule\hbox to \textwidth{\vrule height 1.5ex\hfil\vrule}}%
% \parskip0pt}
-% {\vbox{\hbox to \textwidth{\vrule height 1.5ex \hfil\vrule}\hrule}}
+% {\vbox{\hbox to \textwidth{\vrule height 1.5ex \hfil\vrule}\hrule}
+% \egroup}
%
-% Bremsstrahlung:
-% \begin{bigdisplay}
+% \begin{bigdisplay}{Bremsstrahlung:}
% \begin{verbatim}
% \[
% \Diagram{ & x \\
@@ -443,6 +598,44 @@
% \]
% \end{bigdisplay}
%
+% \begin{bigdisplay}{And now the same, with
+% \texttt{\textbackslash belowl} and \texttt{\textbackslash belowr}:}
+% \begin{verbatim}
+% \[
+% \def\stack#1#2{\Diagram[bottom]{#1\\#2}}
+% \feyn{
+% !{fA}p
+% \stack{x}{![ulft]{gvV}{q=p'+k-p}}
+% ![bot]{fA}{p'+k}
+% \stack{!{guA}k}{![lrt]{fA}{p'}}
+% +
+% !{fA}p
+% \belowr{![llft]{gdA}k} !{fA}{p-k}
+% fs
+% \stack x{!{gvV}{q=p'+k-p}} !{fA}{p'}}
+% \]
+% \end{verbatim}
+% \hrule
+% \[
+% \def\stack#1#2{\Diagram[bottom]{#1\\#2}}
+% \feyn{
+% !{fA}p
+% \stack{x}{![ulft]{gvV}{q=p'+k-p}}
+% ![bot]{fA}{p'+k}
+% \stack{!{guA}k}{![lrt]{fA}{p'}}
+% +
+% !{fA}p
+% \belowr{![llft]{gdA}k} !{fA}{p-k}
+% fs
+% \stack x{!{gvV}{q=p'+k-p}} !{fA}{p'}}
+% \]
+% \end{bigdisplay}
+%
+% The |\stack| macro isn't defined by the \feynx\ package, but
+% it is useful enough that you might want to define it as one of your
+% own macros.
+%
+% \iffalse
% We can also have diagrams in the text, like~$\Feyn{fsfglffs}$, and we can
% annotate the diagrams
% \begin{codeexample}
@@ -461,41 +654,79 @@
% $\end{examplerhs}
% \end{codeexample}
% This is a ``short-massive massive gluon-loop gluon-vertical
-% short-massive counterterm fermion''.
-%
-% The expression for the heavy-fermion self-energy in the \textsc{ope} is:
-% \begin{bigdisplay}
+% short-massive counterterm fermion''.
+% \fi
+%
+% \begin{bigdisplay}{The expression for the heavy-fermion self-energy in the \textsc{ope} is:}
% \begin{verbatim}
% \def\bracket#1{\langle #1 \rangle}
+% \def\stack#1#2{\Diagram[bottom]{#1\\#2}}
% \begin{eqnarray*}
% -i\Sigma_{\rm ope} &=&
-% \left[ \feyn{faf + fsfglffs + \cdots} \right] 1
+% \left[ \feyn{faf + fsfglffs + \cdots} \right] 1
% \feynstrut{1}{1}\strut \\
% && \quad{}+ \left[ \feyn{ fxfs0glfs0xf + \cdots} \right]
% \bracket{\overline\psi M \psi} \\
-% && \quad{}+ \left[ \Diagram{ &x &x \\
-% &gv &gv \\
-% fs &fs &fs \\} + \cdots \right]
+% && \quad{}+ \left[
+% \feyn{fs \stack x{gv} fs \stack x{gv} fs} + \cdots
+% \right]
% \bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\
% \end{eqnarray*}
% \end{verbatim}
% \hrule
% \def\bracket#1{\langle #1 \rangle}
+% \def\stack#1#2{\Diagram[bottom]{#1\\#2}}
% \begin{eqnarray*}
% -i\Sigma_{\rm ope} &=&
% \left[ \feyn{faf + fsfglffs + \cdots} \right] 1
% \feynstrut{1}{1}\strut \\
% && \quad{}+ \left[ \feyn{ fxfs0glfs0xf + \cdots} \right]
% \bracket{\overline\psi M \psi} \\
-% && \quad{}+ \left[ \Diagram{ &x &x \\
-% &gv &gv \\
-% fs &fs &fs \\} + \cdots \right]
+% && \quad{}+ \left[
+% \feyn{fs \stack x{gv} fs \stack x{gv} fs} + \cdots
+% \right]
% \bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\
% \end{eqnarray*}
% \end{bigdisplay}
%
-% The Feynman Rules are as follows:
-% \begin{bigdisplay}
+% Now for two examples using |\FEYN|:
+% \begin{codeexample}
+% \begin{verbatim}
+% \feyn{f gu \belowl{fd}}
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \feyn{f gu \belowl{fd}}
+% $\end{examplerhs}
+% \end{codeexample}
+% \begin{codeexample}
+% \begin{verbatim}
+% \FEYN{
+% !{fA}s !{gu}{W^-_\mu}
+% \belowl{!{fdA}u}
+% }
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \FEYN{
+% !{fA}s !{gu}{W^-_\mu} \belowl{!{fdA}u}
+% }
+% $\end{examplerhs}
+% \end{codeexample}
+% \begin{codeexample}
+% \begin{verbatim}
+% \DIAGRAM{
+% !{fA}s &!{gu}{W^-_\mu}\\
+% & !{fdA}u
+% }
+% \end{verbatim}
+% \Becomes
+% \begin{examplerhs}$
+% \DIAGRAM{!{fA}s &!{gu}{W^-_\mu}\\ & !{fdA}u}
+% $\end{examplerhs}
+% \end{codeexample}
+%
+% \begin{bigdisplay}{The Feynman Rules are as follows:}
% \begin{verbatim}
% \def\arraystretch{3} \arraycolsep=0.2cm
% \[ \begin{array}{rcl}
@@ -521,7 +752,7 @@
% } % 3-gluon vertex
% &=& \displaystyle
% -g f^{abc} (
-% g_{\beta\gamma} (q-r)_\alpha +
+% g_{\beta\gamma} (q-r)_\alpha +
% g_{\gamma\alpha} (r-p)_\beta +
% g_{\alpha\beta} (p-q)_\gamma
% ) \\
@@ -539,7 +770,9 @@
% ghost\par}}
% \end{array} \]
% \end{verbatim}
-% \hrule
+% \end{bigdisplay}
+%
+% \begin{bigdisplay}{\dots giving:}
% \def\arraystretch{3} \arraycolsep=0.2cm
% \[ \begin{array}{rcl}
% \feyn{\vertexlabel^a !{fA}p \vertexlabel^b}
@@ -564,7 +797,7 @@
% }
% &=& \displaystyle
% -g f^{abc} (
-% g_{\beta\gamma} (q-r)_\alpha +
+% g_{\beta\gamma} (q-r)_\alpha +
% g_{\gamma\alpha} (r-p)_\beta +
% g_{\alpha\beta} (p-q)_\gamma
% ) \\
@@ -583,8 +816,8 @@
% \end{array} \]
% \end{bigdisplay}
%
-% The diagrams can also appear as parts of equations:
-% \begin{bigdisplay}
+% \begin{bigdisplay}{The diagrams can very naturally appear as parts of equations
+% (as is perhaps by now obvious):}
% \begin{verbatim}
% \begin{eqnarray}
% \feyn{fcf} &=& \feyn{faf + fpf + fpfpf + \cdots} \\
@@ -602,11 +835,28 @@
%
% \section{Installation}
%
-% You should be able to find generic instructions for installing
+% The nominal distribution point for the Feyn package is CTAN,
+% under \texttt{fonts/feyn}\footnote{\url{https://ctan.org/pkg/feyn}}.
+%
+% The feyn package is included in the TeXLive distribution\footnote{\url{http://www.tug.org/texlive/}}, so
+% you may have it on your machine already. If not, or if you need a
+% more up-to-date version, read on.
+%
+% Since the package is on CTAN, it should be easily installed and
+% updated using the tools which support this in your TeX distribution.
+% For TeXLive, that's
+% `tlmgr'\footnote{\url{https://www.tug.org/texlive/tlmgr.html}}, and
+% for MikTeX see the maintenance section of the
+% manual\footnote{\url{https://docs.miktex.org/faq/maintenance.html}}.
+%
+% \subsection{Installing by hand}
+%
+% If, for some reason, you need to install the package by hand, then
+% you should be able to find generic instructions for installing
% \LaTeX\ files at
-% \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=installthings}.
-%
-% If you have not done so already, you need to extract the package
+% \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=installthings}.
+%
+% In brief: 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
@@ -619,8 +869,8 @@
% and these will usually be invoked by default when \LaTeX\ or
% pdf\LaTeX\ is run.
%
-% If you are using a \TeX\ system based on TeXLive or teTeX (which is true of most Unix
-% installations, and most MacOS\,X installations), then you can
+% If you are using a \TeX\ system based on TeXLive (which is true of most Unix
+% installations, and most macOS installations), then you can
% determine the style-file and \metafont\ search paths using the commands
% \begin{verbatim}
% % kpsepath tex
@@ -631,14 +881,41 @@
% and you can confirm that the files are findable with the commands
% \texttt{kpsewhich feyn.sty} and \texttt{kpsewhich feyn10.mf}.
%
-% Users of other systems will have similar mechanisms
-% for finding and confirming the search paths (and if anyone wishes to
-% send me details, I can add the details to this document).
+% \section{Licence}
+%
+% The following is the text of the BSD 2-clause licence.
+%
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions are
+% met:
+%
+% 1. Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+%
+% 2. Redistributions in binary form must reproduce the above copyright
+% notice, this list of conditions and the following disclaimer in the
+% documentation and/or other materials provided with the distribution.
+%
+% This software is provided by the copyright holders and contributors
+% ``as is'' and any express or implied warranties, including, but not
+% limited to, the implied warranties of merchantability and fitness for
+% a particular purpose are disclaimed. in no event shall the copyright
+% holder or contributors be liable for any direct, indirect, incidental,
+% special, exemplary, or consequential damages (including, but not
+% limited to, procurement of substitute goods or services; loss of use,
+% data, or profits; or business interruption) however caused and on any
+% theory of liability, whether in contract, strict liability, or tort
+% (including negligence or otherwise) arising in any way out of the use
+% of this software, even if advised of the possibility of such damage.
+%
%
% \subsection*{Acknowledgements}
%
-% Thanks to Purnendu Chakraborty, Fabio Correa, and Bryan Chen for
-% suggestions and testing at various times.
+% Thanks to Purnendu Chakraborty, Fabio Correa, Bryan Chen, Hoang
+% Nghia Nguyen and Luciano Pandola for
+% suggestions and testing (and encouragement) at various times.
%
%
% \StopEventually{}
@@ -673,7 +950,7 @@
% 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.
+% 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}{%
@@ -698,6 +975,19 @@
}{}
% \end{macrocode}
%
+% Finally, do the same for the extended-size fonts, declaring the
+% feynx math font family.
+% \begin{macrocode}
+\DeclareFontFamily{OMS}{feynx}{\skewchar\font'000}
+\DeclareFontShape{OMS}{feynx}{m}{n}{%
+ <-10.5>feynx10%
+ <10.5-11.5>feynx11%
+ <11.5-15>feynx12%
+ <15-21>feynx18%
+ <21->feynx24%
+ }{}
+% \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
@@ -711,6 +1001,8 @@
\DeclareSymbolFontAlphabet{\feyn@alphabet}{feynman}
\DeclareSymbolFont{textfeynman}{OMS}{textfeyn}{m}{n}
\DeclareSymbolFontAlphabet{\Feyn@alphabet}{textfeynman}
+\DeclareSymbolFont{feynmanextended}{OMS}{feynx}{m}{n}
+\DeclareSymbolFontAlphabet{\FEYN@alphabet}{feynmanextended}
% \end{macrocode}
%
% Now use these font-setting commands, defining |\feyn| and |\Feyn| to
@@ -730,6 +1022,9 @@
\def\Feyn{\begingroup
\let!\momentum % ...or \Feyn
\Feyn@}
+ \def\FEYN{\begingroup
+ \let!\momentum % ...or \FEYN
+ \FEYN@}
\else
{\catcode`\!=\active % only make ! active within \feyn
\gdef\feyn{%
@@ -741,10 +1036,19 @@
\begingroup % ends in \Feyn@
\catcode`\!=\active
\let!=\momentum
- \Feyn@}}
+ \Feyn@}
+ \gdef\FEYN{%
+ \begingroup % ends in \FEYN@
+ \catcode`\!=\active
+ \let!=\momentum
+ \FEYN@}}
\fi
-\def\feyn@#1{\feyn@alphabet{#1}\endgroup}
-\def\Feyn@#1{\Feyn@alphabet{#1}\endgroup}
+\def\feyn@#1{\let\feyn@mfmodule\feyn@mfbasemodule
+ \feyn@alphabet{#1}\endgroup}
+\def\Feyn@#1{\let\feyn@mfmodule\feyn@mfbasemodule
+ \Feyn@alphabet{#1}\endgroup}
+\def\FEYN@#1{\let\feyn@mfmodule\feyn@mfextendedmodule
+ \FEYN@alphabet{#1}\endgroup}
% \end{macrocode}
% \end{macro}
%
@@ -758,7 +1062,7 @@
% 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
+% The character |"20| in the feyn font is a dummy charcter, with 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
@@ -766,27 +1070,36 @@
% \begin{macro}{\feyn@module}
% \begin{macro}{\feyn@maxis}
% \begin{macrocode}
-\DeclareMathSymbol{\FeynSpaceChar}{\mathord}{feynman}{"7F}
+\DeclareMathSymbol{\FeynSpaceChar}{\mathord}{feynman}{"20}
\setbox0=\hbox{$\FeynSpaceChar$}
-\newdimen\feyn@mfmodule \feyn@mfmodule=\wd0
+\newdimen\feyn@mfbasemodule \feyn@mfbasemodule=\wd0
\newdimen\feyn@module \feyn@module=2\wd0
\newdimen\feyn@maxis \feyn@maxis=\ht0
+\DeclareMathSymbol{\FeynxSpaceChar}{\mathord}{feynmanextended}{"20}
+\setbox0=\hbox{$\FeynxSpaceChar$}
+\newdimen\feyn@mfextendedmodule \feyn@mfextendedmodule=\wd0
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Diagram}
% Define the |\Diagram| macro, which lays out a semi-complicated
-% diagram in 2-d.
+% diagram in 2-d. The macro takes an optional argument which can be
+% either |[bottom]| or |[centre]|
% \begin{macrocode}
{\catcode`\!=\active
\gdef\Diagram{%
\begingroup % ends in \Diagram@
\catcode`\!=\active
\let!\momentum
- \Diagram@}}
-\def\Diagram@#1{\setbox0=\hbox{\vbox{\offinterlineskip \let\\\cr
- \halign{&$\displaystyle\feyn{##}$\cr #1\crcr}}}%
+ % \Diagram@
+ \@ifnextchar[\Diagram@{\Diagram@[centre]}%]
+ }}
+\let\Diagram@pos@centre\vcenter
+\let\Diagram@pos@center\vcenter %for Webster fans
+\let\Diagram@pos@bottom\relax
+\def\Diagram@[#1]#2{\setbox0=\hbox{\vbox{\offinterlineskip \let\\\cr
+ \halign{&$\displaystyle\feyn{##}$\cr #2\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
@@ -798,11 +1111,30 @@
% \begin{macrocode}
\@tempdima=\ht0
\advance\@tempdima by 2\feyn@maxis \ht0=\@tempdima
- \vcenter{\box0}%
+ % no error checking -- unrecognised placement specifiers just expand to \relax
+ \csname Diagram@pos@#1\endcsname{\box0}%
\endgroup}% end group begun in \Diagram
% \end{macrocode}
% \end{macro}
%
+% Define |\DIAGRAM| identically, except for using |\FEYN| rather than |\feyn|.
+% \begin{macrocode}
+{\catcode`\!=\active
+ \gdef\DIAGRAM{%
+ \begingroup % ends in \Diagram@
+ \catcode`\!=\active
+ \let!\momentum
+ % \DIAGRAM@
+ \@ifnextchar[\DIAGRAM@{\DIAGRAM@[centre]}%]
+ }}
+\def\DIAGRAM@[#1]#2{\setbox0=\hbox{\vbox{\offinterlineskip \let\\\cr
+ \halign{&$\displaystyle\FEYN{##}$\cr #2\crcr}}}%
+ \@tempdima=\ht0
+ \advance\@tempdima by 2\feyn@maxis \ht0=\@tempdima
+ \csname Diagram@pos@#1\endcsname{\box0}%
+ \endgroup}% end group begun in \Diagram
+% \end{macrocode}
+%
% \begin{macro}{\maxis}
% Raise the argument to the math axis.
% \begin{macrocode}
@@ -810,6 +1142,64 @@
% \end{macrocode}
% \end{macro}
%
+% \iffalse
+% I feel that something like the following is surely somehow useful,
+% but the spacing doesn't quite work out with what I've got here.
+% \def\fstack#1{\vbox{\baselineskip=0pt \@fstack#1,,}}
+% \def\@fstack#1,{%
+% \def\@tempa{#1}%
+% \ifx\@tempa\@empty
+% \let\@next\relax
+% \else
+% \hbox{$\feyn{#1}$}%
+% \let\@next\@fstack
+% \fi
+% \@next
+% }
+% \[
+% \feyn{fsfg1\fstack{f0 gl,f0 glu,gv,ff}g2ffs \showlists}
+% \]
+% \fi
+%
+% \begin{macro}{\belowl}
+% The argument of the |\belowl| macro is a string of characters in the
+% \feynx\ font. They are set in a box, and then moved so that the box
+% takes up zero horizontal width, and is moved downwards by its height
+% -- that is, it is moved diagonally downwards and leftwards. It
+% means that the bottom half of a pair of incoming or outgoing
+% propagators can be set immediately belowl the upper half, without
+% having to use the |\Diagram| macro.
+% \begin{macrocode}
+\def\belowl#1{%
+ \ifdim\feyn@mfmodule=\feyn@mfbasemodule
+ \let\@next\feyn
+ \else
+ \let\@next\FEYN
+ \fi
+ \setbox0\hbox{$\@next{#1}$}%
+ \hskip-\wd0 \lower\ht0\box0
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\belowr}
+% The |\belowr| macro is almost exactly the same, except that the
+% argument is shifted rightwards, which is sometimes more natural to
+% express.
+% \begin{macrocode}
+\def\belowr#1{%
+ \ifdim\feyn@mfmodule=\feyn@mfbasemodule
+ \let\@next\feyn
+ \else
+ \let\@next\FEYN
+ \fi
+ \setbox0\hbox{$\@next{#1}$}%
+ \@tempdima=\wd0
+ \lower\ht0\box0
+ \hskip-\@tempdima
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\momentum}
% Manages annotation of characters. |\momentum{ch}{text}| sets the character
% ch, which may be a ligature, and puts the given text at the recommended
@@ -820,11 +1210,12 @@
%
% First, some support macros.
%
-% |\feyn@nudge| is a small amount
+% |\feyn@nudge| is a small amount
% which is added to the annotation positions, to keep them clear of the
% point they're annotating.
% \begin{macrocode}
-\newdimen\feyn@nudge \feyn@nudge=\feyn@mfmodule \divide\feyn@nudge by 3
+\newdimen\feyn@nudge
+ \feyn@nudge=\feyn@mfbasemodule \divide\feyn@nudge by 3
% \end{macrocode}
%
% The various |\feyn@pos@<x>| macros position their third argument
@@ -881,9 +1272,9 @@
\hbox to 0pt{\hss$\scriptstyle #3$\hskip\feyn@nudge}\hss}}%
\ht1=0pt \dp1=0pt \box1}
% \end{macrocode}
-%
+%
% Now include the definitions of the annotation positions, as extracted
-% from the Metafont file. These define macros |\feyn@ann@#1|,
+% from the Metafont file. These define macros |\feyn@ann@#1|,
% where argument |#1| is a given character (or ligature) at the
% position |(#2,#3)|, using the various |\feyn@pos@<x>| macros. The
% |<x>| is either the value of argument |#4|, or the contents of
@@ -901,84 +1292,93 @@
% \begin{macrocode}
% @FEYNANNOTATIONS@
% commands generated by parse-ligtables...
-\feyn@annotation{f}{0.99974}{0.35}{top}% "f"
-\feyn@annotation{fA}{0.99974}{0.35}{top}% "F"
-\feyn@annotation{fV}{0.99974}{0.35}{top}% 6
-\feyn@annotation{fu}{0.70692}{0.95692}{ulft}% "e"
-\feyn@annotation{fuA}{0.70692}{0.95692}{ulft}% "E"
-\feyn@annotation{fuV}{0.70692}{0.95692}{ulft}% 5
-\feyn@annotation{fd}{0.70692}{0.95692}{urt}% "d"
-\feyn@annotation{fdA}{0.70692}{0.95692}{urt}% "D"
-\feyn@annotation{fdV}{0.70692}{0.95692}{urt}% 4
-\feyn@annotation{fv}{0}{1.24974}{urt}% "b"
-\feyn@annotation{fvA}{0}{1.24974}{urt}% "B"
-\feyn@annotation{fvV}{0}{1.24974}{urt}% 2
-\feyn@annotation{m}{0.99974}{0.32802}{top}% "m"
-\feyn@annotation{mA}{0.99974}{0.32802}{top}% "M"
-\feyn@annotation{mV}{0.99974}{0.32802}{top}% 13
-\feyn@annotation{ms}{0.49986}{0.32802}{top}% 11
-\feyn@annotation{fl}{0}{1.85}{top}% "l"
-\feyn@annotation{flA}{0}{1.85}{top}% "L"
-\feyn@annotation{flV}{0}{1.85}{top}% 12
-\feyn@annotation{flu}{0}{-1.35}{bot}% "n"
-\feyn@annotation{fluA}{0}{-1.35}{bot}% "N"
-\feyn@annotation{fluV}{0}{-1.35}{bot}% 14
-\feyn@annotation{flS}{0}{1.23335}{top}% "o"
-\feyn@annotation{flSA}{0}{1.23335}{top}% "O"
-\feyn@annotation{flSV}{0}{1.23335}{top}% 15
-\feyn@annotation{flSu}{0}{-0.90001}{bot}% "w"
-\feyn@annotation{flSuA}{0}{-0.90001}{bot}% "W"
-\feyn@annotation{flSuV}{0}{-0.90001}{bot}% 23
-\feyn@annotation{g}{0.99974}{0.45}{top}% "g"
-\feyn@annotation{gA}{0.99974}{0.45}{top}% "G"
-\feyn@annotation{gV}{0.99974}{0.45}{top}% 7
-\feyn@annotation{gu}{0.70692}{0.95692}{ulft}% "u"
-\feyn@annotation{guA}{0.70692}{0.95692}{ulft}% "U"
-\feyn@annotation{guV}{0.70692}{0.95692}{ulft}% 21
-\feyn@annotation{gd}{0.70692}{0.95692}{urt}% "v"
-\feyn@annotation{gdA}{0.70692}{0.95692}{urt}% "V"
-\feyn@annotation{gdV}{0.70692}{0.95692}{urt}% 22
-\feyn@annotation{gv}{0}{1.24974}{urt}% "}"
-\feyn@annotation{gvA}{0}{1.24974}{urt}% "]"
-\feyn@annotation{gvV}{0}{1.24974}{urt}% 29
-\feyn@annotation{g1}{-1.41422}{1.66422}{ulft}% "q"
-\feyn@annotation{g1A}{-1.41422}{1.66422}{ulft}% "Q"
-\feyn@annotation{g1V}{-1.41422}{1.66422}{ulft}% 17
-\feyn@annotation{g2}{1.41422}{1.66422}{urt}% "r"
-\feyn@annotation{g2A}{1.41422}{1.66422}{urt}% "R"
-\feyn@annotation{g2V}{1.41422}{1.66422}{urt}% 18
-\feyn@annotation{g3}{1.41422}{-1.16422}{lrt}% "s"
-\feyn@annotation{g3A}{1.41422}{-1.16422}{lrt}% "S"
-\feyn@annotation{g3V}{1.41422}{-1.16422}{lrt}% 19
-\feyn@annotation{g4}{-1.41422}{-1.16422}{llft}% "t"
-\feyn@annotation{g4A}{-1.41422}{-1.16422}{llft}% "T"
-\feyn@annotation{g4V}{-1.41422}{-1.16422}{llft}% 20
-\feyn@annotation{gl}{0}{2.25}{urt}% "y"
-\feyn@annotation{glA}{0}{2.25}{urt}% "Y"
-\feyn@annotation{glV}{0}{2.25}{urt}% 25
-\feyn@annotation{glu}{0}{-1.75}{llft}% "z"
-\feyn@annotation{gluA}{0}{-1.75}{llft}% "Z"
-\feyn@annotation{gluV}{0}{-1.75}{llft}% 26
-\feyn@annotation{glB}{0}{2.91667}{urt}% "{"
-\feyn@annotation{glBA}{0}{2.91667}{urt}% "["
-\feyn@annotation{glBV}{0}{2.91667}{urt}% 27
-\feyn@annotation{glS}{0}{1.5833}{llft}% "|"
-\feyn@annotation{glSA}{0}{1.5833}{llft}% "\"
-\feyn@annotation{glSV}{0}{1.5833}{llft}% 28
-\feyn@annotation{h}{0.99974}{0.25}{top}% "h"
-\feyn@annotation{hA}{0.99974}{0.25}{top}% "H"
-\feyn@annotation{hV}{0.99974}{0.25}{top}% 8
-\feyn@annotation{hu}{0.70464}{0.95464}{ulft}% "i"
-\feyn@annotation{huA}{0.70464}{0.95464}{ulft}% "I"
-\feyn@annotation{huV}{0.70464}{0.95464}{ulft}% 9
-\feyn@annotation{hd}{0.70464}{0.95464}{urt}% "j"
-\feyn@annotation{hdA}{0.70464}{0.95464}{urt}% "J"
-\feyn@annotation{hdV}{0.70464}{0.95464}{urt}% 10
-\feyn@annotation{hs}{0.49986}{0.25}{top}% "K"
-\feyn@annotation{c}{0.65044}{0.90044}{top}% "c"
-\feyn@annotation{p}{0.65}{0.9}{top}% "p"
-\feyn@annotation{P}{0.65044}{0.90044}{top}% "P"
-\feyn@annotation{x}{0}{0.55641}{top}% "x"
+\feyn@annotation{f}{0.99974}{0.35}{top}% 102 = "f"
+\feyn@annotation{fA}{0.99974}{0.35}{top}% 70 = "F"
+\feyn@annotation{fV}{0.99974}{0.35}{top}% 6 = 6
+\feyn@annotation{flo}{0}{2.25}{top}% 107 = "k"
+\feyn@annotation{floA}{0}{2.25}{top}% 75 = "K"
+\feyn@annotation{floV}{0}{2.25}{top}% 11 = 11
+\feyn@annotation{fu}{0.70692}{0.95692}{ulft}% 101 = "e"
+\feyn@annotation{fuA}{0.70692}{0.95692}{ulft}% 69 = "E"
+\feyn@annotation{fuV}{0.70692}{0.95692}{ulft}% 5 = 5
+\feyn@annotation{fd}{0.70692}{0.95692}{urt}% 100 = "d"
+\feyn@annotation{fdA}{0.70692}{0.95692}{urt}% 68 = "D"
+\feyn@annotation{fdV}{0.70692}{0.95692}{urt}% 4 = 4
+\feyn@annotation{fv}{0}{1.24974}{urt}% 98 = "b"
+\feyn@annotation{fvA}{0}{1.24974}{urt}% 66 = "B"
+\feyn@annotation{fvV}{0}{1.24974}{urt}% 2 = 2
+\feyn@annotation{m}{0.99974}{0.32802}{top}% 109 = "m"
+\feyn@annotation{mA}{0.99974}{0.32802}{top}% 77 = "M"
+\feyn@annotation{mV}{0.99974}{0.32802}{top}% 13 = 13
+\feyn@annotation{ms}{0.49986}{0.32802}{top}% 35 = "#"
+\feyn@annotation{fl}{0}{1.75}{top}% 108 = "l"
+\feyn@annotation{flA}{0}{1.75}{top}% 76 = "L"
+\feyn@annotation{flV}{0}{1.75}{top}% 12 = 12
+\feyn@annotation{flu}{0}{-1.25}{bot}% 110 = "n"
+\feyn@annotation{fluA}{0}{-1.25}{bot}% 78 = "N"
+\feyn@annotation{fluV}{0}{-1.25}{bot}% 14 = 14
+\feyn@annotation{flS}{0}{1.16667}{top}% 111 = "o"
+\feyn@annotation{flSA}{0}{1.16667}{top}% 79 = "O"
+\feyn@annotation{flSV}{0}{1.16667}{top}% 15 = 15
+\feyn@annotation{flSu}{0}{-0.83334}{bot}% 119 = "w"
+\feyn@annotation{flSuA}{0}{-0.83334}{bot}% 87 = "W"
+\feyn@annotation{flSuV}{0}{-0.83334}{bot}% 23 = 23
+\feyn@annotation{g}{0.99974}{0.45}{top}% 103 = "g"
+\feyn@annotation{gA}{0.99974}{0.45}{top}% 71 = "G"
+\feyn@annotation{gV}{0.99974}{0.45}{top}% 7 = 7
+\feyn@annotation{gu}{0.70692}{0.95692}{ulft}% 117 = "u"
+\feyn@annotation{guA}{0.70692}{0.95692}{ulft}% 85 = "U"
+\feyn@annotation{guV}{0.70692}{0.95692}{ulft}% 21 = 21
+\feyn@annotation{gd}{0.70692}{0.95692}{urt}% 118 = "v"
+\feyn@annotation{gdA}{0.70692}{0.95692}{urt}% 86 = "V"
+\feyn@annotation{gdV}{0.70692}{0.95692}{urt}% 22 = 22
+\feyn@annotation{gv}{0}{1.24974}{urt}% 125 = "}"
+\feyn@annotation{gvA}{0}{1.24974}{urt}% 93 = "]"
+\feyn@annotation{gvV}{0}{1.24974}{urt}% 29 = 29
+\feyn@annotation{g1}{-1}{1.98206}{ulft}% 113 = "q"
+\feyn@annotation{g1A}{-1}{1.98206}{ulft}% 81 = "Q"
+\feyn@annotation{g1V}{-1}{1.98206}{ulft}% 17 = 17
+\feyn@annotation{g2}{1.41422}{1.66422}{urt}% 114 = "r"
+\feyn@annotation{g2A}{1.41422}{1.66422}{urt}% 82 = "R"
+\feyn@annotation{g2V}{1.41422}{1.66422}{urt}% 18 = 18
+\feyn@annotation{g3}{1.41422}{-1.16422}{lrt}% 115 = "s"
+\feyn@annotation{g3A}{1.41422}{-1.16422}{lrt}% 83 = "S"
+\feyn@annotation{g3V}{1.41422}{-1.16422}{lrt}% 19 = 19
+\feyn@annotation{g4}{-1}{-1.48206}{llft}% 116 = "t"
+\feyn@annotation{g4A}{-1}{-1.48206}{llft}% 84 = "T"
+\feyn@annotation{g4V}{-1}{-1.48206}{llft}% 20 = 20
+\feyn@annotation{gl}{0}{1.75}{urt}% 121 = "y"
+\feyn@annotation{glA}{0}{1.75}{urt}% 89 = "Y"
+\feyn@annotation{glV}{0}{1.75}{urt}% 25 = 25
+\feyn@annotation{glu}{0}{-1.25}{llft}% 122 = "z"
+\feyn@annotation{gluA}{0}{-1.25}{llft}% 90 = "Z"
+\feyn@annotation{gluV}{0}{-1.25}{llft}% 26 = 26
+\feyn@annotation{glB}{1.02051}{2.71367}{urt}% 123 = "{"
+\feyn@annotation{glBA}{1.02051}{2.71367}{urt}% 91 = "["
+\feyn@annotation{glBV}{1.02051}{2.71367}{urt}% 27 = 27
+\feyn@annotation{glS}{0}{1.5833}{llft}% 124 = "|"
+\feyn@annotation{glSA}{0}{1.5833}{llft}% 92 = "\"
+\feyn@annotation{glSV}{0}{1.5833}{llft}% 28 = 28
+\feyn@annotation{h}{0.99974}{0.25}{top}% 104 = "h"
+\feyn@annotation{hA}{0.99974}{0.25}{top}% 72 = "H"
+\feyn@annotation{hV}{0.99974}{0.25}{top}% 8 = 8
+\feyn@annotation{hu}{0.70464}{0.95464}{ulft}% 105 = "i"
+\feyn@annotation{huA}{0.70464}{0.95464}{ulft}% 73 = "I"
+\feyn@annotation{huV}{0.70464}{0.95464}{ulft}% 9 = 9
+\feyn@annotation{hd}{0.70464}{0.95464}{urt}% 106 = "j"
+\feyn@annotation{hdA}{0.70464}{0.95464}{urt}% 74 = "J"
+\feyn@annotation{hdV}{0.70464}{0.95464}{urt}% 10 = 10
+\feyn@annotation{hl}{0}{1.75}{top}% 126 = "~"
+\feyn@annotation{hlA}{0}{1.75}{top}% 94 = "^"
+\feyn@annotation{hlV}{0}{1.75}{top}% 30 = 30
+\feyn@annotation{hlu}{0}{-1.25}{top}% 127 = 127
+\feyn@annotation{hluA}{0}{-1.25}{top}% 95 = "_"
+\feyn@annotation{hluV}{0}{-1.25}{top}% 31 = 31
+\feyn@annotation{hs}{0.49986}{0.25}{top}% 34 = """
+\feyn@annotation{c}{0.65044}{0.90044}{top}% 99 = "c"
+\feyn@annotation{p}{0.65}{0.9}{top}% 112 = "p"
+\feyn@annotation{P}{0.65044}{0.90044}{top}% 80 = "P"
+\feyn@annotation{x}{0}{0.55641}{top}% 120 = "x"
% \end{macrocode}
%
%