diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/feyn/feyn.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/feyn/feyn.dtx | 669 |
1 files changed, 0 insertions, 669 deletions
diff --git a/Master/texmf-dist/source/latex/feyn/feyn.dtx b/Master/texmf-dist/source/latex/feyn/feyn.dtx deleted file mode 100644 index e03087a58ed..00000000000 --- a/Master/texmf-dist/source/latex/feyn/feyn.dtx +++ /dev/null @@ -1,669 +0,0 @@ -% \iffalse -% This is feyn.dtx, which manages the use of the feyn Metafont -% -%% This software is copyright, 1991, 1994, 2001, Norman Gray. -%% -%% This program is free software; you can redistribute it and/or -%% modify it under the terms of the GNU General Public License -%% as published by the Free Software Foundation; either version 2 -%% of the License, or (at your option) any later version. -%% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. -%% -%% You should have received a copy of the GNU General Public License -%% along with this program; if not, write to the Free Software -%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -%% -%% Author: Norman Gray, norman@astro.gla.ac.uk. -%% Department of Physics and Astronomy, University of Glasgow, UK -%% -%% See the file LICENCE for a copy of the GPL. -%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html . -% -%<+package|driver>%% RCS Info $Id: feyn.dtx,v 1.11 2002/04/23 11:26:15 norman Exp $ -\def\ParseRCSDate$#1: #2 #3 ${\def\FEYN@Date{#2}} -\ParseRCSDate$Date: 2002/04/23 11:26:15 $ -\def\filename{feyn} -\def\fileversion{0.1} %%VERSION%% -\def\filedate{\FEYN@Date} -\def\docdate{\FEYN@Date} -%<+package>\NeedsTeXFormat{LaTeX2e} -%<+package>\ProvidesPackage{feyn}[\filedate\space\fileversion\space textpos] -%<+package>\typeout{Package: `feyn' \fileversion\space<\filedate>} -% -%<*driver> -\documentclass{ltxdoc} -\usepackage{feyn} -\title{The feyn font% - \thanks{This file has version number \fileversion, last revised - \filedate}} -\author{Norman Gray\\(\texttt{norman@astro.gla.ac.uk})} -\date{Version \fileversion, \filedate} -\newcommand\Lopt[1]{\textsf {#1}} -\newcommand\file[1]{\texttt {#1}} -\newcommand\Lcount[1]{\textsl {\small#1}} -\newcommand\pstyle[1]{\textsl {#1}} -%% \url macro (url.sty does this better) -\def\setpathdots{\discretionary{.}{}{.}} -\def\setpathslash{\discretionary{/}{}{/}} -{\catcode`\.=\active - \catcode`\/=\active - \gdef\pathcats{% - \catcode`\%=12 \catcode`\~=12 - \catcode`\.=\active \let.\setpathdots - \catcode`\/=\active \let/\setpathslash - \catcode`\#=12 \catcode`\_=12}% - } -\def\setpath#1{\ttfamily <\nobreak #1\nobreak>\endgroup} -\def\url{\begingroup\pathcats\setpath} -%\RecordChanges -%\OnlyDescription -\parskip=\medskipamount -\parindent=0pt -\begin{document} -\maketitle -\DocInput{feyn.dtx} -\end{document} -%</driver> -% -% \fi -% -% -% -% \CheckSum{175} -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -% -% -% -% -% -% -% \newcommand{\pslash}{p\llap{/\kern-0.3pt}} -% \newcommand{\feynx}{\textsl{feyn}} -% \newcommand{\metafont}{Metafont} -% -% -% This describes the font \feynx, which can be used to produce relatively -% simple Feynman diagrams within equations in a \LaTeX\ document. -% -% The other Feynman diagram package which exists is Thorsten Ohl's -% \textsl{feynmf}/\textsl{feynmp} package. That -% works by creating \metafont\ or MetaPost figures using a preprocessor. -% It's more general than this package, but is at its best when -% creating relatively large diagrams, for figures. -% In contrast, the present system consists of a carefully-designed font -% with which you can write simple diagrams, within equations or within text, -% in a size matching the surrounding text size. -% -% \section{Status} -% -% The font, and this associated style file, should be regarded as -% beta software at present. The propagators and vertices which are -% implemented are those which \emph{I} needed. I'd be delighted to -% add more if folk feel they would be useful. -% -% \section{Description} -% -% \makeatletter -% \def\refptcirc{\lower\FEYN@maxis \hbox to 0pt{\hss$\circ$\hss}} -% \makeatother -% \begin{table} -% \def\tableskip{\noalign{\smallskip}} -% \halign{$\refptcirc\feyn{#}$% -% \hfil\quad & $#$\hfil\quad & # \hfil\qquad && # \cr -% \omit Character & \omit & Name & Width & Height & Depth \cr -% \noalign{\smallskip\hrule\smallskip} -% f & f & fermion$^*$ & 2 & 0 & 0 \cr \tableskip -% fs & fs & short fermion$^*$ & 1 & 0 & 0 \cr \tableskip -% fl & fl & fermion loop$^*$ & 4 & 2 & 2 \cr \tableskip -% fu & fu & upward fermion (45$^\circ$)& $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% fd & fd & downward fermion & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% fv & fv & vertical fermion & 0 & 2 & 0 \cr \tableskip -% f0 & f0 & spacer$^*$ & 2 & 0 & 0 \cr \tableskip -% fs0 & fs0 & short spacer$^*$ & 1 & 0 & 0 \cr \tableskip -% g & g & gluon/photon$^*$ & 2 & 0 & 0 \cr \tableskip -% gl & gl & gluon loop$^*$ & 0 (4) & 2 & 0 \cr \tableskip -% glu & glu & gluon loop upsidedown$^*$ & 0 & 0 & 2 \cr \tableskip -% \smallbosonloop &\omit \verb-\smallbosonloop- & -% small gauge-boson loop & 0 & 1.4 & 0 \cr \tableskip -% \bigbosonloop &\omit \verb-\bigbosonloop- & -% big gauge-boson loop & 0 & 3 & 0 \cr \tableskip -% gu & gu & upward gluon (45$^\circ$) & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% gd & gd & downward gluon & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% gv & gv & vertical gluon & 0 & 2 & 0 \cr \tableskip -% gvs & gvs & short vertical gluon& 0 & (1) & 0 \cr \tableskip -% m & m & massive fermion$^*$ & 2 & 0 & 0 \cr \tableskip -% ms & ms & short massive fermion$^*$ & 1 & 0 & 0 \cr \tableskip -% h & h & ghost$^*$ & 2 & 0 & 0 \cr \tableskip -% hs & hs & short ghost$^*$ & 1 & 0 & 0 \cr \tableskip -% hu & hu & upward ghost (45$^\circ$) & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% hd & hd & downward ghost & $\sqrt2$ & $\sqrt2$ & 0 \cr \tableskip -% x & x & counterterm vertex$^*$ & 0 & (2) & (2) \cr \tableskip -% p & p & proper vertex$^*$ & (3) & (3) & (3) \cr \tableskip -% c & c & complete vertex$^*$ & (3) & (3) & (3) \cr \tableskip -% a & a & arrow$^*$ & 0 & 0 & 0 \cr -% } -% \caption[The characters in font \feynx.]{\label{chars} -% The characters in font \feynx. A~$^*$ means that -% the character is also available in textstyle size. The~$\circ$ shows the -% reference point of each character. See the notes on page~\pageref{charnotes}} -% \end{table} -% The characters in the font are shown in table~\ref{chars}, and the macros -% defined in \file{feyn.sty} are described in table~\ref{macros}. -% -% \iffalse Notes to table~\ref{chars}:\label{charnotes}\fi -% \subsubsection*{Notes to table~\ref{chars}\label{charnotes}} -% \begin{itemize} -% \item[(1)] The short vertical gluon is slightly shorter than the -% ordinary -% \iffalse -% \tracingmacros=2 \tracingcommands=2 -% \showthe\fontdimen22\textfont\symfeynman -% \tracingmacros=0 \tracingcommands=0 -% \fi -% vertical gluon, and is for the diagram~\hbox{$fsfglgvsffs = -% \feyn{fsfglgvsffs}$}, in which the vertical gluon would not meet the loop -% properly if it were full size. -% \item[(2)] The counterterm vertex is the same height as the proper vertex, -% although the black part is smaller. -% \item[(3)] The proper vertex and the complete vertex are specified -% in terms of a `blob-radius' which is about half a module. They have -% a width of 2~radii, and a height and depth of 1~radius. -% \item[(4)] All the gluon loops have zero width, and are centred at -% the centre of the loop. -% \end{itemize} -% The unnassigned positions in the \feynx\ font are filled -% with an obviously wrong dummy character, so that |$\feyn{A}$|, for example, -% produces $\feyn{A}$. -% -% \begin{table} -% \begin{description} -% \item[\cs{feyn}] Selects the diagram font. This must be used -% within math mode. \cs{Feyn} selects the text-mode diagram font. -% \item[\cs{Diagram\{\}}] For building more complicated diagrams. It -% takes one argument, which is like the contents of an \texttt{\{array\}} -% environment---a series of formulae separated by \&'s and \verb-\\-. See -% below for an example. The result is a box on the math-axis. -% \item[\cs{maxis}] Raises a formula to the math-axis, which is -% occasionally useful within in-text equations: eg -% |$\Feyn{fglf} - \maxis{\Feyn{faf}}$| produces -% $\Feyn{fglf} - \maxis{\Feyn{faf}}$. -% \item[\cs{vertexlabel\{p\}\{text\}}] Allows you to label a vertex. If -% the first parameter~$p$ is~$\wedge$, the~\emph{text} is placed above the -% point at which the command is given, if it is~\texttt{\_}, it is -% placed below. For example, |$\feyn{fa\vertexlabel^{p}f}$| produces -% $\feyn{fa\vertexlabel^{p}f}$. -% \item[\cs{feynstrut\{h\}\{d\}}] For use within an (eqn)array environment, or -% the like. It modifies the control sequence \verb-\strut- to be a strut of -% height~$h$ and depth~$d$, which can therefore be used to space the array -% out. -% \item[\cs{annotate\{x\}\{y\}\{text\}}] Puts the \emph{text}, -% between dollars, -% in a zero width box at offset~$(x,y)$ modules from the position of the -% |\annotate| command (which is generally the first command(s) after -% entering math-mode). Because the \emph{text} is in math-mode, anything -% that is not maths should be in an |\mbox|. -% \end{description} -% \caption{\label{macros} The macros defined in \file{feyn.sty}} -% \end{table} -% -% The \feynx\ font is modular, in the sense that all the -% dimensions are in terms of a module of 10pt, and all sizes given -% below are in units of modules. As well as 10pt, the font has 11pt -% and 12pt versions, and the correct one is selected depending on the -% text size declared (or defaulted) in the |\documentclass| command.. -% -% You draw a diagram by going into math-mode (between \$\dots\$), and selecting -% the diagrams font by the font-changing command \verb-\feyn{}- -% (exactly as you might use \verb-\mathrm- in math-mode). With a couple of -% exceptions, all the characters are obtained by typing a single -% letter, or a couple of letters which form a ligature, so that the -% letter~$f$ in the diagrams font (\verb-$\feyn{f}$-) produces a -% fermion of length~2 (modules), and~$fs$ produces a short fermion of -% length~1. As usual in maths mode, space characters are ignored, so -% you can add whitespace as required to make the expressions more -% legible. Some of the more heavily used characters are available in -% both display size and text size, with the text-size version invoked -% by |\Feyn{...}|, so that |\feyn{fglf}| gives $\feyn{fglf}$ and -% |\Feyn{fglf}| gives $\Feyn{fglf}$. The displaystyle characters -% are all on the math-axis, the textstyle ones are on the text line. -% -% Here are some examples. -% -% \makeatletter -% \newdimen\halftextwidth -% \halftextwidth=\textwidth -% \divide\halftextwidth by 2 -% \advance\halftextwidth by \tabcolsep -% {\obeyspaces\gdef {\hskip0.5em}} -% {\@makeother\|% \gdef\startcodeexample{\begin{tabular}{p{\halftextwidth}|c}}} -% \newenvironment{codeexample}{% -% \vskip\medskipamount -% \def\domyspecials{\do\\\do\{\do\}\do\~\do\&\do\#\do\^\do\_\do\~} -% \def\verbblock{\bgroup \let\do\@makeother\domyspecials -% \def\par{\hfil\break}\obeylines\obeyspaces\@verbblock} -% \def\@verbblock##1!{\ttfamily ##1\egroup} -% \startcodeexample -% }{% -% \crcr -% \end{tabular} -% \vskip\medskipamount -% } -% \makeatother -% -% \begin{codeexample} -% \verbblock\feyn{\vertexlabel^a f a -% \vertexlabel^p f\vertexlabel^b} -% = \displaystyle -% {i\delta^{ab} \over \pslash- m_0}! -% & -% \begin{minipage}[t]{\halftextwidth} -% $\feyn{\vertexlabel^a f a -% \vertexlabel^p f\vertexlabel^b} -% = \displaystyle -% {i\delta^{ab} \over \pslash- m_0}$ -% \\ -% \end{minipage} -% \end{codeexample} -% This is a simple one. -% -% \begin{codeexample} -% \verbblock\Diagram{\vertexlabel^a \\ -% fd \\ -% & g\vertexlabel_{\mu,c} \\ -% \vertexlabel_b fu\\ -% } -% = \displaystyle -% ig\gamma_\mu (T^c)_{ab}! -% & -% \begin{minipage}[t]{\halftextwidth} -% $\Diagram{\vertexlabel^a \\ -% fd \\ -% & g\vertexlabel_{\mu,c} \\ -% \vertexlabel_b fu\\ -% } -% = \displaystyle -% ig\gamma_\mu (T^c)_{ab}$ -% \end{minipage} -% \end{codeexample} -% The |\Diagram| command lays out its arguments as an array. -% -% Now a few more diagrams: -% \begin{codeexample} -% \verbblock\feyn{fs f gl f glu f fs}! -% & -% $\feyn{fs f gl f glu f fs}$ -% \end{codeexample} -% This is a ``short-fermion fermion gluon-loop fermion -% gluon-loop-upsidedown fermion short-fermion''. -% -% We can also have diagrams in the text, like~$\Feyn{fsfglffs}$, and we can -% annotate the diagrams -% \begin{codeexample} -% \verbblock\annotate{2}{-0.5}{\mbox{counterterm}} -% \annotate{1.3}{0.5}{l} -% \feyn{msmglgvs msxf}! -% & -% \begin{minipage}[t]{\halftextwidth} -% $\annotate{2}{-0.5}{\mbox{counterterm}} -% \annotate{1.3}{0.5}{l} -% \feyn{msmglgvs msxf}$ -% \end{minipage} -% \end{codeexample} -% This is a ``short-massive massive gluon-loop short-gluon-vertical -% short-massive counterterm fermion''. -% -% The expression for the heavy-fermion self-energy in the \textsc{ope} is -% \begin{codeexample} -% \verbblock\def\bracket#1{% -% \langle #1 \rangle} -% \begin{eqnarray*} -% -i\Sigma_{\rm ope} &=& -% \left[\feyn{faf + fsfglffs -% + \cdots} \right] 1 \\ -% && \quad{}+ -% \left[ \feyn{ fxfs0glfs0xf -% + \cdots} \right] -% \bracket{\overline\psi M \psi} \\ -% && \quad{}+ \left[ -% \Diagram{ &x &x \\ -% &gv &gv \\ -% fs &fs &fs \\} + \cdots -% \right] -% \bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\ -% \end{eqnarray*}! -% & -% \begin{minipage}[t]{\halftextwidth} -% \def\bracket#1{\langle #1 \rangle} -% \begin{eqnarray*} -% -i\Sigma_{\rm ope} &=& -% \left[\feyn{faf + fsfglffs + \cdots} \right] 1 \\ -% && \quad{}+ \left[ \feyn{ fxfs0glfs0xf + \cdots} \right] -% \bracket{\overline\psi M \psi} \\ -% && \quad{}+ \left[ -% \Diagram{ &x &x \\ -% &gv &gv \\ -% fs &fs &fs \\} + \cdots -% \right]\bracket{G_{\mu\nu}^a G_{\mu\nu}^a}\\ -% \end{eqnarray*} -% \end{minipage} -% \end{codeexample} -% -% The Feynman Rules are as follows: -% \begin{verbatim} -% \def\arraystretch{3} \arraycolsep=0.2cm -% \begin{array}{rcl} -% % quark propagator -% \feyn{\vertexlabel^a f a\vertexlabel^p f\vertexlabel^b} -% &=& \displaystyle -% {i\delta^{ab} \over \pslash- m_0} \\ -% % quark-gluon vertex -% \Diagram{\vertexlabel^a \\ fd \\ & g\vertexlabel_{\mu,c} \\ \vertexlabel_b fu\\} -% &=& \displaystyle -% ig\gamma_\mu (t^c)_{ab} \\ -% % gluon propagator -% \feyn{\vertexlabel^{\mu, a}g a\vertexlabel^k g \vertexlabel^{\nu, b}} -% &=& \displaystyle -% {-i\over k^2} \left[g_{\mu\nu} + (a_0 - 1) {k_\mu k_\nu \over k^2}\right] -% \delta^{ab} \\ -% % 3-gluon vertex -% \arrow{0.7}{0.7}{7}\arrow{0.7}{-0.7}{1}\arrow{2.41}{0}{4} -% \annotate{0.9}{0.8}{p}\annotate{0.9}{-0.9}{q} -% \Diagram{\vertexlabel^{\alpha, a}\\ -% gd \\ -% &gd \\ -% &&g\vertexlabel^{r}g \vertexlabel^{\gamma,c} \\ -% &gu \\ -% gu \\ -% \vertexlabel_{\beta,b}} -% &=& \displaystyle -% -g f^{abc} ( -% g_{\beta\gamma} (q-r)_\alpha + -% g_{\gamma\alpha} (r-p)_\beta + -% g_{\alpha\beta} (p-q)_\gamma -% ) \\ -% % ghost propagator -% \feyn{\vertexlabel^a h a\vertexlabel_p h\vertexlabel^b} -% &=& \displaystyle -% {i \over p^2} \delta_{ab} \\ -% % ghost-gluon vertex -% \Diagram{\vertexlabel^b \\ hd \\ & g\vertexlabel^{\mu,a} \\ -% \vertexlabel_c hu\\} -% &=& \displaystyle -% -g f^{abc}p_\mu -% \quad\raise 1ex\hbox{\hsize = 0pt\vtop{ -% \hbox to \hsize{where $p$ is the momentum of\hss} -% \hbox to \hsize{the outgoing positive energy ghost\hss} -% }} -% \end{array} -% \end{verbatim} -% \dots giving -% \begin{equation} -% \def\arraystretch{3} \arraycolsep=0.2cm -% \begin{array}{rcl} -% \feyn{\vertexlabel^a f a\vertexlabel^p f\vertexlabel^b} -% &=& \displaystyle -% {i\delta^{ab} \over \pslash- m_0} \\ -% \Diagram{\vertexlabel^a \\ fd \\ & g\vertexlabel_{\mu,c} \\ \vertexlabel_b fu\\} -% &=& \displaystyle -% ig\gamma_\mu (t^c)_{ab} \\ -% \feyn{\vertexlabel^{\mu, a}g a\vertexlabel^k g \vertexlabel^{\nu, b}} -% &=& \displaystyle -% {-i\over k^2} \left[g_{\mu\nu} + (a_0 - 1) {k_\mu k_\nu \over k^2}\right] -% \delta^{ab} \\ -% \arrow{0.7}{0.7}{7}\arrow{0.7}{-0.7}{1}\arrow{2.41}{0}{4} -% \annotate{0.9}{0.8}{p}\annotate{0.9}{-0.9}{q} -% \Diagram{\vertexlabel^{\alpha, a}\\ -% gd \\ -% &gd \\ -% &&g\vertexlabel^{r}g \vertexlabel^{\gamma,c} \\ -% &gu \\ -% gu \\ -% \vertexlabel_{\beta,b}} -% &=& \displaystyle -% -g f^{abc} ( -% g_{\beta\gamma} (q-r)_\alpha + -% g_{\gamma\alpha} (r-p)_\beta + -% g_{\alpha\beta} (p-q)_\gamma -% ) \\ -% \feyn{\vertexlabel^a h a\vertexlabel_p h\vertexlabel^b} -% &=& \displaystyle -% {i \over p^2} \delta_{ab} \\ -% \Diagram{\vertexlabel^b \\ hd \\ & g\vertexlabel^{\mu,a} \\ -% \vertexlabel_c hu\\} -% &=& \displaystyle -% -g f^{abc}p_\mu -% \quad\raise 1ex\hbox{\hsize = 0pt\vtop{ -% \hbox to \hsize{where $p$ is the momentum of\hss} -% \hbox to \hsize{the outgoing positive energy ghost\hss} -% }} -% \end{array} -% \end{equation} -% -% The diagrams can also appear as parts of equations: -% \begin{eqnarray} -% \feyn{fcf} &=& \feyn{faf + fpf + fpfpf + \cdots} \\ -% &=& \sum_{n=0}^\infty \feyn{fsafs ( pfsafs)}^n \\ -% &=& \feyn{\frac{fsafs}{1-(pfsafs)}}. -% \end{eqnarray} -% -% \section{Installation} -% -% If you have not done so already, you need to extract the package -% file from the distribution file using |latex feyn.ins|. The -% resulting \file{feyn.sty} should be installed in the usual location -% for style files -- that is, something like -% \file{texmf.local/tex/latex/feyn.sty}. The \metafont\ source files -% \file{*.mf} should be installed in a directory with a location such as -% \file{texmf.local/fonts/source/feyn/}. That should be all you need -% to do as regards the installation of the fonts -- if your \TeX\ -% setup is installed correctly, then the usual font-generation -% commands (such as \file{mktexpk} for example) should work as normal. -% -% -% \StopEventually{} -% -% \section{Implementation} -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% Declare the feyn math font family. The |\skewchar| for this font -% (see the \TeX book, p431) can be set to zero, since it's a -% completely upright maths font (the least of its peculiarities). We -% don't have the font in much of a range of sizes. -% \begin{macrocode} -\DeclareFontFamily{OMS}{feyn}{\skewchar\font'000} -\DeclareFontShape{OMS}{feyn}{m}{n}{% - <-10.5>feyn10% - <10.5-11.5>feyn11% - <11.5->feyn12% - }{} -% \end{macrocode} -% -% Now do the same for the text-size fonts, declaring the textfeyn math -% font family. -% \begin{macrocode} -\DeclareFontFamily{OMS}{textfeyn}{\skewchar\font'000} -\DeclareFontShape{OMS}{textfeyn}{m}{n}{% - <-10.5>feyntext10% - <10.5-11.5>feyntext11% - <11.5->feyntext12% - }{} -% \end{macrocode} -% -% XXX It would be nice to arrange things so that superscripts in -% the feyn font were drawn from cmmi7, or something. The original -% feyn.sty arranged this with |\scriptfont\diagramfam=\ninmi|, but -% it's not clear what the analogue in the FSS is. -% -% Now declare the `feynman' symbol font, and make the command |\feyn| -% set its argument in that font. Similarly have |\Feyn| invoke the -% feynman symbol font for the text sizes. -% \begin{macrocode} -\DeclareSymbolFont{feynman}{OMS}{feyn}{m}{n} -\DeclareSymbolFontAlphabet{\feyn}{feynman} -\DeclareSymbolFont{textfeynman}{OMS}{textfeyn}{m}{n} -\DeclareSymbolFontAlphabet{\Feyn}{textfeynman} -% \end{macrocode} -% -% -% Now get the size of the `module' (the length of the fermion), and the -% height of the math-axis, from the font. You might think that the -% math-axis is obtainable from |\fontdimen22| of the font, but we do -% not load it as an |{operator}| font when we invoke -% |\DeclareSymbolFont|, so it does not have all 22 parameters that a -% symbol font (as the \TeX book uses the term, rather than \LaTeXe's -% NFSS). I confess I don't \emph{really} understand the ins and outs -% of this, but this route is robust and not wrong. -% -% The character |"7F| in the feyn font is blank, but has width -% |module#| and height |a#| (using the dimensions of the font -% file). Use this to set the |\FEYN@module| and |\FEYN@maxis|. Note -% that the `module' used in this package file is twice the module used -% in the \metafont\ files themselves. -% \begin{macro}{\FEYN@module} -% \begin{macro}{\FEYN@maxis} -% \begin{macrocode} -\DeclareMathSymbol{\FeynSpaceChar}{\mathord}{feynman}{"7F} -\setbox0=\hbox{$\FeynSpaceChar$} -\newdimen\FEYN@module \FEYN@module=2\wd0 -\newdimen\FEYN@maxis \FEYN@maxis=\ht0 -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\Diagram} -% Define the |\Diagram| macro, which lays out a semi-complicated -% diagram in 2-d. -% \begin{macrocode} -\def\Diagram#1{\setbox0=\hbox{\vbox{\offinterlineskip \let\\\cr - \halign{&$\displaystyle\feyn{##}$\cr #1\crcr}}}% -% \end{macrocode} -% At this point, |\box0| has zero depth. It must be an hbox, because -% we're fiddling with its height within a enclosing |\vbox|. See the -% \TeX book pp 388--389. This takes advantage of appx G, rule 8 to -% move box0 down by the height of the math axis. The construction -% |\dp0 = -2\fontdimen22 \textfont2| also works, in the sense of -% moving the box onto the math axis, but makes the box too small, -% which means that surrounding text can encroach. -% \begin{macrocode} - \@tempdima=\ht0 - \advance\@tempdima by 2\FEYN@maxis \ht0=\@tempdima - \vcenter{\box0}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\maxis} -% Raise the argument to the math axis. -% \begin{macrocode} -\def\maxis#1{\raise\FEYN@maxis \hbox{$#1$}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\vertexlabel} -% The command |\vertexlabel^{text}| or |\vertexlabel_{text}| positions -% the |{text}| in maths mode either above or below, respectively, the -% current position. It's used at between characters to label a vertex. -% \begin{macrocode} -\def\vertexlabel#1#2{\setbox0=\hbox to 0pt{\hss$\scriptstyle #2$\hss} - \ifcat #1^ - \vbox to 0pt{\vss\box0\nointerlineskip\kern2\FEYN@maxis} - %\vbox to 0pt{\vss\box0\nointerlineskip\kern6pt} - \else\ifcat #1_ - \vbox to 0pt{\kern\FEYN@maxis\nointerlineskip\box0\vss} - %\vbox to 0pt{\kern2pt\nointerlineskip\box0\vss} - \else - \PackageError{feyn} - {Bad arguments for \string\vertexlabel} - {Usage: \string\vertexlabel^{text} or \string\vertexlabel_{text}} - \fi\fi - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\annotate} -% The |\annotate| command takes $x$ and $y$ coordinates in units of -% modules, and text (in math mode) to be placed on a |\diagram|. -% \begin{macrocode} -\def\annotate#1#2#3{\vcenter to 0pt{\vss - \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{\hss$\scriptstyle #3$\hss}\hss - }\vskip #2\FEYN@module}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\tannotate} -% The |\tannotate| command is just the same, but the annotating text -% is in horizontal mode. -% \begin{macrocode} -\def\tannotate#1#2#3{\vcenter to 0pt{\vss - \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{\hss #3\hss}\hss - }\vskip #2\FEYN@module}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\feynstrut} -% The macro |\feynstrut#1#2| defines |\strut| to have a height -% |#1| modules, and depth |#2| modules. -% \begin{macrocode} -\def\feynstrut#1#2{\setbox\strutbox=\hbox{\vrule - height #1\FEYN@module depth #2\FEYN@module width 0pt}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\arrow} -% The command |\arrow#1#2#3| puts an arrow of gradient |#3|${}\times 45^\circ$ -% at position |(#1,#2)|(modules). This doesn't work -- the |\char| -% results in a |\rm| character appearing, rather than a |\feyn| -% character. Putting in a symbol like `+' has the same effect, but -% putting in, say, `a' works as expected. In other words, it's to do -% with the character's mathcode, and the |\char| -% should be replaced by a |\mathchar"7?\@tempcnta| somehow. The -% problem is that that depends on the parameter |\fam| having a -% suitable value. It's not clear to me what this corresponds to in -% \LaTeXe. See the \TeX book, chapter 17. -% \begin{macrocode} -\def\arrow#1#2#3{\@tempcnta="28 \advance\@tempcnta by #3\vcenter to 0pt{\vss - \hbox to 0pt{\hskip #1\FEYN@module\hbox to 0pt{$\feyn{\char\@tempcnta}$}\hss - }\vskip #2\FEYN@module}} -% \end{macrocode} -% \end{macro} -% -% Declare symbols. All of these are ligatures. -% \begin{macrocode} -\DeclareMathSymbol{\wfermion}{0}{feynman}{"64} -%\DeclareMathSymbol{\Wfermion}{0}{feynman}{"44} -\DeclareMathSymbol{\hfermion}{0}{feynman}{"6B} -%\DeclareMathSymbol{\Hfermion}{0}{feynman}{"4B} -\DeclareMathSymbol{\shfermion}{0}{feynman}{"6C} -%\DeclareMathSymbol{\sHfermion}{0}{feynman}{"4C} -\DeclareMathSymbol{\whfermion}{0}{feynman}{"6D} -%\DeclareMathSymbol{\wHfermion}{0}{feynman}{"4D} -\DeclareMathSymbol{\gvcropped}{0}{feynman}{"07} -% \end{macrocode} -% But the following are not ligatures. -% \begin{macrocode} -\DeclareMathSymbol{\bigbosonloop}{0}{feynman}{"21} -\DeclareMathSymbol{\Bigbosonloop}{7}{feynman}{"21} -\DeclareMathSymbol{\smallbosonloop}{0}{feynman}{"20} -% \end{macrocode} -% -% -% \Finale -\endinput |