From d553751babb6687080e5be4a59c1251b50769fba Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 17 May 2013 23:10:18 +0000 Subject: greek-fontenc, with new lgrenc.def git-svn-id: svn://tug.org/texlive/trunk@30541 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/greek-fontenc/README | 156 +++ .../texmf-dist/doc/latex/greek-fontenc/README.html | 171 +++ .../doc/latex/greek-fontenc/lgrenc-test.html | 378 ++++++ .../doc/latex/greek-fontenc/lgrenc-test.pdf | Bin 0 -> 268422 bytes .../doc/latex/greek-fontenc/lgrenc-test.tex | 386 ++++++ .../doc/latex/greek-fontenc/lgrenc.def.html | 1230 ++++++++++++++++++++ 6 files changed, 2321 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/README create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/README.html create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.html create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.pdf create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.tex create mode 100644 Master/texmf-dist/doc/latex/greek-fontenc/lgrenc.def.html (limited to 'Master/texmf-dist/doc/latex') diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/README b/Master/texmf-dist/doc/latex/greek-fontenc/README new file mode 100644 index 00000000000..95ff5a4954f --- /dev/null +++ b/Master/texmf-dist/doc/latex/greek-fontenc/README @@ -0,0 +1,156 @@ +greek-fontenc +############# +Greek font encoding definition files +************************************ + +:Author: Günter Milde +:Date: 2013-05-16 +:Copyright: © 2013 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 fontenc_ standard package supports TeX font encodings via + `encoding definition files`. The mechanism is explained in + [fntguide_], section 5. This package provides encoding definition + files for `Greek text font encodings`_ for use with fontenc_ and + 8-bit TeX engines. Currently, only LGR_ is supported. + +Files +===== + +``_ + font encoding definitions for LGR + + This file is the successor of the basic LGR encoding definition file which + comes with babel_'s Greek support and ``lgrxenc.def`` from the lgrx_ + bundle. 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 (``\~>\textalpha``) or iteratively + (``\~\>\textalpha``). + +``_ + literate source (HTML format) + +``_ + test example + +``_ + test output + +The literate source was converted with PyLit_ to reStructuredText_ and with +Docutils_ to HTML format. + + +Installation +============ + +If possible, get this package from your distribution using its installation +manager. + +Otherwise, make sure LaTeX can find the file `lgrenc.def`: + +* Download and unpack `greek-fontenc.zip` or just download ``_. + +* Copy/Move/Link ``lgrenc.def`` to a suitable place in the TDS_ and run + ``texhash``, or place it in the current working directory (e.g. for + testing). + +Usage +===== + +Pass the encoding name as option to fontenc_. For example, specify T1 +(Latin) as default font encoding and LGR for Greek with :: + + \usepackage[LGR,T1]{fontenc} + +See [fntguide]_ for details and ``_ for an example. + + +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 EU1 (XeTeX), EU2 (LuaTeX) 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. 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 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 LICR macros or composite definitions). + + +References +========== + +.. [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://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 + +.. [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://pylit.berlios.de +.. _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 + +.. _CB Fonts: http://www.ctan.org/pkg/cbgreek-complete +.. _GFS font collection: http://www.ctan.org/pkg/gfs +.. _Kerkis: http://www.ctan.org/pkg/kerkis +.. _babel: http://www.ctan.org/pkg/babel +.. _fontenc: http://www.ctan.org/pkg/fontenc +.. _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 +.. _substitutefont: http://www.ctan.org/pkg/substitutefont diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/README.html b/Master/texmf-dist/doc/latex/greek-fontenc/README.html new file mode 100644 index 00000000000..78dcb3cef04 --- /dev/null +++ b/Master/texmf-dist/doc/latex/greek-fontenc/README.html @@ -0,0 +1,171 @@ + + + + + + +greek-fontenc + + + + + + + +
+

greek-fontenc

+

Greek font encoding definition files

+ +
+
Author
+
Günter Milde
+
Date
+
2013-05-16
+ + +
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 fontenc standard package supports TeX font encodings via +encoding definition files. The mechanism is explained in +[fntguide], section 5. This package provides encoding definition +files for Greek text font encodings for use with fontenc and +8-bit TeX engines. Currently, only LGR is supported.

+
+
+

Files

+
+
lgrenc.def
+

font encoding definitions for LGR

+

This file is the successor of the basic LGR encoding definition file which +comes with babel’s Greek support and lgrxenc.def from the lgrx +bundle. 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 (\~>\textalpha) or iteratively +(\~\>\textalpha).

+
+
lgrenc.def.html
+

literate source (HTML format)

+
+
lgrenc-test.tex
+

test example

+
+
lgrenc-test.pdf
+

test output

+
+
+

The literate source was converted with PyLit to reStructuredText and with +Docutils to HTML format.

+
+
+

Installation

+

If possible, get this package from your distribution using its installation +manager.

+

Otherwise, make sure LaTeX can find the file lgrenc.def:

+
    +
  • Download and unpack greek-fontenc.zip or just download lgrenc.def.

  • +
  • Copy/Move/Link lgrenc.def to a suitable place in the TDS and run +texhash, or place it in the current working directory (e.g. for +testing).

  • +
+
+
+

Usage

+

Pass the encoding name as option to fontenc. For example, specify T1 +(Latin) as default font encoding and LGR for Greek with

+
\usepackage[LGR,T1]{fontenc}
+
+

See [fntguide] for details and lgrenc-test.tex for an example.

+
+
+

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 EU1 (XeTeX), EU2 (LuaTeX) 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. 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 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 LICR macros or composite definitions).

+
+
+
+

References

+
[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://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

+
+
+
[babel-patch]
+
+

Werner Lemberg, Unicode support for the Greek LGR +encoding Εὔτυπον, τεῦχος № 20, 2008. +http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf

+
+
+
+
+ + diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.html b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.html new file mode 100644 index 00000000000..7e2b8fe2e56 --- /dev/null +++ b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.html @@ -0,0 +1,378 @@ + + + + + + + + + + + +
+ + +

documentclass{article} +usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader

+

% Test with various LGR-encoded fonts: +usepackage% +{lmodern} % uses CB Fonts for Greek +% {gfsartemisia} +% {gfsbaskerville} +% [default]{gfsbodoni} +% [default]{gfscomplutum} +% {gfsdidot} +% [default]{gfsneohellenic} +% {lmodern} usepackage{gfsporson} renewcommand*rmdefault{porson} +% [default]{gfssolomos} +% {kerkis} % lacks some chars (Stigma, Sampi, double quotes) +% {teubner} +% renewcommand{ttdefault}{txtt}

+

usepackage{parskip} +usepackage{textcomp} +usepackage[LGR,T1]{fontenc} +% usepackage[utf8]{inputenc}

+

newcommand{LGR}{fontencoding{LGR}selectfont} +newcommand{Latin}{fontencoding{T1}selectfont}

+

% pagestyle{empty} +% ————————————————————————-

+

begin{document}

+

title{Test LGR font encoding definitions} +date{} +maketitle

+

The file lgrenc.def provides a comprehensive set of macros to typeset Greek +with LGR encoded fonts. It works for both, monotonic and polytonic Greek, +independent of the emph{Babel} package.

+

section{Symbols}

+

See the source file lgrenc-test.tex for the macros used to access the +symbols.

+

subsection{Generic text symbols}

+

Latin: ++ - = < > – — textbraceleft{} [ () ] textbraceright{} +% +textbackslash{} +textbar{} +textperthousand{} +textpertenthousand{} +textvisiblespace{}

+

LGR: +LGR ++ - = textless{} textgreater{} – — +textbraceleft{} [ () ] textbraceright{} +% +textbackslash{} textbar{} +textperthousand{} +% textpertenthousand{} +textvisiblespace{} +Latin (Per-mille symbol is missign in LGR.)

+

Quotes: +% +Latin guillemotleft{}aguillemotright{} +LGR guillemotleft{}aguillemotright{}, +% +Latin textquoteleft{}atextquoteright{} +LGR textquoteleft{}atextquoteright{}, +% +Latin textquotedblleft{}atextquotedblright{} +LGR textquotedblleft{}atextquotedblright{} +Latin (double quotes wrong with Kerkis fonts),

+
+
Latin guilsinglleft{}aguilsinglright{}
+

quotedblbase{}atextquotedblright{}

+
+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 81)

+

Definition list ends without a blank line; unexpected unindent.

+
+

Single guillemots and base-quotes are missing in LGR.

+

Ligature break up: AY fi LGR AU “i $mapsto$ +Latin Atextcompwordmark{}Y ftextcompwordmark i +LGR Atextcompwordmark{}U “textcompwordmark i

+

Latin Spacing accent chars: +% +Latin textasciicircum a +LGR textasciicircum a textasciicircum i % using textsym glyph +% +Latin textasciitilde a +LGR textasciitilde a textasciitilde i +% +Latin textasciibreve a +LGR textasciibreve a textasciibreve i +% +Latin textasciimacron a +LGR textasciimacron a textasciimacron i +% +Latin textasciidieresis a +LGR textasciidieresis a textasciidieresis i +% +Latin textasciiacute a +LGR textasciiacute a textasciiacute i +% +Latin textasciigrave a +LGR textasciigrave a textasciigrave i

+

Latin Symbols for SI-units: +Latin 5,textmu{}m, 5,ktextohm{}; +LGR 5,textmu{}{Latin m}, 5,{Latin k}textohm{}

+

Latin Letter schwa and Euro symbol: % textschwa (needs e.g. T3) +LGR textschwa{}, texteuro{}

+

Latin Some symbol definitions expect a Latin font. +Babel’s lgrenc.def defines them with verb|latintext|, however +this macro is not guaranteed to be defined, so it should not be used +in a font encoding definition file. Instead, the textcomp.sty package +should be used to provide the symbols for all font encodings (using the +sharp s (ss) in Greek is bound to fail anyway).

+

Latin: +textcopyright{} +textregistered{} +texttrademark{} +SS{} (uppercase of ss).

