这是 bug 还是功能?我无法在 beamer 中使用 makeidx。

这是 bug 还是功能?我无法在 beamer 中使用 makeidx。

我尝试在我的 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}

相关内容