编辑

编辑

假设我使用以下命令重新定义了 Beamer 中的解决方案环境:

\let\solution\relax

\let\endsolution\relax

\newtheorem{solution}[theorem]{\translate{Solution}}

然后如何更改新解决方案环境的标题和正文的颜色?

平均能量损失

\documentclass[t,xcolor=dvipsnames,fleqn,graphics]{beamer}

\usetheme{CambridgeUS}

\setbeamercovered{invisible}

\setbeamertemplate{navigation symbols}{}

\usepackage{framed,color}

\setbeamertemplate{theorems}[numbered]

\newcommand{\newblock}{}

\let\example\undefined

\theoremstyle{example}

\newtheorem{example}{\translate{Example}}

\let\solution\relax

\let\endsolution\relax

\newtheorem{solution}[theorem]{\translate{Solution}}

%

\begin{document}

%

\begin{frame}

\begin{example}

...

\end{example}

%

\begin{solution}

...

\end{solution}

%

\end{frame}

%

\end{document}

我想将“解决方案 1”的颜色从绿色改为蓝色。我该怎么做?

事实上,我重新定义解决方案环境的主要原因是通过不同的框架来控制它的计数器。特别是,该命令\addtocounter{solution}{1}在解决方案环境之前不起作用,所以我现在使用\addtocounter{theorem}{1}确实有效的命令,但不幸的是,它剥夺了我为解决方案环境使用不同颜色的权利。

在此处输入图片描述

答案1

有什么特殊原因导致你不能直接这么做吗?

\documentclass[t]{beamer}
\usetheme{CambridgeUS}
\setbeamercovered{invisible}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{theorems}[numbered]
\let\solution\relax
\newtheorem{solution}{\translate{Solution}}

\begin{document}
\begin{frame}
\begin{example}

...

\end{example}

\begin{solution}

...

\end{solution}
\end{frame}
\begin{frame}
\begin{example}

...

\end{example}

\begin{solution}

...

\end{solution}
\end{frame}
\end{document}

解决方案重新编号

编辑

完全可以操纵用于对solution环境进行编号的计数器。例如,如果第二个frame被更改如下:

\end{frame}
\begin{frame}[fragile]
\begin{example}

...

\end{example}
If we want the next \verb|solution| environment to be numbered 58 rather than 2, we can add 56 to the counter:

\verb|\addtocounter{solution}{56}|
\addtocounter{solution}{56}

\begin{solution}

...

\end{solution}
\end{frame}

那么输出正如预期的那样:

劫持计数器

这样做的原因是

\let\solution\relax
\newtheorem{solution}{\translate{Solution}}

solution将没有自己独特计数器的默认环境替换为有计数器的环境。默认情况下solutionexample等等都共享一个共同的数字序列。这个技巧的作用是将solution环境与该序列分离,以便它独立地递增 - 并且可以被操纵。

相关内容