11

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.

8

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.

2

If you only need this once and don't want to declare it with \lstset you can set breaklines to true directly in lstinline.

\lstinline[breaklines=true]|[this is a very long command]|
  • The OP already has breaklines in their code. The question is more about how to influence this automatic line-breaking. – Troy Mar 8 '18 at 23:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.