summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-07-17 22:12:47 +0000
committerKarl Berry <karl@freefriends.org>2013-07-17 22:12:47 +0000
commitd9add100de8f268f2b408533a41cc5624ef1ee7a (patch)
treea50a9317ff4e1bc15403820318ab44ae97e99d0a /Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def
parent989e69000a109aa206742cc979fb247b9294ef7a (diff)
greek-fontenc (17jul13)
git-svn-id: svn://tug.org/texlive/trunk@31220 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def')
-rw-r--r--Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def362
1 files changed, 362 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def b/Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def
new file mode 100644
index 00000000000..bed55a9b305
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def
@@ -0,0 +1,362 @@
+% greek-fontenc.def
+% *****************
+%
+% Common Greek font encoding definitions
+% ======================================
+%
+% :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: This file provides definitions that are shared between
+% font encodings providing Greek characters.
+%
+% Changelog
+% ---------
+%
+% .. class:: borderless
+%
+% ===== ============ ========================================================
+% 0.1 2013-07-03 code "outsourced" from lgrxenc.def
+% ===== ============ ========================================================
+%
+% Usage
+% -----
+%
+% This file can be input by font encoding definition files after declaring the
+% font encoding.
+%
+% Example:
+% Define Greek LICR's for XeTeX
+%
+% .. code:: latex
+%
+% \DeclareFontEncoding{EU1}{}{}
+% \input{greek-fontenc.def}
+% % Unicode-specific LICR - Character mappings
+% % ...
+%
+%
+% Implementation
+% --------------
+%
+% Identification
+% ~~~~~~~~~~~~~~
+% ::
+
+\ProvidesFile{greek-fontenc.def}
+[2013/07/03 v0.1 Common Greek font encoding definitions]
+
+
+% Ensuregreek
+% ~~~~~~~~~~~
+%
+% The ``\ensuregreek`` command can be used to ensure that its argument is set
+% in a font encoding with support for Greek. If the active font encoding
+% supports it, kerning between adjacent command calls (e.g.
+% ``\ensuregreek{A}\ensuregreek{\Upsilon}``) is preserved. This allows, e.g.,
+% wrapping of compound Unicode character definitions. ::
+
+\DeclareTextCommand{\ensuregreek}{\LastDeclaredEncoding}[1]{#1}
+
+% Aliases
+% ~~~~~~~
+%
+% Compatibility aliases for hyperref_'s puenc.def, defined via
+% `DeclareTextCommand` so that up/downcasing works without the need for
+% additional uclclist entries::
+
+\DeclareTextCommand{\textstigmagreek}{\LastDeclaredEncoding}{\textstigma}
+\DeclareTextCommand{\textkoppagreek}{\LastDeclaredEncoding}{\textkoppa}
+\DeclareTextCommand{\textStigmagreek}{\LastDeclaredEncoding}{\textStigma}
+\DeclareTextCommand{\textSampigreek}{\LastDeclaredEncoding}{\textSampi}
+\DeclareTextCommand{\textsampigreek}{\LastDeclaredEncoding}{\textsampi}
+\DeclareTextCommand{\textdigammagreek}{\LastDeclaredEncoding}{\textdigamma}
+\DeclareTextCommand{\textDigammagreek}{\LastDeclaredEncoding}{\textDigamma}
+
+\DeclareTextCommand{\textnumeralsigngreek}{\LastDeclaredEncoding}{\textdexiakeraia}
+\DeclareTextCommand{\textnumeralsignlowergreek}{\LastDeclaredEncoding}{\textaristerikeraia}
+
+% Two Unicode names for one character::
+
+\DeclareTextCommand{\accoxia}{\LastDeclaredEncoding}{\acctonos}
+\DeclareTextCommand{\acckoronis}{\LastDeclaredEncoding}{\accpsili}
+
+% Symbol macros for the breathings::
+
+\DeclareTextCommand{\<}{\LastDeclaredEncoding}{\accdasia}
+\DeclareTextCommand{\>}{\LastDeclaredEncoding}{\accpsili}
+
+% TODO: do we also want alternative symbols for the breathings (cf. X compose
+% table, LCI encoding)?
+%
+% .. code:: latex
+%
+% \DeclareTextCommand{\(}{\LastDeclaredEncoding}{\accdasia}
+% \DeclareTextCommand{\)}{\LastDeclaredEncoding}{\accpsili}
+%
+% Names from babel_ and teubner_ (do we want to define them here as alias?)
+%
+% .. code:: latex
+%
+% \DeclareTextCommand{\anwtonos}{\LastDeclaredEncoding}{\textdexiakeraia} % ʹ
+% \DeclareTextCommand{\katwtonos}{\LastDeclaredEncoding}{\textaristerikeraia} % ͵
+%
+%
+% 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. one of
+%
+% .. code:: latex
+%
+% \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}{\LastDeclaredEncoding}{\acctonos}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\"}{\LastDeclaredEncoding}{'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accvaria}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\"}{\LastDeclaredEncoding}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accperispomeni}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\"}{\LastDeclaredEncoding}{~}{\accdialytikaperispomeni}
+
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{"}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accdasia}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{<}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accpsili}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\>}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{>}{\accpsilioxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{>}{\accpsilioxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{'}{\textquoteright}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{\'}{\textquoteright}
+
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{"}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accdasia}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{<}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accpsili}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\>}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{>}{\accpsilivaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{>}{\accpsilivaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{`}{\textquoteleft}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{\`}{\textquoteleft}
+
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{"}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accdasia}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{<}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accpsili}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\>}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{>}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{>}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\acctonos}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\>}{\LastDeclaredEncoding}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accvaria}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\>}{\LastDeclaredEncoding}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accperispomeni}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\>}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\acctonos}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\<}{\LastDeclaredEncoding}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accvaria}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\<}{\LastDeclaredEncoding}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accperispomeni}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\~}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\<}{\LastDeclaredEncoding}{~}{\accdasiaperispomeni}
+
+
+% UPPERCASE
+% ~~~~~~~~~
+%
+% If UPPERCASE (all-caps) is generated with ``\MakeUppercase``, macro
+% substitutions in the ``\@uclclist`` apply. This can be used to drop the
+% diacritics (except dialytika and sub-iota). Different conventions exist for
+% the `treatment of sub-iota with uppercase letters`__. In the CB Fonts, an
+% "index" iota is used.
+%
+% __ http://www.tlg.uci.edu/~opoudjis/unicode/unicode_adscript.html
+%
+%
+% @uclclist extension
+% """""""""""""""""""
+%
+% Based on the `babel patch`_ and ``fontenc.sty``.
+%
+% The definition of an auxiliary, self-restting macro makes this idempotent
+% (only the first use of this function will expand the ``@uclclist``).
+% The second and third lines are TeX' way of writing ``uclclist += …``::
+
+\providecommand*\update@uclc@with@greek{%
+ \expandafter\def\expandafter\@uclclist\expandafter{%
+ \@uclclist
+ \accdasia\LGR@accdropped
+ \accdasiaoxia\LGR@hiatus
+ \accdasiavaria\LGR@accdropped
+ \accdasiaperispomeni\LGR@accdropped
+ \accpsili\LGR@hiatus
+ \accpsilioxia\LGR@hiatus
+ \accpsilivaria\LGR@hiatus
+ \accpsiliperispomeni\LGR@accdropped
+ \acctonos\LGR@hiatus
+ \accvaria\LGR@accdropped
+ \accdialytikatonos\LGR@accDialytika
+ \accdialytikavaria\LGR@accDialytika
+ \accdialytikaperispomeni\LGR@accDialytika
+ \accperispomeni\LGR@accdropped
+ \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
+ \textqoppa \textQoppa
+ \textvarstigma \textStigma
+ \textstigma \textStigma
+ \textsampi \textSampi
+ \textdigamma \textDigamma
+ }%
+ \let\update@uclc@with@greek\relax
+}
+
+% Expand the uclc list using the just defined macro::
+
+\update@uclc@with@greek
+
+
+% Substitution macros
+% """""""""""""""""""
+%
+% Drop diacritics
+% (The argument processing ensures that kerning is preserved) ::
+
+\DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1}
+
+
+% Keep dialytika: Define a dummy alias so that downcasing with
+% ``\MakeLowercase`` does not convert a simple dialytika to a composite
+% accent::
+
+\DeclareTextCommand{\LGR@accDialytika}{\LastDeclaredEncoding}{\accdialytika}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\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{\LGR@hiatus}{\LastDeclaredEncoding}[1]{#1}
+\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{>}{\LGR@hiatus}
+\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textAlpha}{\LGR@A@hiatus}
+\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textEpsilon}{\LGR@E@hiatus}
+
+% The font encoding file must define the ``\LGR@hiatus`` TextCommand. See
+% ``lgrenc.def`` for an example.
+%
+% The following macro can be used to test if the next character is an Alpha or
+% Epsilon. 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.
+%
+% ::
+
+\providecommand*{\LGR@ifnextchar}[3]{%
+ \let\reserved@d= #1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\LGR@ifnch
+}
+\providecommand*{\LGR@ifnch}{%
+ \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
+ \reserved@b
+}
+
+
+
+% .. References
+% ----------
+%
+% .. _alphabeta: alphabeta.sty.html
+% .. _athnum: http://www.ctan.org/pkg/athnum
+% .. _Babel: http://www.ctan.org/pkg/babel
+% .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf
+% .. _fntguide: http://mirror.ctan.org/macros/latex/doc/fntguide.pdf
+% .. _fontenc: http://www.ctan.org/pkg/fontenc
+% .. _hyperref: http://www.ctan.org/pkg/hyperref
+% .. _ibycus: http://www.ctan.org/pkg/ibycus-babel
+% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+% .. _lgrx: http://www.ctan.org/pkg/lgrx
+% .. _ltxcmds: http://www.ctan.org/pkg/ltxcmds
+% .. _teubner: http://www.ctan.org/pkg/teubner
+% .. _teubner-doc:
+% http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf
+% .. _textalpha: textalpha.sty.html
+% .. _ucs: http://www.ctan.org/pkg/unicode