+

LGR (with textcomp) +LGR +textcopyright{} +textregistered{} +texttrademark{} +SS{} (Latin uppercase of LGR ss). +Latin

+

subsection{Greek alphabet}

+

Greek letters via Latin transscription in LGR font encoding:

+

LGR +MakeUppercase{a b g d e z h j i k l m n x o p r s t u f q y w}

+

a b g d e z h j i k l m n x o p r s c t u f q y w

+

Latin

+

subsection{Additional Greek symbols}

+

LGR koppa{} Latin koppa, % ϟ +LGR qoppa{} Latin archaic koppa, % ϙ +LGR Qoppa{} Latin archaic Koppa, % Ϙ +LGR stigma{} Latin stigma, % ϛ +LGR varstigma{} Latin stigma variant, +LGR Stigma{} Latin Stigma (Sigma-Tau-Ligature in CB-fonts), +LGR sampi{} Latin sampi, % ϡ +LGR Sampi{} Latin Sampi, % Ϡ +LGR ddigamma{} Latin digamma, % ϝ (digamma used by amsmath!) +LGR Digamma{} Latin Digamma, % Ϝ +% numeral signs: http://en.wikipedia.org/wiki/Greek_numerals +LGR anwtonos{} Latin Dexia keraia, % ʹ +LGR katwtonos{} Latin Aristeri keraia, % ͵

+

Latin Variant symbols for pi ($varpi$), kappa (emph{no TeX symbol +available}), rho ($varrho$), and theta ($vartheta$) are missing in +LGR.

+

section{Diacritics}

+

Capital Greek letters have Greek diacritics (except the dialytika) to the +left (instead of above) and drop them in UPPERCASE. This is +implemented for all combinations for which a precomposed Unicode +character exists (but not, e.g., LGR ~ALatin).

+

% When a word is written entirely in capital letters, diacritics are +% never used; the word Ἢ (or), is an exception to this rule because of +% the need to distinguish it from the nominative feminine article Η.

+

LaTeX standard accents (Latin, Greek, Greek Capitals) +$mapsto$ UPPERCASE

+

`{a} ‘{a} ~{a} “{a} ^{a} ={a} H{a} .{a} r{a} u{a} v{a} +b{a} c{a} d{a} k{a} +$mapsto$ MakeUppercase{% +`{a} ‘{a} ~{a} “{a} ^{a} ={a} H{a} .{a} r{a} u{a} v{a} +b{a} c{a} d{a} k{a} +}

+

LGR +`{a} ‘{a} ~{a} “{a} ^{a} ={a} H{a} .{a} r{a} u{a} v{a} +b{a} c{a} d{a} +$mapsto$ MakeUppercase{% +`{a} ‘{a} ~{a} “{a} ^{a} ={a} H{a} .{a} r{a} u{a} v{a} +b{a} c{a} d{a} +}

+

`{A} ‘{A} ~{A} “{A} ^{A} ={A} H{A} .{A} r{A} u{A} v{A} +b{A} c{A} d{A} +$mapsto$ MakeUppercase{% +`{A} ‘{A} ~{A} “{A} ^{A} ={A} H{A} .{A} r{A} u{A} v{A} +b{A} c{A} d{A} +}

+

Latin +The komma-below (verb|k|) is not defined in LGR.

+

Additional Greek diacritics

+

LGR +<{a} >{e} <`{i} ‘“i `”i ~”i `>{h} ‘<{o} ‘>{o} ~<{u} ~>{w} +$mapsto$ MakeUppercase{% +<{a} >{e} <`{i} ‘“i `”i ~”i `>{h} ‘<{o} ‘>{o} ~<{u} ~>{w} +}

+

% The dialytika is not used on Initial letters (“‘I “`I ~”I) +<{A} >{E} <`{I} ‘“I “`I ~”I `>{H} ‘<{O} ‘>{O} ~<{U} ~>{W} +$mapsto$ MakeUppercase{% +<{A} >{E} <`{I} ‘“I “`I ~”I `>{H} ‘<{O} ‘>{O} ~<{U} ~>{W} +}

+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 220); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 220); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 220); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+

Latin Input variants and their conversion with MakeUppercase:%

+

begin{quote} LGR +~>a >~a ~>{a}, ~<a <~a <~a ~<a ~<a, +>~{h} ~>h >~h >~h ~>h ~>h|, ~<h <~h, +>~i ~>i, ~<i <~i, ~”i “~i “~i,\ +>~u ~>u, ~<u <~u, ~”u “~u, +>w, <w, >~w ~>w, ~<w <~w.

+

MakeUppercase{ +~>a >~a ~>{a}, ~<a <~a <~a ~<a ~<a, +>~{h} ~>h >~h >~h ~>h ~>h|, ~<h <~h, +>~i ~>i, ~<i <~i, ~”i “~i “~i,\ +>~u ~>u, ~<u <~u, ~”u “~u, +>w, <w, >~w ~>w, ~<w <~w. +}

+

<’A <’A ‘<A ‘<A $mapsto$ MakeUppercase{<’A <’A ‘<A ‘<A}. +end{quote}

+

Latin The tilde character can be used in combined accents. +However, in documents not defining the Babel language emph{greek} or +emph{polutonikogreek}, it will produce a +no-break space if converted with verb|MakeUppercase|:

+

LGR “~i <~i “~u <~u `>u $mapsto$ +LGR MakeUppercase{“~i <~i “~u <~u `>u} +\ +Latin Use the tilde-accent macro: +LGR MakeUppercase{“~i ~”u}.

+

Latin Combinations with named accents: +LGR accdasia’a accdasia`a accdasia~a.

+

Latin The dialytika must be kept in UPPERCASE, e.,g.

+

% from http://diacritics.typo.cz/index.php?id=70 μαΐστρος -> ΜΑΪΣΤΡΟΣ. +LGR ma“‘istros $mapsto$ MakeUppercase{ma“‘istros} +Latin or % from teubner εὐζωΐα -> ΕΥΖΩΪΑ. +LGR e>uzw‘“ia $mapsto$ MakeUppercase{e>uzw‘“ia}.

+

Latin This is implemented for all input variants of diacritics with +dialytika:

+

LGR “i “‘i “`i “~i “u “‘u “`u “~u $mapsto$ +MakeUppercase{“i “‘i “`i “~i “u “‘u “`u “~u},

+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 270); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 270); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 270); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 270); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+

Latin Tonos and dasia mark a emph{hiatus} (break-up of a diphtong) if +placed on the first vowel of a diphtong ({LGR ‘ai, ‘au, ‘ei}). A +dialytika must be placed on the second vowel if they are dropped: LGR +(MakeUppercase{‘ai, ‘au, ‘ei}).

+

% from teubner: άυλος/ΑΫΛΟΣ +‘aulos $mapsto$ MakeUppercase{‘aulos}, +>’aulos $mapsto$ MakeUppercase{>’aulos}, +% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ +m’aina $mapsto$ MakeUppercase{m’aina}, +% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema +% κέικ, ἀυπνία/αϋπνία +k’eik, $mapsto$ MakeUppercase{k’eik} +>aupn’ia $mapsto$ MakeUppercase{>aupn’ia}

+

Latin Test: The auto-hiatus feature must keep proper working of tonos +and psili:

+

LGR MakeUppercase{‘a b}: Latin keep space after A.

+

LGR +newcommandmd{textcompwordmark} +newcommandMU{MakeUppercase}

+
+

md MU{ AO AY AI AU RA OA UA DU} [ \

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299)

+

Block quote ends without a blank line; unexpected unindent.

+
+

