首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >METAPOST:在标签中使用循环变量

METAPOST:在标签中使用循环变量
EN

Stack Overflow用户
提问于 2013-04-10 15:59:32
回答 1查看 1.1K关注 0票数 4

亲爱的百合花,

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

代码语言:javascript
复制
for i=1 upto N: label(btex $here should be the value of i$, some_position); endfor;

任何类型的帮助都将得到认可:]

EN

回答 1

Stack Overflow用户

发布于 2013-07-31 16:06:50

一开始,在etex之前缺少一个, some_positionbtexetex之间的所有内容都被视为字符串。它没有被解释。为此,必须首先由TEX()计算字符串的内容。示例:

代码语言:javascript
复制
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;

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

代码语言:javascript
复制
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.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15930810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档