I have a java lstlisting and it is too big and does not mach a single page.
Is there any way to specify font for specific listing, not all listings in document?
You can set the option directly with the lstlisting
environment option basicstyle
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[
basicstyle=\tiny, %or \small or \footnotesize etc.
]
int isJava = 1;
\end{lstlisting}
\end{document}
See also this answer
basicstyle
(such as the font colour), will be lost when the size is changed this way.
\ttfamily
as well so as not to lose monospace font.
The best way to do this is by using the lstdefinestyle
functionality which is built into the listings package. Encapsulate your style as follows (I've used a crummy MATLAB style definition as an example):
\lstdefinestyle{myCustomMatlabStyle}{
language=Matlab,
numbers=left,
stepnumber=1,
numbersep=10pt,
tabsize=4,
showspaces=false,
showstringspaces=false
}
Then, use it like so:
% A "large" listing
\lstset{basicstyle=\large,style=myCustomMatlabStyle}
\begin{lstlisting}
...
\end{lstlisting}
% A "tiny" listing
\lstset{basicstyle=\tiny,style=myCustomMatlabStyle}
\begin{lstlisting}
...
\end{lstlisting}
The results of the two different lstlisting
's will be different sizes, as set by your basicstyle
command.
If you do not want to set the style globally with \lstset
, you can also set the style only for a specific lstlisting
:
\begin{lstlisting}[style=myCustomMatlabStyle]
...
\end{lstlisting}
or even set all properties in the lstlisting
, without defining a style:
\begin{lstlisting}[language=Matlab,
numbers=left,
stepnumber=1,
numbersep=10pt,
tabsize=4,
showspaces=false,
showstringspaces=false]
...
\end{lstlisting}