重复调用我的定义并写入辅助文件

重复调用我的定义并写入辅助文件

我有以下内容:

\newif\ifabrvused
\abrvusedfalse

\def\abrv#1#2{%
  \ifabrvused\else%
    \newwrite\@loa%
    \immediate\openout\@loa=\jobname.loa%
    \write0{    Test}
    \abrvusedtrue%
  \fi%

  \@ifundefined{abrv@#1}{%
    \expandafter\def\csname abrv@#1\endcsname{#2}%
    \immediate\write\@loa{\unexpanded{\item[\textbf{#1}]#2}}%
    {#2 (\textbf{#1})}%
  }{%
  {\textbf{#1}}%
  }%
}

目的是让它第一次被调用时打开辅助文件进行写入。我的问题是,打开部分 ( ifabrvused\else) 被调用了两次。我能发现它在第一次使用时被调用,在begin{abstract}文档的其余部分也是如此?我遗漏了什么。如果它打算这样做,我该如何编码呢?

答案1

在环境中,abstract您位于一个组内。\abrvusedtrue是本地分配( )。在环境之后,\let\ifabrvused\iftrue开关重置为。 改用。false\global\abrvusedtrue

相关内容