summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/greek-fontenc/greek-fontenc.def.html
diff options
context:
space:
mode:
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.html324
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&nbsp;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{\&lt;}{\LastDeclaredEncoding}{\accdasia}
+\DeclareTextCommand{\&gt;}{\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">\&quot;</span><span class="keyword">\'</span><span class="keyword">\textalpha</span>,
+<span class="keyword">\&quot;</span>'<span class="keyword">\textalpha</span>, or
+<span class="keyword">\'</span>&quot;<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{\&quot;}{\LastDeclaredEncoding}{'}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accvaria}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\&quot;}{\LastDeclaredEncoding}{`}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accperispomeni}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{~}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\&quot;}{\LastDeclaredEncoding}{~}{\accdialytikaperispomeni}
+
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\&quot;}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{&quot;}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{&quot;}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accdasia}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\&lt;}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{&lt;}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{&lt;}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\accpsili}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{\&gt;}{\accpsilioxia}
+\DeclareTextCompositeCommand{\acctonos}{\LastDeclaredEncoding}{&gt;}{\accpsilioxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{&gt;}{\accpsilioxia}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{'}{\textquoteright}
+\DeclareTextCompositeCommand{\'}{\LastDeclaredEncoding}{\'}{\textquoteright}
+
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\&quot;}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{&quot;}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{&quot;}{\accdialytikavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accdasia}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\&lt;}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{&lt;}{\accdasiavaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{&lt;}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\accpsili}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{\&gt;}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accvaria}{\LastDeclaredEncoding}{&gt;}{\accpsilivaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{&gt;}{\accpsilivaria}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{`}{\textquoteleft}
+\DeclareTextCompositeCommand{\`}{\LastDeclaredEncoding}{\`}{\textquoteleft}
+
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accdialytika}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\&quot;}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{&quot;}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{&quot;}{\accdialytikaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accdasia}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\&lt;}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{&lt;}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{&lt;}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\accpsili}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{\&gt;}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accperispomeni}{\LastDeclaredEncoding}{&gt;}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{&gt;}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\acctonos}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\&gt;}{\LastDeclaredEncoding}{'}{\accpsilioxia}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accvaria}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\&gt;}{\LastDeclaredEncoding}{`}{\accpsilivaria}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accperispomeni}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni}
+\DeclareTextCompositeCommand{\&gt;}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni}
+
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\acctonos}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\&lt;}{\LastDeclaredEncoding}{'}{\accdasiaoxia}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accvaria}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\&lt;}{\LastDeclaredEncoding}{`}{\accdasiavaria}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accperispomeni}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\~}{\accdasiaperispomeni}
+\DeclareTextCompositeCommand{\&lt;}{\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">\&#64;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>&#64;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">&#64;uclclist</tt>).
+The second and third lines are TeX’ way of writing <tt class="literal">uclclist += …</tt>:</p>
+<pre class="literal-block">\providecommand*\update&#64;uclc&#64;with&#64;greek{%
+ \expandafter\def\expandafter\&#64;uclclist\expandafter{%
+ \&#64;uclclist
+ \accdasia\LGR&#64;accdropped
+ \accdasiaoxia\LGR&#64;hiatus
+ \accdasiavaria\LGR&#64;accdropped
+ \accdasiaperispomeni\LGR&#64;accdropped
+ \accpsili\LGR&#64;hiatus
+ \accpsilioxia\LGR&#64;hiatus
+ \accpsilivaria\LGR&#64;hiatus
+ \accpsiliperispomeni\LGR&#64;accdropped
+ \acctonos\LGR&#64;hiatus
+ \accvaria\LGR&#64;accdropped
+ \accdialytikatonos\LGR&#64;accDialytika
+ \accdialytikavaria\LGR&#64;accDialytika
+ \accdialytikaperispomeni\LGR&#64;accDialytika
+ \accperispomeni\LGR&#64;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&#64;uclc&#64;with&#64;greek\relax
+}
+</pre>
+<p>Expand the uclc list using the just defined macro:</p>
+<pre class="literal-block">\update&#64;uclc&#64;with&#64;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&#64;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&#64;accDialytika}{\LastDeclaredEncoding}{\accdialytika}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR&#64;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&#64;hiatus}{\LastDeclaredEncoding}[1]{#1}
+\DeclareTextCompositeCommand{\LGR&#64;hiatus}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;hiatus}
+\DeclareTextCompositeCommand{\LGR&#64;hiatus}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\LGR&#64;hiatus}{\LastDeclaredEncoding}{\textAlpha}{\LGR&#64;A&#64;hiatus}
+\DeclareTextCompositeCommand{\LGR&#64;hiatus}{\LastDeclaredEncoding}{\textEpsilon}{\LGR&#64;E&#64;hiatus}
+</pre>
+<p>The font encoding file must define the <tt class="literal">\LGR&#64;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">\&#64;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">\&#64;ifnextchar</tt>, macro
+that does not skip over spaces.</p>
+</blockquote>
+<pre class="literal-block">\providecommand*{\LGR&#64;ifnextchar}[3]{%
+ \let\reserved&#64;d= #1%
+ \def\reserved&#64;a{#2}\def\reserved&#64;b{#3}%
+ \futurelet\&#64;let&#64;token\LGR&#64;ifnch
+}
+\providecommand*{\LGR&#64;ifnch}{%
+ \ifx\&#64;let&#64;token\reserved&#64;d \let\reserved&#64;b\reserved&#64;a \fi
+ \reserved&#64;b
+}
+</pre>
+<!-- References
+- - - - - - - - - - -->
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>