在Latex中画费曼图
文章目录
目前已经知道了两种可以直接在Latex中画费曼图的方式,
- \usepackage{axodraw2},
- \usepackage[compat=1.1.0]{tikz-feynman}。
我用的是texlive2019。
axodraw2
使用这个包有两种方式画费曼图,通常我们会另外安装它的可视化软件JaxoDraw
,生成eps文件,然后再导入Latex中,但是这样还要再安一个软件,特别是有时候我们没有办法使用JaxoDraw
。这个时候就可以直接在Latex中输入代码,来生成费曼图。
它使用精确定位的方式来一条线一条线地画费曼图,每一个点都要给出(x,y)坐标。
注意事项:
下面的名词区分参看我之前的博文
点击打开详细说明
注意
使用 xeLatex,LuaLatex 来编译的 Tex 文档,必须是 UTF-8 编码的文档。- 为什么不能用好用的编译器来编译axoDraw2的费曼图呢?
我摘录了一段官方文档:The program here is dvipdf and not the similarly named dvipdfm or dvipdfmx, which are incompatible with axodraw. The reason why dvipdf works is that it internally makes a postscript file and then converts it to pdf.
意思就是所它使用了一些PS文档的功能,所以PS文档做为中间过程必须要使用。 - 用
pdfLatex,xeLatex,LuaLatex
怎么编译axoDraw2的费曼图呢?
先用编译器编译一遍,生成一个.ax1结尾的辅助文档,然后使用axohelp
命令生成.ax2结尾的辅助文档,再用编译器编译一遍。如果你用的命令行,那就是:如果你用的是TexStudio,那可以在设置里自己添加一个编译的方式。步骤是:Options - Configure TexStudio - Build - User Commands, 在这里自己添加一个命令,如1 2 3
> xelatex main.tex > axohelp main > xelatex main.tex
txs:///xelatex | axohelp % | txs:///xelatex
。 - 哦,还有费曼图的画法啊?
参看官方文档吧,有很多例子。
Tikz-Feynman
首先Tikz本身就是在Latex中画图的工具,Tikz-Feynman是在Tikz基础上,专为画费曼图设计的。
它可以自动分配第个点的位置。自动分配位置的算法需要LuaLatex
的支持,所以只能使用LuaLatex
来编译。看起来智能了一点儿了,画简单图时很方便,但是在画复杂图时,逻辑有点难以理解,我不喜欢。
同样,使用方法参看官方文档。
Tick-Feynhand
这个好用,说明书参看官方文档。
这里说一下如何使得顶点处文字在固定坐标的一侧。使用锚点,可以 参看Tikz文档第17.5.1节。解释一下,锚点说的是固定坐标的位置,也就是文字的左字叫east, 右边叫 west.
|
|