CTAN Comprehensive TeX Archive Network

Directory language/greek/greek-fontenc

Greek font encoding definition files

:Author:    Günter Milde
:Copyright: © 2010 -- 2022 Günter Milde <milde@users.sf.net>
: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:  `LaTeX internal character representation` (LICR) macros are a
            verbose but failsafe 7-bit ASCII encoding that works unaltered
            under both, 8-bit TeX and XeTeX/LuaTeX. Use cases are macro
            definitions and generated text

            This bundle provides LICR macros for characters from the
            Greek script and encoding definition files for
            `Greek text font encodings`_ for use with fontenc_ (8-bit TeX)
            or fontspec_ (XeTeX/LuaTeX).

            Included are also the LaTeX packages textalpha_ and alphabeta_.

.. contents::


.. class:: borderless

====== =========== ===========================================================
0.9    2013-07-03  greek-fontenc.def_ "outsourced" from lgrxenc.def
..                 experimental files xunicode-greek.sty and
                   greek-euenc.def: LICRs for XeTeX/LuaTeX.
0.9.1  2013-07-18  Bugfix: wrong breathings psilioxia -> dasiaoxia.
0.9.2  2013-07-19  Bugfix: Disable composite defs starting with char macro,
..                 fix "hiatus" handling.
0.9.3  2013-07-24  Fix "input" path in xunicode-greek and greek-euenc.def.
0.9.4  2013-09-10  greek-fontenc.sty: Greek text font encoding setup package,
..                 remove xunicode-greek.sty.
0.10   2013-09-13  textalpha.sty_ and alphabeta.sty_ moved here from lgrx and
                   updated to work with XeTeX/LuaTeX.
..                 greek-fontenc.sty removed (obsoleted by textalpha.sty).
0.10.1 2013-10-01  Bugfix in greek-euenc.def and alphabeta-euenc.def.
0.11   2013-11-28  Compatibility with Xe/LuaTeX in 8-bit mode,
..                 ``\greekscript`` TextCommand.
0.11.1 2013-12-01  Fix identification of ``greek-euenc.def``.
0.11.2 2014-09-04  Documentation update, remove duplicate code.
0.12   2014-12-25  Fix auxiliary macro names in `textalpha`.
..                 Conservative naming: move definition of ``\<`` and ``\>``
                   from ``greek-fontenc.def`` to ``textalpha.sty``
                   (Bugreport David Kastrup).
                   Documentation update.
0.13   2015-09-04  Support for `symbol variants`_,
..                 ``keep-semicolon`` option in textalpha_,
..                 ``\lccode``/``\uccode`` corrections for Unicode
                   (from Apostolos Syropoulos’ xgreek_) in greek-euenc,
..                 Do not convert ``\ypogegrammeni`` to ``\prosgegrammeni``
                   with ``\MakeUppercase``.
0.13.1 2015-12-07  Fix `rho with dasia bug`__ in lgrenc.def (Linus Romer).
0.13.2 2016-02-05  Support for standard Unicode text font encoding "TU"
                   (new in fontspec v2.5a).
0.13.3 2019-07-10  Drop error font declaration  (cf. `ltxbugs 4399`_).
0.13.4 2019-07-11  ``@uclclist`` entry for ``\prosgegrammeni``.
..                 Documentation update.
0.14   2020-02-28  Update test for Unicode fonts.
                   Rename ``greek-euenc`` to ``tuenc-greek``.
..                 Use ``\UTFencoding`` instead of ``\LastDeclaredEncoding``.
1.0    2020-09-25  Bugfix in textalpha_: Let ``\greekscript`` set
..                 ``\textKoppa`` as alias for ``\textkoppa`` in LGR.
..                 Update URLs.
2.0    2020-10-30  Move common alias definitions to ``greek-fontenc.def``.
..                 `textalpha`_ loads TU with Xe/LuaTeX by default and
                   provides ``\textmicro`` and LICR macros for archaic
                   symbols from the Greek and Coptic Unicode block.
