From 592c25270ddc1358ebd06e93ebc24f8875709c29 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 3 Nov 2017 21:37:13 +0000 Subject: feyn (3nov17) git-svn-id: svn://tug.org/texlive/trunk@45679 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/fonts/feyn/feyn.drv | 28 +- Master/texmf-dist/source/fonts/feyn/feyn.dtx | 806 ++++++++++++++++++++------- 2 files changed, 608 insertions(+), 226 deletions(-) (limited to 'Master/texmf-dist/source') 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@| 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@| macros. The % || 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} % % -- cgit v1.2.3