Como mover a posição da rotulagem no feynmp?

Como mover a posição da rotulagem no feynmp?

E se eu quiser um rótulo do outro lado do vértice ouférmion?

    \begin{center}
    \begin{fmffile}{elecdig}
    \begin{fmfgraph*}(150,100)
    \fmfpen{thin}
    \fmfleft{i1,i2,ip,i3,i4} 
    \fmfright{o1,o2,op,o3,o4}
    \fmfpen{thick}
    \fmf{fermion,tension=1,label=$v$}{i3,o3}
    \fmf{fermion,tension=1,label=Spin Direction}{i4,o4}
    %\fmf{fermion,tension=1,label=$spin=+\frac{1}{2}$}{v2,o2}
    \fmf{dashes,label=It can't be ${\hat{e}_R}$ but it is $e_R$}{ip,op}
    \fmf{phantom,tension=1}{o2,o1}
    \fmf{phantom,tension=1}{i2,i1}
    \fmf{fermion,tension=1,label=$v_{new}$}{o2,i2} 
    \fmf{fermion,tension=1,label=Spin Direction}{i1,o1}
    %\fmf{fermion,tension=1,label=$spin=+\frac{1}{2}$}{v1,o1}
    \fmflabel{Frame $1$.}{i3}
    \fmflabel{Frame $2$.}{i2}
    \end{fmfgraph*} 
    \end{fmffile}
    \end{center}

Quero mover v_new para outro lado Também há um problema quando não estou usando\fmfpen{grosso ou fino}e a segunda linha de cima automaticamente se compara às outras. ou seja,

    \begin{center}
    \begin{fmffile}{elecdig}
    \begin{fmfgraph*}(150,100)
    %\fmfpen{thin}
    \fmfleft{i1,i2,ip,i3,i4} 
    \fmfright{o1,o2,op,o3,o4}
    %\fmfpen{thick}
    \fmf{fermion,tension=1,label=$v$}{i3,o3}
    \fmf{fermion,tension=1,label=Spin Direction}{i4,o4}
    %\fmf{fermion,tension=1,label=$spin=+\frac{1}{2}$}{v2,o2}
    \fmf{dashes,label=It can't be ${\hat{e}_R}$ but it is $e_R$}{ip,op}
    \fmf{phantom,tension=1}{o2,o1}
    \fmf{phantom,tension=1}{i2,i1}
    \fmf{fermion,tension=1,label=$v_{new}$}{o2,i2} 
    \fmf{fermion,tension=1,label=Spin Direction}{i1,o1}
    %\fmf{fermion,tension=1,label=$spin=+\frac{1}{2}$}{v1,o1}
    \fmflabel{Frame $1$.}{i3}
    \fmflabel{Frame $2$.}{i2}
    \end{fmfgraph*} 
    \end{fmffile}
    \end{center}

isto dá,

insira a descrição da imagem aqui

Estou reafirmando o problema com referência a esta imagem:

  1. A segunda linha de cima é fina em comparação com outras

  2. Não sei como mudar o rótulo $v_{new}$ para o outro lado.

Responder1

Aqui está uma resposta alternativa que não usa feynmf, mas usa um novo pacote chamadoTikZ-Feynman(CTAN). TikZ-Feynman possui suporte embutido para setas de momento que, neste caso, podem ser usadas para indicar a velocidade e a direção de rotação dos férmions:

\documentclass{article}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}\noindent
\feynmandiagram [horizontal=a to b] 
                {a -- [fermion, momentum=\(v\), momentum'=spin] b}; \newline
\feynmandiagram [horizontal=a to b] 
                {a -- [fermion, reversed momentum=\(v\), momentum'=spin] b}; \newline
\end{document}

saída

Responder2

Você deve declarar uma posição de rótulo explícita no argumento de \fmf; no seu caso, o código deve ler

\fmf{fermion,tension=1,label=$v_{\mathrm{new}}$,label.side=left}{o2,i2}

Tomei a liberdade de acrescentar \mathrmao subscrito "novo".

Quanto ao seu outro ponto, temo não poder ajudá-lo. Eu recebo todas as linhas com a mesma espessura. Talvez seja um problema de renderização? Observe também que no seu primeiro trecho de código

\fmfpen{thin}
\fmfleft{i1,i2,ip,i3,i4} 
\fmfright{o1,o2,op,o3,o4}
\fmfpen{thick}

a declaração \fmfpen{thin}é inútil: você não está desenhando nenhuma linha e está deixando a caneta grossa logo depois dela.

informação relacionada