Settings Help
CTAN
Comprehensive TeX Archive Network
Home Upload Browse

Direc­tory tex-archive/macros/latex/contrib/lgrx

.. -*- 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. Development takes place at the Sourceforge__.

__ http://www.ctan.org/tex-archive/macros/latex/contrib/lgrx
__ http://milde.users.sourceforge.net/LGR/

.. Note::

   The TeXLive 2012 pre-release contains the Unicode definition file
   ``lgrenc.dfu`` in the documentation instead of the TEXPATH. To enable
   `Greek Unicode support`_, 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:
    `<lgrxenc.def.html>`_, `<lgrenc.dfu.html>`_,
    `<textalpha.sty.html>`_, `<alphabeta.sty.html>`_

Documentation and test documents:
  .. class:: run-in

  :`<lgrx.pdf>`_: user documentation, source `<lgrx.tex>`__
  :`<greekhyperref.pdf>`_:  `Greek script in PDF metadata`,
                            source `<greekhyperref.tex>`__
  :`<greek-unicode.pdf>`_:  `Greek Unicode with lgrenc.dfu`,
                            source `<greek-unicode.tex>`__
  :`<lgrxenc-test.pdf>`_:   source `<lgrxenc-test.tex>`__
  :`<textalpha-test.pdf>`_: source `<textalpha-test.tex>`__
  :`<alphabeta-test.pdf>`_: source `<alphabeta-test.tex>`__



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]_).

\*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 macros for Greek characters the LGR font encoding 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 lgrx.pdf_, and the test document lgrxenc-test.pdf_.

.. [#fdf] See [fntguide_, section 5] for a definition of `encoding definition
   files`.

Greek Unicode support
---------------------

``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_.

Macros for Greek in text
------------------------

``textalpha.sty`` defines ``\textalpha``, ``\textbeta`` ... macros for Greek
letters in text that work in any font encoding and alias macros for
compatibility with existing packages. 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 letters
--------------------------------

``alphabeta.sty`` allows you to use ``\alpha``, ``\beta``, ... in both, text
and math. 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

Files

Name Size Date Notes
README 11385 2012-07-04 11:09:24
README.html 35891 2012-07-04 11:57:33
alphabeta-test.pdf 246359 2012-07-05 10:51:39
alphabeta-test.tex 6641 2012-07-05 10:56:39
alphabeta.sty 14575 2012-07-05 10:53:26
alphabeta.sty.html 30901 2012-07-05 10:53:21
greek-unicode.pdf 217070 2012-07-03 02:52:18
greek-unicode.tex 13887 2012-07-02 03:20:21
greekhyperref.pdf 217254 2012-07-03 02:53:40
greekhyperref.tex 4093 2012-07-04 10:25:14
lgrenc.dfu 30298 2012-07-05 10:57:25
lgrenc.dfu.html 48702 2012-07-04 11:57:45
lgrx.pdf 234913 2012-07-04 11:29:41
lgrx.tex 6014 2012-07-03 02:54:08
lgrxenc-test.pdf 176179 2012-07-04 11:58:49
lgrxenc-test.tex 10697 2012-07-02 03:29:44
lgrxenc.def 44657 2012-07-05 12:01:32
lgrxenc.def.html 71723 2012-07-04 11:59:19
lgrxenc.pdf 248350 2010-09-09 04:03:09
lgrxenc.tex 6015 2010-09-09 04:03:04
textalpha-test.pdf 223016 2012-07-03 02:54:46
textalpha-test.tex 8576 2012-07-02 03:02:36
textalpha.sty 10376 2012-07-03 02:53:33
textalpha.sty.html 27044 2012-07-04 11:59:40

DOWNLOAD Down­load the com­plete con­tents of this di­rec­tory in one zip archive (1.6M).

lgrx – Greek text with the LGR font en­cod­ing

The LGRx bun­dle pro­vides pack­ages and def­i­ni­tions for type­set­ting Greek text with fonts in the LGR en­cod­ing, the de-facto stan­dard set by ba­bel. It in­cludes a com­pre­hen­sive font def­i­ni­tion file, sup­port for Uni­code in­put and macros for Greek let­ters in non-Greek text.

Doc­u­men­ta­tion Greek di­a­crit­ics with stan­dard ac­cent com­mands
Pro­vid­ing Greek sym­bols in text
Us­ing hy­per­ref with Greek char­ac­ters
Readme
Us­ing in­pu­tenc for Uni­code Greek char­ac­ters
Ver­sion0.6
Li­censeThe LaTeX Project Public Li­cense 1.3
Main­tainerGün­ter Milde
Con­tained inTeXLive as lgrx
MiKTeX as lgrx
Topics in­put en­cod­ing sup­port for TeX en­gines
sup­port for type­set­ting Greek
Guest Book Sitemap Contact 2013-04-08 12:51