..                 Use ``\UnicodeEncodingName`` (by the LaTeX kernel) instead
                   of ``\UTFencname`` for the Unicode font encoding name.
..                 Replace utf8 literals in ``tuenc-greek.def``.
..                 New file puenc-greek.def: setup for PU encoding
                   (defined by hyperref_ for PDF strings).
..                 Don't use ``\textcompwordmark`` as base in accent commands.
..                 Documentation update.
2.1    2022-06-14  Support the correct spelling ``\guillemet…`` for « and ».
                   See https://github.com/latex3/latex2e/issues/65
====== =========== ===========================================================

__ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin
.. _ltxbugs 4399:

TeX files

  `LGR Greek font encoding definitions <lgrenc.def.html>`_.

  This file is the successor of the basic LGR encoding definition file which
  comes with babel_'s Greek support and the now obsolete lgrx_ bundle.

  .. _tuenc-greek:

  `Font setup for Greek with XeTeX/LuaTeX <tuenc-greek.def.html>`_.

  `Greek LICR definitions for PDF strings <puenc-greek.def.html>`_.

  `Common Greek font encoding definitions <greek-fontenc.def.html>`_.

  .. _LGR font encoding definition file:

  Backwards compatibility file loading tuenc-greek_.

  .. _textalpha:

  `Greek symbols in text <textalpha.sty.html>`_

  Use ``\textalpha`` ... ``\textOmega`` independent of font encoding and TeX

  .. _alphabeta:

  `Greek symbols in text and math <alphabeta.sty.html>`_.

  Use ``\alpha`` ... ``\Omega`` independent of text/math mode, font
  encoding, and TeX engine.

    `Composite definitions for 8-bit TeX. <alphabeta-lgr.def.html>`_.

    `Composite definitions with XeTeX/LuaTeX. <alphabeta-tuenc.def.html>`_.

Literate source files were converted with PyLit_ to reStructuredText_ and
with Docutils_ to the HTML documentation.

Documentation and test documents

  `<README>`__, `<greek-fontenc.html>`_

textalpha_ package documentation:
  `<textalpha-doc.tex>`__, `<textalpha-doc.pdf>`_, `<textalpha-tu.pdf>`_

alphabeta_ package documentation:
  `<alphabeta-doc.tex>`__, `<alphabeta-doc.pdf>`_, `<alphabeta-tu.pdf>`_

LGR test and usage example
  `<test-lgrenc.tex>`_, `<test-lgrenc.pdf>`_

TU test and usage example
  `<test-tuenc-greek.tex>`_, `<test-tuenc-greek.pdf>`_

Hyperref_ test and usage example
  `<hyperref-with-greek.tex>`_, `<hyperref-with-greek.pdf>`_

Test with input encodings other than utf-8
  `<test-inputenc.tex>`_, `<test-inputenc.pdf>`_

Greek diacritics with standard accent macros
  `<diacritics.tex>`_, `<diacritics.pdf>`_

Experimental files

These files are still in development and will eventually be moved to/merged
with other packages or removed in future versions:

  `LGR Transcription to Greek LICR transformation <lgr2licr.lua.html>`_


If possible, get the bundle from your distribution using its installation

Otherwise, make sure LaTeX can find the package and definition files:

* Download and unpack greek-fontenc.zip_.

* Copy/Move/Link files ending in ``.def`` or ``.sty`` to a suitable place in
  the “TeX Directory Structure” (TDS_) and run ``texhash``, or place them in
  the current working directory (e.g. for testing).


The arabi_ package provides the Babel ``arabic`` option which loads
``arabicfnt.sty`` for font setup. This package overwrites the LICR macros
``\omega`` and ``\textomega`` with font selecting commands.  See the report
for Debian `bug 858987`_ for details and the `arabi workaround`_ below.

.. _bug 858987: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858987


