如何删除区块头和区块体之间的多余空间?

问题描述 投票:0回答:1

在投影仪演示中的不同环境上放置标签时,它会在块标题和块主体中的第一行之间创建一些不需要的额外空间。稍后是否使用该引用并不重要。这适用于下面代码中提供的所有环境。有没有办法去掉这个多余的空间?

\documentclass[9pt,trans,xcolor={table},envcountsect]{beamer} % Plain

\usefonttheme[onlymath]{serif}
\usetheme[shownavsym,right]{Aalborg}

\setbeamertemplate{section in toc}[sections numbered] % Automatic enumeration of sections
\setbeamertemplate{blocks}[rounded][shadow=true] 

\definecolor{dgreen}{rgb}{0.,0.6,0.} 
\definecolor{aaublue}{RGB}{33,26,82}% dark blue

\usepackage{etoolbox} % In order to still use an outdated beamer version

\AtBeginEnvironment{theorem}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{lemma}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{corollary}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{definition}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=blue,fg=white}%
\setbeamercolor{itemize item}{fg=blue}%
\setbeamercolor{itemize subitem}{fg=blue}%
\setbeamercolor{itemize subsubitem}{fg=blue}%
\setbeamercolor{enumerate item}{fg=blue}%
\setbeamercolor{enumerate subitem}{fg=blue}%
\setbeamercolor{enumerate subsubitem}{fg=blue}%
}

\newtheorem{opgave}{Opgave}[section]
\AtBeginEnvironment{opgave}{
  \setbeamercolor{block title}{fg=white,bg=normal text.bg!10!red}
  \setbeamercolor{block title}{fg=white,bg=red}
  \setbeamertemplate{itemize items}[circle]      
  \setbeamercolor{itemize item}{fg=red}
  \setbeamercolor{itemize subitem}{fg=red}
  \setbeamercolor{itemize subsubitem}{fg=red}
  \setbeamercolor{enumerate item}{fg=red}
  \setbeamercolor{enumerate subitem}{fg=red}
  \setbeamercolor{enumerate subsubitem}{fg=red}
} 

\setbeamercolor*{block body}{bg=black!10!white,fg=black} 
\setbeamercolor*{block body alerted}{bg=normal text.bg!90!black,fg=black} 
\setbeamercolor*{block body example}{bg=normal text.bg!90!black,fg=black} 
\setbeamercolor*{block title}{parent=structure2,bg=normal text.bg!0!blue}
\setbeamercolor*{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!0!white,bg=normal text.bg!10!red}
\setbeamercolor*{block title example}{use={normal text,example text},fg=white,bg=cyan}
\setbeamercolor*{block title theorem}{use={normal text,example text},fg=example text.fg!100!normal text.fg,bg=normal text.bg!0!dgreen}

\makeatletter
\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{color(0pt)=(lower.bg); color(4pt)=(lower.bg); color(4pt)=(upper.bg)}
\makeatother

\makeatletter
\newcommand{\ShiftSectionNumber}[1]{%
\beamer@tocsectionnumber=\numexpr#1+\beamer@tocsectionnumber}
\makeatother

\setbeamertemplate{theorems}[numbered]
\addtobeamertemplate{theorem begin}{\normalfont}

\let\definition\undefined
\newtheorem{definition}{\translate{Definition}}[section]


\begin{document}

\begin{frame}%[allowframebreaks]
    \frametitle{Overview}
    \tableofcontents
\end{frame}

\ShiftSectionNumber{4}
\addtocounter{section}{4} % Enumeration of theorems and examples follows section numbers

\section{Section}
\begin{frame}[<+->]{Extra unwanted space}
    \begin{definition}\label{def:FirstDefinition}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}        
    \end{definition}
    \begin{lemma}\label{lemma:FirstLemma}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}     
    \end{lemma}
    \begin{theorem}\label{th:FirstTheorem}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}     
    \end{theorem}
    \begin{corollary}\label{cor:FirstOpgave}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}        
    \end{corollary}
    \begin{opgave}\label{opg:FirstOpgave}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}        
    \end{opgave}
\end{frame}

\end{document}
latex beamer
1个回答
0
投票

