4

亲爱的stackoverflowers,

最近,在玩 METAPOST 环境时,我遇到了一个问题。在使用循环“for”宏绘制某些东西时,我需要循环变量的正确显示在标签内,但是我不知道如何做到这一点,Google 先生无法帮助我。下面是我使用的代码示例:

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

任何形式的帮助都会受到重视:]

4

1 回答 1

4

起初有一个etex失踪前, some_positionbtex和之间的所有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;

希望有帮助

大众

于 2013-07-31T16:06:50.817 回答