假设我使用以下命令重新定义了 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
将没有自己独特计数器的默认环境替换为有计数器的环境。默认情况下solution
,example
等等都共享一个共同的数字序列。这个技巧的作用是将solution
环境与该序列分离,以便它独立地递增 - 并且可以被操纵。