![我想要的](https://linux22.com/image/464684/%E6%88%91%E6%83%B3%E8%A6%81%E7%9A%84.png)
我使用的是 Beamer 主题(新加坡),该主题使用 Miniframes 作为标题。此标题将包含部分名称,但不包含其编号。
我想要的
我想在章节名称旁边包含章节编号。
它看起来像这样:
First section Second section Another section
o o o o o o o o o o o
我希望它看起来像这样:
1 First section 2 Second section 3 Another section
o o o o o o o o o o o
我尝试过
我尝试查看它是如何完成的(在beamerouterthememiniframes.sty
),这似乎是在 Miniframes 中定义标题的方式:
\defbeamertemplate*{headline}{miniframes theme}
{%
\begin{beamercolorbox}[colsep=1.5pt]{upper separation line head}
\end{beamercolorbox}
\begin{beamercolorbox}{section in head/foot}
\vskip2pt\insertnavigation{\paperwidth}\vskip2pt
\end{beamercolorbox}%
\ifbeamer@theme@subsection%
\begin{beamercolorbox}[colsep=1.5pt]{middle separation line head}
\end{beamercolorbox}
\begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
\usebeamerfont{subsection in head/foot}\insertsubsectionhead
\end{beamercolorbox}%
\fi%
\begin{beamercolorbox}[colsep=1.5pt]{lower separation line head}
\end{beamercolorbox}
}
如果我理解正确的话,这个\insertnavigation
标签的作用是打印部分名称。我被困在这里,因为我不能直接添加部分编号(\thesection
我认为)。
问题
如何在章节名称中包含章节编号?
答案1
您可以重新定义\sectionentry
以包含数字:
\documentclass{beamer}
\usetheme{Singapore}
\makeatletter
\def\sectionentry#1#2#3#4#5{% section number, section title, page
\beamer@xpos=0\relax%
\beamer@ypos=1\relax%
\beamer@ypos@offset=0\relax%
\ifnum#5=\c@part%
\beamer@section@set@min@width%
\box\beamer@sectionbox\hskip1.875ex plus 1fill%
\setbox\beamer@sectionbox=
\hbox{\def\insertsectionhead{#1~#2}%
\def\insertsectionheadnumber{#1}%
\def\insertpartheadnumber{#5}%
{%
\usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}%
\ifnum\c@section=#1%
\hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot}}}%
\else%
\hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot shaded}}}%
\fi}%
}%
\ht\beamer@sectionbox=1.875ex%
\dp\beamer@sectionbox=0.75ex%
\fi\ignorespaces}
\makeatother
\begin{document}
\section{title}
\begin{frame}
abc
\end{frame}
\section{title}
\begin{frame}
content...
\end{frame}
\end{document}