定义extra large风格

定义extra large风格

当我使用“比例”增加图表的尺寸时,粒子标签和外部线之间的间隙也会增加。

\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风格

就像largesmall在 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 的倍数缩放,包括文本和光子线中正弦波的大小。

相关内容