summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty')
-rw-r--r--Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty302
1 files changed, 216 insertions, 86 deletions
diff --git a/Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty b/Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty
index 61932d7d5fc..2f122f25d9e 100644
--- a/Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty
+++ b/Master/texmf-dist/tex/latex/greek-fontenc/textalpha.sty
@@ -2,31 +2,31 @@
% +++++++++++++
% Greek symbols in text
% *********************
-%
+%
% :Copyright: © 2010 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: Provide a set of ``\text*`` macros for Greek characters
% in text mode.
-%
+%
% :Identification:
% ::
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{textalpha}
-[2014/12/12 v0.12 macros for Greek letters in text]
+[2015/09/04 v0.13 macros for Greek letters in text]
% .. note::
-%
+%
% The package was renamed from `textgreek` to `textalpha` to prevent
% confusion with the textgreek_ package by Leonard Michlmayr.
-%
-%
+%
+%
% Changelog:
% .. class:: borderless
-%
+%
% ========== ===== =========================================================
% 2010-06-16 0.1 initial version
% 2012-06-27 0.2 support for compound Unicode definitions outside LGR
@@ -37,76 +37,160 @@
% 2013-11-28 0.11 compatibility with Xe/LuaTeX in 8-bit mode.
% 2014-12-12 0.12 fix auxiliary macro names,
% define symbol macros for breathing accents.
+% 2015-09-04 0.13 Option normalize-symbols_: support for symbol variants.
+% .. Option keep-semicolon_: use semicolon as erotimatiko
+% in LGR.
% ========== ===== =========================================================
-%
+%
+% .. contents::
+%
% Motivation
% ==========
-%
+%
% By default, TeX macros for Greek letters are only valid in mathematical
-% mode. This package sets up a suitable font encoding and Greek LICR
-% definitions (``\textalpha`` -- ``\textOmega``).
-%
+% mode. This package sets up a suitable `font encoding`_ and `LaTeX internal
+% character representations` (LICR) definitions for Greek (``\textalpha`` --
+% ``\textOmega``).
+%
% To allow documents using Greek LICR macros without worrying about the TeX
% engine used to compile them, this package tests the declared font encodings
% and does "the right thing" to set up Greek text font support:
-%
+%
% * If the Unicode font encodings EU1 (XeTeX) or EU2 (LuaTeX) are declared,
-% before loading this package (e.g. vie ``fontspec``) the package provides
+% before loading this package (e.g. via ``fontspec``) the package provides
% Greek LICR definitions for them.
-%
-% * If the LGR font encoding is declared before loading this package, it is
-% set as default for Greek LICR macros (cf. fntguide_ section 5.3).
-%
-% With XeTeX or LuaTex, Unicode fonts and LGR encoded 8-bit fonts can be
-% used in the same document (see greek-euenc-doc.tex_).
-%
+%
+% * Otherwise, the `LGR font encoding`_ is set as `default font encoding`
+% (cf. fntguide_ section 5.3) for Greek.
+%
% Advantages:
-%
+%
% * Symbols from a Greek text font (e.g. the `CB fonts`_) can be accessed
% without the need for an explicite font-encoding switch anywhere in the
% text.
-%
+%
% * Unicode input of Greek characters is supported
-%
+%
% + via ``\usepackage[utf8]{inputenc}`` and ``lgrenc.dfu`` from
% greek-inputenc_ for 8-bit TeX or XeTeX/LuaTeX in 8-bit compatibility
% mode in any font encoding (see textalpha-doc.tex_).
-%
+%
% + natively by XeTeX/LuaTeX for Unicode fonts. As inputenc_ does not work
% with these engines, text input can be done via the Latin transcription
% or LICR but *not via literal Unicode characters* for 8-bit font encodings
% like LGR (see greek-euenc-doc.tex_).
-%
+%
% .. Attention:: The macros work well in any font encoding for single symbols.
% However, with 8-bit TeX engines, the automatic font-encoding switches
% behind the doors interfere with kerning between letters and replacement
% of accent+character with a pre-composed character.
-%
+%
% Therefore, Greek text should be written with the help of babel_ or
% polyglossia_ (setting the language to ``greek``) or wrapped in the
% provided ``ensuregreek`` macro. Using babel_ or polyglossia_ also helps
% to ensure correct hyphenation of Greek text.
-%
-%
+%
+%
% Usage
% =====
-%
+%
+% Ensure support for Greek characters in text mode with
+%
% .. code:: latex
-%
-% \usepackage{textalpha}
-%
+%
+% \usepackage{textalpha}
+%
+% eventually with the options_ to normalize symbols variants
+%
+% .. code:: latex
+%
+% \usepackage[normalize-symbols]{textalpha}
+%
+% and/or to use the semicolon as erotimatiko_ also in 8-bit TeX
+%
+% .. code:: latex
+%
+% \usepackage[normalize-symbols,keep-semicolon]{textalpha}
+%
+%
+% To give ``textalpha.sty`` a chance of finding out which `font encodings`_
+% are used, load it after fontspec_ and/or fontenc_.
+%
+%
+%
% For detailled examples see `<textalpha-doc.tex>`_ and `<textalpha-doc.pdf>`_
% (8-bit TeX and XeTeX/LuaTeX in 8-bit compatibility mode) as well as
% `<greek-euenc-doc.tex>`_ and `<greek-euenc-doc.pdf>`_ (XeTeX/LuaTeX with
% Unicode fonts).
-%
-%
+%
+% With XeTeX or LuaTex, Unicode fonts and LGR encoded 8-bit fonts can be used
+% in the same document (see greek-euenc-doc.tex_).
+%
+%
% Implementation
% ==============
-%
-% Requirements
-% ------------
-%
+%
+% Options
+% -------
+%
+% normalize-symbols
+% """""""""""""""""
+%
+% The "variant shape" symbol characters like ``03D1 GREEK THETA SYMBOL`` are
+% mathematical charcters for mathematical use
+% (similar to ``1D440 MATHEMATICAL ITALIC CAPITAL M``).
+% Unfortunately, some Greek texts sources in Unicode encoding mix letter and
+% symbol characters .
+%
+% The "normalize-symbols" option controls the handling of `variant shape
+% symbols`_ under 8-bit TeX:
+%
+% * The option activates a simple "folding" mechanism that merges ϰ and κ to
+% \textkappa etc. for text copied from external sources which may use the
+% GREEK SYMBOL characters in place of GREEK LETTERS,
+%
+% * Without this option, variant shape symbols in the input are reported as
+% errors to prevent information loss in cases where the distinction between
+% ϰ and κ is intended (e.g. in mathematical or scientific context).
+%
+% With XeTeX/LuaTeX and Unicode fonts, this option is ignored.
+% ::
+
+\newif\iftextalpha@normalizeSymbols
+\DeclareOption{normalize-symbols}{\textalpha@normalizeSymbolstrue}
+
+% keep-semicolon
+% """"""""""""""
+%
+% The erotimatiko_ looks like a semicolon but is a
+% **Greek question mark**:
+%
+% * The `LGR font encoding`_ uses the Latin question mark as input for the
+% `erotimatiko` and maps the semicolon to a middle dot (`ano teleia`).
+% * The Unicode standard provides the code point ``037E GREEK QUESTION MARK``
+% but says: "character ``003B SEMICOLON`` (and not 037E) is the preferred
+% character for Greek question mark".
+%
+% The ``keep-semicolon`` option allows to use the `semicolon as erotimatiko`_
+% in both, Xe/LuaTeX and 8-bit TeX. (The `ano teleia` can be input as
+% ``\textanoteleia`` or using character ``00B7 MIDDLE DOT``.)
+% With XeTeX/LuaTeX and Unicode fonts, this option is ignored.
+% ::
+
+\newif\iftextalpha@keepSemicolon
+\DeclareOption{keep-semicolon}{\textalpha@keepSemicolontrue}
+
+\ProcessOptions\relax
+
+% .. _font encoding:
+%
+% Font encodings
+% --------------
+%
+% With 8-bit LaTeX, the `LGR font encoding`_ is used for Greek characters. If
+% no Greek-supporting font encoding (EU1, EU2, or LGR) is declared, LGR is
+% loaded and set up as default Greek font encoding by this package.
+%
% With XeTeX or LuaTeX, there is one common input and font encoding --
% Unicode. 8-bit TeX font encodings are only used in compatibility mode or for
% fonts not available otherwise. For compatibility with the LaTeX font
@@ -115,30 +199,19 @@
% define LICR macros. We therefore explicitely load Greek LICR definitions for
% XeTeX/LuaTeX from `greek-euenc.def <greek-euenc.def.html>`_ which in turn
% includes `greek-fontenc.def <greek-fontenc.def.html>`_.
-%
-% With 8-bit LaTeX, the LGR font encoding is used for Greek characters. If no
-% Greek-supporting font encoding (EU1, EU2, or LGR) is declared, LGR is loaded
-% and set up as default Greek font encoding by this package.
-%
-% To give ``textalpha.sty`` a chance of finding out which font encodings are
-% used, load it after fontspec_ and/or fontenc_.
-%
-% Font encodings
-% """"""""""""""
-%
+%
+% .. _LGR font encoding: README.html#lgr
+%
% Ensure a Greek-supporting font encoding exists and supports Greek LICR
% macros:
-%
-% Load the Greek LICR definitions for Unicode if font encoding EU1 (XeTeX) or
-% EU2 (LuaTeX) is detected. [#EU]_ In an ideal world, this would be done in
-% the ``eu1enc.def`` (or ``eu2enc.def``) file of the euenc_ package. If none
-% of EU1, EU2, and LGR is declared, load ``lgrenc.def``:
-%
-% Re-set the ``\LastDeclaredEncoding``: Because fontenc loads font
-% encoding definition files only once, it may happen that another font
-% encoding is defined afterwards --- for example fontspec_ leaves
-% ``\LastDeclaredEncoding`` at ``T3`` (tipa), because it inputs the xunicode_
-% package which in turn loads ``t3enc.def``. ::
+%
+% * Load the Greek LICR definitions for Unicode if font encoding EU1 (XeTeX)
+% or EU2 (LuaTeX) is detected. [#EU]_ (In an ideal world, this would be done
+% in the ``eu1enc.def`` (or ``eu2enc.def``) file of the euenc_ package.)
+% * Re-set ``\LastDeclaredEncoding`` (used in some included font-encoding files).
+% * If none of EU1, EU2, or LGR is declared, load ``lgrenc.def``.
+%
+% ::
\@ifl@aded{def}{eu1enc}{
\renewcommand{\LastDeclaredEncoding}{EU1}
@@ -150,16 +223,13 @@
}{% else
\@ifl@aded{def}{lgrenc}{
% LGR already declared and set up
+ \renewcommand{\LastDeclaredEncoding}{LGR}
}{
\input{lgrenc.def}
}
}
}
-% .. [#EU] The two different (pseudo) font encodings allow different font setups for
-% XeTeX vs. LuaTeX using differently named ``*.fd`` files (see euenc_ for
-% details).
-%
% The package hyperref_ defines the PU font encoding which also supports
% (monotonic) Greek. It currently misses polytonic greek and the
% ``\greekscript`` and ``\ensuregreek`` TextCommands::
@@ -169,13 +239,18 @@
\ProvideTextCommand{\ensuregreek}{PU}[1]{#1}}
{}
+% .. [#EU] The two different (pseudo) font encodings allow different font
+% setups for XeTeX vs. LuaTeX using differently named ``*.fd`` files (see
+% euenc_ for details).
+%
+%
% Symbol macros for breathings
-% """"""""""""""""""""""""""""
-%
+% ----------------------------
+%
% In the Latin transcription provided by LGR, breathing accents (Dasia and
% Psili) are input as < and >. We provide the corresponding NFSS macro accents
% (moved here from `greek-fontenc.def`_).
-%
+%
% As Xe/LuaTeX may use LGR in combination with EU1 or EU2, we define the
% macros for both, LGR and Unicode font encodings (if they are defined)::
@@ -205,7 +280,7 @@
% Default declarations
% --------------------
-%
+%
% The following definitions ensure that the Greek LICR macros can be used
% anywhere in the document also with 8-bit TeX by declaring LGR as their
% default font encoding. Abort here, if the LGR font encoding is not defined::
@@ -215,15 +290,16 @@
% else return:
{\expandafter\endinput}
+
% greekscript, ensuregreek
% """"""""""""""""""""""""
-%
+%
% The ``\greekscript`` declaration ensures the current font encoding supports
% the Greek script. ``greek-fontenc.def`` sets this to the empty declaration
% for font encodings that do so. This is currently used by ``lgrenc.def``
% (LGR) and ``greek-euenc.def`` (Greek LICR macros for EU1 and EU2).
-%
-%
+%
+%
% We define LGR as default encoding for Greek text. We use
% ``\ProvideTextCommandDefault`` to enable the author or other packages to use
% an alternative definition (see [fntguide_])::
@@ -236,26 +312,26 @@
\ProvideTextCommandDefault{\ensuregreek}[1]{\leavevmode{\greekscript #1}}
% .. The [fntguide_] writes
-%
+%
% Note that ``\DeclareTextAccentDefault`` can be used on any
% one-argument encoding-specific command, not just those defined with
% ``\DeclareTextAccent``.
-%
+%
% However, the simpler alternative
% ``\DeclareTextAccentDefault{\ensuregreek}{LGR}`` fails with the table of
% Unicode characters in the test document `<textalpha-doc.tex>`__:
-%
+%
% ``! You can't use a prefix with `end-group character }'.``
-%
+%
% Eventually, all font encodings supporting Greek script (e.g. LGI, PU, EU1,
% EU2) will declare ``\ensuregreek`` as text command that passes the argument
% unchanged. This way, kerning and selection of precomposed glyphs would work
% also for cases like ``\ensuregreek{\'A}U``.
-%
-%
+%
+%
% Greek Alphabet
% """"""""""""""
-%
+%
% Define the ``text*`` marcos as default for all font encodings::
\DeclareTextSymbolDefault{\textAlpha}{LGR}
@@ -312,10 +388,10 @@
\DeclareTextSymbolDefault{\textomega}{LGR}
% Additional Greek symbols
-% ''''''''''''''''''''''''
-%
+% """"""""""""""""""""""""
+%
% Including alias names for compatibility with hyperref's puenc.def.
-%
+%
% Ancient Greek Numbers (Athenian Numerals)::
\DeclareTextSymbolDefault{\textpentedeka}{LGR} % GREEK ACROPHONIC ATTIC FIFTY
@@ -350,9 +426,40 @@
\DeclareTextSymbolDefault{\textnumeralsigngreek}{LGR} % (puenc.def)
\DeclareTextSymbolDefault{\textnumeralsignlowergreek}{LGR} % (puenc.def)
+% variant shape symbols
+% '''''''''''''''''''''
+%
+% Mathematical notation uses variant shapes of some Greek letters as
+% additional symbols. There are separate code points for the symbol variants
+% in Unicode but not in the LGR font encoding used for Greek in 8-bit TeX.
+% The variations have no syntactic meaning in Greek text. ::
+
+\DeclareTextSymbolDefault{\textbetasymbol}{LGR} % ϐ GREEK BETA SYMBOL
+\DeclareTextSymbolDefault{\textthetasymbol}{LGR} % ϑ $\vartheta$ GREEK THETA SYMBOL
+\DeclareTextSymbolDefault{\textphisymbol}{LGR} % ϕ $\phi$ GREEK PHI SYMBOL
+\DeclareTextSymbolDefault{\textpisymbol}{LGR} % ϖ $\varpi$ GREEK PI SYMBOL
+\DeclareTextSymbolDefault{\textkappasymbol}{LGR} % ϰ GREEK KAPPA SYMBOL
+\DeclareTextSymbolDefault{\textrhosymbol}{LGR} % ϱ $\varrho$ GREEK RHO SYMBOL
+\DeclareTextSymbolDefault{\textThetasymbol}{LGR} % ϴ GREEK CAPITAL THETA SYMBOL
+\DeclareTextSymbolDefault{\textepsilonsymbol}{LGR} % ϵ $\epsilon$ GREEK LUNATE EPSILON SYMBOL
+
+% Define compatibility mappings if the normalize-symbols_ option is set::
+
+\iftextalpha@normalizeSymbols
+ \DeclareTextCommand{\textbetasymbol} {LGR}{\textbeta}
+ \DeclareTextCommand{\textthetasymbol} {LGR}{\texttheta}
+ \DeclareTextCommand{\textphisymbol} {LGR}{\textphi}
+ \DeclareTextCommand{\textpisymbol} {LGR}{\textpi}
+ \DeclareTextCommand{\textkappasymbol} {LGR}{\textkappa}
+ \DeclareTextCommand{\textrhosymbol} {LGR}{\textrho}
+ \DeclareTextCommand{\textThetasymbol} {LGR}{\textTheta}
+ \DeclareTextCommand{\textepsilonsymbol}{LGR}{\textepsilon}
+\fi
+
+
% Diacritics
% """"""""""
-%
+%
% Greek diacritics via "named" macros::
\DeclareTextAccentDefault{\accdasia}{LGR}
@@ -391,13 +498,34 @@
% Auxiliary macros
% """"""""""""""""
-%
+%
% ``\MakeUppercase`` requires three internal commands::
\DeclareTextAccentDefault{\LGR@accdropped}{LGR}
\DeclareTextAccentDefault{\LGR@accDialytika}{LGR}
\DeclareTextAccentDefault{\LGR@hiatus}{LGR}
+
+% semicolon as erotimatiko
+% """"""""""""""""""""""""
+%
+% The text command ``\textsemicolon`` inserts ``\texterotimatiko``
+% in LGR font encoding and a "normal" semicolon else::
+
+\ProvideTextCommandDefault{\textsemicolon}{;}
+\ProvideTextCommand{\textsemicolon}{LGR}{\texterotimatiko}
+
+% The LGR font encoding maps ";" to a middle dot (ano teleia). With the
+% keep-semicolon_ option, the semicolon is made an active character and calls
+% ``\textsemicolon``::
+
+\iftextalpha@keepSemicolon
+ \catcode`;=\active
+ \newcommand{;}{\textsemicolon}
+\fi
+
+
+
% .. References
% ----------
% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
@@ -407,7 +535,7 @@
% .. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
% .. _fontenc: http://www.ctan.org/pkg/fontenc
% .. _fontspec: http://www.ctan.org/pkg/fontspec
-% .. _fntguide: http://www.ctan.org/tex-archive/macros/latex/doc/fntguide.pdf
+% .. _fntguide: http://mirror.ctan.org/macros/latex/doc/fntguide.pdf
% .. _greek-fontenc: http://www.ctan.org/pkg/greek-fontenc
% .. _greek-inputenc: http://www.ctan.org/pkg/greek-inputenc
% .. _hyperref: http://www.ctan.org/pkg/hyperref
@@ -415,3 +543,5 @@
% .. _polyglossia: http://www.ctan.org/pkg/polyglossia
% .. _textgreek: http://www.ctan.org/pkg/textgreek
% .. _xunicode: http://www.ctan.org/pkg/xunicode
+%
+% .. _erotimatiko: https://en.wikipedia.org/wiki/Question_mark#Erotimatiko