LaTeX 列表计数器会随着每个 \pause 命令而计数吗?

LaTeX 列表计数器会随着每个 \pause 命令而计数吗?

我正在为 beamer 演示文稿编写 TeX 文件,但在 -command\pause和列表计数器方面存在问题:

列表计数器会随着每个\pause命令增加其计数 - 尽管我没有在代码中更改框架或任何东西。这看起来非常丑陋。所以我需要停止计数器随着每个\pause命令增加其计数,或者完全关闭计数器 - 我甚至不知道这是如何工作的。

有人可以帮帮我吗?

这里是我的一些列表设置:

\definecolor{kit-gray}{RGB}{224,224,224}
\definecolor{kit-green}{RGB}{32,149,128}
\usepackage{listings}
\usepackage{courier}
\lstset{
     basicstyle=\scriptsize\ttfamily, 
     numbers=left,              
     numberstyle=\tiny,         
     %stepnumber=2,                 
     numbersep=5pt,              
     tabsize=2,                         
     extendedchars=true,         
     breaklines=true,               
     %keywordstyle=\color{red},
     frame=t,         
 %frameround=tftf, 
     keywordstyle=[1]\textbf,       
     stringstyle=\color{blue}\ttfamily,     
     showspaces=false,              
     showtabs=false,                
     xleftmargin=17pt,
     framexleftmargin=17pt,
     framexrightmargin=6pt,
     framexbottommargin=4pt,
     backgroundcolor=\color{kit-gray},
     commentstyle=\color{kit-green},
     showstringspaces=true          
     %numberbychapter=false
}

答案1

如您所知,Beamer 将为每个覆盖层创建一个新页面。每次创建包含 lstlisting 环境的页面时,计数器lstlisting都会递增。对于任何计数器(表格、图形等),Beamer 支持重置覆盖层上的计数器。放置

\resetcounteronoverlays{lstlisting}

在序言中,您的问题就应该得到解决。

答案2

lstlisting如果在带有标题的框架上排版常规内容,则此标题会在每个\pause命令之后呈现,并增加列表编号(计数器lstnumber)。

这里最好的选择是给计数器设置一个标签,然后将其引用为手动标题,使其看起来与使用传统键值时类似caption={...}。最好使用title={...}键值。这是使用文档类的 MWE 形式的想法article(因为没有提供 MWE):

在此处输入图片描述

\documentclass{article}
\usepackage{listings}% http://ctan.org/pkg/listings
\begin{document}
\setcounter{lstnumber}{0}\refstepcounter{lstnumber}\label{mylisting}% Correct listing reference
\begin{lstlisting}[title={Listing~\ref{mylisting}:\ This is a caption},language=C]
#include <stdio.h>

int main(int argc, char ** argv)
{
  printf("Hello world!\n");
  return 0;
}
\end{lstlisting}
\end{document}​

listings将 的起始值设置lstnumber1(与使用计数器(初始化为 )的其他环境相反0)。因此,我们首先0使用将其设置为\setcounter{lstnumber}{0},然后使用 用正确的引用增加它\refstepcounter{lstnumber}。这会将其设置为1,然后我们将其标记为 使用\label{mylisting}(或类似的东西)。随后用作Listing~\ref{mylisting}: ...title提供正确的引用。

如果您在演示的后面使用更多列表,则可能必须在列表之后手动增加计数器beamer。如果需要,请使用\stepcounter{lstnumber}。还请注意,计数器设置/增加应在环境之外(之前)完成,frame以避免多次引用。

相关内容