[Tex/LaTex] Enforce a line-break inside \lstinline

line-breakinglistingssourcecode

I use \lstinline{foo} from the listings package to set pieces of code in regular text. To get automatic line-breaks I use the following options:

\lstset{
 breaklines=true,
 breakatwhitespace=true,
 breakindent=2ex,
 postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookrightarrow\space}}
}

Sometime code fragments have to go into rather narrow table cells and the automatic line breaks just don't look very nice.

Is there any way to tell \lstinline (and lstlisting) where to insert line-breaks without actually putting them into the LaTeX source literally? If I do hard code them this will influence line numbers (in lstlistings) and also the line continuation symbol and indentation will be missing.

Best Answer

You can certainly escape into LaTeX and force a break manually, for example

\documentclass{article}
\usepackage{listings}
\lstset{
 breaklines        = true,
 breakatwhitespace = true,
 breakindent       = 2ex,
 escapechar        = *,
 numbers           = left
}
\begin{document}

\begin{lstlisting}
Some text
Some more text Some more text Some more text Some more text
Some more text Some more text *\break* Some more text Some more text
Final text
\end{lstlisting}

\end{document}

Whether this is what is required I'm not 100% sure: telling listings where to break without adding anything to the source seems extremely difficult to imagine.

Related Question