コンパイル時の Tikz-Feynman ダイアグラムの保持

コンパイル時の Tikz-Feynman ダイアグラムの保持

スタンドアロンの Feynman Diagram をコンパイルしようとしていますが、コンパイルしようとすると、コンパイルが保留され、GUI でタイプセッティング プロセスが中止されても、プロセスはマシン上でまだ実行中であり、タスクを終了する必要があります。Windows 10 で MikTex と TexWorks を使用しており、Share-LaTex も使用してみましたが、単にタイムアウトしてしまいます。

\documentclass[tikz]{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{feynman}
\vertex(q1);
\vertex[right=3cm of q1](q1o);
\vertex[below=0.5cm of q1](aq1);
\vertex[right=3cm of aq1](aq1o);
\vertex[right=1cm of aq1](g1);
\vertex[right=2cm of q1](g1o);
\vertex[below=1.5cm of g1](G);
\vertex[below=2cm of g1o](G1);
\vertex[below=1cm of G](G2);
\vertex[below=1cm of G1)(G3);
\vertex[below=5.5cm of aq1](aq2);
\vertex[below=0.5cm of aq2](q2);
\vertex[right=1cm of aq2](g2);
\vertex[right=2cm of q2](g2o);
\vertex[below=5.5cm of aq1o](aq2o);
\vertex[below=0.5cm of aq2o](q2o);
\diagram*{
(q1)--[fermion](q1o),
(aq1)--[fermion](aq1o),
(g1)--[gluon](G),
(g1o)--[gluon](G1),
(G)--[boson](G2),
(G1)--[boson](G3),
(q2)--[fermion](q2o),
(aq2)--[fermion](aq2o),
(g2)--[gluon](G2),
(g2o)--[gluon ](G3)
};
\end{feynman}
\end{tikzpicture}
\end{figure}
\end{document}

編集: パッケージは正しくロードされています (頂点宣言を含め、q2、aq2、G2、G3 を扱うすべてのものがコメント アウトされている場合、図の上半分は正常にコンパイルされます)

コンソール出力の最後の行は

("C:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\pdftexcmds.sty"))

最後のカンマを削除すると、タイプセッティングの中止によってプロセスを停止できるようになります。

答え1

うわー、あなたは自分自身を大変な問題に巻き込んでしまったね...

コードを実行しようとしましたが、ハングしたのでコンパイルを中断し、TeX で次のように表示されました。

! Interruption.
\path ->\let \tikz@signal@path 
                               =\tikz@signal@path \pgfutil@ifnextchar [{\tik...

私が理解しているTeXでは、 のような命令は\let\problem\problem問題なので、少し調べてみました。

私は見つけたこの郵便受けこれは本質的に同じ問題を示していますが、実際の解決策はありません:\

は実行されるべきではない「クォーク」であると書かれています\tikz@signal@path。そこで、このクォークがどこで実行されているのかを調べました。

行ごとにコメントしてコンパイルする手順により、問題のある行が特定されました。

\vertex[below=1cm of G1)(G3);

ああ、あれを見て、比類のない[:)

ティのようだZ は一致しない括弧を処理できない場合があります...

問題を理解するのに長い時間がかかったので、それについて書くのにも同じくらいの時間を費やすのが公平だと思いました :)

要約

ここでは一致しない括弧があります:

\vertex[below=1cm of G1)(G3);

修正するだけです:

\vertex[below=1cm of G1](G3);

問題なく動作します:

ここに画像の説明を入力してください

関連情報