在 Tikz 或类似软件包中重现图表

在 Tikz 或类似软件包中重现图表

如何使用 TikZ 或其他软件包在 Latex 中重现以下任何图表 在此处输入图片描述

我特别想看看圆圈内的网格是如何做的,以及网格不与箭头相交的方式。谢谢。

答案1

这是实现此目的的众多方法之一。为了在旋转周围添加白色光环,可以使用preaction预先绘制更粗的白色箭头的键。除此之外,可以使用库方便地完成图案设计patterns.meta。(如果您的旧安装中尚无库,则可以patterns与一起使用north east lines,但定制起来比较困难。)子图可以放在矩阵中。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{braket}
\usetikzlibrary{arrows.meta,patterns.meta}
\begin{document}
\begin{tikzpicture}[>={Triangle[length=2mm,width=1mm,round]},
    spin up/.style={preaction={draw,white,line width=2pt,
        -{Triangle[length=4mm,width=1.7mm,round]},shorten >=-1.6pt},
        black,->,shorten >=0pt},
    spin down/.style={preaction={draw,white,line width=2pt,
        {Triangle[length=4mm,width=1.7mm,round]}-,shorten <=-1.6pt},
        black,<-,shorten <=0pt},
    font=\sffamily,
    atom/.style={circle,minimum size=2cm,
    pattern={Lines[angle=45,distance={4.5pt}]},
    label={[anchor=center,circle,fill,inner sep=0.6ex,alias=core]center:}
    }]
 \matrix[column sep=1em,row sep=1em]{   
 \node[atom,label=left:{$\ket{++},\ket{1}$}]{}; 
 \draw[spin up] (-0.3,-0.2) -- ++ (0,0.4);
 \draw[spin up] (0,0.3) -- ++ (0,0.4);
 \draw[<-] (0.3,0.7) -- ++ (45:0.5) node[above right]{electron};
 \draw[<-] (core) -- ++ (-20:1.2) node[right]{proton};
 &
 \node[atom,label=left:{$\ket{-+},\ket{3}$}]{}; 
 \draw[spin up] (-0.3,-0.2) -- ++ (0,0.4);
 \draw[spin down] (0,0.3) -- ++ (0,0.4);
 \\
 \node[atom,label=left:{$\ket{+-},\ket{2}$}]{}; 
 \draw[spin up] (-0.3,-0.2) -- ++ (0,0.4);
 \draw[spin down] (0,0.3) -- ++ (0,0.4);
 &
 \node[atom,label=left:{$\ket{--},\ket{4}$}]{}; 
 \draw[spin down] (-0.3,-0.2) -- ++ (0,0.4);
 \draw[spin down] (0,0.3) -- ++ (0,0.4);
 \\
};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容