There are several alternatives to set up the support for a Greek font
encoding provided by this bundle, e.g.:

  Use the ``greek`` option with Babel_::


  This automatically loads ``lgrenc.def`` with 8-bit TeX and
  ``tuenc-greek.def`` with XeTeX/LuaTeX and provides localized auto-strings,
  hyphenation and other localizations (see babel-greek_).

  Babel can be used together with textalpha_ or alphabeta_.

  Ensure support for Greek characters in text mode::


  eventually with the normalize-symbols_ option to handle `symbol variants`_
  and/or the keep-semicolon_ option to use the `semicolon as erotimatiko`_
  also in LGR ::


  This sets up LICR macros for Greek text charactes under both, 8-bit TeX
  and Xe-/LuaTeX.
  For details see `<textalpha-doc.tex>`_ and `<textalpha-doc.pdf>`_ (8-bit
  TeX) as well as `<test-tuenc-greek.tex>`_ and `<test-tuenc-greek.pdf>`_

  .. _normalize-symbols: textalpha.sty.html#normalize-symbols
  .. _keep-semicolon: textalpha.sty.html#keep-semicolon
  .. _semicolon as erotimatiko: textalpha.sty.html#semicolon-as-erotimatiko

  To use the short macro names (``\alpha`` ... ``\Omega``) known from math
  mode in both, text and math mode, write ::


  For details see `<alphabeta-doc.tex>`_ and `<alphabeta-doc.pdf>`_.

  Declare LGR via fontenc_. For example, specify T1 (8-bit
  Latin) as default font encoding and LGR for Greek with ::


  Note that without textalpha_ or alphabeta_, Greek text macros work
  only if the current font encoding supports Greek. See [fntguide]_ for
  details and `<test-lgrenc.tex>`_ for an example.

  It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding
  also with XeTeX/LuaTeX, if the fontenc_ package is loaded before
  Babel, textalpha_, or alphabeta_, e.g. ::

    \setmainfont{Linux Libertine O} % Latin Modern does not support Greek
    \setsansfont{Linux Biolinum O}

  See `<test-tuenc-greek.tex>`_, `<test-tuenc-greek.pdf>`_ and
  `<test-lgrenc.tex>`_, `<test-lgrenc.pdf>`_.

.. _arabi workaround:

To work around the conflict with arabi_, it may suffice to ensure ``greek``
is loaded after ``arabic``::


More secure is an explicit reverse-definition, e.g. ::

    % save original \omega


    % fix arabtex:

Greek text font encodings

Greek TeX font encodings are the envisaged T7_, LGR_, and LGI_.
Greek letters and symbols are also defined in the Unicode-based font
encodings TU_, and PU_.


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.


The LGR font encoding is the de-facto standard for typesetting Greek with
(8-bit) LaTeX. `greek-fontenc` provides a comprehensive `LGR font
encoding definition file`_.

Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_
(Greek Times), Kerkis_ (matching URW Bookman), DejaVu_, `Libertine GC`_, and
the `GFS fonts`_. Setup of these fonts as Greek variant to
matching Latin fonts is facilitated by the substitutefont_ package.

The LGR font encoding allows to access Greek characters via an ASCII
transliteration. This enables simple input with a Latin keyboard.
Characters with diacritics can be selected by ligature definitions in the
font (see [greek-usage]_, [teubner-doc]_, [cbfonts]_).

A major drawback of the 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 explicit
language-switch is required. This problem can only be solved via a
font-encoding comprising Latin and Greek like the envisaged T7_ or
Unicode (with XeTeX or LuaTeX).


The ‘Ibycus’ fonts from the package ibygrk_ implement an alternative
transliteration scheme (also explained in [babel-patch]_).
It is currently not supported by `greek-fontenc`.

