我想修改frametitle的颜色框的宽度。Metropolis对frametitle的定义如下:
\defbeamertemplate{frametitle}{plain}{%
\nointerlineskip%
\begin{beamercolorbox}[%
wd=\paperwidth,%
sep=0pt,%
leftskip=\metropolis@frametitle@padding,%
rightskip=\metropolis@frametitle@padding,%
]{frametitle}%
\metropolis@frametitlestrut@start%
\insertframetitle%
\nolinebreak%
\metropolis@frametitlestrut@end%
\end{beamercolorbox}%
}
彩色背景的宽度应为wd=0.25\paperwidth
。我该如何实现?
答案1
如果您希望宽度为wd=0.25\paperwidth
,只需在键中说明,然后设置模板frametitle
或使用 -version 定义新模板*
。但是,如果颜色框小于文本宽度,并且您仍希望将其左对齐,我们还需要将其移动到文本边距的外边缘。以下是一些示例代码:
\documentclass{beamer}
\usetheme{metropolis}
\makeatletter
\defbeamertemplate*{frametitle}{modified}{%
\nointerlineskip%
\hspace{-\beamer@leftmargin}%
\begin{beamercolorbox}[%
wd=0.25\paperwidth,%
sep=0pt,%
leftskip=\metropolis@frametitle@padding,%
rightskip=\metropolis@frametitle@padding,%
]{frametitle}%
\metropolis@frametitlestrut@start%
\insertframetitle%
\nolinebreak%
\metropolis@frametitlestrut@end%
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\section{Section}
\subsection{Subsection}
\begin{frame}
\frametitle{Frametitle}
Content1
\end{frame}
\subsection{Subsection 2}
\begin{frame}
\frametitle{Frametitle 2}
Content2
\end{frame}
\end{document}
结果: