如何更改 Beamer 中的作者对齐方式?

如何更改 Beamer 中的作者对齐方式?

看起来不同的类使用表格设置了作者布局。我想呈现以下输出之一:

相当于\begin{tabular}{rl}

  Joe Schmoe My Boss
    Jane Doe His Boss

或者,相当于\raggedleft

  Joe Schmoe My Boss
   Jane Doe His Boss

来自类似于这个 M(N)WE 的东西:

\documentclass{beamer}

\author{%
Joe Schmoe, My Boss%
\and
Jane Doe, His Boss%
}

\begin{document}
\maketitle
\end{document}

我不介意使用\institute或类似名称来表示职位名称,我甚至可以删除职位名称来寻找简单的解决方案。

在其他一些文档类别中有一个很好的解决方案\preauthor,我可以在我的样式文件中对其进行修改。不幸的是,我在 Beamer 3 中使用该代码时出现未知命令错误\preauthor。Beamer 中是否有等效构造?

还有另一种方法使用表格环境 但 Beamer 也失败了。

理想情况下,我想更改\defbeamertemplate*{title page}{default theme}{...我的 beamer 样式文件,以便我仍然可以\author{}在主文件中使用其所有装饰,但由于我在幻灯片上的任何其他地方都没有使用作者,因此使用主源中的某种框的解决方案也会起作用。

答案1

\beamer@author一个选项重新定义在beamerbasetitle.sty(这样,定义将与主题无关)中的内部定义,以使用tabular具有所需对齐方式;您需要使用可选参数为作者书签提供适当的信息:

\documentclass{beamer}
\usetheme{Madrid}

\makeatletter
\long\def\beamer@author[#1]#2{%
  \def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}%
  \begin{tabular}{rl}#2\end{tabular}}%
  \def\beamer@shortauthor{#1}%
  \ifbeamer@autopdfinfo%
    \def\beamer@andstripped{}%
    \beamer@stripands#1 \and\relax
    {\let\inst=\@gobble\let\thanks=\@gobble\def\and{, }\hypersetup{pdfauthor={\beamer@andstripped}}}
  \fi%
}
\makeatother

\title{The title}
\author[Joe and Jane]{%
Joe Schmoe, & My Boss \\
Jane Doe, & His Boss
}

\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}

在此处输入图片描述

更改\begin{tabular}{rl}\begin{tabular}{r}上述内容以满足其他对齐要求。

在评论中,已要求重新定义,\and以便它充当\tabularnewline强制参数中的单独作者行\author;这是所需的修改:

\documentclass{beamer}
\usetheme{Madrid}

\makeatletter
\long\def\beamer@author[#1]#2{%
  \def\and{\tabularnewline}
  \def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\tabularnewline}%
  \begin{tabular}{rl}#2\end{tabular}}%
  \def\beamer@shortauthor{#1}%
  \ifbeamer@autopdfinfo%
    \def\beamer@andstripped{}%
    \beamer@stripands#1 \and\relax
    {\let\inst=\@gobble\let\thanks=\@gobble\def\and{, }\hypersetup{pdfauthor={\beamer@andstripped}}}
  \fi%
}
\makeatother

\title{The title}
\author[Joe \and Jane]{%
Joe Schmoe, & My Boss \and
Jane Doe, & His Boss
}

\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}

在此处输入图片描述

相关内容