Beamer miniframes:使用压缩选项时点之间的水平空间

Beamer miniframes:使用压缩选项时点之间的水平空间

我使用的是 beamer miniframes 主题(subsection=false)和压缩选项。目前,导航并排显示每个子部分的点。我希望每个子部分的点之间有一个水平空间(例如,宽度为一个点)。这可能吗?

现在它看起来像:

第 1 部分

噢噢噢噢

我希望它看起来像:

第 1 部分

噢噢噢

梅威瑟:

\documentclass[compress]{beamer}  
\useoutertheme[subsection=false]{miniframes}  
\begin{document}  
\section{Sec 1}  
\subsection{}  
\begin{frame}[t]  
  hi  
\end{frame}
\subsection{}  
\begin{frame}[t]  
  hi  
\end{frame}
\end{document}`

答案1

需要修改 的定义\slideentry,在文件中可以看到这个命令.nav,这个文件就是用来生成点的。

原始定义在beamerbasenavigation.sty。我只添加了三行:包含%%%

\documentclass[compress]{beamer}
\useoutertheme[subsection=false]{miniframes}

\makeatletter
\def\slideentry#1#2#3#4#5#6{%
  %section number, subsection number, slide number, first/last frame, page number, part number
  \ifnum#6=\c@part\ifnum#2>0\ifnum#3>0%
    \ifbeamer@compress%
      \advance\beamer@xpos by1\relax%
      \ifnum1=#3                        %%% NOTICE
        \advance\beamer@xpos by1\relax% %%% THESE
      \fi                               %%% LINE
    \else%
      \beamer@xpos=#3\relax%
      \beamer@ypos=#2\relax%
    \fi%
  \hbox to 0pt{%
    \beamer@tempdim=-\beamer@vboxoffset%
    \advance\beamer@tempdim by-\beamer@boxsize%
    \multiply\beamer@tempdim by\beamer@ypos%
    \advance\beamer@tempdim by -.05cm%
    \raise\beamer@tempdim\hbox{%
      \beamer@tempdim=\beamer@boxsize%
      \multiply\beamer@tempdim by\beamer@xpos%
      \advance\beamer@tempdim by -\beamer@boxsize%
      \advance\beamer@tempdim by 1pt%
      \kern\beamer@tempdim
      \global\beamer@section@min@dim\beamer@tempdim
      \hbox{\beamer@link(#4){%
          \usebeamerfont{mini frame}%
          \ifnum\c@section=#1%
            \ifnum\c@subsection=#2%
              \usebeamercolor[fg]{mini frame}%
              \ifnum\c@subsectionslide=#3%
                \usebeamertemplate{mini frame}%\beamer@minislidehilight%
              \else%
                \usebeamertemplate{mini frame in current subsection}%\beamer@minisliderowhilight%
              \fi%
            \else%
              \usebeamercolor{mini frame}%
              %\color{fg!50!bg}%
              \usebeamertemplate{mini frame in other subsection}%\beamer@minislide%
            \fi%
          \else%
            \usebeamercolor{mini frame}%
            %\color{fg!50!bg}%
            \usebeamertemplate{mini frame in other subsection}%\beamer@minislide%
          \fi%
        }}}\hskip-10cm plus 1fil%
  }\fi\fi%
  \else%
  \fakeslideentry{#1}{#2}{#3}{#4}{#5}{#6}%
  \fi\ignorespaces
}

\begin{document}
    \section{1}
        \subsection{1-1}
            \frame{}
            \frame{}
            \frame{}
        \subsection{1-2}
            \frame{}
            \frame{}
            \frame{}
        \subsection{1-3}
            \frame{}
            \frame{}
            \frame{}
    \section{2}
        \subsection{2-1}
            \frame{}
            \frame{}
            \frame{}
        \subsection{2-2}
            \frame{}
            \frame{}
            \frame{}
        \subsection{2-3}
            \frame{}
            \frame{}
            \frame{}
    \section{3}
        \subsection{3-1}
            \frame{}
            \frame{}
            \frame{}
        \subsection{3-2}
            \frame{}
            \frame{}
            \frame{}
        \subsection{3-3}
            \frame{}
            \frame{}
            \frame{}
\end{document}

相关内容