我对 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}