2013-04-10 7 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.