为什么在引用 self-made 环境时块 header 的高度会增加?如何避免这种情况?
Why does the height of the block header increase when making references to self-made environments? How to avoid this?
我正在使用 MikTex 2.9 制作 beamer 演示文稿,并且我自己制作了一些环境。我希望能够引用这些环境,但是当我这样做时,块的高度 header 由于某种原因增加了。
\newcounter{theo}[part]
\renewcommand{\thetheo}{\arabic{theo}}
\resetcounteronoverlays{theo}
\newenvironment<>{theo}[2]{
\setbeamercolor{block title}{fg=white,bg=dgreen!100!white}
\begin{block}{\refstepcounter{theo}\label{#2}Saetning~\thetheo #1}}{\end{block}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize item}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize subitem}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate item}{fg=dgreen!100!black}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}}
输出看起来不错,只是块 header 比我不想引用定理的块要高得多(它增长了大约 1.67 倍)。无论我是否确实引用了某个定理,问题都存在。上面的代码旨在使这些引用成为可能。这足以创建这个 block-header-height-problem。我没有使用 built-in theorem-environment,因为我正在用丹麦语制作 beamer-presentations(Saetning 是丹麦语的 Theorem),我还想通过为 bullet-points 着色来自定义环境颜色与方块 header 相同。有人可以帮帮我吗?顺便说一句,我正在使用 \usetheme{Aalborg}。
我不会尝试定义一个新环境,而是简单地使用 beamer 提供的内置 theorem
环境和翻译机制。
要将其调整为与您在问题中显示的格式相同,可以进行一些小的调整:
\documentclass{beamer}
\usetheme{Aalborg}
\uselanguage{danish}
\languagepath{danish}
\deftranslation[to=danish]{Theorem}{Saetning}
\makeatletter
\setbeamertemplate{theorem begin}{%
\setbeamercolor{block title}{bg=cyan!100!white}%
\setbeamercolor{itemize item}{fg=cyan!100!white}%
\setbeamercolor{itemize subitem}{fg=cyan!100!white}%
\setbeamercolor{itemize subsubitem}{fg=cyan!100!white}%
\setbeamercolor{enumerate item}{fg=cyan!100!black}%
\setbeamercolor{enumerate subitem}{fg=cyan!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=cyan!100!black}%
\begin{\inserttheoremblockenv}
{%
\inserttheoremname
\inserttheoremnumber
\ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi%
}%
}
\setbeamertemplate{theorem end}{%
\end{\inserttheoremblockenv}%
}
\makeatother
\begin{document}
\begin{frame}
\begin{theorem}[Pythagoras]
$a^2+b^2=c^2$
\begin{itemize}
\item test
\end{itemize}
\label{pytagoras}
\end{theorem}
Theorem \ref{pytagoras}
\begin{block}{Title Pythagoras}
content...
\begin{itemize}
\item test
\end{itemize}
\end{block}
\end{frame}
\end{document}
我正在使用 MikTex 2.9 制作 beamer 演示文稿,并且我自己制作了一些环境。我希望能够引用这些环境,但是当我这样做时,块的高度 header 由于某种原因增加了。
\newcounter{theo}[part]
\renewcommand{\thetheo}{\arabic{theo}}
\resetcounteronoverlays{theo}
\newenvironment<>{theo}[2]{
\setbeamercolor{block title}{fg=white,bg=dgreen!100!white}
\begin{block}{\refstepcounter{theo}\label{#2}Saetning~\thetheo #1}}{\end{block}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize item}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize subitem}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate item}{fg=dgreen!100!black}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate subitem}{fg=dgreen!100!black}}
\AtBeginEnvironment{theo}{\setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}}
输出看起来不错,只是块 header 比我不想引用定理的块要高得多(它增长了大约 1.67 倍)。无论我是否确实引用了某个定理,问题都存在。上面的代码旨在使这些引用成为可能。这足以创建这个 block-header-height-problem。我没有使用 built-in theorem-environment,因为我正在用丹麦语制作 beamer-presentations(Saetning 是丹麦语的 Theorem),我还想通过为 bullet-points 着色来自定义环境颜色与方块 header 相同。有人可以帮帮我吗?顺便说一句,我正在使用 \usetheme{Aalborg}。
我不会尝试定义一个新环境,而是简单地使用 beamer 提供的内置 theorem
环境和翻译机制。
要将其调整为与您在问题中显示的格式相同,可以进行一些小的调整:
\documentclass{beamer}
\usetheme{Aalborg}
\uselanguage{danish}
\languagepath{danish}
\deftranslation[to=danish]{Theorem}{Saetning}
\makeatletter
\setbeamertemplate{theorem begin}{%
\setbeamercolor{block title}{bg=cyan!100!white}%
\setbeamercolor{itemize item}{fg=cyan!100!white}%
\setbeamercolor{itemize subitem}{fg=cyan!100!white}%
\setbeamercolor{itemize subsubitem}{fg=cyan!100!white}%
\setbeamercolor{enumerate item}{fg=cyan!100!black}%
\setbeamercolor{enumerate subitem}{fg=cyan!100!black}%
\setbeamercolor{enumerate subsubitem}{fg=cyan!100!black}%
\begin{\inserttheoremblockenv}
{%
\inserttheoremname
\inserttheoremnumber
\ifx\inserttheoremaddition\@empty\else\ \inserttheoremaddition\fi%
}%
}
\setbeamertemplate{theorem end}{%
\end{\inserttheoremblockenv}%
}
\makeatother
\begin{document}
\begin{frame}
\begin{theorem}[Pythagoras]
$a^2+b^2=c^2$
\begin{itemize}
\item test
\end{itemize}
\label{pytagoras}
\end{theorem}
Theorem \ref{pytagoras}
\begin{block}{Title Pythagoras}
content...
\begin{itemize}
\item test
\end{itemize}
\end{block}
\end{frame}
\end{document}