Как изменить выравнивание автора в 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?

Есть и другой подходкоторый использует табличную среду но в Бимере это тоже не работает.

В идеале я хотел бы изменить \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}

введите описание изображения здесь

Связанный контент