Dimensionando listagens no beamer

Dimensionando listagens no beamer

Esta resposta dimensionando objetos de látex aconselha usar \resizeboxpara dimensionar objetos Latex.

No entanto, esta abordagem falha ao redimensionar uma listagem no beamer:

\documentclass{beamer}
\usepackage{listings}
\begin{document}
\begin{frame}[fragile]
  \resizebox{\textwidth}{!}{%                                                                                                                                                                               
    \begin{lstlisting}
      some -program --code "Not fitting into page"
    \end{lstlisting}
  }
\end{frame}
\end{document}

O erro que se obtém é

! Argument of \lst@next has an extra }.

Como dimensionar uma listagem no beamer?

Responder1

Como dito no comentário, você não pode passar coisas textuais como argumentos para uma macro. Mas listingsvocê pode facilmente alterar o tamanho da fonte.

\begin{frame}[fragile]
  \begin{lstlisting}
some -program --code "Not fitting into page"
  \end{lstlisting}
  \begin{lstlisting}[basicstyle=\small]
some -program --code "Not fitting into page"
  \end{lstlisting}
  \begin{lstlisting}[basicstyle=\footnotesize]
some -program --code "Not fitting into page"
  \end{lstlisting}
  \begin{lstlisting}[basicstyle=\fontsize{8}{9}\selectfont]
some -program --code "Not fitting into page"
  \end{lstlisting}
\end{frame}

insira a descrição da imagem aqui

Se você quiser alterá-lo para o documento ou para um quadro completo, você pode usar o arquivo lstset.

\begin{frame}[fragile]
  \lstset{basicstyle=\small}
  \begin{lstlisting}
some -program --code "Not fitting into page"
  \end{lstlisting}
  \begin{lstlisting}[basicstyle=\normalsize]
some -program --code "Not fitting into page"
  \end{lstlisting}
\end{frame}

insira a descrição da imagem aqui

informação relacionada