でこれそしてこの質問私は、次のような簡単な定義を渡す方法を学びました。位置メインファイルから例えばビームルーターテーマ。
しかし、このアプローチは長い文字列やテキストブロックには適用できません。この例では
"こんにちは世界!"
メイン.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}
これをテンプレート定義で使用できます。
ビームアザメトゥロバート.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>
最後に、テキストを挿入したいテーマです。
ビームインナーテーマudrobert.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>
ご覧のとおり、テキストは正しく解析されていません。
メイン ファイルで定義されたテキストを Beamer テーマに渡す適切な方法は何ですか?
答え1
以下の回答はhttps://tex.stackexchange.com/a/58512/36296そしてlatex.ltxの著者定義
メイン.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}
ビームアザメトゥロバート.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>
ビームインナーテーマudrobert.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>