Beamer:华沙:我的文字超出了标题范围

Beamer:华沙:我的文字超出了标题范围

使用 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}以获取更多(垂直} 空间,用于更多部分和子部分而不会溢出。

C

% !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 已过满”消息。

所以,第二个问题也解决了。

然而,我很疑惑:

  1. 这是华沙主题的一个错误吗?
  2. 有没有更好的方法来解决此问题?

相关内容