<md MU{ <AO <AY <AI <AU <RA <OA U<A D<U} [ \ +>md MU{ >AO >AY >AI >AU >RA >OA U>A D>U} [ \ +>’mdMU{ >’AO >’AY >’AI >’AU >’RA >’OA U>’A D>’U} [ \ +‘md MU{ ‘AO ‘AY ‘AI ‘AU ‘RA ‘OA U’A D’U} [ \ +>`mdMU{ >`AO >`AY >`AI >`AU >`RA >`OA U>`A D>`U} [ \ +<’mdMU{ <’AO <’AY <’AI <’AU <’RA <’OA U<’A D<’U} [ \ +`md MU{ `AO `AY `AI `AU `RA `OA U`A D`U} [ \ +<`mdMU{ <`AO <`AY <`AI <`AU <`RA <`OA U<`A D<`U} [ \ +~md MU{ ~AO ~AY ~AI ~AU ~RA ~OA U~A D~U} [ \ +~>mdMU{ ~>AO ~>AY ~>AI ~>AU ~>RA ~>OA U~>A D~>U} [ \ +~<mdMU{ ~<AO ~<AY ~<AI ~<AU ~<RA ~<OA U~<A D~<U} [ \ +~<mdMU{ ~<ao ~<ay ~<ai ~<au ~<ra ~<oa u~<a d~<u} [ \ +“md MU{ AO AY A”I A”U RA OA “UA DU} [ \ +“md MU{ “AO “AY “AI “AU “RA “OA U”A D”U} [ \ +“~mdMU{ ~”AO ~”AY ~”AI ~”AU ~”RA ~”OA U~”A D~”U} [ \

+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 299); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+

Latin +rows 3ldots 7: Lookahead (to check for a hiatus) breaks kerning before A +with tonos or psili.

+

% ‘AA ‘AB ‘AG ‘AD ‘AE ‘AZ ‘AH ‘AJ ‘AI ‘AK ‘AL ‘AM ‘AN ‘AX +% ‘AO ‘AP ‘AR ‘AS ‘AC ‘AT ‘AU ‘AF ‘AQ ‘AY ‘AW

+

rows 15 and 16: Like in any font encoding, there is no kerning for +non-defined accent-letter-combinations (dialytica on LGR A O DLatin).% +footnote{with the Kerkis fonts, kerning is kept}

+

The uppercase of the zero-width space at the place of v is the +Dasia-Oxia accent~LGR MakeUppercase{v}Latin , the glyph at the +position of V. It is suppressed for uppercased accents:

+

LGR +<v, >v, >’v, ‘v, >`v, <’v, `v, <`v, ~v, ~>v, ~<v, “v, ~”v +$mapsto$ MakeUppercase{ +<v, >v, >’v, ‘v, >`v, <’v, `v, <`v, ~v, ~>v, ~<v, “v, ~”v +}

+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 331); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 331); backlink

+

Inline interpreted text or phrase reference start-string without end-string.

+
+

Latin

+

Downcasing should keep diacritics (of course, it cannot regenerate +``manually” dropped ones): +LGR ‘A “I “U ~”A $mapsto$ MakeLowercase{‘A “I “U ~”A}

+
+

System Message: WARNING/2 (/home/milde/texmf/tex/latex/greek/encodings/greek-fontenc/lgrenc-test.tex, line 339); backlink

+

Inline literal start-string without end-string.

+
+

end{document}

+
+ + diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.pdf b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.pdf new file mode 100644 index 00000000000..34affac9d71 Binary files /dev/null and b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.pdf differ diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.tex b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.tex new file mode 100644 index 00000000000..219738dec0d --- /dev/null +++ b/Master/texmf-dist/doc/latex/greek-fontenc/lgrenc-test.tex @@ -0,0 +1,386 @@ +\documentclass{article} +\usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader + +% Test with various LGR-encoded fonts: +\usepackage% +{lmodern} % uses CB Fonts for Greek +% {gfsartemisia} +% {gfsbaskerville} +% [default]{gfsbodoni} +% [default]{gfscomplutum} +% {gfsdidot} +% [default]{gfsneohellenic} +% {lmodern} \usepackage{gfsporson} \renewcommand*\rmdefault{porson} +% [default]{gfssolomos} +% {kerkis} % lacks some chars (\Stigma, \Sampi, double quotes) +% {teubner} +% \renewcommand{\ttdefault}{txtt} + +\usepackage{parskip} +\usepackage{textcomp} +\usepackage[LGR,T1]{fontenc} +% \usepackage[utf8]{inputenc} + +\newcommand{\LGR}{\fontencoding{LGR}\selectfont} +\newcommand{\Latin}{\fontencoding{T1}\selectfont} + +% \pagestyle{empty} +% ------------------------------------------------------------------------- + +\begin{document} + +\title{Test LGR font encoding definitions} +\date{} +\maketitle + +The file lgrenc.def provides a comprehensive set of macros to typeset Greek +with LGR encoded fonts. It works for both, monotonic and polytonic Greek, +independent of the \emph{Babel} package. + +\section{Symbols} + +See the source file lgrenc-test.tex for the macros used to access the +symbols. + +\subsection{Generic text symbols} + +Latin: ++ - = < > -- --- \textbraceleft{} [ () ] \textbraceright{} +% +\textbackslash{} +\textbar{} +\textperthousand{} +\textpertenthousand{} +\textvisiblespace{} + +LGR: +\LGR ++ - = \textless{} \textgreater{} -- --- +\textbraceleft{} [ () ] \textbraceright{} +% +\textbackslash{} \textbar{} +\textperthousand{} +% \textpertenthousand{} +\textvisiblespace{} +\Latin (Per-mille symbol is missing in LGR.) + +Quotes: +% +\Latin \guillemotleft{}a\guillemotright{} +\LGR \guillemotleft{}a\guillemotright{}, +% +\Latin \textquoteleft{}a\textquoteright{} +\LGR \textquoteleft{}a\textquoteright{}, +% +\Latin \textquotedblleft{}a\textquotedblright{} +\LGR \textquotedblleft{}a\textquotedblright{} +\Latin (double quotes wrong with Kerkis fonts), + +\Latin \guilsinglleft{}a\guilsinglright{} + \quotedblbase{}a\textquotedblright{} +Single guillemots and base-quotes are missing in LGR. + + +Ligature break up: AY fi \LGR AU "i $\mapsto$ +\Latin A\textcompwordmark{}Y f\textcompwordmark i +\LGR A\textcompwordmark{}U "\textcompwordmark i + + +\Latin Spacing accent chars: +% +\Latin \textasciicircum a +\LGR \textasciicircum a \textasciicircum i % using textsym glyph +% +\Latin \textasciitilde a +\LGR \textasciitilde a \textasciitilde i +% +\Latin \textasciibreve a +\LGR \textasciibreve a \textasciibreve i +% +\Latin \textasciimacron a +\LGR \textasciimacron a \textasciimacron i +% +\Latin \textasciidieresis a +\LGR \textasciidieresis a \textasciidieresis i +% +\Latin \textasciiacute a +\LGR \textasciiacute a \textasciiacute i +% +\Latin \textasciigrave a +\LGR \textasciigrave a \textasciigrave i + +\Latin Symbols for SI-units: +\Latin 5\,\textmu{}m, 5\,k\textohm{}; +\LGR 5\,\textmu{}{\Latin m}, 5\,{\Latin k}\textohm{} + +\Latin Letter schwa and Euro symbol: % \textschwa (needs e.g. T3) +\LGR \textschwa{}, \texteuro{} +\Latin + +Some symbol definitions expect a Latin font. Babel's lgrenc.def defines them +with \verb|\latintext|, however this macro is not guaranteed to be defined, +so it should not be used in a font encoding definition file. Instead, the +textcomp.sty package should be used to provide the symbols for all font +encodings. (Like any other Latin character, the ``sharp s'' (\ss) is not +save to use when LGR is the active font encoding.) + +Latin: +\textcopyright{} +\textregistered{} +\texttrademark{} +\SS{} (uppercase of \ss). + +LGR (with textcomp): +\LGR +\textcopyright{} +\textregistered{} +\texttrademark{} +\SS{} (\Latin uppercase of \LGR \ss). +\Latin + +\subsection{Greek alphabet} + +Greek letters via Latin transcription and LICR macros: + +\LGR +\MakeUppercase{a b g d e z h j i k l m n x o p r s t u f q y w} + +a b g d e z h j i k l m n x o p r s c t u f q y w + +\textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{} +\textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{} +\textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \textPi{} +\textRho{} \textSigma{} \textTau{} \textUpsilon{} \textPhi{} +\textChi{} \textPsi{} \textOmega{} + +\textalpha{} \textbeta{} \textgamma{} \textdelta{} \textepsilon{} +\textzeta{} \texteta{} \texttheta{} \textiota{} \textkappa{} +\textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \textpi{} +\textrho{} \textsigma{} \textvarsigma{} \texttau{} \textupsilon{} +\textphi{} \textchi{} \textpsi{} \textomega{} + + +\Latin + +\subsection{Additional Greek symbols} + +\LGR \koppa{} \Latin koppa \\ % ϟ +\LGR \qoppa{} \Latin qoppa (archaic koppa) \\ % ϙ +\LGR \Qoppa{} \Latin Qoppa (archaic Koppa) \\ % Ϙ +\LGR \stigma{} \Latin stigma \\ % ϛ +\LGR \varstigma{} \Latin varstigma \\ % no separate Unicode character +\LGR \Stigma{} \Latin Stigma (Sigma-Tau-Ligature in CB-fonts)% +\footnote{the name ``stigma'' originally applied to a medieval sigma-tau + ligature, whose shape was confusably similar to the cursive + digamma} \\ % Ϛ +\LGR \sampi{} \Latin sampi \\ % ϡ +\LGR \Sampi{} \Latin Sampi \\ % Ϡ +\LGR \textdigamma{} \Latin textdigamma \\ % ϝ (\digamma used by amsmath!) +\LGR \textDigamma{} \Latin textDigamma \\ % Ϝ +% numeral signs: http://en.wikipedia.org/wiki/Greek_numerals +\LGR \anwtonos{} \Latin Dexia keraia \LGR (anwtonos) \\ % ʹ +\LGR \katwtonos{} \Latin Aristeri keraia, \LGR (katwtonos) \\ % ͵ + +\Latin Variant shapes for pi ($\varpi$), kappa (\emph{no TeX symbol +available}), rho ($\varrho$), and theta ($\vartheta$) have no syntactic +meaning in Greek text and are not included in the LGR encoding. Some +Greek test fonts use variant shapes in place of the ``regular'' ones. + + +\section{Diacritics} + +Capital Greek letters have Greek diacritics (except the dialytika) to the +left (instead of above) and drop them in UPPERCASE. This is +implemented for all combinations for which a pre-composed Unicode +character exists (but not, e.g., \LGR \~A\Latin). + +% When a word is written entirely in capital letters, diacritics are +% never used; the word Ἢ (or), is an exception to this rule because of +% the need to distinguish it from the nominative feminine article Η. + +LaTeX standard accents (Latin, Greek, Greek Capitals) +$\mapsto$ UPPERCASE + +\`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a} +\b{a} \c{a} \d{a} \k{a} +$\mapsto$ \MakeUppercase{% +\`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a} +\b{a} \c{a} \d{a} \k{a} +} + +\LGR +\`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a} +\b{a} \c{a} \d{a} +$\mapsto$ \MakeUppercase{% +\`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a} +\b{a} \c{a} \d{a} +} + +\`{A} \'{A} \~{A} \"{A} \^{A} \={A} \H{A} \.{A} \r{A} \u{A} \v{A} +\b{A} \c{A} \d{A} +$\mapsto$ \MakeUppercase{% +\`{A} \'{A} \~{A} \"{A} \^{A} \={A} \H{A} \.{A} \r{A} \u{A} \v{A} +\b{A} \c{A} \d{A} +} + +\Latin +The comma-below (\verb|\k|) is not defined in LGR. + +Additional Greek diacritics + +\LGR +\<{a} \>{e} \<\`{i} \'"i \`"i \~"i \`\>{h} \'<{o} \'>{o} \~\<{u} \~\>{w} +$\mapsto$ \MakeUppercase{% +\<{a} \>{e} \<\`{i} \'"i \`"i \~"i \`\>{h} \'<{o} \'>{o} \~\<{u} \~\>{w} +} + +% The dialytika is not used on Initial letters ("'I \"`I \~"I) +\<{A} \>{E} \<\`{I} \'"I \"`I \~"I \`\>{H} \'<{O} \'>{O} \~\<{U} \~\>{W} +$\mapsto$ \MakeUppercase{% +\<{A} \>{E} \<\`{I} \'"I \"`I \~"I \`\>{H} \'<{O} \'>{O} \~\<{U} \~\>{W} +} + +\Latin Input variants and their conversion with MakeUppercase:% + +\begin{quote} +\LGR + +\~>a \>\~a \~\>{a}, \~\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~\~i \~>i, \~\~u \~>u, \~w, \\~w \~>w, \~a \>\~a \~\>{a}, \~\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~\~i \~>i, \~\~u \~>u, \~w, \\~w \~>w, \~{\textepsilon} \"'{\textiota} \`>\texteta{} +\'<{\textomicron} \~<{\textupsilon} \~>{\textomega} +\<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} +\'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega} +\\ +\MakeUppercase{% + \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{} + \'<{\textomicron} \~<{\textupsilon} \~>{\textomega}. + \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} + \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega} +} + + \<'A \<\'A \'u $\mapsto$ +\LGR \MakeUppercase{\"~i \<~i \"~u \<~u \`>u} +\\ +\Latin Use the tilde-accent macro: +\LGR \MakeUppercase{\"\~i \~"u}. + +\Latin Accent macros can start with \verb|\a| instead of \verb|\| when the +short form is redefined, e.\,g. inside a \emph{tabbing} environment. +This also works for the new-defined Dasia and Psili shortcuts: +\LGR \a<\textalpha{} \a>\textomega. + +\Latin Combinations with named accents: +\LGR \accdasia'a \accdasia`a \accdasia\~a. + +\Latin The dialytika must be kept in UPPERCASE, e.\,g. +% from http://diacritics.typo.cz/index.php?id=70 μαΐστρος -> ΜΑΪΣΤΡΟΣ. +\LGR ma\"'istros $\mapsto$ \MakeUppercase{ma\"'istros} +\Latin or % from teubner εὐζωΐα -> ΕΥΖΩΪΑ. +\LGR e\>uzw\'"ia $\mapsto$ \MakeUppercase{e\>uzw\'"ia}. + +\Latin This is implemented for all input variants of diacritics with +dialytika: + +\LGR \"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u $\mapsto$ +\MakeUppercase{\"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u}, + +\Latin but fails with \verb+\"`+ or \verb+\"'+ if the current language is +\texttt{greek} or \texttt{polutonikogreek} (which maps \texttt{'} and +\texttt{`} to an empty character preventing the correct placing of the +dialytika via TextComposite definitions. + +Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if +placed on the first vowel of a diphthong ({\LGR \'ai, \'au, \'ei}). A +dialytika must be placed on the second vowel if they are dropped: \LGR +(\MakeUppercase{\'ai, \'au, \'ei}). + +% from teubner: άυλος/ΑΫΛΟΣ +\'aulos $\mapsto$ \MakeUppercase{\'aulos}, +\>'aulos $\mapsto$ \MakeUppercase{\>'aulos}, +% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ +m\'aina $\mapsto$ \MakeUppercase{m\'aina}, +% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema +% κέικ, ἀυπνία/αϋπνία +k\'eik, $\mapsto$ \MakeUppercase{k\'eik} +\>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia} + +This fails with \verb+\>'+ if the current language is \texttt{greek} or +\texttt{polutonikogreek} (which maps \texttt{'} to an empty character +preventing the correct placing of the dialytika. + +\Latin Test the auto-hiatus feature for side-effects: + +\LGR \MakeUppercase{\'a b}: \Latin keep space after A. + +\LGR +\newcommand\md{\textcompwordmark} +\newcommand\MU{\MakeUppercase} + + \md \MU{ AO AY AI AU RA OA UA DU} [ \\ +\<\md \MU{ \\md \MU{ \>AO \>AY \>AI \>AU \>RA \>OA U\>A D\>U} [ \\ +\>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\ +\'\md \MU{ \'AO \'AY \'AI \'AU \'RA \'OA U\'A D\'U} [ \\ +\>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\ +\<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\ +\`\md \MU{ \`AO \`AY \`AI \`AU \`RA \`OA U\`A D\`U} [ \\ +\<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\ +\~\md \MU{ \~AO \~AY \~AI \~AU \~RA \~OA U\~A D\~U} [ \\ +\~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\ +\~<\md\MU{ \~v, \>'v, \'v, \>`v, \<'v, \`v, \<`v, \~v, \~>v, \~v, \>'v, \'v, \>`v, \<'v, \`v, \<`v, \~v, \~>v, \~ + + + + + +lgrenc.def + + + + + +
+

lgrenc.def

+

LGR Greek font encoding definitions

+ +
+ + +
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 LaTeX. This file provides a comprehensive set +of macros to typeset Greek with LGR encoded fonts. It works for +both, monotonic and polytonic Greek, independent of the babel +package.

+
+ +
+

Changelog

+

Development of this file started under the name “lgrxenc.def” as part of the +lgrx bundle. With version 0.8, it moved to greek-fontenc/lgrx.def.

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

0.1

2010-03-31

initial attempt

0.2

2010-04-20

diacritics dropped in UPPERCASE

0.3

2010-06-08

handle Titlecase and UPPERCASE extending +\@uclclist

0.4

2010-06-15

more text symbols

0.5

2010-08-27

support \textalpha\textOmega

0.5.1

2012-05-08

upload to CTAN

0.6

2012-06-29

\TextGreek wrapper command, +aliases for puenc.def compatibility

0.6.1

2013-02-12

\@uclclist entries for PU aliases

0.7

2013-05-13

documentation update, new accent macros names, +\TextGreek renamed to \ensuregreek.

0.8

2013-05-13

rename to lgrenc.def (superseding the babel version), +move to greek-fontenc, +drop back-compatibility definitions

+
+
+

Usage

+

Load this file by calling fontenc with the LGR option +or indirectly via the babel, textalpha or alphabeta packages.

+
+
Example:
+

Select font encodings T1 (as default) and LGR (for Greek):

+
+

\usepackage[LGR,T1]{fontenc}

+
+
+
+
+
+

preliminary considerations: LICR macro names

+

This file provides LaTeX internal character representations (LICR macros) +for all non-ASCII characters present in the LGR font encoding. For Greek +letters and diacritics, LICR macro names were selected based on the +following considerations:

+

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.

+
+

Proposals

+
    +
  • If there exists a math-mode macro for a symbol, form the corresponding text +macro 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 could be +made available as \textvarsigma.

    +
    +
    Problems:
    +

    \varepsilon and \varphi math macros map to characters named +“GREEK SMALL LETTER …”, while \\vartheta, \\varkappa, +\\varrho, and \\varpi math macros map to “GREEK … SYMBOL” +Unicode characters.

    +

    In Greek text, these variants are interchangeable. The LGR font encoding +does not contain slots for “symbol” glyph variants. In some Greek fonts, +GREEK SMALL LETTERS use glyph variants resembling the corresponding +GREEK SYMBOL Unicode character’s reference glyph.

    +
    +
    +
  • +
  • Derive macro names from Unicode names?

    +

    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 a LICR macros, they can be either

    +
      +
    1. used as inspiration for new LICR macro names or

    2. +
    3. converted to LICR macro names via a defined set of transformation rules.

    4. +
    +
    +
    Example:
    +

    \textfinalsigma or just \finalsigma as a more descriptive name +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”,

    • +
    • there are examples of encoding-specific macros +without the text-prefix, especially for letters,

      +
      +
      T1
      +

      \AE \DH \DJ \L \NG \OE \O \SS \TH \ae \dh \dj \guillemotleft +\guillemotright \guilsinglleft \guilsinglright \i \j \l \ng +\oe \o \quotedblbase \quotesinglbase \ss \th (also in OT1)

      +
      +
      T2*
      +

      \CYR* and \cyr*

      +
      +
      HE8
      +

      \heb* or no prefix

      +
      +
      PU
      +

      short descriptive names in the arabic part (puarenc.def)

      +
      +
      +
    • +
    • 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).

    • +
    +
    +
    Contra:
    +
      +
    • Less consistent.

    • +
    • text prefix marks a macro as confined to text mode.

    • +
    +
    +
    +
  • +
+
+
+

How to name accent macros?

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

  • +
  • tipa.sty and ucs use the “text” prefix also for accents.

    +

    However, the Adobe Glyph List For New Fonts maps, e.g., “tonos” and +“dieresistonos” to 0384 GREEK TONOS and 0385 GREEK DIALYTIKA TONOS, hence +texttonos and textdiaresistonos should denote these spacing +characters.

    +
  • +
  • textcomp (ts1enc.def) defines \capital... accents (i.e. without +text prefix).

  • +
  • Use a common prefix \accent... or postfix \...accent, +or short \acc...?

  • +
+

Currently, lgrx uses for diacritics:

+
    +
  • Greek names like in Unicode, and ucsencs.def

  • +
  • 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.

  • +
+
+
+

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 symbols to a PDF-string.

+
+
+
+

Implementation

+
+

Read this file only once

+
+

Note

+

The use of \@ifundefined has the side-effect that the tested +macro becomes defined and set to \relax (polluting the namespace and +interfering with test via eTeX’s \ifdefined). However, in this case +no harm is done as the macro is defined by the identification below +anyway.

+
+
\@ifundefined{ver@lgrenc.def}
+  {}
+  {\message{LGR font encoding definitions already loaded}
+   \expandafter\endinput % "return"
+  }
+
+
+
+

Identification

+
\ProvidesFile{lgrenc.def}
+[2013/05/13 v0.8 LGR Greek font encoding definitions]
+
+

You can test the version date using

+
\@ifl@ter {extension}{filename}{date}{YES}{NO}
+
+

or using ltxcmds\@iffilelater

+
+
+

Base setup

+

Declare the font encoding and base substitutions:

+
\DeclareFontEncoding{LGR}{}{}
+\DeclareFontSubstitution{LGR}{cmr}{m}{n}
+\DeclareErrorFont{LGR}{cmr}{m}{n}{10}
+
+

The \ensuregreek command can be used to ensure that its argument is set +in a font encoding with support for Greek. If the font encoding is already +LGR, kerning between adjacent command calls (e.g. +\ensuregreek{A}\ensuregreek{\Upsilon}) is preserved. This allows +wrapping of compound Unicode character definitions.

+
\DeclareTextCommand{\ensuregreek}{LGR}[1]{#1}
+
+
+
+

Text symbols

+
+

Greek Alphabet

+

Greek letters are accessible by the Latin transcription, but the mapping is +specific to the LGR font encoding.

+

The LICR macros provide a way to access the symbols independent of the +specific font encoding, in any font encoding supporting Greek. An +alternative Greek font encodings is. LGI (ibycus). Greek script is also +supported by the Unicode-based font encodings PU (PDF Unicode used by +hyperref for PDF metadata), EU1 (XeTeX) and EU2 (LuaTeX). The textalpha +package makes these macros available independent of the current font +encoding.

+
\DeclareTextSymbol{\textAlpha}{LGR}{65}
+\DeclareTextSymbol{\textBeta}{LGR}{66}
+\DeclareTextSymbol{\textGamma}{LGR}{71}
+\DeclareTextSymbol{\textDelta}{LGR}{68}
+\DeclareTextSymbol{\textEpsilon}{LGR}{69}
+\DeclareTextSymbol{\textZeta}{LGR}{90}
+\DeclareTextSymbol{\textEta}{LGR}{72}
+\DeclareTextSymbol{\textTheta}{LGR}{74}
+\DeclareTextSymbol{\textIota}{LGR}{73}
+\DeclareTextSymbol{\textKappa}{LGR}{75}
+\DeclareTextSymbol{\textLambda}{LGR}{76}
+\DeclareTextSymbol{\textMu}{LGR}{77}
+\DeclareTextSymbol{\textNu}{LGR}{78}
+\DeclareTextSymbol{\textXi}{LGR}{88}
+\DeclareTextSymbol{\textOmicron}{LGR}{79}
+\DeclareTextSymbol{\textPi}{LGR}{80}
+\DeclareTextSymbol{\textRho}{LGR}{82}
+\DeclareTextSymbol{\textSigma}{LGR}{83}
+\DeclareTextSymbol{\textTau}{LGR}{84}
+\DeclareTextSymbol{\textUpsilon}{LGR}{85}
+\DeclareTextSymbol{\textPhi}{LGR}{70}
+\DeclareTextSymbol{\textChi}{LGR}{81}
+\DeclareTextSymbol{\textPsi}{LGR}{89}
+\DeclareTextSymbol{\textOmega}{LGR}{87}
+%
+\DeclareTextSymbol{\textalpha}{LGR}{97}
+\DeclareTextSymbol{\textbeta}{LGR}{98}
+\DeclareTextSymbol{\textgamma}{LGR}{103}
+\DeclareTextSymbol{\textdelta}{LGR}{100}
+\DeclareTextSymbol{\textepsilon}{LGR}{101}
+\DeclareTextSymbol{\textzeta}{LGR}{122}
+\DeclareTextSymbol{\texteta}{LGR}{104}
+\DeclareTextSymbol{\texttheta}{LGR}{106}
+\DeclareTextSymbol{\textiota}{LGR}{105}
+\DeclareTextSymbol{\textkappa}{LGR}{107}
+\DeclareTextSymbol{\textlambda}{LGR}{108}
+\DeclareTextSymbol{\textmu}{LGR}{109}
+\DeclareTextSymbol{\textnu}{LGR}{110}
+\DeclareTextSymbol{\textxi}{LGR}{120}
+\DeclareTextSymbol{\textomicron}{LGR}{111}
+\DeclareTextSymbol{\textpi}{LGR}{112}
+\DeclareTextSymbol{\textrho}{LGR}{114}
+\DeclareTextCommand{\textsigma}{LGR}{s\noboundary} % σ
+\DeclareTextSymbol{\textvarsigma}{LGR}{99}         % ς final sigma
+\DeclareTextSymbol{\textfinalsigma}{LGR}{99}       % ς final sigma
+\DeclareTextSymbol{\textautosigma}{LGR}{115}       % σ (ς at end of word)
+\DeclareTextSymbol{\texttau}{LGR}{116}
+\DeclareTextSymbol{\textupsilon}{LGR}{117}
+\DeclareTextSymbol{\textphi}{LGR}{102}
+\DeclareTextSymbol{\textchi}{LGR}{113}
+\DeclareTextSymbol{\textpsi}{LGR}{121}
+\DeclareTextSymbol{\textomega}{LGR}{119}
+
+
+
+

Additional Greek symbols

+
+

Ancient Greek Numbers (Athenian Numerals)

+

Names from the athnum package +(TODO: should we define them here?):

+
%\DeclareTextSymbol{\PiDelta}{LGR}{2} % GREEK ACROPHONIC ATTIC FIFTY
+%\DeclareTextSymbol{\PiEta}{LGR}{3}   % GREEK ACROPHONIC ATTIC FIVE HUNDRED
+%\DeclareTextSymbol{\PiChi}{LGR}{4}   % GREEK ACROPHONIC ATTIC FIVE THOUSAND
+%\DeclareTextSymbol{\PiMu}{LGR}{5}    % GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+
+

Names from xl-lgr.enc (Greek numerals):

+
\DeclareTextSymbol{\pentedeka}{LGR}{2}    % GREEK ACROPHONIC ATTIC FIFTY
+\DeclareTextSymbol{\pentehekaton}{LGR}{3} % GREEK ACROPHONIC ATTIC FIVE HUNDRED
+\DeclareTextSymbol{\penteqilioi}{LGR}{4}  % GREEK ACROPHONIC ATTIC FIVE THOUSAND
+\DeclareTextSymbol{\pentemurioi}{LGR}{5}  % GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+
+
+
+

Archaic letters

+

Names after teubner and ucs. The “text” prefix is only used for Digamma, +which is also used in mathematical context:

+
\DeclareTextSymbol{\stigma}{LGR}{6}           % ϛ (greek.ldf, teubner)
+\DeclareTextSymbol{\varstigma}{LGR}{7}        % stigma variant (CB.enc, teubner)
+\DeclareTextSymbol{\koppa}{LGR}{18}           % ϟ (greek small letter koppa)
+\DeclareTextSymbol{\qoppa}{LGR}{19}           % ϙ (archaic koppa)
+\DeclareTextSymbol{\Qoppa}{LGR}{21}           % Ϙ (archaic Koppa)
+\DeclareTextSymbol{\Stigma}{LGR}{22}          % Ϛ (teubner) in some fonts ϹΤ ligature
+\DeclareTextSymbol{\Sampi}{LGR}{23}           % Ϡ
+\DeclareTextSymbol{\sampi}{LGR}{27}           % ϡ
+\DeclareTextSymbol{\anoteleia}{LGR}{38}       % ·
+\DeclareTextSymbol{\erotimatiko}{LGR}{63}     % ;
+% \digamma used by amsmath for math-macro:
+\DeclareTextSymbol{\textdigamma}{LGR}{147}    % ϝ (uni-3.def (ucs))
+\DeclareTextSymbol{\textDigamma}{LGR}{195}    % Ϝ (uni-3.def (ucs))
+
+

Compatibility aliases for babel’s greek.ldf and hyperref’s puenc.def, +defined via DeclareTextCommand so that up/downcasing works without the +need for additional uclclist entries:

+
\DeclareTextCommand{\vardigamma}{LGR}{\varstigma}         % greek.ldf
+\DeclareTextCommand{\textstigmagreek}{LGR}{\stigma}       % puenc.def
+\DeclareTextCommand{\textkoppagreek}{LGR}{\koppa}         % puenc.def
+\DeclareTextCommand{\textStigmagreek}{LGR}{\Stigma}       % puenc.def
+\DeclareTextCommand{\textSampigreek}{LGR}{\Sampi}         % puenc.def
+\DeclareTextCommand{\textsampigreek}{LGR}{\sampi}         % puenc.def
+\DeclareTextCommand{\ddigamma}{LGR}{\textdigamma}         % greek.ldf
+\DeclareTextCommand{\textdigammagreek}{LGR}{\textdigamma} % puenc.def
+\DeclareTextCommand{\Digamma}{LGR}{\textDigamma}          % greek.ldf
+\DeclareTextCommand{\textDigammagreek}{LGR}{\textDigamma} % puenc.def
+
+
+
+

Numeral signs

+

See also http://en.wikipedia.org/wiki/Greek_numerals

+

Names from babel and teubner:

+
\DeclareTextSymbol{\anwtonos}{LGR}{254}             % ʹ (Dexia keraia)
+\DeclareTextSymbol{\katwtonos}{LGR}{255}            % ͵ (Aristeri keraia)
+
+

Compatibility definitions for hyperref’s puenc.def:

+
\DeclareTextSymbol{\textnumeralsigngreek}{LGR}{254} % ʹ (puenc.def)
+\DeclareTextSymbol{\textnumeralsignlowergreek}{LGR}{255} % ͵ (puenc.def)
+
+
+
+
+

Other

+

Characters that also exist in other font encodings:

+
    +
  • define them for LGR if there is a matching glyph,

  • +
  • use established macro names that match with other *enc.def files and +textcomp.sty.

  • +
+
% all encodings: See usrguide.pdf, chapter 3.14 ff
+\DeclareTextSymbol{\textendash}{LGR}{0}          % EN DASH
+\DeclareTextSymbol{\textquoteleft}{LGR}{28}      % ‘
+\DeclareTextSymbol{\textquoteright}{LGR}{29}     % ’
+\DeclareTextSymbol{\textperiodcentered}{LGR}{46} % · = \textanoteleia
+\DeclareTextSymbol{\textcompwordmark}{LGR}{118}  % ZERO WIDTH NO JOINER
+\DeclareTextSymbol{\textemdash}{LGR}{127}        % EM DASH
+
+% T1
+\DeclareTextSymbol{\guillemotleft}{LGR}{123}     % «
+\DeclareTextSymbol{\guillemotright}{LGR}{125}    % »
+
+% TS1
+\ProvideTextCommand{\textasciibreve}{LGR}{\char30\textcompwordmark}    % ˘
+\ProvideTextCommand{\textasciimacron}{LGR}{\char31\textcompwordmark}   % ¯
+\ProvideTextCommand{\textasciidieresis}{LGR}{\char34\textcompwordmark} % "
+\ProvideTextCommand{\textasciiacute}{LGR}{\char39\textcompwordmark}    % '
+\ProvideTextCommand{\textasciigrave}{LGR}{\char96\textcompwordmark}    % `
+\DeclareTextCommand{\textasciitilde}{LGR}{\char126\textcompwordmark}   % ~
+\DeclareTextSymbol{\textohm}{LGR}{87}            % Ω (Ohm sign -> Omega)
+\DeclareTextSymbol{\texteuro}{LGR}{24}           % € \euro in greek.ldf
+\DeclareTextSymbol{\textpercent}{LGR}{37}        % %
+\DeclareTextSymbol{\textperthousand}{LGR}{25}    % ‰ \permille in greek.ldf
+
+% T3
+\DeclareTextSymbol{\textschwa}{LGR}{26}          % ə
+
+
+
+

Not implemented

+

The characters at position 16 and 17 are used in the \nexus macro +of the teubner package to form an extensible, hat-like bracket. In +CB.enc, they are mapped to

+
+

16–MODIFIER LETTER LOW ACUTE ACCENT +17–MODIFIER LETTER LOW GRAVE ACCENT

+
+

but according to the documentation of Werner Lemberg’s babel patch, +they rather represent the left and right part of U+23E0 TOP TORTOISE +SHELL BRACKET.

+

Babel’s lgrenc.def has some definitions to prevent surprises with +macros that expect a Latin script. These definitions are problematic +in a font-encoding definition file as they

+
    +
  • require \textlatin which is defined in babel.def,

  • +
  • prevent use of TS1 symbols set as default by textcomp.sty.

  • +
+
%\ProvideTextCommand{\textcopyright}{LGR}{\textcircled{\textlatin{c}}}
+%\ProvideTextCommand{\textregistered}{LGR}{\textcircled{\textlatin{\textsc r}}}
+%\ProvideTextCommand{\texttrademark}{LGR}{\textsuperscript{\textlatin{TM}}}
+%\ProvideTextCommand{\SS}{LGR}{\textlatin{SS}}
+
+

They may be moved to greek.ldf one day (with a caveat for textcomp/TS1).

+
+
+
+

Diacritics

+

This section defines named macros for Greek diacritics and standard +symbol macros as alias for simple diacritics. Convenient input +conventions for composite diacritics are defined as composite +definitions.

+

Advantages:

+
    +
  • input convention similar to LGR input encodings (just prepend a \).

  • +
  • Access pre-composed characters without resorting to the +ligature mechanism (allows proper kerning, cf. teubner-doc).

  • +
  • Named macros can be used to ensure a font encoding supporting Greek is +used. However, substitution with pre-composed characters works only for +the active font encoding (cf. textalpha). Named accent macros can also be +used instead of the \@tabacckludge by to-LaTeX converters to ensure +working also inside the tabbing environment.

  • +
  • Named macros are required for upcasing according to Greek typesetting +conventions (cf. UPPERCASE below) and for composite diacritics.

  • +
+
+

Named macros

+

Definitions are based on the teubner package by Claudio Beccari, the ucs +package, and the babel patch by Werner Lemberg. Names are derived from +the Unicode name with the prefix “acc” (cf. How to name accent macros? +above) reducing the probability of incompatibilities compared to the +two-letter teubner diacritic macros or the “text” prefix used by ucs.

+

Simple Greek diacritics:

+
\DeclareTextAccent{\accdialytika}{LGR}{34} % διαλυτικά (diaeresis/trema)
+\DeclareTextAccent{\acctonos}{LGR}{39} % τόνος/ὀξεῖα tonos/oxia (acute)
+\DeclareTextAccent{\accdasia}{LGR}{60} % δασεῖα spiritus asper (rough breathing)
+\DeclareTextAccent{\accpsili}{LGR}{62} % ψιλή spiritus lenis (smooth breathing)
+\DeclareTextAccent{\accvaria}{LGR}{96} % βαρεῖα (grave)
+\DeclareTextAccent{\accperispomeni}{LGR}{126} % περισπωμένη (circonflex/tilde)
+
+

The sub-iota is input after the base character. In LGR fonts, ligatures are +defined for pre-composed characters, the postfix ligature does not interfere +with kerning:

+
\DeclareTextSymbol{\prosgegrammeni}{LGR}{8}  % ι "capital" sub-iota
+\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ "small" sub-iota
+
+

Composite diacritics:

+
%                                                       Teubner name
+\DeclareTextAccent{\accdialytikaperispomeni}{LGR}{32} % Cd
+\DeclareTextAccent{\accdialytikatonos}{LGR}{35}       % Ad
+\DeclareTextAccent{\accdialytikavaria}{LGR}{36}       % Gd
+
+\DeclareTextAccent{\accdasiaperispomeni}{LGR}{64}     % Cr
+\DeclareTextAccent{\accdasiavaria}{LGR}{67}           % Gr
+\DeclareTextAccent{\accdasiaoxia}{LGR}{86}            % Ar
+
+\DeclareTextAccent{\accpsiliperispomeni}{LGR}{92}     % Cs
+\DeclareTextAccent{\accpsilioxia}{LGR}{94}            % As
+\DeclareTextAccent{\accpsilivaria}{LGR}{95}           % Gs
+
+

For classical Greek and linguistics, the LGR font encoding contains a number +of additional diacritic symbols:

+
\DeclareTextAccent{\accinvertedbrevebelow}{LGR}{1} % INVERTED BREVE BELOW
+\DeclareTextAccent{\subinvertedbreve}{LGR}{1} % (lgrx)
+\DeclareTextAccent{\textsubarch}{LGR}{1}      % (tipa)
+\DeclareTextAccent{\accbrevebelow}{LGR}{20}   % BREVE BELOW
+\DeclareTextAccent{\subbreve}{LGR}{20}        % (lgrx)
+\DeclareTextAccent{\u}{LGR}{30}               % BREVE
+\DeclareTextAccent{\=}{LGR}{31}               % MACRON
+
+
+
+

Aliases

+

Symbol macros:

+
\DeclareTextCommand{\"}{LGR}{\accdialytika}
+\DeclareTextCommand{\'}{LGR}{\acctonos}
+\DeclareTextCommand{\`}{LGR}{\accvaria}
+\DeclareTextCommand{\~}{LGR}{\accperispomeni}
+\DeclareTextCommand{\<}{LGR}{\accdasia}
+\DeclareTextCommand{\>}{LGR}{\accpsili}
+
+

TODO: do we also want alternative symbols for the breathings (cf. X compose +table, LCI encoding)?

+
%\DeclareTextCommand{\(}{LGR}{\accdasia}
+%\DeclareTextCommand{\)}{LGR}{\accpsili}
+
+

Two Unicode names for one character:

+
\DeclareTextCommand{\accoxia}{LGR}{\acctonos}
+\DeclareTextCommand{\acckoronis}{LGR}{\accpsili}
+
+
+
+
+

Composite definitions

+
+

Composite diacritics

+

Composite accents can be input as sequence of simple diacritics (in +arbitrary order) via named macro, symbol macro and “transcription +characters”, e.g. \accdialytica\accvaria\textalpha, \"\'\textalpha, +\"'\textalpha, or \'"\textalpha.

+

Separate definitions for the supported variants of the second input token +are required as composition is based on the non-expanded input

+

The composition with simple “transcription characters” must also be defined +for the symbol macros, otherwise it fails with \Makeuppercase):

+
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\acctonos}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\"}{LGR}{'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\accvaria}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\"}{LGR}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\accperispomeni}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\"}{LGR}{~}{\accdialytikaperispomeni}
+
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\accdialytika}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\'}{LGR}{"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\accdasia}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\'}{LGR}{<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\accpsili}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\>}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{>}{\accpsilioxia}
+\DeclareTextCompositeCommand{\'}{LGR}{>}{\accpsilioxia}
+
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\accdialytika}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\`}{LGR}{"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\accdasia}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\`}{LGR}{<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\accpsili}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\>}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{>}{\accpsilivaria}
+\DeclareTextCompositeCommand{\`}{LGR}{>}{\accpsilivaria}
+
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accdialytika}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\~}{LGR}{"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accdasia}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\~}{LGR}{<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accpsili}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\>}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{LGR}{>}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\~}{LGR}{>}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\acctonos}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\>}{LGR}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\accvaria}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\>}{LGR}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\accperispomeni}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\>}{LGR}{~}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\acctonos}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\<}{LGR}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\accvaria}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\<}{LGR}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\accperispomeni}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\~}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\<}{LGR}{~}{\accdasiaperispomeni}
+
+
+
+

Pre-composed letters

+
+

Small letters with diacritics

+

(from teubner with changed names of the composite accents):

+
\DeclareTextComposite{\accvaria}{LGR}{a}{128}
+\DeclareTextComposite{\accdasia}{LGR}{a}{129}
+\DeclareTextComposite{\accpsili}{LGR}{a}{130}
+\DeclareTextComposite{\accdasiavaria}{LGR}{a}{131}
+\DeclareTextComposite{\acctonos}{LGR}{a}{136}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{a}{137}
+\DeclareTextComposite{\accpsilioxia}{LGR}{a}{138}
+\DeclareTextComposite{\accpsilivaria}{LGR}{a}{139}
+\DeclareTextComposite{\accperispomeni}{LGR}{a}{144}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{a}{145}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{a}{146}
+\DeclareTextComposite{\accvaria}{LGR}{h}{152}
+\DeclareTextComposite{\accdasia}{LGR}{h}{153}
+\DeclareTextComposite{\accpsili}{LGR}{h}{154}
+\DeclareTextComposite{\acctonos}{LGR}{h}{160}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{h}{161}
+\DeclareTextComposite{\accpsilioxia}{LGR}{h}{162}
+\DeclareTextComposite{\accdasiavaria}{LGR}{h}{163}
+\DeclareTextComposite{\accperispomeni}{LGR}{h}{168}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{h}{169}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{h}{170}
+\DeclareTextComposite{\accpsilivaria}{LGR}{h}{171}
+\DeclareTextComposite{\accvaria}{LGR}{w}{176}
+\DeclareTextComposite{\accdasia}{LGR}{w}{177}
+\DeclareTextComposite{\accpsili}{LGR}{w}{178}
+\DeclareTextComposite{\accdasiavaria}{LGR}{w}{179}
+\DeclareTextComposite{\acctonos}{LGR}{w}{184}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{w}{185}
+\DeclareTextComposite{\accpsilioxia}{LGR}{w}{186}
+\DeclareTextComposite{\accpsilivaria}{LGR}{w}{187}
+\DeclareTextComposite{\accperispomeni}{LGR}{w}{192}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{w}{193}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{w}{194}
+\DeclareTextComposite{\accvaria}{LGR}{i}{200}
+\DeclareTextComposite{\accdasia}{LGR}{i}{201}
+\DeclareTextComposite{\accpsili}{LGR}{i}{202}
+\DeclareTextComposite{\accdasiavaria}{LGR}{i}{203}
+\DeclareTextComposite{\acctonos}{LGR}{i}{208}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{i}{209}
+\DeclareTextComposite{\accpsilioxia}{LGR}{i}{210}
+\DeclareTextComposite{\accpsilivaria}{LGR}{i}{211}
+\DeclareTextComposite{\accperispomeni}{LGR}{i}{216}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{i}{217}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{i}{218}
+\DeclareTextComposite{\accdialytika}{LGR}{i}{240}
+\DeclareTextComposite{\accdialytikavaria}{LGR}{i}{241}
+\DeclareTextComposite{\accdialytikatonos}{LGR}{i}{242}
+\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{i}{243}
+\DeclareTextComposite{\accvaria}{LGR}{u}{204}
+\DeclareTextComposite{\accdasia}{LGR}{u}{205}
+\DeclareTextComposite{\accpsili}{LGR}{u}{206}
+\DeclareTextComposite{\accdasiavaria}{LGR}{u}{207}
+\DeclareTextComposite{\acctonos}{LGR}{u}{212}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{u}{213}
+\DeclareTextComposite{\accpsilioxia}{LGR}{u}{214}
+\DeclareTextComposite{\accpsilivaria}{LGR}{u}{215}
+\DeclareTextComposite{\accperispomeni}{LGR}{u}{220}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{u}{221}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{u}{222}
+\DeclareTextComposite{\accdialytika}{LGR}{u}{244}
+\DeclareTextComposite{\accdialytikavaria}{LGR}{u}{245}
+\DeclareTextComposite{\accdialytikatonos}{LGR}{u}{246}
+\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{u}{247}
+\DeclareTextComposite{\accvaria}{LGR}{e}{224}
+\DeclareTextComposite{\accdasia}{LGR}{e}{225}
+\DeclareTextComposite{\accpsili}{LGR}{e}{226}
+\DeclareTextComposite{\accdasiavaria}{LGR}{e}{227}
+\DeclareTextComposite{\acctonos}{LGR}{e}{232}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{e}{233}
+\DeclareTextComposite{\accpsilioxia}{LGR}{e}{234}
+\DeclareTextComposite{\accpsilivaria}{LGR}{e}{235}
+\DeclareTextComposite{\accvaria}{LGR}{o}{228}
+\DeclareTextComposite{\accdasia}{LGR}{o}{229}
+\DeclareTextComposite{\accpsili}{LGR}{o}{230}
+\DeclareTextComposite{\accdasiavaria}{LGR}{o}{231}
+\DeclareTextComposite{\acctonos}{LGR}{o}{236}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{o}{237}
+\DeclareTextComposite{\accpsilioxia}{LGR}{o}{238}
+\DeclareTextComposite{\accpsilivaria}{LGR}{o}{239}
+\DeclareTextComposite{\accdasia}{LGR}{r}{251}
+\DeclareTextComposite{\accpsili}{LGR}{r}{252}
+
+

Pre-composed letters with diacritics + LICR macros:

+
\DeclareTextComposite{\accvaria}{LGR}{\textalpha}{128}
+\DeclareTextComposite{\accdasia}{LGR}{\textalpha}{129}
+\DeclareTextComposite{\accpsili}{LGR}{\textalpha}{130}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textalpha}{131}
+\DeclareTextComposite{\acctonos}{LGR}{\textalpha}{136}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textalpha}{137}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textalpha}{138}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textalpha}{139}
+\DeclareTextComposite{\accperispomeni}{LGR}{\textalpha}{144}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textalpha}{145}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textalpha}{146}
+\DeclareTextComposite{\accvaria}{LGR}{\texteta}{152}
+\DeclareTextComposite{\accdasia}{LGR}{\texteta}{153}
+\DeclareTextComposite{\accpsili}{LGR}{\texteta}{154}
+\DeclareTextComposite{\acctonos}{LGR}{\texteta}{160}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\texteta}{161}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\texteta}{162}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\texteta}{163}
+\DeclareTextComposite{\accperispomeni}{LGR}{\texteta}{168}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\texteta}{169}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\texteta}{170}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\texteta}{171}
+\DeclareTextComposite{\accvaria}{LGR}{\textomega}{176}
+\DeclareTextComposite{\accdasia}{LGR}{\textomega}{177}
+\DeclareTextComposite{\accpsili}{LGR}{\textomega}{178}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textomega}{179}
+\DeclareTextComposite{\acctonos}{LGR}{\textomega}{184}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textomega}{185}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textomega}{186}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textomega}{187}
+\DeclareTextComposite{\accperispomeni}{LGR}{\textomega}{192}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textomega}{193}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textomega}{194}
+\DeclareTextComposite{\accvaria}{LGR}{\textiota}{200}
+\DeclareTextComposite{\accdasia}{LGR}{\textiota}{201}
+\DeclareTextComposite{\accpsili}{LGR}{\textiota}{202}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textiota}{203}
+\DeclareTextComposite{\acctonos}{LGR}{\textiota}{208}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textiota}{209}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textiota}{210}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textiota}{211}
+\DeclareTextComposite{\accperispomeni}{LGR}{\textiota}{216}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textiota}{217}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textiota}{218}
+\DeclareTextComposite{\accdialytika}{LGR}{\textiota}{240}
+\DeclareTextComposite{\accdialytikavaria}{LGR}{\textiota}{241}
+\DeclareTextComposite{\accdialytikatonos}{LGR}{\textiota}{242}
+\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\textiota}{243}
+\DeclareTextComposite{\accvaria}{LGR}{\textupsilon}{204}
+\DeclareTextComposite{\accdasia}{LGR}{\textupsilon}{205}
+\DeclareTextComposite{\accpsili}{LGR}{\textupsilon}{206}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textupsilon}{207}
+\DeclareTextComposite{\acctonos}{LGR}{\textupsilon}{212}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textupsilon}{213}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textupsilon}{214}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textupsilon}{215}
+\DeclareTextComposite{\accperispomeni}{LGR}{\textupsilon}{220}
+\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textupsilon}{221}
+\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textupsilon}{222}
+\DeclareTextComposite{\accdialytika}{LGR}{\textupsilon}{244}
+\DeclareTextComposite{\accdialytikavaria}{LGR}{\textupsilon}{245}
+\DeclareTextComposite{\accdialytikatonos}{LGR}{\textupsilon}{246}
+\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\textupsilon}{247}
+\DeclareTextComposite{\accvaria}{LGR}{\textepsilon}{224}
+\DeclareTextComposite{\accdasia}{LGR}{\textepsilon}{225}
+\DeclareTextComposite{\accpsili}{LGR}{\textepsilon}{226}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textepsilon}{227}
+\DeclareTextComposite{\acctonos}{LGR}{\textepsilon}{232}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textepsilon}{233}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textepsilon}{234}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textepsilon}{235}
+\DeclareTextComposite{\accvaria}{LGR}{\textomicron}{228}
+\DeclareTextComposite{\accdasia}{LGR}{\textomicron}{229}
+\DeclareTextComposite{\accpsili}{LGR}{\textomicron}{230}
+\DeclareTextComposite{\accdasiavaria}{LGR}{\textomicron}{231}
+\DeclareTextComposite{\acctonos}{LGR}{\textomicron}{236}
+\DeclareTextComposite{\accdasiaoxia}{LGR}{\textomicron}{237}
+\DeclareTextComposite{\accpsilioxia}{LGR}{\textomicron}{238}
+\DeclareTextComposite{\accpsilivaria}{LGR}{\textomicron}{239}
+\DeclareTextComposite{\accdasia}{LGR}{r}{251}
+\DeclareTextComposite{\accpsili}{LGR}{r}{252}
+
+
+
+

Capital letters with diacritics

+
+

In Greek, diacritics are omitted in all-uppercase words, but kept as part +of an uppercase initial (written before rather than above the letter).

+

The diaytika should also always be used in all-uppercase words (even +in cases where they are not needed when writing in lowercase)

+

http://en.wikipedia.org/wiki/Capitalization

+
+

In Title Case, place diacritics before instead of above the base character:

+
\DeclareTextCompositeCommand{\accdasia}{LGR}{A}{<A}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{A}{<`A}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{A}{<'A}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{A}{<\char126A}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{A}{>A}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{A}{>`A}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{A}{>'A}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{A}{>\char126A}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{A}{'A}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{A}{`A}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{E}{<E}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{E}{<'E}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{E}{<`E}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{E}{>E}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{E}{>'E}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{E}{>`E}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{E}{'E}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{E}{`E}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{H}{<H}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{H}{<`H}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{H}{<'H}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{H}{<\char126H}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{H}{>H}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{H}{>`H}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{H}{>'H}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{H}{>\char126H}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{H}{'H}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{H}{`H}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{I}{<I}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{I}{<`I}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{I}{<'I}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{I}{<\char126I}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{I}{>I}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{I}{>`I}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{I}{>'I}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{I}{>\char126I}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{I}{'I}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{I}{`I}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{O}{<O}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{O}{<`O}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{O}{<'O}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{O}{>O}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{O}{>`O}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{O}{>'O}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{O}{'O}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{O}{`O}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{U}{<U}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{U}{<`U}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{U}{<'U}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{U}{<\char126U}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{U}{'U}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{U}{`U}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{W}{<W}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{W}{<`W}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{W}{<'W}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{W}{<\char126W}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{W}{>W}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{W}{>`W}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{W}{>'W}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{W}{>\char126W}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{W}{'W}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{W}{`W}
+
+

Except for the dialytika:

+
\DeclareTextComposite{\accdialytika}{LGR}{I}{219}
+\DeclareTextComposite{\accdialytika}{LGR}{U}{223}
+
+

Do the same for the LICR macros:

+
\DeclareTextCompositeCommand{\accdasia}{LGR}{\textAlpha}{<A}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textAlpha}{<`A}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textAlpha}{<'A}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textAlpha}{<\char126A}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textAlpha}{>A}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textAlpha}{>`A}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textAlpha}{>'A}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textAlpha}{>\char126A}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textAlpha}{'A}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textAlpha}{`A}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textEpsilon}{<E}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textEpsilon}{<'E}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textEpsilon}{<`E}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textEpsilon}{>E}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textEpsilon}{>'E}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textEpsilon}{>`E}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textEpsilon}{'E}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textEpsilon}{`E}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textEta}{<H}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textEta}{<`H}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textEta}{<'H}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textEta}{<\char126H}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textEta}{>H}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textEta}{>`H}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textEta}{>'H}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textEta}{>\char126H}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textEta}{'H}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textEta}{`H}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textIota}{<I}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textIota}{<`I}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textIota}{<'I}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textIota}{<\char126I}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textIota}{>I}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textIota}{>`I}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textIota}{>'I}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textIota}{>\char126I}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textIota}{'I}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textIota}{`I}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textOmicron}{<O}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textOmicron}{<`O}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textOmicron}{<'O}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textOmicron}{>O}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textOmicron}{>`O}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmicron}{>'O}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmicron}{'O}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmicron}{`O}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textUpsilon}{<U}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textUpsilon}{<`U}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textUpsilon}{<'U}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textUpsilon}{<\char126U}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textUpsilon}{'U}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textUpsilon}{`U}
+
+\DeclareTextCompositeCommand{\accdasia}{LGR}{\textOmega}{<W}
+\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textOmega}{<`W}
+\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textOmega}{<'W}
+\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textOmega}{<\char126W}
+\DeclareTextCompositeCommand{\accpsili}{LGR}{\textOmega}{>W}
+\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textOmega}{>`W}
+\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmega}{>'W}
+\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textOmega}{>\char126W}
+\DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmega}{'W}
+\DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmega}{`W}
+
+

