Beamer 标题元素

Beamer 标题元素

我正在创建自己的自定义 .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}

相关内容