diff options
Diffstat (limited to 'language/greek/greek-fontenc/README')
-rw-r--r-- | language/greek/greek-fontenc/README | 566 |
1 files changed, 566 insertions, 0 deletions
diff --git a/language/greek/greek-fontenc/README b/language/greek/greek-fontenc/README new file mode 100644 index 0000000000..871860a2f5 --- /dev/null +++ b/language/greek/greek-fontenc/README @@ -0,0 +1,566 @@ +greek-fontenc +############# +Greek font encoding definition files +************************************ + +:Author: Günter Milde +:Date: 2019-07-10 +:Copyright: © 2013 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 package provides `Greek LICR macros`_ 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_. + +.. 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. + +Changelog +========= + +.. 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. +====== =========== ========================================================== + +__ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin +.. _ltxbugs 4399: + https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex%2F4399&search= + + +TeX files +========= + +`<greek-fontenc.def>`_ + `Common Greek font encoding definitions <greek-fontenc.def.html>`_. + +.. _LGR font encoding definition file: + +`<lgrenc.def>`_ + `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 of ``lgrxenc.def`` from the now + obsolete lgrx_ bundle. + + .. _textalpha: + +`<textalpha.sty>`_ + `Greek symbols in text <textalpha.sty.html>`_ + independent of font encoding and TeX engine. + + .. _alphabeta: + +`<alphabeta.sty>`_ + Generic macros for `Greek symbols in text and math <alphabeta.sty.html>`_. + +`<alphabeta-euenc.def>`_ + `Composite definitions with XeTeX/LuaTeX. <alphabeta-euenc.def.html>`_. + + .. _greek-euenc: + +`<greek-euenc.def>`_ + `Font setup for Greek with XeTeX/LuaTeX <greek-euenc.def.html>`_. + Requires euenc_. + +Literate source files were converted with PyLit_ to reStructuredText_ and +with Docutils_ to the HTML documentation. + + +Documentation and test documents +================================ + +`<textalpha-doc.tex>`__, `<textalpha-doc.pdf>`_ + `The textalpha package`. + +`<alphabeta-doc.tex>`__ `<alphabeta-doc.pdf>`_ + `The alphabeta package`. + +`<lgrenc-test.tex>`_, `<lgrenc-test.pdf>`_ + Test and usage example. + +`<greek-euenc-doc.tex>`_, `<greek-euenc-doc.pdf>`_ + Example for use of the Greek LICR definitions with XeTeX or + LuaTeX. + +`<greekhyperref.tex>`_, `<greekhyperref.pdf>`_ + `Greek script in PDF metadata`. + + The package hyperref_ defines the PU font encoding which also supports + (monotonic) Greek. + +Experimental files +================== + +These files are still in development and will eventually be moved to/merged +with other packages or removed in future versions: + +`<lgr2licr.lua>`_ + `LGR Transcription to Greek LICR transformation <lgr2licr.lua.html>`_ + + + +Installation +============ + +If possible, get this package from your distribution using its installation +manager. + +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). + +Conflicts +========= + +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 + +Usage +===== + +There are many alternatives to set up the support for a Greek font encoding +provided by this package, e.g.: + +textalpha_: + Ensure support for Greek characters in text mode:: + + \usepackage{textalpha} + + eventually with the normalize-symbols_ option to handle `symbol + variants`_ :: + + \usepackage[normalize-symbols]{textalpha} + + and/or the keep-semicolon_ option to use the `semicolon as erotimatiko`_ + also in LGR :: + + \usepackage[normalize-symbols,keep-semicolon]{textalpha} + + 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 `<greek-euenc-doc.tex>`_ and `<greek-euenc-doc.pdf>`_ + (XeTeX/LuaTeX). + + .. _normalize-symbols: textalpha.sty.html#normalize-symbols + .. _keep-semicolon: textalpha.sty.html#keep-semicolon + .. _semicolon as erotimatiko: textalpha.sty.html#semicolon-as-erotimatiko + +alphabeta_: + To use the short macro names (``\alpha`` ... ``\Omega``) known from math + mode in both, text and math mode, write :: + + \usepackage{alphabeta} + + For details see `<alphabeta-doc.tex>`_ and `<alphabeta-doc.pdf>`_. + +Babel: + Use the ``greek`` option with Babel_:: + + \usepackage[greek]{babel} + + This automatically loads ``lgrenc.def`` with 8-bit TeX and + ``greek-euenc.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_. + +fontenc: + Declare LGR via fontenc_. For example, specify T1 (8-bit + Latin) as default font encoding and LGR for Greek with :: + + \usepackage[LGR,T1]{fontenc} + + Note that without textalpha_ or alphabeta_, Greek text macros work + only if the current font encoding supports Greek. See [fntguide]_ for + details and `<lgrenc-test.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 + fontspec_ and textalpha_ or alphabeta_, e.g. :: + + \usepackage[LGR]{fontenc} + \usepackage{fontspec} + \setmainfont{Linux Libertine O} % Latin Modern does not support Greek + \setsansfont{Linux Biolinum O} + \usepackage{textalpha} + + See `<greek-euenc-doc.tex>`_, `<greek-euenc-doc.pdf>`_ and + `<lgrenc-test.tex>`_, `<lgrenc-test.pdf>`_. + +.. _arabi workaround: + +To work around the conflict with arabi_, it may suffice to ensure ``greek`` +is loaded after ``arabic``:: + + \usepackage[arabic,greek,english]{babel} + +More secure is an explicit reverse-definition, e.g. :: + + % save original \omega + \let\mathomega\omega + + \usepackage[utf8]{inputenc} + \usepackage[LAE,LGR,T1]{fontenc} + \usepackage[arabic,greek,english]{babel} + + % fix arabtex: + \DeclareTextSymbol{\textomega}{LGR}{119} + \renewcommand{\omega}{\mathomega} + + +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_, `EU1, EU2`_, and PU (hyperref_). + +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. `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). + +LGI +--- + +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). + +TU +-- + +Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec_ +(since v2.5a). `greek-fontenc` adds support for the Greek script (see +greek-euenc_). + +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. + +EU1, EU2 +-------- + +Legacy Unicode font encodings for XeTeX and LuaTeX respectively. + + +Greek LICR macros +================= + +This package 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``. + + Problem: + 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``. + + Example: + 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``. + + Problem: + 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. + + Example: + ``\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? + + Pro: + + 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``, + ``\textcyr``). + + There are examples of encoding-specific macros + without the ``text``-prefix, especially for letters, see encguide_. + + Contra: + - Less consistent, + - possible name clashes + - ``text`` prefix marks a macro as confined to text (as opposed to math) + mode, + + 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 + characters. + +* 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 +encoding. + +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 +characters: + +* 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 + variants). + + +References +---------- + +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. + +Aliases from ``puenc.def`` ensure that the hyperref_ package can convert +Greek text in "LICR encoding" to a PDF-string (utf-8 encoded input is used +as-is). + + +.. [fntguide] LaTeX3 Project Team, `LaTeX2ε 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://mirrors.ctan.org/language/babel/contrib/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 + +.. [babel-patch] 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 +.. _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: + http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/aglfn.txt +.. _Adobe Glyph List: + http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt +.. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt +.. _XML Entity Definitions for Characters: + http://www.w3.org/TR/xml-entity-names/ +.. _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 +.. _euenc: http://www.ctan.org/pkg/euenc +.. _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 +.. _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 |