在 Beamer 中有条件地编译要点

在 Beamer 中有条件地编译要点

我正在使用标准模板创建投影仪幻灯片,如下所示:

\documentclass{beamer}

\mode<presentation>
\usetheme{Frankfurt}
\setbeamertemplate{footline}[frame number]

\begin{document}

\begin{frame}
  \frametitle{My title}

  \begin{itemize}
    \item Bullet point 1
    \begin{itemize}
      \item Sub bullet 1
    \end{itemize}
    \item Bullet point 2
    \begin{itemize}
      \item Sub bullet 2
    \end{itemize}
  \end{itemize}
\end{frame}
\end{document}

现在我想在一组幻灯片中完全隐藏子项目符号,但在另一组幻灯片中包含它们。

||开始编辑||

我可以使用 2 个文件来实现这一点,第一个文件包含如上所示的项目符号,第二个文件不包含该项目符号,如下所示:

\documentclass{beamer}

\mode<presentation>
\usetheme{Frankfurt}
\setbeamertemplate{footline}[frame number]

\begin{document}

\begin{frame}
  \frametitle{My title}

  \begin{itemize}
    \item Bullet point 1
    \begin{itemize}
      \item[]
    \end{itemize}
    \item Bullet point 2
    \begin{itemize}
      \item[]
    \end{itemize}
  \end{itemize}
\end{frame}
\end{document}

我现在的问题是,我可以在一个文件中实现这种效果吗?

||结束编辑||

是否有任何条件编译技巧,使我可以在幻灯片开头设置一个标志来指示是否要生成子项目符号?

答案1

我想我已经弄清楚了。我可以使用ifthenelse下面的 MWE 语句。

\documentclass{beamer}

\usepackage{ifthen}

\mode<presentation>
\usetheme{Frankfurt}
\setbeamertemplate{footline}[frame number]

\newboolean{mybool}

%% setting mybool to false will compile to display the sub bullets
\setboolean{mybool}{true}

\begin{document}

\begin{frame}
  \frametitle{My title}

  \begin{itemize}
    \item Bullet point 1
    \begin{itemize}
      \ifthenelse{\boolean{mybool}}{
        \item []
        \item []
      }{
        \item Sub bullet 1
        \item Sub bullet 2
      }
    \end{itemize}
    \item Bullet point 2
    \begin{itemize}
      \ifthenelse{\boolean{mybool}}{
        \item []
      }{
      \item Sub bullet 2
      }
    \end{itemize}
  \end{itemize}
\end{frame}


\end{document}

相关内容