使用风险自负(来自 https://github.com/josephwright/beamer/issues/541#issuecomment-552993755):

\documentclass[9pt,trans,xcolor={table},envcountsect]{beamer} % Plain

\usefonttheme[onlymath]{serif}
\usetheme[shownavsym,right]{Aalborg}

\setbeamertemplate{section in toc}[sections numbered] % Automatic enumeration of sections
\setbeamertemplate{blocks}[rounded][shadow=true] 

\definecolor{dgreen}{rgb}{0.,0.6,0.} 
\definecolor{aaublue}{RGB}{33,26,82}% dark blue

\usepackage{etoolbox} % In order to still use an outdated beamer version

\AtBeginEnvironment{theorem}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{lemma}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{corollary}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=dgreen!100!white,fg=white}%
\setbeamercolor{itemize item}{fg=dgreen!100!white}%
\setbeamercolor{itemize subitem}{fg=dgreen!100!white}%
\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}%
\setbeamercolor{enumerate item}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}%
}

\AtBeginEnvironment{definition}{%
\setbeamertemplate{itemize items}[circle]                    % Shape of bullet-points
\setbeamercolor{block title}{bg=blue,fg=white}%
\setbeamercolor{itemize item}{fg=blue}%
\setbeamercolor{itemize subitem}{fg=blue}%
\setbeamercolor{itemize subsubitem}{fg=blue}%
\setbeamercolor{enumerate item}{fg=blue}%
\setbeamercolor{enumerate subitem}{fg=blue}%
\setbeamercolor{enumerate subsubitem}{fg=blue}%
}

\newtheorem{opgave}{Opgave}[section]
\AtBeginEnvironment{opgave}{
  \setbeamercolor{block title}{fg=white,bg=normal text.bg!10!red}
  \setbeamercolor{block title}{fg=white,bg=red}
  \setbeamertemplate{itemize items}[circle]      
  \setbeamercolor{itemize item}{fg=red}
  \setbeamercolor{itemize subitem}{fg=red}
  \setbeamercolor{itemize subsubitem}{fg=red}
  \setbeamercolor{enumerate item}{fg=red}
  \setbeamercolor{enumerate subitem}{fg=red}
  \setbeamercolor{enumerate subsubitem}{fg=red}
} 

\setbeamercolor*{block body}{bg=black!10!white,fg=black} 
\setbeamercolor*{block body alerted}{bg=normal text.bg!90!black,fg=black} 
\setbeamercolor*{block body example}{bg=normal text.bg!90!black,fg=black} 
\setbeamercolor*{block title}{parent=structure2,bg=normal text.bg!0!blue}
\setbeamercolor*{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!0!white,bg=normal text.bg!10!red}
\setbeamercolor*{block title example}{use={normal text,example text},fg=white,bg=cyan}
\setbeamercolor*{block title theorem}{use={normal text,example text},fg=example text.fg!100!normal text.fg,bg=normal text.bg!0!dgreen}

\makeatletter
\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{color(0pt)=(lower.bg); color(4pt)=(lower.bg); color(4pt)=(upper.bg)}
\makeatother

\makeatletter
\newcommand{\ShiftSectionNumber}[1]{%
\beamer@tocsectionnumber=\numexpr#1+\beamer@tocsectionnumber}
\makeatother

\setbeamertemplate{theorems}[numbered]
\addtobeamertemplate{theorem begin}{\normalfont}

\let\definition\undefined
\newtheorem{definition}{\translate{Definition}}[section]

\makeatletter
\def\beamer@inserttarget#1{%
  \ifbeamer@inframe%
    #1%
  \else% defer to next frame
    \expandafter\gdef\expandafter\beamer@framehypertargets\expandafter{\beamer@framehypertargets#1}%
  \fi%
}
\makeatother


\begin{document}

\begin{frame}%[allowframebreaks]
    \frametitle{Overview}
    \tableofcontents
\end{frame}

\ShiftSectionNumber{4}
\addtocounter{section}{4} % Enumeration of theorems and examples follows section numbers

\section{Section}
\begin{frame}[<+->]{Extra unwanted space}
    \begin{definition}\label{def:FirstDefinition}%
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}
    \end{definition}
    \begin{lemma}\label{lemma:FirstLemma}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}     
    \end{lemma}
    \begin{theorem}\label{th:FirstTheorem}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}     
    \end{theorem}
    \begin{corollary}\label{cor:FirstOpgave}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}        
    \end{corollary}
    \begin{opgave}\label{opg:FirstOpgave}
        \begin{itemize}
            \item Wanted: Extra space above this line removed.
        \end{itemize}        
    \end{opgave}
\end{frame}

\end{document}

© www.soinside.com 2019 - 2024. All rights reserved.