
Я экспериментирую с настройкой презентаций проектора и попробовал следующий код для настройки внешнего вида и содержания заголовка фрейма:
\setbeamertemplate{frametitle}{
\begin{beamercolorbox}[left, wd = \paperwidth, ht = 1em]{palette frame title}
\usebeamerfont{frametitle}
\textbf{\insertframetitle}
\end{beamercolorbox}
\begin{beamercolorbox}[wd = \paperwidth, ht = .15em]{palette frame title}
\rule{\paperwidth}{.15em}
\end{beamercolorbox}
}
Результат следующий (я установил bg = yellow
в палитре для beamercolorbox
наглядности их размеры):
Я был бы признателен, если бы кто-нибудь объяснил мне, откуда взялись оба пустых пространства: одно над первым beamercolorbox
, и одно между двумя полями. Я заметил, что изменение высоты полей, похоже, меняет размер этих пустых пространств, что кажется мне странным поведением и затрудняет точное определение местоположения вещей.
решение1
Вы можете взглянуть на темы Beamer по умолчанию, чтобы увидеть, как они удаляют межстрочный пропуск в зависимости от наличия фонового цвета, см., например,https://github.com/josephwright/beamer/blob/main/base/themes/outer/beamerouterthemedefault.sty#L164
\documentclass{beamer}
\setbeamertemplate{frametitle}{%
\ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
\begin{beamercolorbox}[left,wd=\paperwidth,ht=2.5ex,dp=1ex]{frametitle}
\usebeamerfont{frametitle}%
\strut\insertframetitle
\end{beamercolorbox}%
\ifbeamercolorempty[bg]{lower separation line head}{}{\nointerlineskip}%
\begin{beamercolorbox}[colsep=1.5pt,wd=\paperwidth]{lower separation line head}
\end{beamercolorbox}%
}
\setbeamercolor{frametitle}{bg=yellow,fg=blue}
\setbeamerfont{frametitle}{series=\bfseries}
\setbeamercolor{lower separation line head}{bg=blue}
\begin{document}
\begin{frame}
\frametitle{titgle}
abc
\end{frame}
\end{document}