2013-04-10 2 views
4

Уважаемые stackoverflowers,MetaPost: используя переменные цикла в метках

в последнее время, в то время, играя с MetaPost среде, я столкнулся с проблемой. При рисовании чего-либо с использованием макроса цикла для макроса мне понадобилось значение переменной цикла, которое должно быть правильно отображено внутри метки, однако я не мог понять, как это сделать, и Mr.Google не смог мне помочь. Ниже приведен пример кода, который я использовал:

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

Любой вид помощи будет appreaciated:]

ответ

3

на первом есть etex отсутствовал до , some_position. Все между btex и etex взято за строку. Это не интерпретируется. Для этого содержимое строки должно быть сначала рассчитано 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; 

Если Вы хотите использовать LaTeX-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; 

Надежда, что помогает

В. W.

 Смежные вопросы

  • Нет связанных вопросов^_^