Solução alternativa para um bug do beamer? A numeração das seções não é como Dewey como no LaTeX

Solução alternativa para um bug do beamer? A numeração das seções não é como Dewey como no LaTeX

Considere o seguinte documento Latex simples:

\documentclass{article}

\begin{document}

\section{A} \label{A}
\subsection{B}\label{B}
\subsubsection{C}\label{C}

I am in section \ref{A}, subsection \ref{B}, subsubsection \ref{C}.

\end{document}

A saída emprega numeração de seção semelhante a Dewey:

insira a descrição da imagem aqui

Agora, se eu converter isso para beamer, algo estranho acontece. Se o texto estiver fora dos frames, ou seja,

\documentclass{beamer}

\begin{document}

\section{A} \label{A}
\subsection{B}\label{B}
\subsubsection{C}\label{C}

I am in section \ref{A}, subsection \ref{B}, subsubsection \ref{C}.

\end{document}

O beamer não consegue encontrar as referências cruzadas. Não importa quantas vezes eu execute latex, a seguinte mensagem de erro aparece:

 )pdfTeX warning (dest): name{C} has been referenced but does not exist, replac
ed by a fixed one

pdfTeX warning (dest): name{B} has been referenced but does not exist, replaced
 by a fixed one

pdfTeX warning (dest): name{A} has been referenced but does not exist, replaced
 by a fixed one

Estranhamente, o número de referência aparece na saída, mas a numeração de Dewey aninhada é perdida.

insira a descrição da imagem aqui

Colocando o texto em um quadro,

\documentclass{beamer}

\begin{document}

\section{A} \label{A}
\subsection{B}\label{B}
\subsubsection{C}\label{C}
\begin{frame}
I am in section \ref{A}, subsection \ref{B}, subsubsection \ref{C}.
\end{frame}
\end{document}

Faça com que a mensagem de erro desapareça, mas a saída ainda seja diferente do normal

insira a descrição da imagem aqui

Então, isso é um bug do beamer? Existe uma solução alternativa?

Responder1

Não há bug.

  1. O erro “missing (dest)” se deve ao fato de que, sem um frame, beamernão é possível acomodar um alvo para os hiperlinks gerados pelo\ref

  2. Os “números solitários” são uma escolha precisa. Você pode adicionar o código usual no preâmbulo para reverter a decisão.

Aqui está o exemplo.

\documentclass{beamer}

\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}
\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}

\begin{document}

\section{A} \label{A}
\subsection{B}\label{B}
\subsubsection{C}\label{C}
\begin{frame}
I am in section \ref{A}, subsection \ref{B}, subsubsection \ref{C}.
\end{frame}

\end{document}

insira a descrição da imagem aqui

informação relacionada