我试图将两个费曼图并排放置,但它们却显示在彼此下方。我使用的是 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}