As this is a different approach I am posting it in as a seperate answer.
XeLaTeX gives you the ability to define groups of glyphs, and issue commands automatically when you encounter a glyph that belongs to a different group.
Given that the greek glyphs are different from the latin ones, you can group them in seperate character classes
. So each time you change classes, you can issue the command \setlanguage
in order to load the correct hyphenation rules.
In order to use it, follow these instructions or more simply, save this code at a file named autohyph.sty
, place it somewhere LaTeX can find it (in the same folder as your main file) and just give \usepackage{xgreek,autohyph}
in your preamble.
Minimum Working Example
\documentclass[a4paper,draft]{article}
% Language declaration
\usepackage{xltxtra,xgreek,lipsum}
\usepackage{autohyph}
% Fonts
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}
\begin{document}
\section{Ελληνικά}
Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις. Παράγραφος με ελληνικό κείμενο στην οποία γίνονται υφενώσεις.
\section{Αγγλικά}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagiis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
\end{document}
More info can be found at Apostolos Syropoulos Book Ψηφιακή Τυπογραφία με το XeLaTeX
section 9.4 (in greek) and at XeTeX referece file at pages 13-14.
Notes
- I checked it for monotonic greek only. It shouldn't be too difficult to make it work with polytonic and ancient greek.
- This approach works only for languages that use different scripts (i.e Greek, Latin, Cyrillic etc)
- Instead of english, it can be used for any other language that uses the latin alphabet, but not for two of them at the same time.
- As far as I checked, everything works ok. Needs more testing though