使用 beamer 时我使用的是华沙主题。
我正在使用 texlive 20200327。
这是我的代码:
\documentclass[10pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\mode<presentation>{\usetheme{Warsaw}\setbeamercovered{transparent}}
\begin{document}
\section{abdiqua 1}
\subsection{abdiqua 2}
\begin{frame}
abdiqua 3
\end{frame}
\subsection{abdiqua 4}
\begin{frame}
abdiqua 5
\end{frame}
\subsection{abdiqua 6}
\begin{frame}
abdiqua 7
\end{frame}
\subsection{abdiqua 8}
\begin{frame}
abdiqua 9
\end{frame}
\subsection{abdiqua 10}
\begin{frame}
abdiqua 11
\end{frame}
\subsection{abdiqua 12}
\begin{frame}
abdiqua 13
\end{frame}
\end{document}
事实上,“abdiqua 12”中的“q”字母的一部分在标题中看不见。
请问该如何修复?
另一个问题:在输出中,我还看到一些“当 \output 处于活动状态时,\vbox 已过满”消息:
$ pdflatex main.tex
[...]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[1{/usr/share/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[2]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[3]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[4]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[5]
Overfull \vbox (3.16953pt too high) has occurred while \output is active
[6] (./main.aux) )
(see the transcript file for additional information){/usr/share/texmf-dist/font
s/enc/dvips/base/8r.enc}</usr/share/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.
pfb>
Output written on main.pdf (6 pages, 17099 bytes).
Transcript written on main.log.
请问如何解决第二个问题?
谢谢。
此致。
备注:可交叉发布这里
答案1
您正在使用默认的useoutertheme
。将其更改为\useoutertheme{sidebar}
以获取更多(垂直} 空间,用于更多部分和子部分而不会溢出。
% !TeX TS-program = pdflatex
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\mode<presentation>{\usetheme{Warsaw}\setbeamercovered{transparent}}
\useoutertheme{sidebar} % added <<<<<<<<<<<<<<
\begin{document}
\section{abdiqua I}
\subsection{abdiqua 2}
\begin{frame}
abdiqua 3
\end{frame}
\subsection{abdiqua 4}
\begin{frame}
abdiqua 5
\end{frame}
\subsection{abdiqua 6}
\begin{frame}
abdiqua 7
\end{frame}
\subsection{abdiqua 8}
\begin{frame}
abdiqua 9
\end{frame}
\subsection{abdiqua 10}
\begin{frame}
abdiqua 11
\end{frame}
\subsection{abdiqua 12}
\begin{frame}
abdiqua 13
\end{frame}
\section{abdiqua II}
\subsection{abdiqua 2}
\begin{frame}
abdiqua 3
\end{frame}
\subsection{abdiqua 4}
\begin{frame}
abdiqua 5
\end{frame}
\subsection{abdiqua 6}
\begin{frame}
abdiqua 7
\end{frame}
\subsection{abdiqua 8}
\begin{frame}
abdiqua 9
\end{frame}
\subsection{abdiqua 10}
\begin{frame}
abdiqua 11
\end{frame}
\subsection{abdiqua 12}
\begin{frame}
abdiqua 13
\end{frame}
\end{document}
答案2
我找到了一个解决方法。
这是我的做法。
由于我使用的是 Warsaw 主题,因此我在 texmf-dist 目录中找到了相应的文件:
$ find /usr/share/texmf-dist -name '*Warsaw*'
/usr/share/texmf-dist/tex/latex/beamer/beamerthemeWarsaw.sty
以下是该文件的内容:
$ cat /usr/share/texmf-dist/tex/latex/beamer/beamerthemeWarsaw.sty
[...]
\useinnertheme[shadow=true]{rounded}
\useoutertheme{shadow}
\usecolortheme{orchid}
\usecolortheme{whale}
[...]
由于它使用了阴影外主题,我在 texmf-dist 目录中找到了相应的文件:
$ find /usr/share/texmf-dist -name '*outerthemeshadow*'
/usr/share/texmf-dist/tex/latex/beamer/beamerouterthemeshadow.sty
以下是该文件的内容:
$ cat /usr/share/texmf-dist/tex/latex/beamer/beamerouterthemeshadow.sty
[...]
\useoutertheme{split}
[...]
由于它使用了分割外主题,我在 texmf-dist 目录中找到了相应的文件:
$ find /usr/share/texmf-dist -name '*outerthemesplit*'
/usr/share/texmf-dist/tex/latex/beamer/beamerouterthemesplit.sty
/usr/share/texmf-dist/tex/latex/beamerauxtheme/beamerouterthemesplitwithminiframes.sty
以下是该文件的内容:
$ cat /usr/share/texmf-dist/tex/latex/beamer/beamerouterthemesplit.sty
[...]
\defbeamertemplate*{headline}{split theme}
{%
\leavevmode%
\@tempdimb=2.4375ex%
\ifnum\beamer@subsectionmax<\beamer@sectionmax%
\multiply\@tempdimb by\beamer@sectionmax%
\else%
\multiply\@tempdimb by\beamer@subsectionmax%
\fi%
\ifdim\@tempdimb>0pt%
\advance\@tempdimb by 1.825ex%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
\vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
\vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\fi%
}
[...]
因此,我通过设置自己的模板定义来修复此模板定义:
\documentclass[10pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\mode<presentation>{\usetheme{Warsaw}\setbeamercovered{transparent}}
% fix the height in the headline
% /usr/share/texmf-dist/tex/latex/beamer/beamerouterthemesplit.sty
\makeatletter
\setbeamertemplate{headline}{%
\leavevmode%
\@tempdimb=2.4375ex%
\ifnum\beamer@subsectionmax<\beamer@sectionmax%
\multiply\@tempdimb by\beamer@sectionmax%
\else%
\multiply\@tempdimb by\beamer@subsectionmax%
\fi%
\ifdim\@tempdimb>0pt%
\advance\@tempdimb by 3ex% here is the fix
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
\vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
\vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\fi%
}
\makeatother
\begin{document}
\section{abdiqua 1}
\subsection{abdiqua 2}
\begin{frame}
abdiqua 3
\end{frame}
\subsection{abdiqua 4}
\begin{frame}
abdiqua 5
\end{frame}
\subsection{abdiqua 6}
\begin{frame}
abdiqua 7
\end{frame}
\subsection{abdiqua 8}
\begin{frame}
abdiqua 9
\end{frame}
\subsection{abdiqua 10}
\begin{frame}
abdiqua 11
\end{frame}
\subsection{abdiqua 12}
\begin{frame}
abdiqua 13
\end{frame}
\end{document}
与原始模板唯一的区别是我增加了高度的那条线。
此外,在输出中,我不再看到“当 \output 处于活动状态时,\vbox 已过满”消息。
所以,第二个问题也解决了。
然而,我很疑惑:
- 这是华沙主题的一个错误吗?
- 有没有更好的方法来解决此问题?