The font encoding file ``lgienc.def`` from ibycus-babel_ provides a basic
setup (without any LICR macros or composite definitions).


Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec_
(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [LaTeX2e News Issue 26]_.
`greek-fontenc` adds support for the Greek script (see tuenc-greek_).

Xe/LuaTeX works with any system-wide installed `OpenType font`_. Suitable
fonts supporting Greek include `CM Unicode`_, `Deja Vu`_, `EB Garamond`_,
the `GFS fonts`_, `Libertine OTF`_, `Libertinus`_, `Old Standard`_,
Tempora_, and `UM Typewriter`_ (all available on CTAN) but also many commercial
fonts. Unfortunately, the fontspec_ default, `Latin Modern`_ misses most
Greek characters.

XeTeX uses the Unicode NFC normalization, so that combining characters
are merged with the base character if a pre-composed character exists. This
results in better looking output for characters with multiple diacritics.
Unfortunately, LuaTeX does not apply the NFC normalization. This leads to
suboptimal placing of some diactritics, especially the sub-iota (becoming
unintelligable in combination with small letter eta).

TODO: The `lua-uni-algos`_ package may be helpfull to implement a NTC
normalization to Greek text in LuaTeX.

The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX
respectively were superseded by TU in the 2017 fontspec_ release.


The package hyperref_ defines the PU font encoding for use in PDF strings
(ToC, bookmarks) which supports monotonic Greek. `greek-fontenc` adds
support for polytonic Greek and some archaic characters also supported in
LGR and TU (see `<hyperref-with-greek.tex>`_, `<hyperref-with-greek.pdf>`_).

Selecting Greek LICR macro names

.. note::   The LICR macro names for Greek symbols are chosen pending
            endorsement by the TeX community and related packages.

            Names for archaic characters, accents/diacritics, and
            punctuation may change in future versions.

This bundle provides LaTeX internal character representations (LICR macros)
for Greek letters and diacritics. Macro names were selected based on the
following considerations:

letters and symbols

* The fntguide_ (section 6.4 Naming conventions) recommends:

     Where possible, text symbols should be named as ``\text`` followed
     by the **Adobe glyph name**: for example ``\textonequarter`` or
     ``\textsterling``. Similarly, math symbols should be named as
     ``\math`` followed by the glyph name, for example
     ``\mathonequarter`` or ``\mathsterling``.

     The `Adobe Glyph List For New Fonts`_ has names for many glyphs in the
     `Greek and Coptic` Unicode block, but not for `Greek extended`. The
     `Adobe Glyph List`_ (for existing fonts) lists additional glyph names
     used in older fonts.  However, these are not intended for active use.

* If there exists a **math-mode macro** for a symbol, the corresponding text
  macro could be formed by prepending ``text``.

     The glyph name for the GREEK SMALL LETTER FINAL SIGMA is ``sigma1``,
     the corresponding math-macro is ``\varsigma``. The text symbol is
     made available as ``\textvarsigma``.

     The math macros for the `symbol variants`_ ``\varepsilon`` and
     ``\varphi`` map to characters named "GREEK SMALL *LETTER* ...", while
     ``\vartheta``, ``\varkappa``, ``\varrho``, and ``\varpi`` map to "GREEK
     ... *SYMBOL*" Unicode characters. (See also section 5.5.3 of the
     unicode-math_ documentation.)

* The `Unicode names list`_ provides standardized descriptive names for all
  Unicode characters that use only capital letters of the Latin alphabet.
  While not suited for direct use in LICR macros, they can be either

  i.  used as inspiration for new LICR macro names or
  ii. converted to LICR macro names via a defined set of transformation rules.

    ``\textfinalsigma`` is a descriptive alias for
    GREEK SMALL LETTER FINAL SIGMA derived via the rules:

    * drop "LETTER" if the name remains unique,
    * drop "GREEK" if the name remains unique,
    * use capitalized name for capital letters, lowercase for "SMALL" letters
      and drop "SMALL",
    * concatenate

