การวาดแผนภาพ feynman ด้วย Feynmf

Oct 21 2020

ฉันกำลังพยายามสร้างแผนภาพด้านล่างโดยใช้แพ็คเกจ feynmf แต่ฉันไม่มีความเชี่ยวชาญมากและฉันไม่รู้ว่าจะเริ่มสร้างโปรตอนสองตัวที่เข้าสู่หยด ฉันมีความสุขที่เส้นสีน้ำเงินสองเส้นออกมาเป็นเส้นประหากเส้นสีเป็นไปไม่ได้ใน feynmf แต่ฉันจะขอบคุณจริงๆสำหรับความช่วยเหลือในเรื่องนี้

ถ้ามีแพ็คเกจอื่น ๆ ที่เรียนรู้ได้ง่ายฉันก็เปิดรับการเรียนรู้อย่างอื่น!

ขอบคุณ!

คำตอบ

2 Bernard Oct 21 2020 at 21:38

โซลูชัน pstricks ด้วย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

ฉันสงสัยว่าคุณเคยได้ยินMathcha คุณสามารถดึงสิ่งต่างๆจากเว็บไซต์และรับรหัส TiKz ที่คอมไพล์ได้ ในความเป็นจริงแผนภาพไฟน์แมนเป็นหนึ่งในตัวอย่างที่พวกเขาให้ไว้

1 staircase27 Oct 21 2020 at 21:01

นี่เป็นไปตามรายละเอียดจากเส้นขนานใน Feynman Diagramแต่ฉันไม่สามารถทำเครื่องหมายว่าซ้ำกันได้ (ขออภัยไม่รู้ว่าจะทำอย่างไร) ดังนั้นฉันจึงตัดสินใจว่าฉันควรใส่เป็นคำตอบ

น่าเศร้าที่นี่ไม่ใช่วิธีที่ง่ายที่สุดใน feynmf แต่เป็นไปได้

วิธีการวาดคือการสร้างแผนภาพโดยมีเพียงเส้นกลางสำหรับขาโปรตอนแต่ละขาจากนั้นใช้ \ fmfi (โหมดทันที feynmf) เพื่อวาดสำเนาขาที่เลื่อน

หากลากเส้นเดิมด้วย

\fmf{plain}{i1,b}

จากนั้นจึงลากเส้นพิเศษสองเส้นด้วย

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

คุณอาจต้องเล่นกับกะ แต่ตรวจสอบให้แน่ใจว่ากะทั้งสองกะตรงข้ามกันเพื่อให้มันดูดี

นอกจากนี้ยังมีประโยชน์ที่จะทราบว่าอาร์กิวเมนต์แรกสำหรับ \ fmfi สามารถเป็นประเภทบรรทัดใดก็ได้ที่สามารถใช้กับ \ fmf ดังนั้นเส้นประลูกศรกลูออน squiggles หรืออะไรก็ตามที่สามารถสร้างได้ตามปกติสามารถสร้างขึ้นสำหรับสำเนาได้

นอกจากนี้คุณยังถามวิธีการทำสี สิ่งนี้เป็นไปได้หากคุณใช้ feynmp และ metapost แทน feynmf และ metafont นี่เป็นข้อแตกต่างเพียงอย่างเดียวระหว่างสองแพ็คเกจ feynmp รองรับสีเป็น metapost รองรับสีโดยที่ metafont รองรับเฉพาะขาวดำ เมื่อคุณใช้ feynmp การเพิ่มสีทำได้ง่ายเพียงแค่ระบุ forground = blue หรือตัวเลือกอื่น ๆ ในอาร์กิวเมนต์แรกของคำสั่ง fmf

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

หากคุณต้องการสีอื่นที่ไม่ใช่ในตัวไวยากรณ์จะค่อนข้างอึดอัดเล็กน้อยเนื่องจากเครื่องหมายจุลภาคต้องเพิ่มเป็นสองเท่า แต่จะระบุไว้ในส่วนสีของคู่มือซึ่งมีอยู่ที่ https://ctan.math.illinois.edu/macros/latex/contrib/feynmf/fmfman.pdf

1 BethLong Oct 23 2020 at 13:21

ทำตามคำแนะนำจากบันไดด้านบนและหลังจากถามคำถามอื่นที่นี่แผนภาพสุดท้ายที่ฉันพอใจสามารถทำได้โดยใช้รหัสนี้:

\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}

หรือสำหรับวงกลมที่แรเงาแทนหยดฟักให้เปลี่ยน\fmfblobเป็น\fmfv{decor.shape=circle,decor.filled=65,decor.size=3mm}{b}: