~ 안에이것그리고이 질문나는 다음과 같은 간단한 정의를 전달하는 방법을 배웠습니다.위치내 기본 파일에서 예를 들어비머 라우터 테마.
그러나 이 접근 방식은 긴 문자열이나 텍스트 블록에 대해서는 실패합니다. 이 예에서는
"안녕하세요!"
main.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}
그런 다음 템플릿 정의에 사용할 수 있습니다.
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>
마지막으로 텍스트를 삽입하고 싶은 테마는 다음과 같습니다.
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>
보시다시피 텍스트가 올바르게 구문 분석되지 않았습니다.
메인 파일에 정의된 텍스트를 비머 테마로 전달하는 적절한 방법은 무엇입니까?
답변1
다음 답변은 다음을 기반으로합니다.https://tex.stackexchange.com/a/58512/36296latex.ltx의 작성자 정의
main.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>