3

I need listing package (\usepackage{listing}) to break at punctuation

namespace::subnamespace::class
           ^             ^

at either these two locations

0

1 Answer 1

5

This breaks at ::, but puts it :: in the new line.

\lstset{literate={::}{::}{2\discretionary{}{}{}}}

This leaves a hyphenated :: in the old line, but the spacing is terrible.

\lstset{literate={::}{}{0\discretionary{::}{}{::}}}

This monster fixes the spacing:

\def\colonspace{\hspace{0.2em}}%
\lstset{literate={::}{}{0\discretionary{\mbox{:\colonspace:}}{}{\mbox{\colonspace:\colonspace:\colonspace}}}}

Btw, you can also break in the middle of :: ;-)

\lstset{literate={::}{}{0\discretionary{:}{:}{::}}}
2
  • For punctuation in general does that mean I will have to define them one by one?
    – aiao
    Feb 11, 2013 at 12:45
  • At least I don't know a better way. Feb 11, 2013 at 12:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .