渐近线中的循环内标记

渐近线中的循环内标记

我对 Asymptote 还不太熟悉,正在尝试使用 for 循环创建一个基本数轴。我希望 for 循环也能为我标记点。有人能告诉我如何解决这个问题吗?

\documentclass{article}

\begin{document}

\begin{figure}[hbt]
\centering
\begin{asy}
    unitsize(0.1inch);

    draw((0,0)--(50,0),);
    draw((0,0)--(1,1));
    draw((0,0)--(1,-1));
    draw((50,0)--(49,1));
    draw((50,0)--(49,-1));

    draw((25,1)--(25,-1));
    label("$0$",(25,0)+2*dir(270));

    for(int i=1; i<12; ++i)
    {
        draw((25+2*i,1)--(25+2*i,-1));
        label("$i$",(25+2*i,0)+2*dir(270));
    }

\end{asy}
\end{figure}

\end{document}

运行时,几乎所有内容都按我期望的方式显示,除了用我的计数器变量标记所有内容而不是标记数字之外。

另外,之前我的系统运行良好,但现在它停止为图像创建 .pdf 文件。例如,我的第一张图片应该是 Neighborhoods-1.pdf。它创建了 .asy 文件,但没有创建 .pdf 文件。有人能告诉我如何解决这个问题吗?

答案1

该命令label("$i$",(25+2*i,0)+2*dir(270)); 确实在数学模式下为每个刻度排版了计数器的名称$i$。要排版的值i,请使用"$"+string(i)+"$"标签:

\documentclass{article}
\usepackage[inline]{asymptote}
\begin{document}
\begin{figure}[hbt]
\centering
\begin{asy}
    unitsize(0.1inch);
    draw((0,0)--(50,0));
    draw((0,0)--(1,1));
    draw((0,0)--(1,-1));
    draw((50,0)--(49,1));
    draw((50,0)--(49,-1));

    draw((25,1)--(25,-1));
    label("$0$",(25,0)+2*dir(270));

    for(int i=1; i<12; ++i){
        draw((25+2*i,1)--(25+2*i,-1));
        label("$"+string(i)+"$",(25+2*i,0)+2*dir(270));
    }

\end{asy}
\end{figure}
\end{document}

在此处输入图片描述

相关内容