[Tex/LaTex] the difference between “= and \hyp{}

babelhyphenathyphenation

Sometimes I see questions talking about using "=, others just use \hyp{}. Are they the same thing?

For example, on these questions you find both "= and \hyp use:

  1. Hyphenation of words containing slash
  2. LaTeX not hyphenating properly, text running off page
  3. How to hyphenate a reference that has a lastname with a hyphen?

I tried creating this minimal example, but "= is not working:

\documentclass[10pt,a5paper,twoside]{article}
\usepackage{hyphenat}
\usepackage[english]{babel}

\begin{document}

\section{Show font}

    Tests.

    Encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding.

    Encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding.

    Encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding.

\end{document}

enter image description here

Best Answer

To get the "= shorthand directive to work in your document, you must replace

 \usepackage[english]{babel}

with

 \usepackage[ngerman,english]{babel} 
 \useshorthands{"} 
 \addto\extrasenglish{\languageshorthands{ngerman}}

See babel: Adding ngerman' s language shorthands to english as the main document language for more information on this subject.

Once this adjustment is made, it would appear that \hyp{...} and "= perform very similarly. The "= would appear to be a lot easier to use in practice, though.

The vertical frame lines in the following screenshot are placed by the showframe package.

enter image description here

\documentclass[10pt,a5paper,twoside]{article}

\usepackage{hyphenat} % for "\hyp" macro

%% See https://tex.stackexchange.com/q/27198/5001:
\usepackage[ngerman,english]{babel} 
\useshorthands{"} 
\addto\extrasenglish{\languageshorthands{ngerman}}

\usepackage{showframe,microtype} % just for this example
\begin{document}
*

Encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding.

Encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding.

Encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding.

\end{document}
Related Question