Этот ответ
масштабирование латексных объектов
советует использовать \resizebox
для масштабирования объектов Latex.
Однако этот подход не работает при изменении масштаба листинга в 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}
Ошибка, которую вы получаете, это
! Argument of \lst@next has an extra }.
Как масштабировать листинг в Beamer?
решение1
Как сказано в комментарии, вы не можете передавать дословные данные в качестве аргументов макросу. Но listings
вы можете легко изменить размер шрифта.
\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}
Если вы хотите изменить его для документа или всего кадра, вы можете использовать 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}