Vẽ biểu đồ feynman với Feynmf

Oct 21 2020

Tôi đang cố gắng tạo sơ đồ bên dưới bằng cách sử dụng gói feynmf, nhưng tôi cực kỳ yếu và không biết phải bắt đầu từ đâu để tạo hai proton đi vào đốm màu. Tôi rất vui vì hai đường màu xanh lam xuất hiện dưới dạng đường đứt nét nếu các đường màu là không thể trong feynmf, nhưng tôi thực sự đánh giá cao một số trợ giúp về điều này.

Tương tự nếu có các gói dễ học khác có thể tạo ra điều này, tôi sẵn sàng học một thứ khác!

Cảm ơn!

Trả lời

2 Bernard Oct 21 2020 at 21:38

Một giải pháp pstricks với pst-node:

\documentclass[12pt, border=6pt, svgnames]{standalone}
\usepackage{pst-node}
\usepackage{sansmath} 

\begin{document}

\begin{pspicture}(-1.5,-1.5)(2.5,1.5)
\psnode(-1,1.2){up}{$p$} \psnode(-1,-1.2){dp}{$p$}
\pnodes(2.5,0.5){us}(2.5,-0.5){ds}(0,0){O}(1.2,0){I}
\ncline[linestyle=dashed, dash = 5.5pt 4pt, nodesepA=5pt]{O}{I}\naput[labelsep=2pt]{\sansmath $h$}
\pcline[linewidth=4pt, linecolor=blue](I)(us)\naput[labelsep=0pt]{$s$}
\pcline[linewidth=4pt, linecolor=blue](I)(ds)\nbput[labelsep=0pt]{$s$}
\psset{doubleline, doublecolor=Gainsboro, doublesep=4.5pt, nodesepA=10pt}
\pcline(up)(O)\pcline(dp)(O)
\psset{doubleline=false}\pcline(up)(O)\pcline(dp)(O)
\psdot[dotscale=2](I)
\psdot[dotstyle=Bo, dotscale=2.8, fillcolor=Gainsboro](O)%
\end{pspicture}

\end{document} 

1 Mark.X Oct 21 2020 at 18:33

Tôi tự hỏi nếu bạn đã nghe nói về Mathcha . Bạn có thể vẽ mọi thứ từ trang web của họ và nhận mã TiKz có thể tổng hợp được. Trên thực tế, sơ đồ Feynman là một trong những ví dụ mà họ đã cung cấp.

1 staircase27 Oct 21 2020 at 21:01

Điều này dựa trên các chi tiết từ Đường song song trong Sơ đồ Feynman nhưng tôi không thể đánh dấu đây là bản sao (xin lỗi không biết cách làm) vì vậy tôi quyết định đặt nó như một câu trả lời.

Đáng buồn thay, điều này không phải là dễ nhất trong feynmf nhưng nó có thể.

Cách để vẽ nó là tạo sơ đồ chỉ với các đường trung tâm cho mỗi chân proton và sau đó sử dụng \ fmfi (chế độ tức thời feynmf) để vẽ các bản sao dịch chuyển của các chân.

Nếu đường ban đầu được vẽ bằng

\fmf{plain}{i1,b}

thì hai dòng phụ có thể được vẽ bằng

\fmfi{plain}{vpath (__i1,__b) shifted (thick*(-0.5,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0.5,-2))}

Bạn có thể cần phải chơi với các ca nhưng hãy đảm bảo rằng hai ca hoàn toàn trái ngược nhau để nó trông đẹp.

Ngoài ra, rất hữu ích khi biết rằng đối số đầu tiên cho \ fmfi có thể là bất kỳ kiểu dòng nào có thể được sử dụng với \ fmf để các đường đứt nét, mũi tên, gluon squiggles hoặc bất kỳ thứ gì bình thường có thể được tạo ra cũng có thể được tạo cho các bản sao.

Ngoài ra bạn cũng yêu cầu làm thế nào để làm màu sắc. Điều này có thể thực hiện được nếu bạn sử dụng feynmp và metapost thay vì feynmf và metafont. Đây là sự khác biệt duy nhất giữa hai gói. feynmp hỗ trợ màu vì metafont hỗ trợ màu trong khi metafont chỉ hỗ trợ màu đen và trắng. Khi bạn đang sử dụng feynmp, việc thêm màu đơn giản như chỉ định forground = blue hoặc một số tùy chọn khác trong đối số đầu tiên của lệnh fmf.

\fmf{plain,foreground=blue}{i1,b}

Nếu bạn cần một màu khác với một màu có sẵn thì cú pháp hơi khó xử vì dấu phẩy cần nhân đôi nhưng được liệt kê trong phần màu của sách hướng dẫn có sẵn tại https://ctan.math.illinois.edu/macros/latex/contrib/feynmf/fmfman.pdf

1 BethLong Oct 23 2020 at 13:21

Theo lời khuyên từ cầu thang ở trên và sau khi hỏi một câu hỏi khác ở đây , sơ đồ cuối cùng mà tôi hài lòng có thể được tạo bằng cách sử dụng mã này:

\begin{fmffile}{feyngraph}  
   \begin{fmfgraph*}(100,40)
    \fmfleft{i2,i3}
       \fmflabel{$p$}{i2}
       \fmflabel{$p$}{i3}
    \fmfright{o1,o2}    
    \fmf{plain}{i2,b,i3}
    \fmf{dashes,label=$h$,label.side=left}{b,c}
  \fmf{plain,foreground=blue,label=$\color{blue}s$,label.side=left,width=3}{o1,c,o2}
    \fmffreeze
    \fmfblob{.1w}{b}
    \fmfdot{c}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(-0.75,0.5))}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(0.75, -0.5))}  
    \fmfi{plain}{vpath (__i3,__b) shifted (thick*(0.75,0.5))}
    \fmfi{plain}{vpath (__i3,__b) shifted (thick*(-0.75, -0.5))}
  \end{fmfgraph*}
\end{fmffile}

Hoặc đối với một vòng tròn bóng mờ thay vì đốm màu nở, hãy thay đổi \fmfblobthành \fmfv{decor.shape=circle,decor.filled=65,decor.size=3mm}{b}: