在 for 循环中调用 \psfrag{}

在 for 循环中调用 \psfrag{}

好吧,大家好。我的 EPS 中有很多非常相似的文本。只有它们的索引会有所不同。所以我尝试用自己的命令来完成这些操作。

它们用在\begin{figure}...\end{figure}- 块内,紧跟在\centering. 之后,eps 被包括在内。

我的代码如下:

\newcommand{\qfrag}[1]{\psfrag{q#1}[c][c]{$q_#1$}} %this works as \qfrag{0}\qfrag{1}...
\newcounter{ctr}
\newcommand{\qrfrag}[1]{\forloop{ctr}{0}{\value{ctr} < #1}{\qfrag{\arabic{ctr}}}} %but not like this.

\qfrag所有替换q#1q_#1. 单独使用时效果很好。像这样放在一起使用时效果也很好:

\qfrag{0}\qfrag{1}\qfrag{2}\qfrag{3}

但是,一旦我尝试将它们放在一个 forloop 中,它们就会变得混乱,并使我的所有索引都变成q插入的数字\qrfrag{}

\qrfrag{3} causes to be all q0,q1,q2 to become formatted q_3 but not q3. 

你那边有什么线索吗?我对乳胶还不太熟悉。

答案1

请始终发布完整的小文档而不仅仅是片段,然后可以测试答案。

\newcommand{\qfrag}[1]{\psfrag{q#1}[c][c]{$q_#1$}} 


\newcounter{ctr}
\newcommand{\qrfrag}[1]{\forloop{ctr}{0}{\value{ctr} < #1}{\qfrag{\arabic{ctr}}}

下标的语法不是_{...}_...#1替换时你得到

$q_\arabic{ctr}$

因此,由于没有括号,下标只是标记\arabic,之后发生的任何事情都只是内部扩展的意外产物。

如果你将其定义为

$q_{#1}$

它有更好的成功机会(但如上所述,这尚未经过测试)。

相关内容