5 请问\foreach 这个循环为什么不能运行

发布于 2025-04-24 15:50:56

测试了一下,就是
\fill[color=red] (P-\i) circle (1pt);
这句代码有问题,说没有定义,但不太明白,向大佬请教.

报错信息如下:

Missing character: There is no ; in font nullfont!
! Undefined control sequence.
\UseTextAccent  ...p \@firstofone \let \@curr@enc
                                                  \cf@encoding \@use@text@en...
l.20         \fill[color=red] (P-\i) circle (1pt);

以下为源码:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,calc,intersections}
\begin{document} 
    \begin{tikzpicture}
        \tikzset{
            declare function={
                f(\x)=cos(\x r);
                g(\x)=\fpeval{1/3};
                h(\x)=-0.5;
            }
        };
        \draw[-Stealth] ({-2.1*pi},0)--({2.2*pi},0)node[below]{$x$};
        \draw[-Stealth] (0,-1.5)--(0,1.5)node[left]{$y$};
        \draw[name path=s,domain=-2*pi:2*pi,samples=600] plot (\x,{f(\x)});
        \draw[name path=l,color=cyan,domain=-2*pi:2*pi,samples=600] plot (\x,{g(\x)});
        \draw[name path=ll,color=cyan,domain=-2*pi:2*pi,samples=600] plot (\x,{h(\x)});
        \path[name intersections={of=s and l,name=P,total=\t}];
        \foreach \i in{1,...,\t}
        \fill[color=red] (P-\i) circle (1pt);
    \end{tikzpicture}
\end{document}

查看更多

关注者
0
被浏览
72
Sagittarius Rover
Sagittarius Rover 12小时前
我要成为Typst糕手/(ㄒoㄒ)/~~

P.S. 遇到报错最好附上报错信息(给你补上了),更容易被其他人检索到关键词。

  • \tikzset不需要;
\tikzset{
            declare function={
                f(\x)=cos(\x r);
                g(\x)=\fpeval{1/3};
                h(\x)=-0.5;
            }
        };
  • 参照文档好像是更快的办法...

image.png

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,calc,intersections}
\begin{document} 
    \begin{tikzpicture}
        \tikzset{
            declare function={
                f(\x)=cos(\x r);
                g(\x)=\fpeval{1/3};
                h(\x)=-0.5;
            }
        }
        \draw[-Stealth] ({-2.1*pi},0)--({2.2*pi},0)node[below]{$x$};
        \draw[-Stealth] (0,-1.5)--(0,1.5)node[left]{$y$};
        \draw[name path=s,domain=-2*pi:2*pi,samples=600] plot (\x,{f(\x)});
        \draw[name path=l,color=cyan,domain=-2*pi:2*pi,samples=600] plot (\x,{g(\x)});
        \draw[name path=ll,color=cyan,domain=-2*pi:2*pi,samples=600] plot (\x,{h(\x)});
        \fill[name intersections={of=s and l,name=P,total=\t}] 
             [color=red] \foreach \i in {1,...,\t}{(P-\i) circle (1pt) node[above] {$\i$}};
    \end{tikzpicture}
\end{document}

image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览