195

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.

  • 34
    If you are going to typeset your document without hyphenation I strongly recommend using \raggedright to avoid large spaces between the word. – Will Robertson Nov 7 '10 at 11:07
  • 1
    @WillRobertson But, the document looks too bad. In there a middle road? (for instance like \hyphenpenalty=5000) – Cyriac Antony Aug 19 '19 at 8:31
  • @cyriac I guess you want the ragged2e package. – Will Robertson Aug 19 '19 at 12:13
173

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.

| improve this answer | |
  • 5
    @Splashy: see Will's comment about using \raggedright. – Joseph Wright Nov 9 '10 at 18:53
  • 2
    @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 Nov 9 '10 at 19:09
  • 3
    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 Nov 9 '10 at 19:10
  • 1
    @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 Apr 17 '13 at 9:13
  • 2
    @JuanA.Navarro The simple answer to "Why would you want to prevent hyphenation?" is "Because it sucks". I cannot count the number of times that I'm reading a text (done with TeX) and I see a word that is screwed up by an incorrect hyphenation after a line break. Also if you are writing a scientific paper or a similar written work hyphenation is something that is avoided in general. – rbaleksandar Feb 25 '17 at 12:46
84

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

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

\being{document}... yadda yadda
| improve this answer | |
  • 4
    Good answer, the previous solutions mess up my document, this works for me!!! – richardtk_1 Apr 9 '15 at 21:46
  • When I used hyphenpenalty=10000 alone some words pass the margin. This works great. – Gokce Mehmet AY Aug 21 '15 at 11:24
  • This worked for me with Share Latex, and it avoids the problem of words going over the right-hand margin. – timothyjgraham Mar 6 '16 at 2:58
  • This worked ultimately...Thank you so much..@Timharris – David Jul 9 '16 at 13:15
  • 3
    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. – Sumner Evans Nov 2 '16 at 21:06
62

A quick google found

\usepackage[none]{hyphenat}

and more useful info here.

| improve this answer | |
  • 2
    Note that this silently breaks the breaklines option of the listings package. See stackoverflow.com/a/8264050/1650137. – Zero3 Jan 3 '16 at 4:15
  • 9
    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 Apr 15 '16 at 8:00
30

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}
| improve this answer | |
  • 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 May 5 '17 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 May 5 '17 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 May 5 '17 at 17:15
  • 1
    @DiaaAbidou Then you have to follow the second strategy: “If this is not the case…” – egreg May 5 '17 at 17:17
  • 1
    @DiaaAbidou You're welcome! – egreg May 5 '17 at 17:35
1

You can use the command:

\raggedright

or the environment:

\begin{flushleft}
\end{flushleft}

§ Paragraph alignment

| improve this answer | |
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{}.

| improve this answer | |
  • This uses a different mechanism, but the result isn't greatly different from that achieved with \sloppy. – barbara beeton May 9 at 19:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.