我正在创建自己的自定义 .tex beamer 模板。我在自定义标题时遇到了问题。
我在命令中插入标题\defbeamertemplate*{title page}
,这应该覆盖在 tikz 图片上(在 中定义\setbeamertemplate{background}
)。
现在,这是我无法修复的(而且有很多,很抱歉):
我希望文本框“锚定”在西南方向,这样如果标题有多行,文本框就会向北扩展而不会覆盖作者的名字。我希望字体大得离谱,下划线“宽度”也大。我还想将行距改为 1 厘米,但仅限于标题。最后,对于换行符,如果它是自动的,我会很感激(现在用户必须在需要的地方手动输入换行符,否则它会向东溢出)
这是一个 MWE:beamerthemeMWE.sty
\RequirePackage{tikz, xcolor, textpos, fontawesome, adjustbox,ulem}
\usetikzlibrary{shapes.geometric, matrix}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand*\ttdefault{\sfdefault}
\setbeamerfont{title}{size=\fontsize{33.3}{60}}
\setbeamerfont{author}{size=\fontsize{10}{55}}
\setbeamerfont{normal text}{size=\fontsize{16}{20}}
\AtBeginDocument{\usebeamerfont{normal text}}
\setbeamertemplate{background}{
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (\the\paperwidth,\the\paperheight);
\end{tikzpicture}
}
\defbeamertemplate*{title page}{MWE}[1][]{
\begin{textblock}{12}(0.35,0){
\renewcommand{\ULthickness}{2.5pt}
\uline{\usebeamerfont{title}\inserttitle}}
\end{textblock}
\begin{textblock}{200}(0.3,4.5)
{\usebeamerfont{author}\insertauthor \\\vspace{-.25cm} \insertdate}
\end{textblock}
}
例子.tex
\documentclass[ aspectratio=169]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{MWE}
\title{This is a title that,\\as you can see, behaves strangely}
\date{\today}
\author{Michel TheMan}
\begin{document}
\frame{\titlepage}
\end{document}
我不知道为什么字体在换行符处会发生变化,在此之前我无法更改两行之间的间距,也无法更改文本和下划线之间的间距。
答案1
我还没有完全清理代码,我将定义放在主文件中,以便更轻松地使用它(我将把它留给你,再次将其分离成样式文件)。
我的做法是将标题放在一个框中,测量其高度和深度,并用它来定位。这样你就可以实现你想要的行为:
文本框“锚定”在西南方向,这样如果标题有多行,文本框就会向北扩展
另外,我使用了soul
下划线包,因为它具有换行符和更多自定义功能。此外,我手动操作\baselineskip
。一般来说,你应该非常小心地做这件事,但在这里应该没问题。
\documentclass[aspectratio=169]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz, xcolor, textpos, fontawesome, adjustbox}
\usepackage{soul}
\usetikzlibrary{shapes.geometric, matrix}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand*\ttdefault{\sfdefault}
\setbeamerfont{title}{size=\fontsize{33.3}{60}}
\setbeamerfont{author}{size=\fontsize{10}{55}}
\setbeamerfont{normal text}{size=\fontsize{16}{20}}
\AtBeginDocument{\usebeamerfont{normal text}}
\setbeamertemplate{background}{
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (\the\paperwidth,\the\paperheight);
\end{tikzpicture}
}
\defbeamertemplate*{title page}{MWE}[1][]{%
\sbox0{\hbox{\parbox[t]{\linewidth}{% Here is the magic, save all in box 0
\usebeamerfont{title}\setlength{\baselineskip}{1.3em}% manipulate \baselineskip manually
\setul{.3ex}{2pt}% set underline depth to .3ex and line thickness to 2pt (soul package)
\expandafter\ul\expandafter{\inserttitle}\par}}}
\begin{textblock*}{\linewidth}(.3cm,\dimexpr50pt-\ht0-\dp0\relax)% Using height and depth of box 0
\usebox0% put the content in here
\end{textblock*}
\begin{textblock}{200}(0.3,4.5)
{\usebeamerfont{author}\insertauthor \\\vspace{-.25cm} \insertdate}
\end{textblock}
}
\title{This is a title that,\\as you can see, behaves strangely}
\date{\today}
\author{Michel TheMan}
\begin{document}
\frame{\titlepage}
\title{This is a title}
\frame{\titlepage}
\end{document}