6

I'm writing a thesis in Icelandic and LaTeX doesn't know how to break the words correct. I'm trying to create a list of words it breaks and correct them. I have over 100 pages of text and I want to be able to get an list of all the words which is hyphenated.

\documentclass[a4paper,12pt,icelandic]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{palatino,babel,setspace}
     \hyphenation{Eyja-fjalla-jökull}
     \hyphenation{Hall-orms-staðar-skógur}
     \hyphenation{norður-ljós}

\begin{document}
text here about Eyjafjallajökull.
Text here about Hallormsstaðarskógur.
Text here about norðurljósin.
\end{document}

There are hundreds of words broken incorrectly. I would like to get a list of the words it breaks to define a new hyphenation for them. The words mentioned in the code is just some examples. I'm not really using those in the thesis and the babel package may break them correctly.

I have a thesis with approx. 40.000 words. I just wanted a list of the words that LaTeX breaks. - So I can put them inside:

"\babelhyphenation[icelandic]{ Word list here }

where I define myself the proper hyphenations. I could just scroll down every page and write the word manually. But I'm just trying to save me some time. If it would be possible.

I have no interest in taking a look at how each word is currently defined to break.

7
  • You can use \showhyphens set hyphenation explicitly using \hyphenation{sea-gull} and also need to use the correct font encoding. Right now, i don't really know what you are after? Can you elaborate?
    – Johannes_B
    Commented Dec 1, 2014 at 14:56
  • 2
    Can you show a small example? Are you using \usepackage[icelandic]{babel} and \usepackage[T1]{fontenc}?
    – egreg
    Commented Dec 1, 2014 at 14:57
  • egreg: I added some information. Thought it wouldn't matter cause it would be same for every language. Johannes_B: I wan't to get a list of all words LaTeX breaks so I can show LaTeX to break them by using: \hyphenation{sea-gull}
    – Bjartmar
    Commented Dec 1, 2014 at 15:23
  • You are missing \usepackage[icelandic]{babel}
    – egreg
    Commented Dec 1, 2014 at 15:27
  • egreg: I have Icelandic in the document class. - But I forgot to input the babel package. :)
    – Bjartmar
    Commented Dec 1, 2014 at 15:31

3 Answers 3

5

If I add \usepackage[icelandic]{babel}, I get the following hyphenation points for those three words:

Eyja-fjalla-jök-ull
Hall-orms-stað-ar-skóg-ur
norð-ur-ljós

If you feel that the additional hyphenation points for those words are bad, you can add exceptions to the dictionary:

\documentclass[a4paper,12pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[icelandic]{babel}

\babelhyphenation[icelandic]{
  Eyja-fjalla-jökull
  Hall-orms-staðar-skógur
  norður-ljós
}

\begin{document}
\parbox{0pt}{\hspace{0pt}Eyjafjallajökull
Hallormsstaðarskógur
norðurljós}
\end{document}

The \parbox is just to force TeX to hyphenate at every possible break. The output is

enter image description here

Note that adding a hyphenation exception for norðurljós doesn't affect norðurljósin, but only the exact word.

If you think that many words are broken incorrectly, you should file a bug report to the maintainers of the hyphenation patterns (Mojca Miklavec is in charge of them).

6
  • Thanks for the answer. But it's not really what I'm trying to achieve. I have a thesis with approx. 40.000 words. I just wanted a list of the words that LaTeX breaks. - So I can put them inside '\babelhyphenation[icelandic]{ Word list here }' where I define myself the proper hyphenations. There are hundreds of words I wan't to
    – Bjartmar
    Commented Dec 1, 2014 at 18:02
  • 3
    @bjartmar The hyphenation algorithm doesn't have a list of words; it works with patterns.
    – egreg
    Commented Dec 1, 2014 at 18:21
  • Okay, thank you for the answer. I thought maybe it would be logged in some file or could be written in some file with some kind of code.
    – Bjartmar
    Commented Dec 1, 2014 at 18:45
  • @bjartmar If you are certain that TeX hyphenates wrongly Icelandic, then the only way is to make it known to the maintainers of the hyphenation pattern set.
    – egreg
    Commented Dec 1, 2014 at 18:47
  • 1
    @Sverre Exactly in the same way: \parbox{0pt}{\hspace{0pt}...}, commenting the \babelhyphen command.
    – egreg
    Commented Dec 1, 2014 at 21:07
4

If using LuaLaTeX is an option for you, you could use the showhyphens package (which requires LuaLaTeX) to show -- with a thin vertical red line -- every single hyphenation point that LaTeX thinks is valid. You won't need to go through all 100+ pages of your document; in general, checking the hyphenation points on just the first few pages will suffice.

enter image description here

% !TEX TS-program = lualatex
\documentclass[a4paper,12pt]{article}
\usepackage{polyglossia}
\setdefaultlanguage{icelandic}
\usepackage{fontspec,showhyphens}
\setmainfont{TeX Gyre Pagella} % choose a font that has all characters of Icelandic alphabet
\begin{document}
Eyjafjallajökull

Hallormsstaðarskógur

norðurljósin

%% now provide an explicit hyphenation exception list
\hyphenation{Eyja-fjalla-jökull Hall-orms-staðar-skógur norður-ljósin}

\bigskip  % repeat the same words
Eyjafjallajökull

Hallormsstaðarskógur

norðurljósin
\end{document}
2

As pointed out by @egreg in the comments, \usepackage[icelandic]{babel} should give the correct hyphenation patterns. You can check this with the testhyphens package.

\documentclass[a4paper,12pt]{report}
\usepackage[icelandic]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{testhyphens}

\begin{document}
\begin{checkhyphens}
Eyjafjallajökull
Hallormsstaðarskógur
norðurljósin
\end{checkhyphens}
\end{document}

enter image description here

You must log in to answer this question.

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