我尝试在我的 beamer 项目中使用 makeidx.sty。
前两次使用latex编译,输入文件都可以成功处理。
然后我执行makeindex,它也运行并且没有错误。
但是当我再次调用 latex.exe 时,我收到一条错误消息
!LaTeX Error: Environment theindex undefined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
1.1 \begin{\theindex}
\documentclass{beamer}
\usepackage{makeidx}
\makeindex
\begin{document}
\begin{frame}{test 1}
\index{Laplace}Laplace transform is...
\LaTeXe\ can make you happy!
\end{frame}
\begin{frame}{test 2}
\printindex
\end{frame}
\end{document}
答案1
您必须定义 theindex 和 theindex 环境中使用的命令。例如,查看 article.cls 以获取想法(您不应该逐字复制,对于演示文稿,您需要不同的外观)。
\documentclass{beamer}
\usepackage{makeidx}
\makeindex
\newenvironment{theindex}
{\let\item\par
%definitions for subitem etc
}{}
\newcommand\indexspace{}
\begin{document}
\begin{frame}{test 1}
\index{Laplace}Laplace transform is... \LaTeXe\ can make you happy!
\index{Test}
\end{frame}
\begin{frame}{test 2}
\printindex
\end{frame}
\end{document}
答案2
如果有人想使用imakeidx
而不是makeidx
:
\documentclass{beamer}
\newenvironment{theindex}{}{}
\usepackage{imakeidx}
\makeatletter
\def\@idxitem{\par}
\def\imki@firstpagestyle{empty}
\makeatother
\makeindex
\begin{document}
\begin{frame}
index1\index{index1}
\end{frame}
\begin{frame}
index1\index{index1}
index2\index{index2}
\end{frame}
\begin{frame}
\printindex
\end{frame}
\end{document}