Como alterar o alinhamento do autor no Beamer?

Como alterar o alinhamento do autor no Beamer?

Parece que diferentes classes configuram layouts de autor usando tabelas. Eu gostaria de renderizar uma destas saídas:

Equivalente a \begin{tabular}{rl}:

  Joe Schmoe My Boss
    Jane Doe His Boss

ou, equivalente a \raggedleft:

  Joe Schmoe My Boss
   Jane Doe His Boss

de algo parecido com este M(N)WE:

\documentclass{beamer}

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

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

Não me importo de usar \instituteou algo equivalente para o cargo, e posso até abandonar o cargo para ver uma solução simples.

Em algumas outras classes de documentosexiste uma boa solução envolvendo\preauthor, que eu poderia modificar em meu arquivo de estilo. Infelizmente, recebo um erro de comando desconhecido no Beamer 3 \preauthorcom esse código. Existem construções equivalentes no Beamer?

Há também outra abordagemque usa um ambiente tabular mas isso também falha no Beamer.

Idealmente, eu gostaria de alterar \defbeamertemplate*{title page}{default theme}{...meu arquivo de estilo do beamer, para que ainda pudesse usar \author{}todos os seus recortes no arquivo principal, mas como não utilizo autores em nenhum outro lugar do slide, uma solução usando algum tipo de caixa no a fonte principal também funcionaria.

Responder1

Uma opção é redefinir o interno \beamer@authordefinido em beamerbasetitle.sty(desta forma, a definição será independente do tema) para usar a tabularcom o alinhamento desejado; você precisa usar o argumento opcional para fornecer informações adequadas para o marcador do autor:

\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}

insira a descrição da imagem aqui

Mude \begin{tabular}{rl}para \begin{tabular}{r}acima para o outro alinhamento necessário.

Em um comentário, foi solicitado a redefinição \andpara que funcione como \tabularnewlineseparar as linhas do autor no argumento obrigatório de \author; aqui está a modificação necessária:

\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}

insira a descrição da imagem aqui

informação relacionada