Except for the dialytika:

+
\DeclareTextComposite{\accdialytika}{LGR}{\textIota}{219}
+\DeclareTextComposite{\accdialytika}{LGR}{\textUpsilon}{223}
+
+
+
+
+
+

UPPERCASE

+
+

@uclclist extension

+

If UPPERCASE (all-caps) is generated with \MakeUppercase, macro +substitutions in the \@uclclist apply. This can be used to drop the +diacritics (except dialytika).

+

Based on the babel patch and fontenc.sty. +(The first two lines are TeX’ way of writing uclclist += …):

+
\expandafter\def\expandafter\@uclclist\expandafter{%
+   \@uclclist
+    \accdasia\acc@invisible
+    \accdasiaoxia\@hiatus
+    \accdasiavaria\acc@invisible
+    \accdasiaperispomeni\acc@invisible
+    \accpsili\@hiatus
+    \accpsilioxia\@hiatus
+    \accpsilivaria\@hiatus
+    \accpsiliperispomeni\acc@invisible
+    \acctonos\@hiatus
+    \accvaria\acc@invisible
+    \accdialytikatonos\acc@Dialytika
+    \accdialytikavaria\acc@Dialytika
+    \accdialytikaperispomeni\acc@Dialytika
+    \accperispomeni\acc@invisible
+    \ypogegrammeni\prosgegrammeni
+    %
+    \textalpha  \textAlpha
+    \textbeta   \textBeta
+    \textgamma  \textGamma
+    \textdelta  \textDelta
+    \textepsilon\textEpsilon
+    \textzeta   \textZeta
+    \texteta    \textEta
+    \texttheta  \textTheta
+    \textiota   \textIota
+    \textkappa  \textKappa
+    \textlambda \textLambda
+    \textmu     \textMu
+    \textnu     \textNu
+    \textxi     \textXi
+    \textomicron\textOmicron
+    \textpi     \textPi
+    \textrho    \textRho
+    \textvarsigma  \textSigma
+    \textsigma     \textSigma
+    \textautosigma \textSigma
+    \texttau    \textTau
+    \textupsilon\textUpsilon
+    \textphi    \textPhi
+    \textchi    \textChi
+    \textpsi    \textPsi
+    \textomega  \textOmega
+    %
+    \qoppa      \Qoppa
+    \varstigma  \Stigma
+    \stigma     \Stigma
+    \sampi      \Sampi
+    \textdigamma \textDigamma
+}
+
+
+
+

