在 beamerarticle 中的文章和演示模式之间切换列表和纯文本

在 beamerarticle 中的文章和演示模式之间切换列表和纯文本

我使用 beamerarticle 来写讲义,但在幻灯片上使用了很多在讲课模式下不需要的列表。有没有办法像下面的代码一样在列表和纯文本环境之间切换,但不需要所有的命令\only

% toggle between line 1 and lines 2-3 for slides or notes
%\documentclass[ignorenonframetext]{beamer} 

\documentclass{article} 
\usepackage[noxcolor]{beamerarticle}

\begin{document}

\begin{frame}
\only<presentation>{\begin{itemize}[<+->]}
\only<presentation>{ \item} Am I  a list
\only<presentation>{ \item}or just a line of text?
\only<presentation>{\end{itemize}}
\end{frame}


\end{document}  

具体来说,我正在寻找一种最多只需要一个包装器的代码,而不是每个单独的添加\item,并且它仍然应该与覆盖规范兼容。

答案1

新答案:

\def\presentation{1}

\ifnum\presentation=1
\documentclass[ignorenonframetext]{beamer}
\newenvironment{mitemize}[1][]{\def\Arg{#1}\ifx\Arg\empty\itemize\else\itemize[#1]\fi}{\enditemize}
\else
\documentclass{article} 
\usepackage[noxcolor]{beamerarticle}
%\let\olditemize\itemize
%\let\endolditemize\enditemize
\newenvironment{mitemize}[1][]{\let\item\relax
}{}
%\renewenvironment{itemize}[1][]{\def\Arg{#1}\def\Ignored{<+->}\olditemize\ifx\Arg\empty\relax\else\ifx\Arg\Ignored\relax\else[#1]\fi\fi}{\endolditemize}
\fi

\begin{document}

\begin{frame}
\begin{itemize}[<+->]
\item am I  a list
\item or just a line of text?
\end{itemize}

\begin{mitemize}[<+->]
\item am I  a list
\item or just a line of text?
\end{mitemize}
\end{frame}


\end{document} 

旧答案:

这里有一种方法:

% define as 1 for presentation or another number else.
\def\presentation{1}

\ifnum\presentation=1
\documentclass[ignorenonframetext]{beamer}
\newenvironment{mitemize}[1][]{\itemize[#1]\let\mitem\item}{\enditemize}

\else
\documentclass{article} 
\usepackage[noxcolor]{beamerarticle}
\newenvironment{mitemize}[1][]{\let\mitem\relax}{}
\fi

\begin{document}

\begin{frame}
\begin{mitemize}
\mitem am I  a list
\mitem or just a line of text?
\end{mitemize}
\end{frame}


\end{document} 

编辑:

如果您只想在非演示模式下使用 itemize 环境几次,请mitemize仅在这些情况下尝试该环境,这些情况将在每种模式下作为 itemize 工作...在其他情况下,结果将是您所需要的:

\def\presentation{0}

\ifnum\presentation=1
\documentclass[ignorenonframetext]{beamer}
\newenvironment{mitemize}[1][]{\def\Arg{#1}\itemize\ifx\Arg\empty\relax\else[#1]\fi}{\enditemize}
\else
\documentclass{article} 
\usepackage[noxcolor]{beamerarticle}
\let\olditemize\itemize
\let\endolditemize\enditemize
\renewenvironment{itemize}[1][]{\let\item\relax
}{\endolditemize}
\newenvironment{mitemize}[1][]{\def\Arg{#1}\olditemize\ifx\Arg\empty\relax\else[#1]\fi}{\endolditemize}
\fi

\begin{document}

\begin{frame}
\begin{itemize}
\item am I  a list
\item or just a line of text?
\end{itemize}

\begin{mitemize}
\item am I  a list
\item or just a line of text?
\end{mitemize}
\end{frame}


\end{document} 

在此处输入图片描述

在此处输入图片描述

相关内容