有没有办法访问 \author 给出的各个作者?

有没有办法访问 \author 给出的各个作者?

假设我有几个作者,我已经通过\authorlatex-beamer 中的命令声明了它们,例如

\author{Einstein \and Podolsky \and Rosen}

我想知道是否有办法访问个人姓名,例如

authors[0] == "Einstein"
authors[1] == "Podolsky"
authors[2] == "Rosen"

我想在会议海报底部显示所有姓名以及相应的联系信息二维码。当然,我可以重新输入姓名,但我想这是一种不太优雅的方式。

答案1

允许etoolbox您处理由 catcode 3 分隔的列表|。如果您转换\and为,|则可以将作者作为列表处理。对于不重新定义的类,\author以下内容应该有效。

\documentclass{article}
\usepackage{etoolbox}

\author{Einstein \and Podolsky \and Rosen}

\makeatletter
\begingroup
  \catcode`|=3\relax
  \def\and{|}
  \newcounter{@authorCount}
  \def\do#1{
    \stepcounter{@authorCount}
    \csgdef{author\Roman{@authorCount}}{#1}
  }
  \edef\eauthor{\@author}
  \dolistloop{\eauthor}%
\endgroup
\makeatother

\begin{document}
\authorI

\authorII

\authorIII
\end{document}

该类beamer重新定义\author,因此您需要\edef\eauthor{\@author}用替换\edef\eauthor{\beamer@shortauthor}

相关内容