# How to set a global setting for hyphenation of already hyphenated words using XeLaTeX?

Please consider the MWE below, I want to globally invoke hyphenation of already hyphenated words using Babel package, Hyphenat package in English, to get the same effect when using <word1>-\hspace{0pt}<word2> as shown in the output below.

This is hopefully to avoid tracking down every hyphenated word in a thesis last-minute scenario, especially after doing some text edit in a 200-page thesis. I am quite satisfied with the effect of \hspace{0pt}, and I don't see any reason against using it blindly, or am I missing something?

MWE Code

\documentclass{scrartcl} % complied with XeLaTeX
\usepackage[english]{babel}
%\defineshorthand{"-}{\babelhyphen{hard}} % didn't work
\usepackage{fontspec}
\usepackage{libertine}

\begin{document}
In summary, IL-17 can be produced by innate and adaptive cells, but more profoundly from innate sentinel cells of the immune system.
The nTh17 is a novel subset that is thymic-\hspace{0pt}dependent and shows a distinct developmental pathway from iTh17 cells that are derived from naive T cells.

In summary, IL-17 can be produced by innate and adaptive cells, but more profoundly from innate sentinel cells of the immune system.
The nTh17 is a novel subset that is thymic"-dependent and shows a distinct developmental pathway from iTh17 cells that are derived from naive T cells.
\end{document}


Output

• It is not clear to me what you want. You can use \- and when necessary LaTeX will broken the word there. Or you can define on preamble the hyphenation using \hyphenation{ba\-be\-bi\-bo\-bu}. – Sigur May 19 '14 at 13:22
• @Sigur I guess the problem are words that already contain a hyphen by themselves, such as "thymic-dependent". – Benedikt Bauer May 19 '14 at 13:24
• @lockstep, ngerman in babel has its own shorthands, english doesn't, so need to be defined; the very question. – doctorate May 19 '14 at 13:28
• the suggested duplicate question is not helpful, pls reconsider your vote. – doctorate May 19 '14 at 13:32
• My suggestion does not depend on babel shorthands (or babel). It does, however, provide a global way to set hyphenation of words already containing hyphens, so it seems relevant for your question. If you can't use LuaLaTeX, that would be a valid reason to retract my closing vote; however, your question didn't specify whether LuaLaTeX would be acceptable or not. – lockstep May 19 '14 at 13:50

## 1 Answer

You're forgetting to add the shorthands to the list of enabled shorthands:

\documentclass{scrartcl}
\usepackage[english]{babel}

\usepackage{fontspec}
\usepackage{libertine}

\useshorthands{"}
\defineshorthand[english]{"-}{\babelhyphen{hard}} % didn't work
\addto\extrasenglish{\languageshorthands{english}}

\begin{document}

\makeatletter
\show"

In summary, IL-17 can be produced by innate and adaptive cells, but more profoundly from innate
sentinel cells of the immune system. The nTh17 is a novel subset that is thymic-\hspace{0pt}dependent
and shows a distinct developmental pathway from iTh17 cells that are derived from naive T cells.

In summary, IL-17 can be produced by innate and adaptive cells, but more profoundly from innate
sentinel cells of the immune system. The nTh17 is a novel subset that is thymic"-dependent and shows a
distinct developmental pathway from iTh17 cells that are derived from naive T cells.

\end{document}


Of course you can also get

thymic-dep-
endent

which is horrible. If you aren't afraid of hideous hyphenation of composite words, the shorthand is for you. If you're careful about your typesetting, you'll take your time in analyzing what hyphens in compound words are really necessary. And maybe try changing the wording, instead of allowing a hyphen.

• Final paragraph has some truth but in some technical areas it's very tricky to avoid (try doing chemical names!). – Joseph Wright May 19 '14 at 15:20
• @JosephWright I agree; but in that case a specialized package should be used in order to correctly typeset those weird names. – egreg May 19 '14 at 16:48