diff options
author | Karl Berry <karl@freefriends.org> | 2013-07-17 22:12:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-07-17 22:12:47 +0000 |
commit | d9add100de8f268f2b408533a41cc5624ef1ee7a (patch) | |
tree | a50a9317ff4e1bc15403820318ab44ae97e99d0a /Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html | |
parent | 989e69000a109aa206742cc979fb247b9294ef7a (diff) |
greek-fontenc (17jul13)
git-svn-id: svn://tug.org/texlive/trunk@31220 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html')
-rw-r--r-- | Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html b/Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html new file mode 100644 index 00000000000..a6e263717fc --- /dev/null +++ b/Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="generator" content="Docutils 0.11: http://docutils.sourceforge.net/" /> +<title>greek-fontenc.def</title> +<meta name="copyright" content="© 2013 Günter Milde" /> +<link rel="stylesheet" href="../../../../../Python/docutils-svn/docutils/docutils/writers/html4strict/html4css1.css" type="text/css" /> +<link rel="stylesheet" href="../../../../../Python/docutils-svn/docutils/docutils/writers/html4strict/html4css2.css" type="text/css" /> +</head> +<body> +<div class="document" id="greek-fontenc-def"> +<h1 class="title">greek-fontenc.def</h1> +<h2 class="subtitle" id="common-greek-font-encoding-definitions">Common Greek font encoding definitions</h2> + +<dl class="docinfo simple"> +<dt class="copyright">Copyright</dt> +<dd class="copyright">© 2013 Günter Milde</dd> +<dt>Licence</dt> +<dd><p>This work may be distributed and/or modified under the +conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either +version 1.3 of this license or any later version.</p> +</dd> +</dl> +<div class="abstract topic"> +<p class="topic-title first">Abstract</p> +<p>This file provides definitions that are shared between +font encodings providing Greek characters.</p> +</div> +<div class="section" id="changelog"> +<h1>Changelog</h1> +<table class="borderless"> +<colgroup> +<col width="7%" /> +<col width="16%" /> +<col width="77%" /> +</colgroup> +<tbody> +<tr><td><p>0.1</p></td> +<td><p>2013-07-03</p></td> +<td><p>code “outsourced” from lgrxenc.def</p></td> +</tr> +</tbody> +</table> +</div> +<div class="section" id="usage"> +<h1>Usage</h1> +<p>This file can be input by font encoding definition files after declaring the +font encoding.</p> +<dl class="docutils"> +<dt>Example:</dt> +<dd><p>Define Greek LICR’s for XeTeX</p> +<pre class="code latex literal-block"><span class="keyword">\DeclareFontEncoding</span><span class="name builtin">{</span>EU1<span class="name builtin">}{}{}</span> +<span class="keyword">\input</span><span class="name builtin">{</span>greek-fontenc.def<span class="name builtin">}</span> +<span class="comment">% Unicode-specific LICR - Character mappings +% ...</span> +</pre> +</dd> +</dl> +</div> +<div class="section" id="implementation"> +<h1>Implementation</h1> +<div class="section" id="identification"> +<h2>Identification</h2> +<pre class="literal-block">\ProvidesFile{greek-fontenc.def} +[2013/07/03 v0.1 Common Greek font encoding definitions] +</pre> +</div> +<div class="section" id="ensuregreek"> +<h2>Ensuregreek</h2> +<p>The <tt class="literal">\ensuregreek</tt> 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. +<tt class="literal"><span class="pre">\ensuregreek{A}\ensuregreek{\Upsilon}</span></tt>) is preserved. This allows, e.g., +wrapping of compound Unicode character definitions.</p> +<pre class="literal-block">\DeclareTextCommand{\ensuregreek}{\LastDeclaredEncoding}[1]{#1} +</pre> +</div> +<div class="section" id="aliases"> +<h2>Aliases</h2> +<p>Compatibility aliases for <a class="reference external" href="http://www.ctan.org/pkg/hyperref">hyperref</a>’s puenc.def, defined via +<cite>DeclareTextCommand</cite> so that up/downcasing works without the need for +additional uclclist entries:</p> +<pre class="literal-block">\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} +</pre> +<p>Symbol macros for the breathings:</p> +<pre class="literal-block">\DeclareTextCommand{\<}{\LastDeclaredEncoding}{\accdasia} +\DeclareTextCommand{\>}{\LastDeclaredEncoding}{\accpsili} +</pre> +<p>TODO: do we also want alternative symbols for the breathings (cf. X compose +table, LCI encoding)?</p> +<pre class="code latex literal-block"><span class="keyword">\DeclareTextCommand</span><span class="name builtin">{</span><span class="literal string">\(</span><span class="name builtin">}{</span><span class="name variable">\LastDeclaredEncoding</span><span class="name builtin">}{</span><span class="name variable">\accdasia</span><span class="name builtin">} +</span><span class="name variable">\DeclareTextCommand</span><span class="name builtin">{</span><span class="literal string">\)</span><span class="name builtin">}{</span><span class="keyword">\LastDeclaredEncoding</span><span class="name builtin">}{</span><span class="keyword">\accpsili</span><span class="name builtin">}</span> +</pre> +<p>Two Unicode names for one character:</p> +<pre class="literal-block">\DeclareTextCommand{\accoxia}{\LastDeclaredEncoding}{\acctonos} +\DeclareTextCommand{\acckoronis}{\LastDeclaredEncoding}{\accpsili} +</pre> +</div> +<div class="section" id="composite-diacritics"> +<h2>Composite diacritics</h2> +<p>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</p> +<pre class="code latex literal-block"><span class="keyword">\accdialytica</span><span class="keyword">\accvaria</span><span class="keyword">\textalpha</span>, +<span class="keyword">\"</span><span class="keyword">\'</span><span class="keyword">\textalpha</span>, +<span class="keyword">\"</span>'<span class="keyword">\textalpha</span>, or +<span class="keyword">\'</span>"<span class="keyword">\textalpha</span>. +</pre> +<p>Separate definitions for the supported variants of the second input token +are required as composition is based on the non-expanded input</p> +<p>The composition with simple “transcription characters” must also be defined +for the symbol macros, otherwise it fails with <tt class="literal">\Makeuppercase</tt>:</p> +<pre class="literal-block">\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} +</pre> +</div> +<div class="section" id="uppercase"> +<h2>UPPERCASE</h2> +<p>If UPPERCASE (all-caps) is generated with <tt class="literal">\MakeUppercase</tt>, macro +substitutions in the <tt class="literal">\@uclclist</tt> apply. This can be used to drop the +diacritics (except dialytika and sub-iota). Different conventions exist for +the <a class="reference external" href="http://www.tlg.uci.edu/~opoudjis/unicode/unicode_adscript.html">treatment of sub-iota with uppercase letters</a>. In the CB Fonts, an +“index” iota is used.</p> +<div class="section" id="uclclist-extension"> +<h3>@uclclist extension</h3> +<p>Based on the <a class="reference external" href="http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf">babel patch</a> and <tt class="literal">fontenc.sty</tt>.</p> +<p>The definition of an auxiliary, self-restting macro makes this idempotent +(only the first use of this function will expand the <tt class="literal">@uclclist</tt>). +The second and third lines are TeX’ way of writing <tt class="literal">uclclist += …</tt>:</p> +<pre class="literal-block">\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 +} +</pre> +<p>Expand the uclc list using the just defined macro:</p> +<pre class="literal-block">\update@uclc@with@greek +</pre> +</div> +<div class="section" id="substitution-macros"> +<h3>Substitution macros</h3> +<p>Drop diacritics +(The argument processing ensures that kerning is preserved)</p> +<pre class="literal-block">\DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1} +</pre> +<p>Keep dialytika: Define a dummy alias so that downcasing with +<tt class="literal">\MakeLowercase</tt> does not convert a simple dialytika to a composite +accent:</p> +<pre class="literal-block">\DeclareTextCommand{\LGR@accDialytika}{\LastDeclaredEncoding}{\accdialytika} +\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@hiatus}{\accdialytika} +</pre> +</div> +<div class="section" id="mark-hiatus"> +<h3>Mark hiatus</h3> +<p>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 (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, +ἀυπνία → ΑΫΠΝΙΑ):</p> +<pre class="literal-block">\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} +</pre> +<p>The font encoding file must define the <tt class="literal">\LGR@hiatus</tt> TextCommand. See +<tt class="literal">lgrenc.def</tt> for an example.</p> +<p>The following macro can be used to test if the next character is an Alpha or +Epsilon. As <tt class="literal">\@ifnextchar</tt> gobbles spaces the lookahead macro definition +from <tt class="literal">amsgen.sty</tt> is used:</p> +<blockquote> +<p>This macro is a new version of LaTeX’s <tt class="literal">\@ifnextchar</tt>, macro +that does not skip over spaces.</p> +</blockquote> +<pre class="literal-block">\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 +} +</pre> +<!-- References +- - - - - - - - - - --> +</div> +</div> +</div> +</div> +</body> +</html> |