Substitution macros

+
+

Drop diacritics

+
\DeclareTextCommand{\acc@invisible}{LGR}[1]{#1}
+
+

(The argument processing ensures that kerning is preserved)

+
+
+

Keep dialytika.

+

Define a dummy alias so that downcasing with \MakeLowercase does not +convert a simple dialytika to a composite accent:

+
\DeclareTextCommand{\acc@Dialytika}{LGR}{\accdialytika}
+
+\DeclareTextCompositeCommand{\accdialytika}{LGR}{\@hiatus}{\accdialytika}
+
+ +
+
+

Mark hiatus

+

Tonos and dasia mark a hiatus if placed on the +first vowel of a diphthong (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the +second vowel if they are dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, +ἀυπνία → ΑΫΠΝΙΑ):

+
\DeclareTextCommand{\@hiatus}{LGR}[1]{#1}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{>}{\@hiatus}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{<}{\acc@invisible}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{A}{\A@hiatus}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textAlpha}{\A@hiatus}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{E}{\E@hiatus}
+\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textEpsilon}{\E@hiatus}
+% What does the \@hiatus command "see" if an unicode literal follows?
+% \DeclareTextCompositeCommand{\@hiatus}{LGR}{\symbol{"ce}}{bluff}
+% \DeclareTextCompositeCommand{\@hiatus}{LGR}{"cf}{blaff}
+% \DeclareTextCompositeCommand{\@hiatus}{LGR}{ι}{blaff}
+
+

Look ahead and place a diaeresis on Ι or Υ:

+
\DeclareTextCommand{\A@hiatus}{LGR}{%
+  \LGR@ifnextchar{I}{A\"}{%
+    \LGR@ifnextchar{U}{A\"}{%
+      \LGR@ifnextchar{\textIota}{A\"}{%
+        \LGR@ifnextchar{\textUpsilon}{A\"}{A}%
+      }%
+    }%
+  }%
+}
+\DeclareTextCommand{\E@hiatus}{LGR}{%
+  \LGR@ifnextchar{I}{E\"}{%
+    \LGR@ifnextchar{U}{E\"}{%
+      \LGR@ifnextchar{\textIota}{E\"}{%
+        \LGR@ifnextchar{\textUpsilon}{E\"}{E}%
+      }%
+    }%
+  }%
+}
+
+

As \@ifnextchar gobbles spaces the lookahead macro definition from +amsgen.sty is used:

+
+

This macro is a new version of LaTeX’s \@ifnextchar, macro +that does not skip over spaces.

+
+
\ProvideTextCommand{\LGR@ifnextchar}{LGR}[3]{%
+% \long\def\LGR@ifnextchar#1#2#3{%
+  \let\reserved@d= #1%
+  \def\reserved@a{#2}\def\reserved@b{#3}%
+  \futurelet\@let@token\LGR@ifnch
+}
+\ProvideTextCommand{\LGR@ifnch}{LGR}{%
+  \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
+  \reserved@b
+}
+
+

Unfortunately, the lookahead breaks kerning.

+

Alternatives tried:

+
    +
  • CompositeCommands fail at the end of a macro, e.g. \emph{\'a}:

    +
    %\DeclareTextCommand{\A@hiatus}{LGR}{A}
    +%\DeclareTextCommand{\E@hiatus}{LGR}{E}
    +
    +%\DeclareTextCompositeCommand{\A@hiatus}{LGR}{}{A}
    +%\DeclareTextCompositeCommand{\A@hiatus}{LGR}{I}{A\"I}
    +%\DeclareTextCompositeCommand{\A@hiatus}{LGR}{U}{A\"U}
    +
    +
  • +
  • The glyph No 12 is a special “Upcase Alpha” that in ligature with Y +and I adds a diaresis to them. However, it seems that it has only +kerning definitions for I and Y (as it is not intended for direct +use):

    +
    %\DeclareTextComposite{\@hiatus}{LGR}{A}{12}
    +
    +

    No such glyph exists for E but this is no problem as E does +not require kerning anyway.

    +
  • +
+ +
+
+
+
+
+ + -- cgit v1.2.3