Q:

Hyphenation for words with underscore

Can I tell LaTeX that it may hyphen words that contain an underscore _ always before the underscore?
I have a lot of code examples in text, like is_error_condition_enum and I would like to tell LaTeX it may hyphen this as:
Lorem ipsum is_error_-
condition_enum lorem.

always.
If that is not possible globally, how do I make an entry for some underscore-words like:
\hyphenation{is_-error_-condition_-enum}

because that entry is rejected, obviously.
In sourcecode I write words like these as \gpmono{is\gpus{}error\gpus{}condition\gpus{}enum}.

A:

The underscore package provides a way to do this automatically: It modifies the defintion of the \_ command in order to allow hyphenation after the underscore. Furthermore, it allows you to simply write _ instead of \_ in text mode to produce an underscore. Everything you have to do is loading the package with
\usepackage{underscore}

A:

\newcommand{\gpus}{\_\discretionary{-}{}{}}

If \gpus is used in other places where hyphenation is not wanted, you can modify its definition only in the argument of \gpmono:
\newcommand{\gpmono}[1]{\begingroup
   \renewcommand{\gpus}{\_\discretionary{-}{}{}}%
   \ttfamily#1\endgroup}

Of course, without knowing your original definitions of \gpmono and \gpus, I tried to guess.

