Como passar texto/strings do arquivo principal para o beamertheme via beameroptions ou existe uma maneira alternativa?

Como passar texto/strings do arquivo principal para o beamertheme via beameroptions ou existe uma maneira alternativa?

Emesseeessa questãoAprendi como passar definições simples como umlocalizaçãodo meu arquivo principal para um exemplobeameroutertheme.

No entanto, esta abordagem falha para strings ou blocos de texto mais longos, neste exemplo

"Olá Mundo!"


principal.tex

\documentclass{beamer}

\author{George Orwell}
\title{Animal Farm}
\date{\today}
\institute[TUD]

\usetheme[myText=Hello World!]{tudrobert}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\end{document}

que pode então ser usado nas definições do modelo:

beamerthemetudrobert.tex

\mode<presentation>

\DeclareOptionBeamer{myText}{\PassOptionsToPackage{myText=#1}{beamerinnerthemetudrobert}}
\ProcessOptionsBeamer

\usepackage{graphicx}
\usepackage[absolute,overlay]{textpos}
\usepackage{calc}

\usepackage{fontspec}
\useinnertheme{tudrobert}

\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{blocks}[rounded][shadow=true]  

\mode<all>

E por fim o tema onde gostaria de inserir o texto:

beamerinnerthemetudrobert.tex

\mode<presentation>

\DeclareOptionBeamer{myText}{\def\beamer@tudrobert@myText{#1}}    
\ProcessOptionsBeamer

\defbeamertemplate*{title page}{tudrobert}{%

    \usebeamerfont*{title}
    \MakeUppercase{\inserttitle}\par
    \vfill
    {\scriptsize\insertauthor}
    \vfill
    \beamer@tudrobert@myText
    \vfill
    \insertdate

}

\mode<all>

Como você pode ver, o texto não foi analisado corretamente.

insira a descrição da imagem aqui

Qual é a maneira apropriada de passar o texto definido no arquivo principal para os temas do beamer?

Responder1

A seguinte resposta é baseada emhttps://tex.stackexchange.com/a/58512/36296e a definição do autor em latex.ltx

principal.tex

\documentclass{beamer}

\usetheme[myText=Hello World!]{tudrobert}

\author{George Orwell}
\title{Animal Farm}
\date{\today}
\institute[TUD]
\def\uni{Hello World!}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\end{document}

beamerthemetudrobert.tex

\mode<presentation>

\DeclareOptionBeamer{myText}{\PassOptionsToPackage{myText=#1}{beamerinnerthemetudrobert}}
\ProcessOptionsBeamer

\usepackage{graphicx}
\usepackage[absolute,overlay]{textpos}
\usepackage{calc}

\def\uni#1{\gdef\@uni{#1}}
\def\@uni{\@latex@warning@no@line{No \noexpand\uni given}}

\useinnertheme{tudrobert}

\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{blocks}[rounded][shadow=true]  

\mode<all>

beamerinnerthemetudrobert.tex

\mode<presentation>

\DeclareOptionBeamer{myText}{\def\beamer@tudrobert@myText{#1}}    
\ProcessOptionsBeamer

\defbeamertemplate*{title page}{tudrobert}{%

    \usebeamerfont*{title}
    \MakeUppercase{\inserttitle}\par
    \vfill
    {\scriptsize\insertauthor}
    \vfill
    \beamer@tudrobert@myText
    \vfill
    \insertdate
    \vfill
    \@uni

}

\mode<all>

insira a descrição da imagem aqui

informação relacionada