如何保持我的 Tex 解释器运行?

如何保持我的 Tex 解释器运行?

我正在使用 Vscode 和 XeLatex 编写代码。运行下面的代码时,它起作用了,花费了大约 20 秒

\documentclass[border={0pt}]{standalone}

\usepackage{tikz,}

\begin{document}

\begin{tikzpicture}
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        box/.style={rectangle,draw=black,thick, minimum size=28pt},
    ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\foreach \y in {0,2,4,...,100}{
    \foreach \x in {0,1,...,100}
        \node[box,fill=black] at (\x,\y){};  
}
\end{tikzpicture}

\end{document}

但是当涉及到这样的代码时(我假设这需要双倍的计算复杂度),它运行不会超过 30 秒并自动关闭。


\usepackage{tikz,}

\begin{document}

\begin{tikzpicture}
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        box/.style={rectangle,draw=black,thick, minimum size=28pt},
    ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\foreach \y in {0,2,4,...,100}{
    \foreach \x in {0,1,...,100}
        \node[box,fill=black] at (\x,\y){};  
}
\foreach \y in {1,3,5,...,99}{
    \foreach \x in {0,2,...,100}
        \node[box,fill=red] at (\x,\y){};  
}

\end{tikzpicture}

\end{document}

VScode 在前 20 秒出现这个 并在 25 秒左右的某个时间点停止 终于失败了

我该如何让它再运行 20 秒才能完成,还是只是我误解了 Tex 反馈的信息?如果有任何不清楚的地方请告诉我。谢谢您的帮助!!

答案1

评论:

  • 仅用于绘制矩形的节点效率极低。有一个矩形运算符专门用于这项工作。

  • 使用\foreach内部的一个\path(或\fill,\ draw`,...)比为每个循环迭代创建一个路径更有效(文件大小)。

  • 简单的条纹不需要嵌套循环。

运行时间和文件大小更佳的代码示例:

\documentclass[border=0pt, tikz]{standalone}

\begin{document}
\begin{tikzpicture}
\fill[black]
    \foreach \y in {0,2,4,...,100}{
      (0, \y) rectangle +(101, 1)
    }
;
\fill[red]
  \foreach \y in {1,3,5,...,99}{
    \foreach \x in {0,2,...,100}{
      (\x, \y) rectangle +(1, 1)
    }
  }
;
\end{tikzpicture}
\end{document}

该示例可以进一步改进(留给读者练习):

  • 首先绘制红色垂直条纹,然后在其上方绘制黑色水平条纹。这将消除红色框的嵌套循环。

在此处输入图片描述

相关内容