最近我知道了如何使用 tikz-feynman 和 pdf-latex,但有一刻我误解了。我使用过:
\usetikzlibrary{external} %% Load the `external` library
\immediate\write18{mkdir -p pgf-img} %% Create `pgf-img` directory
\tikzexternalize[ %% Activate externalization
prefix=pgf-img/, %% Avoid cluttering the directory
system call={ %% Use lualatex in system call
lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname="\image" "\texsource"
},
]
但不幸的是,编译时会产生很多错误。据我所知,这些错误不会造成任何问题,但我想澄清一下。
例如,我将尝试提供一个可以运行但会产生错误的代码示例。
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{external} %% Load the `external` library
\immediate\write18{mkdir -p pgf-img} %% Create `pgf-img` directory
\tikzexternalize[ %% Activate externalization
prefix=pgf-img/, %% Avoid cluttering the directory
system call={ %% Use lualatex in system call
lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname="\image" "\texsource"
},
]
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}[baseline=-\the\dimexpr\fontdimen22\textfont2\relax]
\begin{feynman}
\vertex (v1);
\vertex[right=0.7cm of v1] (v2);
\vertex[above right=0.7cm of v2] (v3);
\vertex[below right=0.7cm of v2] (v4);
\diagram*{(v1)--[boson](v2),(v2)--[fermion](v3),(v4)--[fermion](v2)};
\end{feynman}
\end{tikzpicture}
\end{document}
答案1
看来您正在使用 overleaf 我不知道,抱歉。
但错误信息对我来说非常清楚:这里的问题是您想要运行\immediate\write18{mkdir -p pgf-img}
。
使用我当前的 MiKTeX,我必须-shell-escape
在调用中添加命令选项lualatex.exe
以允许 LuaLaTeX 启动外部运行...
请询问 overleaf 的支持如何使用 overleaf 来实现这一点(如果可以的话)...
答案2
我的问题以一种非常奇怪的方式得到了解决。
我将编译器改为 LuaLaTeX,但仍然出错。然后我再次将编译器改为 pdf-LaTeX,现在它运行正常,没有错误。