2013-04-10 146 views
4

亲爱stackoverflowers,MetaPost的:使用循环变量在标签

最近,而与MetaPost的环境玩耍,我遇到了一个问题。当使用循环'for'宏绘制东西时,我需要循环变量的正确显示在标签内,但我无法弄清楚如何做到这一点,并且Mr.Google无法帮助我。下面是我使用的代码示例:

for i=1 upto N: label(btex $here should be the value of i$, some_position); endfor; 

任何形式的帮助将appreaciated:]

回答

3

首先有一个etex, some_position前失踪。介于btexetex之间的所有字符都被视为字符串。它没有被解释。为此,字符串的内容必须先由TEX()计算。例如:

prologues := 2; 

input tex; 

verbatimtex 
\documentclass[12pt,a4paper]{article} 
\usepackage[T1]{fontenc} 
\usepackage[ansinew]{inputenc} 
etex; 

beginfig(0); 
n := 10; 
    for i := 1 upto n: 
    label.lrt(TEX("$i = "&decimal(i)&"$"),(0,i*1cm)); 
endfor; 
endfig; 

如果您想使用乳胶Struktures,你必须修改原始TEX()以这样的方式

vardef TEX primary s = 
write "verbatimtex"     to "mptextmp.mp"; 
write "\documentclass[12pt]{article}" to "mptextmp.mp"; 
write "\usepackage[T1]{fontenc}"  to "mptextmp.mp"; 
write "\usepackage[ansinew]{inputenc}" to "mptextmp.mp"; 
write "\usepackage{amsmath,amssymb}" to "mptextmp.mp"; 
write "\begin{document}"    to "mptextmp.mp"; 
write "etex"       to "mptextmp.mp"; 
write "btex "&s&" etex"    to "mptextmp.mp"; 
write EOF        to "mptextmp.mp"; 
scantokens "input mptextmp" 
enddef; 

希望帮助

V. W.