* Omit the "text" prefix for macros that do not have a math counterpart?

    + Simpler,
    + ease of use (less typing, better readability of source text),
    + many established text macro names without "text",
    + ``text`` prefix does **not** mark a macro as encoding-specific or
      "inserting a glyph". There are e.g. font-changing macros (``\textbf``,
      ``\textit``) and encoding-changing macros (``\textgreek``,
    + There are examples of encoding-specific macros
      without the ``text``-prefix, especially for letters, see encguide_.

    - Less consistent,
    - possible name clashes
    - ``text`` prefix marks a macro as confined to text (as opposed to math)

  The font encoding definition files use the ``text`` prefix for symbols.
  Aliases (short forms, compatibility defs, etc.) are defined in
  additional packages (e.g. alphabeta.sty_, `babel-greek`_, or teubner_)

accent macros

* standard accent macros (``\DeclareTextAccent`` definitions in
  ``latex/base/...``) are one-symbol macros (``\' \" ... \u \v ...``) .

* ``tipa.sty``, xunicode_, and ucs_ use the "text" prefix also for accents.

  However, the `Adobe Glyph List For New Fonts`_ maps, e.g., "tonos" and
  "dieresistonos" to the spacing characters GREEK TONOS and GREEK DIALYTIKA
  TONOS, hence `\texttonos` and `\textdiaresistonos` should be spacing

* textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without
  ``text`` prefix).

Currently, `greek-fontenc` uses for diacritics:

- Greek names like in Unicode, and ``ucsencs.def``, and

- the prefix ``\acc`` to distinguish the macros as `TextAaccent` and reduce
  the risc of name clashes (cf. ``\@tabacckludge``).

For the end-user "symbol macros" (``\~ \' \` \" \< \> \"' ...``) are
provided. (The non-standard macros ``\<`` and ``\>`` only with
textalpha_ or alphabeta_.)

symbol variants

See also http://en.wikipedia.org/wiki/Greek_alphabet#Glyph_variants

Mathematical notation distinguishes variant shapes for beta (β|ϐ), theta
(θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon
(ε|ϵ).  The variations have no syntactic meaning in Greek text and Greek
text fonts use the shape variants indiscriminately.

Unicode defines separate code points for the symbol variants for use in
mathematical context. However, they are sometimes also used in place of the
corresponding letter characters in Unicode-encoded text.

The variant shapes are not given separate code-points in the LGR_ font

In mathematical mode, TeX supports the distinction between θ|ϑ, π|ϖ, φ|ϕ,
ρ|ϱ, and ε|ϵ with ``\var<lettername>`` macros. However, the mapping of
letter/symbol in Unicode to "normal"/variant in TeX is inconsistent
and variant macros for ϴ ϐ, and ϰ are not available without additional
packages (e.g. amssymb_ provides ϰ as ``\varkappa``).

`greek-fontenc` provides ``\text<lettername>symbol`` LICR macros for these

* With Unicode fonts, the macros select the GREEK
  <lettername> SYMBOL``.

* With LGR encoded fonts, they report an error by default and are mapped to
  the corresponding letter with the ``normalize-symbols`` option of
  textalpha_ and alphabeta_ (loosing the distinction between the shape


An alternative, more complete set of short mnemonic character names is
the `XML Entity Definitions for Characters`_ W3C Recommendation from
01 April 2010.

For glyph names of the LGR encoding see, e.g., ``CB.enc`` by Apostolos
Syropoulos and ``xl-lgr.enc`` from the libertine_ (legacy) package.
``lgr.cmap`` provides a mapping to Unicode characters.

A full set of ``\text*`` symbol macros is defined in ``ucsencs.def``
from the ucs_ package.

.. [fntguide] LaTeX3 Project Team, `LaTeX2ε font selection`, 2005.
.. [encguide] Frank Mittelbach, Robin Fairbairns, Werner Lemberg,
   LaTeX3 Project Team, `LaTeX font encodings`, 2006.
.. [greek-usage] Apostolos Syropoulos, `Writing Greek with the greek option
   of the babel package`, 1997.
.. [cbfonts] Claudio Beccari, `The CB Greek fonts`, Εὔτυπον, τεῦχος № 21, 2008.
.. [teubner-doc] Claudio Beccari, ``teubner.sty``
   `An extension to the greek option of the babel package`, 2011.
.. [LaTeX2e News Issue 26]
.. [babel-patch] Werner Lemberg, `Unicode support for the Greek LGR
   encoding` Εὔτυπον, τεῦχος  № 20, 2008.

.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
.. _PyLit: http://pypi.python.org/pypi/pylit
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
.. _Docutils: http://docutils.sourceforge.net/rst.html
.. _TDS: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds

.. _Adobe Glyph List For New Fonts:
.. _Adobe Glyph List:
.. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt
.. _XML Entity Definitions for Characters:
.. _CB fonts: http://www.ctan.org/pkg/cbgreek-complete
.. _CM Unicode: https://www.ctan.org/pkg/cm-unicode
.. _Deja Vu: http://dejavu-fonts.org
.. _EB Garamond: https://ctan.org/pkg/ebgaramond
.. _GFS fonts: http://www.ctan.org/pkg/gfs
.. _Kerkis: http://www.ctan.org/pkg/kerkis
.. _Latin Modern: http://www.gust.org.pl/projects/e-foundry/latin-modern
.. _Libertine OTF: http://www.ctan.org/pkg/libertineotf
.. _Libertine GC: https://www.ctan.org/pkg/libertinegc
.. _Libertinus: https://ctan.org/pkg/libertinus
.. _Old Standard: https://ctan.org/pkg/oldstandard
.. _OpenType Font: https://ctan.org/topic/font-otf
.. _UM Typewriter: https://www.ctan.org/pkg/umtypewriter
.. _amssymb: http://www.ctan.org/pkg/amsfonts
.. _arabi: https://www.ctan.org/pkg/arabi
.. _babel-greek: http://www.ctan.org/pkg/babel-greek
.. _babel: http://www.ctan.org/pkg/babel
.. _dejavu: https://www.ctan.org/pkg/dejavu
.. _fontenc:  http://www.ctan.org/pkg/fontenc
.. _fontspec:  http://www.ctan.org/pkg/fontspec
.. _greek-fontenc.zip: http://mirrors.ctan.org/language/greek/greek-fontenc.zip
.. _grtimes: http://www.ctan.org/pkg/grtimes
.. _hyperref: http://www.ctan.org/pkg/hyperref
.. _ibycus-babel: http://www.ctan.org/pkg/ibycus-babel
.. _ibygrk: http://www.ctan.org/pkg/ibygrk
.. _lgrx: http://www.ctan.org/pkg/lgrx
.. _libertine: http://www.ctan.org/pkg/libertine-legacy
.. _lua-uni-algos: https://ctan.org/pkg/lua-uni-algos
.. _substitutefont: http://www.ctan.org/pkg/substitutefont
.. _tempora: https://www.ctan.org/pkg/tempora
.. _teubner: http://www.ctan.org/pkg/teubner
.. _ucs: http://www.ctan.org/pkg/unicode
.. _unicode-math: http://www.ctan.org/pkg/unicode-math
.. _xgreek: http://www.ctan.org/pkg/xgreek
.. _xunicode: http://www.ctan.org/pkg/xunicode

Download the contents of this package in one zip archive (2.6M).

greek-fontenc – LICR macros and encoding definition files for Greek

The package provides Greek LICR macro definitions and encoding definition files for Greek text font encodings for use with fontenc.

Version2.1 2022-06-14
LicensesThe Project Public License 1.3
Copyright2010–2022 Günter Milde
MaintainerGünter Milde
Contained inTeX Live as greek-fontenc
MiKTeX as greek-fontenc
TopicsFont encoding
See alsolgrx
Guest Book Sitemap Contact Contact Author