当我使用“比例”增加图表的尺寸时,粒子标签和外部线之间的间隙也会增加。
\documentclass[12pt]{book}
\usepackage{luatex85}
\def\pgfsysdriver{pgfsys-pdftex.def}
\usepackage{tikz}
\usepackage{pgfkeys}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{center}
\feynmandiagram [scale=2.5][horizontal=a to b] {
i1 [particle=$e^{-}$] -- [fermion] a -- [fermion] i2 [particle=\(e^{+}\)],
a -- [photon] b,
f1 [particle=\(\mu^{+}\)] -- [fermion] b -- [fermion] f2 [particle=\(\mu^{-}\)],
};
\end{center}
但是,如果我使用“大”选项,差距保持不变,但“大”选项对我来说仍然不够大。
\begin{center}
\feynmandiagram [large, horizontal=a to b] {
i1 [particle=$e^{-}$] -- [fermion] a -- [fermion] i2 [particle=\(e^{+}\)],
a -- [photon] b,
f1 [particle=\(\mu^{+}\)] -- [fermion] b -- [fermion] f2 [particle=\(\mu^{-}\)],
};
\end{center}
\end{document}
那么我该如何通过仍然使用“比例”选项(或保证相同尺寸的另一个选项)来解决间隙问题?
答案1
定义extra large
风格
就像large
和small
在 Ti 中定义一样钾Z-Feynman,你可以定义新的风格。特别是,你可以改编风格large
并形成自己的extra large
风格。large
风格(本质上)定义为:
\tikzfeynmanset{
large/.style={
/tikz/node distance=2cm,
/graph drawing/node distance=2.5cm,
/graph drawing/level distance=2cm,
/graph drawing/sibling distance=3cm,
/tikz/graphs/edges={thick},
/tikzfeynman/every dot@@/.append style={/tikz/minimum size=2mm},
/tikzfeynman/every crossed dot@@/.append style={/tikz/minimum size=4mm},
/tikzfeynman/every blob@@/.append style={/tikz/minimum size=1cm},
/tikzfeynman/arrow size=1.6pt,
/tikzfeynman/insertion/size=4pt,
}
}
将所有距离加倍:
\documentclass{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\tikzfeynmanset{
extra large/.style={
/tikz/node distance=4cm,
/graph drawing/node distance=5cm,
/graph drawing/level distance=4cm,
/graph drawing/sibling distance=6cm,
/tikz/graphs/edges={very thick},
/tikzfeynman/every dot@@/.append style={/tikz/minimum size=4mm},
/tikzfeynman/every crossed dot@@/.append style={/tikz/minimum size=8mm},
/tikzfeynman/every blob@@/.append style={/tikz/minimum size=2cm},
/tikzfeynman/arrow size=3.2pt,
/tikzfeynman/insertion/size=8pt,
},
}
\begin{document}
\feynmandiagram [extra large, horizontal=a to b] {
i1 [particle=$e^{-}$] -- [fermion] a -- [fermion] i2 [particle=\(e^{+}\)],
a -- [photon] b,
f1 [particle=\(\mu^{+}\)] -- [fermion] b -- [fermion] f2 [particle=\(\mu^{-}\)],
};
\end{document}
这里的问题是,与文本的大小相比,行变得大得可笑。可以通过添加/tikz/node font=\huge
样式来调整字体大小,这样输出就会变得更加合理:
问题仍然是光子线太小了,我不太喜欢。你可以继续修改样式extra large
来解决这个问题,但你必须对胶子、标量等也这样做。
使用\scalebox
另一种方法是在图表周围使用比例框,根据指定的比例因子缩放所有内容:
\documentclass{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\scalebox{2}{
\feynmandiagram [horizontal=a to b] {
i1 [particle=$e^{-}$] -- [fermion] a -- [fermion] i2 [particle=\(e^{+}\)],
a -- [photon] b,
f1 [particle=\(\mu^{+}\)] -- [fermion] b -- [fermion] f2 [particle=\(\mu^{-}\)],
};
}
\end{document}
在这个例子中,所有内容都按 2 的倍数缩放,包括文本和光子线中正弦波的大小。