我尝试使用嵌套的 \foreach 命令将点放置在某些网格位置上,如下所示,但 TeXstudio 拒绝使用第二个变量 \y,并出现错误“无法识别的命令”。
奇怪的是 \y价值在 \filldraw 命令中是已识别:点被放置在全部网格点。但显然我使用的 if 语法不正确;结果不取决于 TeXstudio 中的“无法识别的命令”标志。如何解决这个问题?
\documentclass [a4paper,12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=5.0,cap=round,>=latex]
\draw[step=0.1cm,lightgray,very thin] (0.0,0.0) grid (3.0,2.0);
\draw[thin] (0.0cm,0.0cm) -- (3.1cm,0.0cm) node[right,fill=white] {$x$};
\draw[thin] (0.0cm,0.0cm) -- (0.0cm,2.1cm) node[above,fill=white] {$y$};
\foreach \x in {0.1,0.2,...,2.8}{
\foreach \y in {0.1,0.2,...,1.8}
{
if \x < \y {\filldraw[black] (\x cm, \y cm) circle(0.2pt);}
}
}
\end{tikzpicture}
\end{document}
编辑
我注意到报告的问题根本不是问题;代码确实完成了它的工作,但是结果不是我希望达到的,所以我在这里用另一个标题和标签重新发布了我的问题。
从另一篇文章来看,需要使用更复杂的方法:以下方法可以正常工作:
\pgfmathsetmacro\q {\y}
\ifdim \q pt< \x pt
\filldraw[black] (\x cm, \y cm) circle(0.2pt);
\else {}
\fi
我不明白为什么需要这么复杂。有没有更简单的解决方案?