[Tex/LaTex] Replace hyphenation character by a backwards arrow

hyphenationsymbols

I am setting e.g. directory names in a typewriter font. These names can become long. With the hyphenat package, I enabled hyphenation. Now, what is missing, is that the hyphenation character is replaced e.g. by a backwards oriented arrow.

Thus, what I want to do is something like

\usepackage[htt]{hyphenat}
\newcommand{\origttfamily}{}%
\let\origttfamily=\ttfamily %
\renewcommand{\ttfamily}{\origttfamily \hyphenchar\font\ensuremath{\hookleftarrow}}
\begin{document}
  \texttt{/etc/really/long{\fshyp}directory{\fshyp}name/}
\end{document}

However, \ensuremath{\hookleftarrow} does not work in this case – it is not a single character.

Can somebody point me towards a solution? Thanks a lot!

(moved from https://stackoverflow.com/questions/4749869/latex-replace-hyphenation-character-by-a-backwards-arrow)

Best Answer

You cannot set the \hyphenchar to a character from a different font, but you can redefine \BreakableSlash:

\documentclass{minimal}
\usepackage[htt]{hyphenat}
\newsavebox\leftarrowbox
\sbox\leftarrowbox{$\leftarrow$}
\makeatletter
\renewcommand*{\BreakableSlash}{%
  \leavevmode
  \prw@zbreak
  /%
  \discretionary{\usebox\leftarrowbox}{}{}%
  \prw@zbreak
}
\makeatother
\begin{document}
\parbox{20mm}{%
  \texttt{/etc\fshyp really\fshyp long\fshyp directory\fshyp name/}%
}
\end{document}
Related Question