两张并排的图表

两张并排的图表

我试图将两个费曼图并排放置,但它们却显示在彼此下方。我使用的是 feynmf 和 subfloat。这通常适用于图片。

\begin{figure}[ht!]
      \centering
    \subfloat{

        \begin{fmfgraph*}(40, 25)
        \fmfstraight
         \fmfbottom{wm,i2,z2}
          \fmftop{wp,i1,z1}
          \fmf{dashes}{wp,i1,z1}
          \fmf{dashes}{z2,i2,wm}
          \fmf{dashes,caption=$W^{+}$}{i1,i2}
        %  \fmf{dashes,caption=$Z^0$}{i2,z1}
         % \fmf{dashes,caption=$Z^0$}{i2,z2}
        \fmfv{lab=$Z^0$}{z1}
        \fmfv{lab=$Z^0$}{z2}
    \fmfv{lab=$W^+$}{wp}
    \fmfv{lab=$W^-$}{wm}
        \end{fmfgraph*}
    }

    \subfloat{

        \begin{fmfgraph*}(40, 25)
        \fmfstraight
         \fmfbottom{wm,i2,z2}
          \fmftop{wp,i1,z1}
          \fmf{dashes}{wp,i1,z1}
          \fmf{dashes}{z2,i2,wm}
          \fmf{dashes,caption=$W^{+}$}{i1,i2}
        %  \fmf{dashes,caption=$Z^0$}{i2,z1}
         % \fmf{dashes,caption=$Z^0$}{i2,z2}
        \fmfv{lab=$Z^0$}{z1}
        \fmfv{lab=$Z^0$}{z2}
    \fmfv{lab=$W^+$}{wp}
    \fmfv{lab=$W^-$}{wm}
        \end{fmfgraph*}
    }

    \caption{Exchange of W boson}
    \end{figure}

答案1

正如@egreg在评论中所说,第二个图在下面的原因是由于空白行。

这样做有一个很好的理由。回想一下,在文本模式下,空行表示新段落的开始,后续文本将放在下面。因此,以下代码将把单词放在一起:

One
Two

但以下语句会将单词排列在彼此之下:

One

Two

图片也一样,只是盒子就其本身而言TeX,与字母、单词、段落等没有太大区别……

下面的 MWE 生成左侧的图像,但如果插入空白行,则会得到右侧的图像:

在此处输入图片描述 在此处输入图片描述

笔记:

  • 我的经验法则是不是使用空行,除非我想表示新段落。为了便于阅读,只要第一个非空白字符是 ,您就可以插入注释行%。请注意,它不必像下面的 MWE 那样位于行首。

代码:

由于这个问题与无关feynmf,我只是用来pgfplots生成图形:

\documentclass{article}
\usepackage{pgfplots}
\usepackage{subfig}

\begin{document}
\begin{figure}[ht!]
    \centering
    \subfloat{
        \begin{tikzpicture}
        \begin{axis}[height=3cm]
        \end{axis}
        \end{tikzpicture}
    }
    % A blank line here like a new paragraph so next picture is placed below
    \subfloat{
        \begin{tikzpicture}
        \begin{axis}[height=3cm]
        \end{axis}
        \end{tikzpicture}
    }

    \caption{Exchange two subfloats}
    \end{figure}
\end{document}

相关内容