我想要一种的风格Theorem 1
,下一个是Theorem 1'
借助Amsthm包。
下面的代码看起来没有问题,但是无法编译:
\documentclass{beamer}
\newtheorem{mthm}{Theorem}
\newtheorem{thm}{Theorem}
\renewcommand{\themthm}{\ref{thm:1}'}
\begin{document}
\begin{frame}
\begin{thm}\label{thm:1}
test
\end{thm}
\begin{mthm}
test
\end{mthm}
\end{frame}
\end{document}
错误日志为:
! Missing \endcsname inserted.
<to be read again>
\csname\endcsname
l.16 \end{frame}
?
! Emergency stop.
<to be read again>
\csname\endcsname
l.16 \end{frame}
我发现了该行引起的错误\renewcommand{\themthm}{\ref{thm:1}'}
,但如何修复它?
答案1
第一种可能性:非共享计数器
\documentclass{beamer}
\setbeamertemplate{theorems}[numbered]
\newtheorem{thm}{Theorem}
\newtheorem{mthm}{Theorem}
\renewcommand{\themthm}{\arabic{mthm}'}
\begin{document}
\begin{frame}
\begin{thm}\label{thm:1}
test
\end{thm}
\begin{thm}\label{thm:2}
test
\end{thm}
\begin{mthm}
test
\end{mthm}
\begin{thm}\label{thm:3}
test
\end{thm}
\end{frame}
\end{document}
输出
第二种可能性:共享柜台
\documentclass{beamer}
\setbeamertemplate{theorems}[numbered]
\newtheorem{thm}{Theorem}
\newtheorem{mthm}[thm]{Theorem}
\usepackage{etoolbox}
\AtBeginEnvironment{mthm}{\addtocounter{thm}{-1}\renewcommand{\thethm}{\arabic{thm}'}}
\begin{document}
\begin{frame}
\begin{thm}\label{thm:1}
test
\end{thm}
\begin{thm}\label{thm:2}
test
\end{thm}
\begin{mthm}
test
\end{mthm}
\begin{thm}\label{thm:3}
test
\end{thm}
\end{frame}
\end{document}
amsthm
是不需要的,但加载它不会引起任何冲突。