258

I can't find where I can remove any kind of hyphenation and just have LaTeX just do a line break.

edit: Honestly speaking I just don't like to read hyphenation anywhere and that's the only reason why I wanted to remove it. It is a matter of style, probably unexpected in LaTeX.

The document has only a summary in a different language and I used the language packages to hyphenate properly.

5
  • 43
    If you are going to typeset your document without hyphenation I strongly recommend using \raggedright to avoid large spaces between the word. Commented Nov 7, 2010 at 11:07
  • 2
    @WillRobertson But, the document looks too bad. In there a middle road? (for instance like \hyphenpenalty=5000) Commented Aug 19, 2019 at 8:31
  • 1
    @cyriac I guess you want the ragged2e package. Commented Aug 19, 2019 at 12:13
  • 1
    This isn’t precisely a way to prevent hyphenation, but unhyphenated documents will usually look much better if you turn font expansion on with microtype. (Not compatible with XeTeX, unfortunately.) This stretches the font slightly to reduce the amount of extra spacing.
    – Davislor
    Commented Jan 22, 2021 at 14:13
  • 1
    \hyphenpenalty=9999 is just perfect ; all other options make big spaces after full stops, which to my mind is quite ugly. Commented Feb 9, 2022 at 9:29

8 Answers 8

221

This is discussed in detail in the TeX FAQ. Summarising the information given there:

  1. You can set \hyphenpenalty and \exhyphenpenalty to 10000, which will stop hyphenation, but as TeX will still try to hyphenate this is not hugely efficient.

  2. As Joel says, you can use \usepackage[none]{hyphenat} to select a 'language' with no hyphenation at all. This works fine for a single language document, but not if you want to use babel or polyglossia for other language-specific effects.

  3. Setting \righthyphenmin and \lefthyphenmin to very large values will prevent hyphenation as it tells TeX that it must have more characters in the word than are going to be available. The suggested value in the FAQ is 62.

  4. You can set \hyphenchar\font=-1, which will prevent hyphenation for the current font: this is probably not the best way for an entire document but is how it is done for the tt font shape in LaTeX.

Now, of those (2) is probably the best choice. However, what you did not say is why you want no hyphenation. TeX hyphenates when it cannot find a good line break without it, so you get few hyphens in most cases. The risk with no hyphenation at all is that the output looks bad.

24
  • 7
    @Splashy: see Will's comment about using \raggedright.
    – Joseph Wright
    Commented Nov 9, 2010 at 18:53
  • 3
    @Splashy: The issue is that in order to do that you end up with unacceptably-long gaps between words (see what happens in a word processor). You can let TeX make bigger gaps using the \sloppy macro, which will hopefully avoid text running into the margins when there is no hyphenation. However, the effect may well be very bad looking. That's really the whole point here: TeX hyphenates to keep a good appearance only when acceptable fiddling with spacing has failed.
    – Joseph Wright
    Commented Nov 9, 2010 at 19:09
  • 6
    Oh, also consider loading the microtype package, as this enables some other approaches to improving spacing and reducing the need for hyphenation in many cases.
    – Joseph Wright
    Commented Nov 9, 2010 at 19:10
  • 2
    @Juan: One reason why one might want to avoid hyphenation is because the journal they're submitting to forbids its use: tandfonline.com/action/….
    – Sara
    Commented Apr 17, 2013 at 9:13
  • 2
    @JuanA.Navarro, another reason to prevent hyphenation, is that sometimes you want to copy/paste the text from LaTeX to another document. If you have hyphenation, you have to control the text to make sure the newly justified text is not hyphenated in the middle of sentences.
    – PLG
    Commented Mar 14, 2016 at 7:01
157

I use this and it works great for me in almost all documents:

\tolerance=1
\emergencystretch=\maxdimen
\hyphenpenalty=10000
\hbadness=10000

\begin{document}... yadda yadda\end{document}
13
  • 10
    Good answer, the previous solutions mess up my document, this works for me!!! Commented Apr 9, 2015 at 21:46
  • 1
    When I used hyphenpenalty=10000 alone some words pass the margin. This works great. Commented Aug 21, 2015 at 11:24
  • 1
    This worked for me with Share Latex, and it avoids the problem of words going over the right-hand margin. Commented Mar 6, 2016 at 2:58
  • This worked ultimately...Thank you so much..@Timharris
    – David
    Commented Jul 9, 2016 at 13:15
  • 4
    Thank you! All of the other answers that I've seen make the words overflow into the margin rather than wrapping to the next line. Commented Nov 2, 2016 at 21:06
74

A quick google found

\usepackage[none]{hyphenat}

and more useful info here.

