.. -*- rst-mode -*- Greek text with the LGR font encoding *************************************** :Copyright: © 2010 Günter Milde :Licence: This work may be distributed and/or modified under the conditions of the `LaTeX Project Public License`_, either version 1.3 of this license or any later version. :Abstract: The LGR font encoding is the de-facto standard for Greek typesetting with (8-bit) LaTeX. However, the encoding definition file that ships with babel_ misses many of the definitions common since the advent of the NFSS [fntguide]_. The `lgrx` bundle provides packages and definitions for typesetting Greek text with fonts in the LGR encoding. It works for both, monotonic and polytonic Greek, independent of the `babel` package. The bundle is available from CTAN__ and included in TeXLive 2012. __ http://www.ctan.org/pkg/lgrx .. Note:: The TeXLive 2012 pre-release contains the Unicode definition file ``lgrenc.dfu`` in the documentation instead of the TEXPATH. To enable `utf-8 support for Greek`_, update via `tlmgr` or place a copy in the TEXPATH «by hand». See http://tug.org/pipermail/tex-live/2012-June/031757.html .. contents:: Manifest ======== The lgrx bundle consists of the following LaTeX files: LaTeX files: :lgrxenc.def: comprehensive LGR encoding definition file :lgrenc.dfu: support for Unicode input :textalpha.sty: ``\text...`` macros for Greek letters in non-Greek text :alphabeta.sty: Greek letters with ``\alpha``, ``\beta``, ... in text and math Literal sources: ``_, ``_, ``_, ``_ Documentation and test documents: .. class:: run-in :``_: `Greek diacritics with standard accent macros` source ``__ :``_: `Greek script in PDF metadata`, source ``__ :``_: `Greek Unicode with lgrenc.dfu`, source ``__ :``_: source ``__ :``_: source ``__ :``_: source ``__ Motivation ========== Greek font encodings -------------------- Unicode ~~~~~~~ The Unicode standard allows fonts that comprise glyphs from (almost) all known scripts. With the TeX engines XeTeX or LuaTeX, typesetting Greek with LaTeX is as easy as finding a font that contains Greek letters and setting it up with fontspec_. Beware, that you must not use the ``greek`` or ``polutonikogreek`` options of the babel_ package. The `babel` replacement polyglossia_ provides Greek language support for XeLaTeX/LuaLaTeX. If you go this way, you don't need the lgrx bundle. T7 ~~~~ The [encguide]_ reserves the name T7 for a Greek `standard font encoding`. However, up to now, there is no agreement on an implementation because the restrictions for general text encodings are too severe for typesetting polytonic Greek. LGR ~~~ The LGR font encoding is the de-facto standard for typesetting Greek with (8-bit) LaTeX. Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_ (Greek Times), Kerkis_ (matching URW Bookman), and the `GFS font collection`_. Setup of these fonts as Greek variant to matching Latin fonts is facilitated by the substitutefont_ package. The LGR font encoding generates Greek characters via an ASCII transliteration. This enables simple input with a Latin keyboard. Characters with diacritics are selected by ligature definitions in the font (see [greek-usage]_, [teubner-doc]_, [cbfonts]_). A major drawback of this transliteration is, that you cannot access Latin letters if LGR is the active font encoding (e.g. in documents or parts of documents given the `Babel` language ``greek`` or ``polutionikogreek``). This means that for every Latin-written word or acronym an explicite language-switch is required. This problem can only be solved via a font-encoding comprising Latin and Greek like the hypothetic T7_ or Unicode (with XeTeX or LuaTeX). \*OT7 ~~~~~ The name LGR does not reflect status of this font encoding due to historical reasons. [encguide]_ classifies encodings starting with `L` as "local". Indeed, LGR started as a local encoding for the `CB fonts`_ by Claudio Beccari. Later, Apostolos Syropoulos advanced it to the default font encoding for the `babel` package's ``greek`` option. A better name would be OT7: * It is an 'old' encoding. * It implements a Latin transcription for a non-Latin script like the OT2 encoding. * It is not confined to 128 bit but OT4 shows that this is no absolute requirement for an `OT` encoding. However, due to the fact that the LGR font encoding has been used under its current name for a long time, the name will not change for compatibility reasons. Problems with the default setup ------------------------------- The `lgrx` budle adresses a set of problems with the LGR font encoding as set up by `babel`: 1. Ligatures with prefix notation prevent kerning (see the example document lgrxenc-test.pdf_ and [teubner-doc]_). 2. Sub-optimal results with the standard accent macros: * no combined accents, * accents above (instead of before) capital letters, * pre-composed characters are not used. 3. The tilde character ``~`` is used for a non-breaking space by default. Therefore the transliteration for the *perispomeni* accent is not available without re-definition of this character. [#tildehack]_ 4. The ``polutonikogreek`` `babel` option redefines both, ``~`` and ``\~`` to produce accents via input ligatures (restricted to the language setting instead of the font encoding). This prevents the placing of a tilde-accent on non-supported characters like in *niño* if the language is set to polytonic Greek, even if ``\textlatin`` is used. [#poluhack]_ 5. There is no Unicode support with `inputenc`_'s ``utf8`` option. The `ucs` package contributed by Dominique Unruh provides Unicode support with the ``utf8x`` option. A babel patch by Werner Lemberg for Greek Unicode support [lemberg2008]_ never got applied.) 6. The LGR transliteration does not work for PDF metadata. .. [#tildehack] Problem 3 can be solved by the simple one-liner :: \DeclareTextSymbol{\~}{LGR}{126} which results in ``\~`` inserting a plain tilde character if the font encoding is LGR. Drawback: you cannot place a ~-accent on Greek characters except the ones supported by an input ligature. .. [#poluhack] Fortunately, LaTeX saves copies of the accent macros: ``\~`` is an alias of ``\a~`` (which is an alias of ``\@tabacckludge~``), so it can be restored after loading `babel` with:: \addto\extraspolutonikogreek{\renewcommand*{\~}{\a~}} \addto\extrasgreek{\renewcommand*{\~}{\a~}} With this addition, both the comprehensive font encoding definitions and the workaround [#tildehack]_ also work with the ``polutonikogreek`` `babel` option. Components of the `lgrx` bundle =============================== The `lgrx` bundle comprises tools that help typesetting Greek script with (8-bit) LaTeX in Greek as well as multi-lingual documents. Comprehensive font encoding definition file ------------------------------------------- ``lgrxenc.def`` is an alternative to the rudimentary LGR encoding definition file [#fdf]_ ``lgrenc.def`` which comes with babel_'s Greek support. It defines LICR macros for Greek characters that select pre-composed glyphs if possible and places the diacritics according to Greek typesetting rules else. Combined accents can be specified as backslash + transliteration (``\~>a``) or iteratively (``\~\>{a}``). For usage and documentation see the literal source lgrxenc.def.html_, the user manual diacritics.pdf_, and the test document lgrxenc-test.pdf_. .. [#fdf] See [fntguide_, section 5] for a definition of `encoding definition files`. UTF-8 support for Greek ----------------------- ``lgrenc.dfu`` provides standards-compatible UTF-8 support for Greek based on the comprehensive font encoding definitions. It is compatible with hyperref_ enabling Greek characters in PDF metadata without the need for ``\texorpdfstring``. See the literal source lgrenc.dfu.html_ and the test document greek-unicode.pdf_. Text macros for Greek symbols ----------------------------- ``textalpha.sty`` makes the ``\textalpha``, ``\textbeta`` ... macros as well as the ``\ensuregreek`` command aviable in any font encoding. With this package, Unicode input of Greek letters works in any font encoding, too. .. _limitations: However, in any font encoding except LGR: * there is no kerning between Greek characters, * composition of diacritics (like ``\Dasia\Tonos``) fails, * accent macros do not select precomposed characters (pre-composed Unicode literals work fine). See the literal source textalpha.sty.html_ and textalpha-test.pdf_ for details on usage, limitations, and recommended workarounds. Generic macros for Greek symbols -------------------------------- ``alphabeta.sty`` allows you to use ``\alpha``, ``\beta``, ... in both, text and math mode. For this, the math macros are redefined with the help of ``\TextOrMath`` from the standard package fixltx2e_. See the literal source alphabeta.sty.html_ and the test document alphabeta-test.pdf_. References ========== .. [fntguide] LaTeX3 Project Team, `LaTeX 2ε font selection`, 2005. http://mirror.ctan.org/macros/latex/doc/fntguide.pdf .. [encguide] Frank Mittelbach, Robin Fairbairns, Werner Lemberg, LaTeX3 Project Team, `LaTeX font encodings`, 2006. http://mirror.ctan.org/macros/latex/doc/encguide.pdf .. [greek-usage] Apostolos Syropoulos, `Writing Greek with the greek option of the babel package`, 1997. http://www.tug.org/texlive/Contents/live/texmf-dist/doc/generic/babel/greek-usage.pdf .. [cbfonts] Claudio Beccari, `The CB Greek fonts`, Εὔτυπον, τεῦχος № 21, 2008. http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf .. [teubner-doc] Claudio Beccari, ``teubner.sty`` `An extension to the greek option of the babel package`, 2011. http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf .. [lemberg2008] Werner Lemberg, `Unicode support for the Greek LGR encoding`, Εὔτυπον, τεῦχος № 20, 2008. http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt .. _CB Fonts: http://mirror.ctan.org/help/Catalogue/entries/cbgreek-complete.html .. _grtimes: http://mirror.ctan.org/help/Catalogue/entries/grtimes.html .. _GFS font collection: http://mirror.ctan.org/help/Catalogue/entries/gfs.html .. _Kerkis: http://mirror.ctan.org/help/Catalogue/entries/kerkis.html .. _substitutefont: http://mirror.ctan.org/help/Catalogue/entries/substitutefont.html .. _babel: http://mirror.ctan.org/help/Catalogue/entries/babel.html .. _fontenc: http://mirror.ctan.org/help/Catalogue/entries/fontenc.html .. _inputenc: http://mirror.ctan.org/help/Catalogue/entries/inputenc.html .. _fontspec: http://mirror.ctan.org/help/Catalogue/entries/fontspec.html .. _polyglossia: http://mirror.ctan.org/help/Catalogue/entries/polyglossia.html .. _textgreek: http://mirror.ctan.org/help/Catalogue/entries/textgreek.html .. _fixltx2e: http://mirror.ctan.org/help/Catalogue/entries/fixltx2e.html .. _hyperref: http://mirror.ctan.org/help/Catalogue/entries/hyperref.html .. _bookmark: http://mirror.ctan.org/help/Catalogue/entries/bookmark.html