# Set my lstlisting at the exact place in my code (like “h” for figure)

When using lstlisting, my displayed code is sent back on the top of my page. I would like to have the same kind of option as:

\begin{figure}[h]
...
\end{figure}


ie having displayed my code exactly where I put it in my latex code.

My current code for lstlisting is as follow:

\begin{lstlisting}[float,style=Bash,caption={toto.bash},label=lst:logging]
...
\end{lstlisting}


Thanks!

Second question: How to display lstlisting on 2 followed pages, when the code is too long?

-

Don't use figure environment. Generally you don't need to use figure as listings provides a float option by itself. But for your case, you shouldn't use that either (as you do not want floating). The following code works as you wanted:

\documentclass{article}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]
\begin{lstlisting}[caption=Listing,language=c,escapechar=+] %% don't use float option here
+{public void}+ Method () {
try {
.. Original code
.. After returning
}
catch (...) {
.. After throwing
}
finally {
.. After
}
}
\end{lstlisting}
\end{document}


As you can see, the code runs in to second page as well.

-
You were right! It comes from the float. Thank you for your help, fast and helpful. Have a nice day! –  user23710 Jan 6 '13 at 10:54
And what to do if you want to have the listing at a particular location, but want to avoid that it gets split over different pages? –  MaVe Jul 18 '14 at 13:19