在重复的投影仪幻灯片中使用相同的行号

在重复的投影仪幻灯片中使用相同的行号

下面的例子中,幻灯片第二次出现的行号从“3”开始。但是幻灯片第二次出现的条目中的引用显示为“1”和“2”(即从幻灯片第一次出现开始的行号)。

我想要:

  1. 幻灯片中的每一处都有相同的行号
  2. 或者,引用指的是幻灯片中最近出现的行号

但是,在幻灯片的某一特定出现位置,右侧列表中的行号应从左侧列表中的行号继续。

我怎样才能实现这个目标?

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage{listings}
\lstset{
   basicstyle=\normalsize\ttfamily,
   numbers=left,
   numberstyle=\tiny\color{gray},  
   stepnumber=1,
   numbersep=5pt,
   escapechar=£,
   breaklines=true}
\begin{document}

\begin{frame}<1>[fragile,t,label=foo]
\frametitle{Example}
\begin{minipage}{.45\textwidth}%
\begin{lstlisting}[name=fooex]
  foo£\label{lst:foo}£
\end{lstlisting}%
\end{minipage}%
\begin{minipage}{.45\textwidth}%
\begin{lstlisting}[firstnumber=auto,name=fooex]
  bar£\label{lst:bar}£
\end{lstlisting}%
\end{minipage}%

\only<1>{
\begin{itemize}
        \item First stuff
\end{itemize}}

\only<2>{
\begin{itemize}
        \item stuff about lines \ref{lst:foo} and \ref{lst:bar}
\end{itemize}}
\end{frame}

\begin{frame}
\frametitle{Another frame}
\end{frame}

\againframe<2>{foo}
\end{document}

答案1

  1. 要获得常数,请遵循以下建议伊格纳西并指定firstnumber

  2. 要指定应跳转到的标签出现位置:\label<2>{lst:bar}。当然,这不会自动指向最近的出现位置,但对于简单的构造来说,这可能就足够了。如果您需要跳转到两侧,则可以使用多个标签\label<1>{lst:bara}\label<2>{lst:barb}


\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage{listings}
\lstset{
    basicstyle=\normalsize\ttfamily,
    numbers=left,
    numberstyle=\tiny\color{gray},  
    stepnumber=1,
    numbersep=5pt,
    escapechar=£,
    breaklines=true}
\begin{document}

\begin{frame}<1>[fragile,t,label=foo]
\frametitle{Example}
\begin{minipage}{.45\textwidth}%
\begin{lstlisting}[firstnumber=1,name=fooex]
foo£\label<2>{lst:foo}£
\end{lstlisting}%
\end{minipage}%
\begin{minipage}{.45\textwidth}%
\begin{lstlisting}[firstnumber=2,name=fooex]
bar£\label<2>{lst:bar}£
\end{lstlisting}%
\end{minipage}%

\only<1>{
\begin{itemize}
    \item First stuff
\end{itemize}}

\only<2>{
    \begin{itemize}
        \item stuff about lines \ref{lst:foo} and \ref{lst:bar}
    \end{itemize}}
\end{frame}

\begin{frame}
    \frametitle{Another frame}
\end{frame}

\againframe<2>{foo}
\end{document}

相关内容