3
  • 3
    Note that this silently breaks the breaklines option of the listings package. See stackoverflow.com/a/8264050/1650137.
    – Zero3
    Commented Jan 3, 2016 at 4:15
  • 15
    Another reason for not using hyphenation is if you want a textually 'clean' way to cut-and-paste to other editing environments. For example I cut-and-paste text from the typeset PDF that LaTeX generates into other editing packages when I work with colleagues who do not use LaTeX (and aren't likely to either).
    – Aldoaldo
    Commented Apr 15, 2016 at 8:00
  • I get badbox errors by using this. Commented Oct 23, 2020 at 11:15
35

If one uses babel, there's the hyphsubst package by Heiko Oberdiek:

\documentclass[a4paper]
...
\usepackage[german=nohyphenation,french=nohyphenation]{hyphsubst}
\usepackage[german,french]{babel}

provided the distribution knows about the virtual language nohyphenation that has no patterns (both TeX Live and MiKTeX should know it).

If this is not the case, the following hack is equivalent

\makeatletter\chardef\l@nohyphenation=255 \makeatother
\usepackage[german=nohyphenation,french=nohyphenation]{hyphsubst}

(at least if less than 256 languages are already defined in the format, which is quite likely).

TeX will still possibly break lines at explicit hyphens, though.


To explain it better: if you get an error about

Unknown pattern nohyphenation

then the document should be like

\documentclass[a4paper]

\makeatletter\chardef\l@nohyphenation=255 \makeatother
\usepackage[german=nohyphenation,french=nohyphenation]{hyphsubst}
\usepackage[german,french]{babel}
8
  • 1
    I am sorry, but I searched hyphsubst manual for the option nohyphenation, and I got nothing. I would be grateful if you could update your answer if it needs.
    – Diaa
    Commented May 5, 2017 at 17:03
  • 1
    @DiaaAbidou There is no nohyphenation option: the options are of the form language1=language2 and nohyphenation chooses a language with no hyphenation pattern.
    – egreg
    Commented May 5, 2017 at 17:06
  • I tried to compile a MWE with your code of babel, but it gives me an error Package hyphsubst Error: Unknown pattern nohyphenation.' \ProcessOptions*. Would you like me to post a new question about it?
    – Diaa
    Commented May 5, 2017 at 17:15
  • 1
    @DiaaAbidou Then you have to follow the second strategy: “If this is not the case…”
    – egreg
    Commented May 5, 2017 at 17:17
  • 1
    @DiaaAbidou You're welcome!
    – egreg
    Commented May 5, 2017 at 17:35
5

You can use the command:

\raggedright

or the environment:

\begin{flushleft}
\end{flushleft}

§ Paragraph alignment

4

Based on the answers from another post, I found these settings to be perfect to prevent hyphenation without being ugly:

\tolerance=9999
\emergencystretch=10pt
\hyphenpenalty=10000
\exhyphenpenalty=100

\tolerance=9999 allows as much whitespace as possible.

\emerencystretch=10pt allows some extra whitespace per line.

\hyphenpenalty=10000 disables hyphens completly.

\exhyphenpenalty=100 allows using hyphens which were already present.

0

By increasing the width of the spaces between words, it is possible to give LaTeX more room to stretch or squeeze a line of text, thus reducing the frequency with which words have to be divided at line breaks. In many documents, the respacing achieved using the command below will virtually eliminate end-of-line hyphenation, without forcing text into the margin.

    \spaceskip=1.3\fontdimen2\font plus 1.3\fontdimen3\font minus 1.3\fontdimen4\font

In this command, \fontdimen2 is the nominal or ideal distance between words, \fontdimen3 is the allowable extension of the inter-word space and \fontdimen4 is the allowable compression.

It is perhaps worth noting also that hyphenation of a given word can be prevented manually by placing it in an \mbox{}.

1
  • This uses a different mechanism, but the result isn't greatly different from that achieved with \sloppy. Commented May 9, 2020 at 19:40
0

By using all the answer here, you might be noticed that space after period feels too wide, where you might be not noticed when there is hyphenation.

This is due to latex use more than single space after period. See the discussion in SE answer here.

Thus, you can add \frenchspacing to remove this behavior if you use \pretolerance=10000, and disable the french spacing using \nonfrenchspacing if you use hyphenation.

Also, if your text contain hyphenation that you write manually, you can use \tolerance=9000 and \emergencystretch=0pt to allow change line between word using that hypen. Otherwise, you can set \tolerance=1 and \emergencystretch=\maxdimen to prohibit change line between words of your manual hypen.

The MWE (based on this, and this) will be:

\documentclass[12pt]{article} 

\tolerance=9000
\emergencystretch=0pt
\hyphenpenalty=10000
\hbadness=10000
\frenchspacing

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eleifend tellus
id ultrices feugiat. Sed a risus vitae nisi placerat posuere. Donec ullamcorper
rhoncus purus, a ornare nunc. In tempus elementum tellus a dictum. Orci varius
natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Phasellus pharetra mollis efficitur. Duis urna nunc, molestie vitae ante in,
pharetra hendrerit arcu. Fusce varius lectus vitae leo facilisis, sed ultricies
velit interdum. Nunc volutpat, neque iaculis tempor scelerisque, enim nunc
posuere sapien, vitae tempor quam justo a odio. Suspendisse porta vel ante et
sagittis. Sed sit amet malesuada ligula, id commodo diam. Donec posuere eros et
orci dignissim tincidunt. Donec imperdiet, metus at lobortis rutrum, nisi felis
pretium magna, quis lacinia magna erat eget quam. Duis eget dolor consequat,
porttitor nunc vel, rutrum tellus. Donec semper finibus justo vel elementum.

\end{document}

You must log in to answer this question.

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