请问如何在beamer实现以下效果

发布于 2023-03-02 21:38:26

请问如何在beamer中实现,一个计数器在一个frame环境实现计数,在另外一个frame环境中重置为1,并重新计数的效果。
希望得到的效果
如图
以下为第一个frame环境
image.png

以下为第二个frame环境
image.png
以下为MWE文件
MWE.zip

查看更多

关注者
0
被浏览
808
3 个回答
U83184
U83184 2023-03-03
这家伙很懒,什么也没写!

这个:

\documentclass[a4paper,UTF8]{ctexbeamer}
\usepackage{xcolor}
\begin{document}
\newcount\exno
\newcommand{\fangfa}[1]{\advance\exno by 1 {\color{red} 方法\the\exno} #1}
\resetcounteronoverlays{exno} %这个命令就是每个frame重置计数器。
\begin{frame}{第一个环境}
    \fangfa{例题1} 方法一\\
    \fangfa{例题1} 方法二\\
    \fangfa{例题1} 方法三
\end{frame}
\begin{frame}{第二个环境}
    \fangfa{例题2} 方法一\\
    \fangfa{例题2} 方法二\\
    \fangfa{例题2} 方法三
\end{frame}
\end{document}

或者麻烦一点:

\documentclass[a4paper,UTF8]{ctexbeamer}
\usepackage{xcolor}
\begin{document}
    \newcounter{exno}[section]%section是可选参数,每节会重置计数器,如果不用这个,就需要在每个frame重置一下计数器,即\setcounter{exno}{0},或者自定义一个framex环境。
    \newcommand{\fangfa}[1]{\stepcounter{exno}{\color{red} 方法\theexno} #1}
    \newcommand{\chongzhi}{\setcounter{exno}{0}}
    \newenvironment{framex}[1]{\begin{frame}{#1}\setcounter{exno}{0}}{\end{frame}}
%    \section{测试}
    \begin{frame}{第一个环境}
        \fangfa{例题1} 方法一\\
        \fangfa{例题1} 方法二\\
        \fangfa{例题1} 方法三
    \end{frame}
    \begin{frame}{第二个环境}
        \chongzhi
        \fangfa{例题2} 方法一\\
        \fangfa{例题2} 方法二\\
        \fangfa{例题2} 方法三
    \end{frame}
%    \section{空}
    \begin{framex}{第三个环境}
        \fangfa{例题3} 方法一\\
        \fangfa{例题3} 方法二\\
        \fangfa{例题3} 方法三
    \end{framex}
\end{document}

或者这个:

\documentclass[a4paper,UTF8]{ctexbeamer}
\usepackage{xcolor}
\begin{document}
\newcount\exno
\newcommand{\nextno}{\advance\exno by 1}
\newcommand{\fangfa}[1]{\nextno{\color{red} 方法\the\exno} #1}
\begin{frame}{第一个环境}
    \exno=0
    \fangfa{例题1} 方法一\\
    \fangfa{例题1} 方法二\\
    \fangfa{例题1} 方法三
\end{frame}
\begin{frame}{第二个环境}
    \exno=0
    \fangfa{例题2} 方法一\\
    \fangfa{例题2} 方法二\\
    \fangfa{例题2} 方法三
\end{frame}
\end{document}
Andy123t
Andy123t 2023-03-03
这家伙很懒,什么也没写!

可以试试 enumerate 修改列表符号,可以调节间距,缩进也很好看.

% 导言区设置
\usepackage{enumitem}
\setlist{leftmargin=1.28cm}
\setlength\itemsep{1em}
\begin{frame}
例题1
\begin{enumerate}[label=\textcolor{red}{\kaishu 方法~\arabic*}]
  \item 方法一
  \item 方法二
  \item 方法三
\end{enumerate}
\end{frame}

test1.png

test.zip

o(∩_∩)o
o(∩_∩)o 2023-03-04
这家伙很懒,什么也没写!

请问\advance是什么意思呢?这些命令去哪里看,学习呢?麻烦了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览