这是原始布局。
使得作者的每一行代码是这样的:
\def\@typeset@author@line{%
\andify\@currentauthors\par\noindent
\@currentauthors\def\@currentauthors{}%
\ifx\@currentaffiliations\@empty\else
\andify\@currentaffiliations
\unskip, {\@currentaffiliations}\par
\fi
\def\@currentaffiliations{}
}
这是它被实例化的地方:
\global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
\noindent\begin{framed}\addresses\@typeset@author@line\end{framed}
\par\medskip}%
我将 typeset@author@line 的定义更改为:
\def\@typeset@author@line{%
\begin{framed}
\andify\@currentauthors\par\noindent
\@currentauthors\def\@currentauthors{}%
\ifx\@currentaffiliations\@empty\else
\andify\@currentaffiliations
\unskip, {\@currentaffiliations}\par
\fi
\def\@currentaffiliations{}
\end{framed}
}
当我尝试更改 typeset@author@line 的定义时,得到以下结果:
latex 正在丢失它应该解析的作者的上下文,并且它对每行都执行每个作者的解析,每行加一。在这种情况下,我该如何保持上下文正常工作?我想为每一行添加一个框架。
答案1
我在发布问题 30 秒后自己回答了这个问题......我对此感觉不太好,但是嘿,没有人知道事情什么时候会成功,事实上,在创建问题后,我对乳胶进行了更深入的思考。
这是获取单独行应采用的 def 方法:
\def\@typeset@author@line{%
\andify\@currentauthors\par\noindent
\begin{framed}
\@currentauthors
\ifx\@currentaffiliations\@empty\else
\andify\@currentaffiliations
\unskip, {\@currentaffiliations}\par
\fi
\end{framed}
\def\@currentauthors{}%
\def\@currentaffiliations{}
}
def@currentauthors{} 和 def@currentaffiliations{} 正在抛弃有关该行的知识。所以他们必须在 {framed} 之外,但我不知道为什么……但它有效!