目前,我尝试构建一个自定义的 beamer 模板,以匹配我所在研究所使用的模板。虽然我发现很多概念都很合乎逻辑且易于使用,但定位对我来说却很麻烦,而且有点难以控制。所以我想问一下,是否有地方对 beamer 中的边距进行了完整的概述,以及如何消除它们的解决方案。另外,我想问一下,是否有关于如何使用 tikz 进行定位的良好概述。
为了说明我的困难,我举一个简单的例子:我设置了纸张大小,并在 outertheme.sty 中尝试定义整个纸张的背景。如果我编译并且没有从一个角扩展到另一个角,为什么它会在幻灯片的某个地方?
\begin{filecontents*}{beamerthemepositioning.sty}
\mode<presentation>
% Requirement
\RequirePackage{tikz}
\RequirePackage{xcolor}
% Settings
\useinnertheme{positioning}
\setbeamertemplate{navigation symbols}{}
\mode<all>
\end{filecontents*}
\begin{filecontents*}{beamerinnerthemepositioning.sty}
\mode<presentation>
\usetikzlibrary{backgrounds}
% Title page
\setbeamertemplate{title page}{%
\begin{tikzpicture}[remember picture,overlay]
% Background
\fill [red] (0mm,0mm) rectangle (250mm,190mm);
%Title
\node[anchor=north west]
at (10mm,90mm) (title)
{\parbox[t]{247mm}{\raggedleft%
\usebeamerfont{title}\textcolor{black}{\inserttitle}}};
\end{tikzpicture}
}
\mode
<all>
\end{filecontents*}
\documentclass[14pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\usepackage{tikz}
\RequirePackage{xcolor}
\usepackage[absolute,overlay]{textpos}
\title{Example Positioning disaster}
\geometry{papersize={250mm,190mm}}
\usetheme{positioning}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}
另外,我知道包textpos
,它似乎允许给出绝对坐标的概念。但据我所知,它只适用于文本。在 beamer/tikz 中是否也有用于绝对定位和在画布/纸上定义原点的原生解决方案?
感谢您对如何使用模板取得进展的评论和建议!
答案1
我个人的看法:tikz
对于简单的定位来说,使用有点小题大做。
对于我自己的 beamer 主题,我使用了一个简单的picture
环境,并使用 来定位元素\put(x,y){...}
。为了控制框架标题等的最大宽度和换行符,我使用minipage
s。
\documentclass[14pt]{beamer}
\geometry{papersize={250mm,190mm}}
% Title page
\setbeamertemplate{title page}{%
\setlength{\unitlength}{1mm}
\begin{picture}(250,190)(10,0)%
\put(0,0){\color{red}\rule{\paperwidth}{\paperheight}}
\put(72.0,100){%
\begin{minipage}[b][30.7mm][b]{169.3mm}
\usebeamerfont{title}{\inserttitle\par}
\end{minipage}
}
\end{picture}
}
\title{Example Positioning disaster}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}
第二种解决方案
如果您想继续使用 tikz,您可以根据页面定义坐标,例如填充整个背景:
\documentclass[14pt]{beamer}
\geometry{papersize={250mm,190mm}}
\usepackage{tikz}
\setbeamertemplate{title page}{%
\begin{tikzpicture}[overlay, remember picture]
\fill[red] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
}
\title{Example Positioning disaster}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}