diff options
author | Karl Berry <karl@freefriends.org> | 2013-06-24 23:45:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-06-24 23:45:45 +0000 |
commit | d6f69adcdd2a4f41183336025041848a5dee6398 (patch) | |
tree | 89563d7c7df821eb03996563d1d352d89e96d160 | |
parent | 8e6beb966f4cb90d2deac853ee674032892fc7ab (diff) |
babel-greek (24jun13)
git-svn-id: svn://tug.org/texlive/trunk@30912 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/README | 56 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/README.html | 77 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/greek.pdf | bin | 206574 -> 208265 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/test-greek.pdf | bin | 0 -> 187861 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/test-greek.tex | 332 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.pdf | bin | 0 -> 47917 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.tex | 306 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/usage.pdf | bin | 172121 -> 172121 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-greek/usage.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/babel-greek/greek.dtx | 513 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel-greek/greek.ldf | 340 |
11 files changed, 1272 insertions, 354 deletions
diff --git a/Master/texmf-dist/doc/generic/babel-greek/README b/Master/texmf-dist/doc/generic/babel-greek/README index 6cead21490d..ee2b1a991f7 100644 --- a/Master/texmf-dist/doc/generic/babel-greek/README +++ b/Master/texmf-dist/doc/generic/babel-greek/README @@ -17,23 +17,42 @@ In 1997, Apostolos Syropoulos added support for the Greek language to the "babel" package. The file ``greek.ldf`` provides options for monotonic (single-diacritic) and polytonic (multiple-diacritic) modes of writing. -Currently, it only works with LaTeX and 8-bit TeX engines. Users of the -XeTeX and LuaTeX engines are advised to use the polyglossia_ package -instead. +There is now partial support for Unicode-aware TeX engines (XeTeX/LuaTeX). +However, users of the XeTeX and LuaTeX engines are advised to use the +polyglossia_ package. News ---- -:2013-05-17: * New maintainer. - * The encoding definition file ``lgrenc.def`` moved to the - greek-fontenc_ package. +.. class:: borderless + +===== ========== =========================================================== +1.4 2013-05-17 New maintainer. +.. The encoding definition file ``lgrenc.def`` moved to the + greek-fontenc_ package. + +1.5 2013-06-21 bugfixes and cleanup, +.. LICR macros in string definitions, +.. LGR font encoding not used with XeTeX/LuaTeX, +.. input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX. +===== ========== =========================================================== + Requirements ------------ -The "babel-greek" package requires the babel_ base package, `Greek text -fonts`_ in the LGR encoding, and the encoding definition file ``lgrenc.def`` -from the greek-fontenc_ package. +Typesetting Greek texts requires a `font containing Greek glyphs`__. + +The "babel-greek" package requires the babel_ base package. `Greek text +fonts`_ in the LGR encoding and the encoding definition file ``lgrenc.def`` +from the greek-fontenc_ package are required with 8-bit TeX engines. + +For correct up/downcasing with XeTeX/LuaTeX, the file ``xgreek-fixes.def`` +from polyglossia_ is required. + +"plain" TeX is currently not supported. Patches are welcome. + +__ http://www.ctan.org/topic/font-greek Installation @@ -58,20 +77,30 @@ Otherwise, make sure LaTeX can find the required files: Usage ----- -Pass the "greek" or "polutonikogreek" options to babel:: +Pass the "greek" option to babel:: \usepackage[greek]{babel} +For polytonic greek, set the language attribute "polutoniko":: + + \languageattribute{greek}{polutoniko} + For details see `<usage.pdf>`_, `<greek.pdf>`_ and the babel_ documentation. Literal input of Greek characters is possible with the greek-inputenc_ -package. +package and XeTeX/LuaTeX. Greek text fonts ---------------- +With the XeTeX or LuaTeX engines, the user should ensure that the choosen +font contains the required glyphs (the default Latin Modern fonts miss +them). Examples for suitable fonts are the CM-unicode_ or the `Linux +Libertine`_ OpenType fonts as well as any system-wide installed OTF fonts +that support Greek (e.g. `Deja Vu`_). + 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), +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. @@ -97,11 +126,14 @@ font-encoding comprising Latin and Greek like the hypothetic T7 or Unicode .. _babel: http://www.ctan.org/pkg/babel .. _fontspec: http://www.ctan.org/pkg/fontspec .. _CB Fonts: http://www.ctan.org/pkg/cbgreek-complete +.. _CM-unicode: http://www.ctan.org/pkg/cm-unicode +.. _Deja Vu: http://dejavu-fonts.org .. _grtimes: http://www.ctan.org/pkg/grtimes .. _greek-fontenc: http://www.ctan.org/pkg/greek-fontenc .. _greek-inputenc: http://www.ctan.org/pkg/greek-inputenc .. _GFS font collection: http://www.ctan.org/pkg/gfs .. _Kerkis: http://www.ctan.org/pkg/kerkis .. _lgrx: http://www.ctan.org/pkg/lgrx +.. _Linux Libertine: http://www.ctan.org/pkg/libertine .. _polyglossia: http://www.ctan.org/pkg/polyglossia .. _substitutefont: http://www.ctan.org/pkg/substitutefont diff --git a/Master/texmf-dist/doc/generic/babel-greek/README.html b/Master/texmf-dist/doc/generic/babel-greek/README.html index a278d42b4e8..680be11a675 100644 --- a/Master/texmf-dist/doc/generic/babel-greek/README.html +++ b/Master/texmf-dist/doc/generic/babel-greek/README.html @@ -32,26 +32,59 @@ Greek language and script via the <a class="reference external" href="http://www <p>In 1997, Apostolos Syropoulos added support for the Greek language to the “babel” package. The file <tt class="literal">greek.ldf</tt> provides options for monotonic (single-diacritic) and polytonic (multiple-diacritic) modes of writing.</p> -<p>Currently, it only works with LaTeX and 8-bit TeX engines. Users of the -XeTeX and LuaTeX engines are advised to use the <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> package -instead.</p> +<p>There is now partial support for Unicode-aware TeX engines (XeTeX/LuaTeX). +However, users of the XeTeX and LuaTeX engines are advised to use the +<a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> package.</p> <div class="section" id="news"> <h1>News</h1> -<dl class="field-list simple"> -<dt>2013-05-17</dt> -<dd><ul class="simple"> -<li><p>New maintainer.</p></li> -<li><p>The encoding definition file <tt class="literal">lgrenc.def</tt> moved to the -<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></li> -</ul> -</dd> -</dl> +<table class="borderless"> +<colgroup> +<col width="7%" /> +<col width="14%" /> +<col width="80%" /> +</colgroup> +<tbody> +<tr><td><p>1.4</p></td> +<td><p>2013-05-17</p></td> +<td><p>New maintainer.</p></td> +</tr> +<tr><td><!-- --> +</td> +<td> </td> +<td><p>The encoding definition file <tt class="literal">lgrenc.def</tt> moved to the +<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></td> +</tr> +<tr><td><p>1.5</p></td> +<td><p>2013-06-21</p></td> +<td><p>bugfixes and cleanup,</p></td> +</tr> +<tr><td><!-- --> +</td> +<td> </td> +<td><p>LICR macros in string definitions,</p></td> +</tr> +<tr><td><!-- --> +</td> +<td> </td> +<td><p>LGR font encoding not used with XeTeX/LuaTeX,</p></td> +</tr> +<tr><td><!-- --> +</td> +<td> </td> +<td><p>input “xgreek-fixes.def” from <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></td> +</tr> +</tbody> +</table> </div> <div class="section" id="requirements"> <h1>Requirements</h1> -<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package, <a class="reference internal" href="#greek-text-fonts">Greek text -fonts</a> in the LGR encoding, and the encoding definition file <tt class="literal">lgrenc.def</tt> -from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p> +<p>Typesetting Greek texts requires a <a class="reference external" href="http://www.ctan.org/topic/font-greek">font containing Greek glyphs</a>.</p> +<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package. <a class="reference internal" href="#greek-text-fonts">Greek text +fonts</a> in the LGR encoding and the encoding definition file <tt class="literal">lgrenc.def</tt> +from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package are required with 8-bit TeX engines.</p> +<p>For correct up/downcasing with XeTeX/LuaTeX, the file <tt class="literal"><span class="pre">xgreek-fixes.def</span></tt> +from <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> is required.</p> +<p>“plain” TeX is currently not supported. Patches are welcome.</p> </div> <div class="section" id="installation"> <h1>Installation</h1> @@ -69,17 +102,25 @@ ending in <tt class="literal">.dtx</tt> through LaTeX.</p></li> </div> <div class="section" id="usage"> <h1>Usage</h1> -<p>Pass the “greek” or “polutonikogreek” options to babel:</p> +<p>Pass the “greek” option to babel:</p> <pre class="literal-block">\usepackage[greek]{babel} </pre> +<p>For polytonic greek, set the language attribute “polutoniko”:</p> +<pre class="literal-block">\languageattribute{greek}{polutoniko} +</pre> <p>For details see <a class="reference external" href="usage.pdf">usage.pdf</a>, <a class="reference external" href="greek.pdf">greek.pdf</a> and the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> documentation. Literal input of Greek characters is possible with the <a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> -package.</p> +package and XeTeX/LuaTeX.</p> </div> <div class="section" id="greek-text-fonts"> <h1>Greek text fonts</h1> +<p>With the XeTeX or LuaTeX engines, the user should ensure that the choosen +font contains the required glyphs (the default Latin Modern fonts miss +them). Examples for suitable fonts are the <a class="reference external" href="http://www.ctan.org/pkg/cm-unicode">CM-unicode</a> or the <a class="reference external" href="http://www.ctan.org/pkg/libertine">Linux +Libertine</a> OpenType fonts as well as any system-wide installed OTF fonts +that support Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>).</p> <p>The LGR font encoding is the de-facto standard for typesetting Greek with -(8-bit) LaTeX. Fonts in this encoding include the <a class="reference external" href="http://www.ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), +8-bit LaTeX. Fonts in this encoding include the <a class="reference external" href="http://www.ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), <a class="reference external" href="http://www.ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="http://www.ctan.org/pkg/kerkis">Kerkis</a> (matching URW Bookman), and the <a class="reference external" href="http://www.ctan.org/pkg/gfs">GFS font collection</a>. Setup of these fonts as Greek variant to matching Latin fonts is facilitated by the <a class="reference external" href="http://www.ctan.org/pkg/substitutefont">substitutefont</a> package.</p> diff --git a/Master/texmf-dist/doc/generic/babel-greek/greek.pdf b/Master/texmf-dist/doc/generic/babel-greek/greek.pdf Binary files differindex ad572570849..5ea9214b5fb 100644 --- a/Master/texmf-dist/doc/generic/babel-greek/greek.pdf +++ b/Master/texmf-dist/doc/generic/babel-greek/greek.pdf diff --git a/Master/texmf-dist/doc/generic/babel-greek/test-greek.pdf b/Master/texmf-dist/doc/generic/babel-greek/test-greek.pdf Binary files differnew file mode 100644 index 00000000000..1acf4b34c40 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel-greek/test-greek.pdf diff --git a/Master/texmf-dist/doc/generic/babel-greek/test-greek.tex b/Master/texmf-dist/doc/generic/babel-greek/test-greek.tex new file mode 100644 index 00000000000..fff605eb988 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel-greek/test-greek.tex @@ -0,0 +1,332 @@ +\documentclass[a4paper]{article} +\usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader +\usepackage[LGR,T1]{fontenc} +\usepackage[utf8]{inputenc} +% \usepackage{textalpha} +\usepackage{textcomp} +\usepackage{hyperref,bookmark} +\usepackage{parskip} +\usepackage{booktabs} + +\usepackage{lmodern} +% \usepackage{kerkis} +% \usepackage{gfsdidot} + +\usepackage[greek,english]{babel} +% \languageattribute{greek}{polutoniko} + +\DeclareTextCommandDefault{\ensuregreek}{\textgreek} + +\begin{document} + +% \message{Latin encoding is \latinencoding} + +\section*{Test the Greek support for Babel} + +The babel option ``greek'' activates the support for the Greek language +defined in the file ``greek.ldf'' (source ``greek.dtx''). + +\section{Language Switch} + +The declaration \verb|\selectlanguage| switches between languages. + +\selectlanguage{greek} +Ὁ Σύλλογος Ἑλλήνων Φίλων τοῦ TeX, γνωστὸς καὶ ὡς +«Ἕλληνες Φίλοι τοῦ \TeX» (ΕΦΤ γιὰ συντομία) ἀποτελεῖ τὴν ἐπίσημη Τοπικὴ Ὁμάδα +τοῦ \TeX{} ἢ τὸ ἑλληνικὸ \textlatin{\TeX{} LUG (Local Users Group)}. +\selectlanguage{english} + +The macro \verb|\foreignlanguage| sets its second argument in the specified +language. This is intended for short text parts like +\foreignlanguage{greek}{Βιβλιοθήκη}. + +\section{Font Encoding} + +In Greek text parts, the font encoding is automatically set to LGR if an +8-bit TeX engine is used. (See test-unicode-greek.tex for usage of +babel-greek with XeTeX or LuaTeX.) + +LGR has Greek characters in the slots reserved in a TeX \emph{standard text +font encoding}. This means you need an explicit font encoding change for +every Latin letter and some other symbols if the current font encoding is +LGR. + +Switching between Latin and Greek script/font encoding is possible without +switching the Babel language using the declarations \verb|\latintext|, +\verb|\greektext| and the macros \verb|\textlatin|, \verb|\textgreek|. These +commands do not start a new paragraph: + +\greektext Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- +\latintext Friends (\textgreek{F\'ilwn}) of TeX. + +``greek.ldf'' has some workarounds, so that macros relying on Latin +characters in the ``right'' positions keep working. We test, that these +definitions do not overwrite the selection of pre-composed characters for +``copyright'' and ``registered trade mark'' by ``textcomp'' (try copy and +paste from the PDF output): + +Greek (LGR): \ensuregreek{Α \& Ω, \textcopyright{} \textregistered{} +\texttrademark{}, © ® ™ } \\ +Latin: A \& O. + +To prevent Roman numerals being typeset in Greek letters we need to adopt +the internal LaTeX commands. Note that this may cause errors when roman +numerals are used in a situation where the macros need to be expanded: + +\makeatletter +Greek: \ensuregreek{ +\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975} +\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975} +} + +Latin: +\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975} +\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975} +\makeatother + +Enumerated lists: + +\selectlanguage{greek} +\begin{enumerate} + \item $\leftarrow$ 1 + \begin{enumerate} + \item $\leftarrow$ 1.1 + \begin{enumerate} + \item $\leftarrow$ 1.1.1 + \begin{enumerate} + \item $\leftarrow$ 1.1.1.1 + \item $\leftarrow$ 1.1.1.2 + \end{enumerate} + \item $\leftarrow$ 1.1.2 + \end{enumerate} + \end{enumerate} +\end{enumerate} +\selectlanguage{english} + + +\section{MakeUppercase, MakeLowercase} + +Capital Greek letters have diacritics (except the dialytika and sub-iota) to +the left (instead of above) and drop them in uppercase, e.g. +\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}. + +Upcased letters with diacritics keep the dialytika. This is implemented for +all input variants of diacritics with dialytika. (Babel has ``composite +command'' definitions to ensure this also works for accent characters +"upcased" to the charcter No 159.) + +\foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i + \"u \"\'u \"\`u \"\~u +$\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i + \"u \"\'u \"\`u \"\~u }} + +Tonos and dasia mark a \emph{hiatus} (break-up of a diphtong) if +placed on the first vowel of a diphtong +(\ensuregreek{\'ai, \'au, \'ei, \'>ai, \>'au, \>'ei}). +A dialytika must be placed on the second vowel if they are dropped: +(\ensuregreek{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \>'au, \>'ei}}). + +\selectlanguage{greek} +% 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} +\selectlanguage{english} + +There are several alternative styles for the capitalized sub-iota. + +The following subsections test MakeUppercase and MakeLowercase with all +characters defined in lgrenc.dfu: + +\subsection{Greek and Coptic} + +\newcommand{\GreekAndCoptic}{\ensuregreek{ +ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}} +\newcommand{\greekandcoptic}{\ensuregreek{ +άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ}} + +Characters of the Greek and Coptic Unicode Block: + +\begin{quote} + \GreekAndCoptic\\ + \greekandcoptic +\end{quote} + +MakeUppercase: + +\begin{quote} + \MakeUppercase{\GreekAndCoptic}\\ + \MakeUppercase{\greekandcoptic} +\end{quote} + +Letters and sub-iota upcased, other diacritics except dialytika dropped. + +There is no capital Koppa in LGR, therefore \ensuregreek{ϟ} is left +unchanged with MakeUppercase. + + +MakeLowercase: + +\begin{quote} + \MakeLowercase{\GreekAndCoptic}\\ + \MakeLowercase{\greekandcoptic} +\end{quote} + +The lowercase of \ensuregreek{Σ} is the «auto-sigma» (\verb+\textautosigma+): +\ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. Add a ZWNJ or use the +\verb+\noboundary+ macro to prevent conversion to final sigma: +\ensuregreek{\MakeLowercase{ΣΣ}}. The lowercase of GREEK LETTER STIGMA +\ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} not \verb|\textvarstigma| +(\ensuregreek\textvarstigma). + +% \newpage + +\subsection{Greek extended} + +MakeUppercase: + +\selectlanguage{greek} + +\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ +\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ +\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ +\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ +\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ +\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ +\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ +\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ +\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ +\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ +\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ +\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ +\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ +\MakeUppercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ +\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ +\MakeUppercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } +\selectlanguage{english} + +MakeLowercase: + +\selectlanguage{greek} +\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ +\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ +\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ +\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ +\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ +\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ +\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ +\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ +\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ +\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ +\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ +\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ +\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ +\MakeLowercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ +\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ +\MakeLowercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } +\selectlanguage{english} + +\section{Babel Strings} + +Babel defines macros for several autogenerated strings so that they may +appear in the choosen language. babel-greek uses LICRs in order to let the +string macros work independent of the font encoding, in both 8-bit and +Unicode-aware TeX. + +\subsection{Captions} + +\selectlanguage{greek} +\prefacename, +\refname, +\abstractname, +\bibname, +\chaptername, +\appendixname, +\contentsname, +\listfigurename , +\listtablename, +\indexname, +\figurename, +\tablename, +\partname, +\enclname, +\ccname, +\headtoname, +\pagename, +\seename, +\alsoname, +\proofname, +\glossaryname, +\selectlanguage{english} + + +\subsection{Months} + +\selectlanguage{greek} +\newcounter{foo} +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\selectlanguage{english} + +\section{Greek Numerals} + +See greek.pdf for the formation rules of Greek numerals. +Some examples: + +\selectlanguage{greek} + +\greeknumeral{1}, +\greeknumeral{2}, +\greeknumeral{3}, +\greeknumeral{4}, +\greeknumeral{5}, +\greeknumeral{6}, +\greeknumeral{7}, +\greeknumeral{8}, +\greeknumeral{9}, +\greeknumeral{10}, +\greeknumeral{11}, +\greeknumeral{12}, +\greeknumeral{20}, +\greeknumeral{345}, +\greeknumeral{500}, +\greeknumeral{1997}, +\greeknumeral{2013}, + +\Greeknumeral{1}, +\Greeknumeral{2}, +\Greeknumeral{3}, +\Greeknumeral{4}, +\Greeknumeral{5}, +\Greeknumeral{6}, +\Greeknumeral{7}, +\Greeknumeral{8}, +\Greeknumeral{9}, +\Greeknumeral{10}, +\Greeknumeral{11}, +\Greeknumeral{12}, +\Greeknumeral{20}, +\Greeknumeral{345}, +\Greeknumeral{500}, +\Greeknumeral{1997}, +\Greeknumeral{2013}, + + +\selectlanguage{english} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.pdf b/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.pdf Binary files differnew file mode 100644 index 00000000000..5975a681d1b --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.pdf diff --git a/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.tex b/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.tex new file mode 100644 index 00000000000..d667027a112 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel-greek/test-unicode-greek.tex @@ -0,0 +1,306 @@ +\documentclass[a4paper]{article} +% \usepackage{textcomp} +\usepackage{hyperref,bookmark} +\usepackage{parskip} +\usepackage{booktabs} + +\usepackage{fontspec} +\usepackage{libertineotf} + +\usepackage[greek,english]{babel} +% \languageattribute{greek}{polutoniko} + +\DeclareTextCommandDefault{\ensuregreek}{\textgreek} + +\begin{document} + +\section*{Greek support for Babel with XeTeX/LuaTeX} + +The babel option ``greek'' activates the support for the Greek language +defined in the file ``greek.ldf'' (source ``greek.dtx''). + +Typesetting Greek texts requires a font containing Greek letters. With the +XeTeX or LuaTeX engines, the user should ensure that the choosen font +contains the required glyphs (the default Latin Modern fonts miss them). +Examples for suitable fonts are the ``Deja Vu'' or the ``Linux Libertine'' +OpenType fonts. + + +\section{Language Switch} + +The declaration \verb|\selectlanguage| switches between languages. + +\selectlanguage{greek} +Ὁ Σύλλογος Ἑλλήνων Φίλων τοῦ TeX, γνωστὸς καὶ ὡς +«Ἕλληνες Φίλοι τοῦ \TeX» (ΕΦΤ γιὰ συντομία) ἀποτελεῖ τὴν ἐπίσημη Τοπικὴ Ὁμάδα +τοῦ \TeX{} ἢ τὸ ἑλληνικὸ \TeX{} LUG (Local Users Group). +\selectlanguage{english} + +The macro \verb|\foreignlanguage| sets its second argument in the specified +language. This is intended for short text parts like +\foreignlanguage{greek}{Βιβλιοθήκη}. + +\section{Font Encoding} + +In Greek text parts, the font encoding is automatically set to LGR if an +8-bit TeX engine is used. With XeTeX or LuaTeX, the macros +\verb|\greektext| and \verb|\textgreek| don't change the font encoding. +Latin characters can be used also in Greek text parts. +Input via the Latin transcription defined in LGR is not possible. + +\greektext Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- +\latintext Friends (\textgreek{F\'ilwn}) of TeX. + + +Enumerated lists use Greek characters/numerals in the second and fourth level. +This requires support for Greek LICR macros in XeTeX/LuaTeX (currently +missing). + +\selectlanguage{greek} +\begin{enumerate} + \item $\leftarrow$ 1 +% \begin{enumerate} +% \item $\leftarrow$ 1.1 +% \begin{enumerate} +% \item $\leftarrow$ 1.1.1 +% \begin{enumerate} +% \item $\leftarrow$ 1.1.1.1 +% \item $\leftarrow$ 1.1.1.2 +% \end{enumerate} +% \item $\leftarrow$ 1.1.2 +% \end{enumerate} +% \end{enumerate} +\end{enumerate} +\selectlanguage{english} + + + +\section{MakeUppercase, MakeLowercase} + +Capital Greek letters have diacritics (except the dialytika and sub-iota) to +the left (instead of above) and drop them in uppercase, e.g. +\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}. + +% Upcased letters with diacritics keep the dialytika. This is implemented for +% all input variants of diacritics with dialytika. (Babel has ``composite +% command'' definitions to ensure this also works for accent characters +% "upcased" to the charcter No 159.) + +% \foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i +% \"u \"\'u \"\`u \"\~u +% $\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i +% \"u \"\'u \"\`u \"\~u }} + +Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if +placed on the first vowel of a diphtong +((άι, άυ, έι, ἄι, ἄυ, ἔι). +A dialytika must be placed on the second vowel if they are dropped: +(\foreignlanguage{greek}{\MakeUppercase{άι, άυ, έι, ἄι, ἄυ, ἔι}}). +This does not work (yet?) with XeTeX/LuaTeX. + +% \selectlanguage{greek} +% % 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} +% \selectlanguage{english} + +There are several alternative styles for the capitalized sub-iota. + +The following subsections test MakeUppercase and MakeLowercase with all +characters defined in lgrenc.dfu: + +\subsection{Greek and Coptic} + +\newcommand{\GreekAndCoptic}{ +ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ} +\newcommand{\greekandcoptic}{ +άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ} + +Characters of the Greek and Coptic Unicode Block: + +\begin{quote} + \GreekAndCoptic\\ + \greekandcoptic +\end{quote} + +MakeUppercase: + +\begin{quote} + \MakeUppercase{\GreekAndCoptic}\\ + \MakeUppercase{\greekandcoptic} +\end{quote} + +Letters upcased, diacritics except dialytika dropped. OK. + +Ϡ (Sampi) $\mapsto$ \MakeUppercase{Ϡ} (Kappa) and +ϡ (sampi) $\mapsto$ \MakeUppercase{ϡ} (Rho) seems a bug +(in Xe/LuaTeX or xgreek?). + +MakeLowercase: + +\begin{quote} + \MakeLowercase{\GreekAndCoptic}\\ + \MakeLowercase{\greekandcoptic} +\end{quote} + +The lowercase of Σ is σ (GREEK SMALL LETTER SIGMA, with LGR, it is +\verb|\textautosigma|). The lowercase of GREEK LETTER STIGMA Ϛ is +\MakeLowercase{Ϛ}. + +% \newpage + +\subsection{Greek extended} + +MakeUppercase: + +\selectlanguage{greek} + +\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ +\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ +\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ +\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ +\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ +\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ +\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ +\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ +\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ +\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ +\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ +\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ +\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ +\MakeUppercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ +\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ +\MakeUppercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } +\selectlanguage{english} + +MakeLowercase: + +\selectlanguage{greek} +\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ +\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ +\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ +\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ +\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ +\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ +\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ +\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ +\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ +\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ +\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ +\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ +\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ +\MakeLowercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ +\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ +\MakeLowercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } +\selectlanguage{english} + +\section{Babel Strings} + +Babel defines macros for several autogenerated strings so that they may +appear in the choosen language. babel-greek uses LICR macross in order to +let the string macros work independent of the font encoding. + +This requires support for Greek LICR macros in XeTeX/LuaTeX (currently +missing). + +\end{document} + + +\subsection{Captions} + +\selectlanguage{greek} +\prefacename, +\refname, +\abstractname, +\bibname, +\chaptername, +\appendixname, +\contentsname, +\listfigurename , +\listtablename, +\indexname, +\figurename, +\tablename, +\partname, +\enclname, +\ccname, +\headtoname, +\pagename, +\seename, +\alsoname, +\proofname, +\glossaryname, +\selectlanguage{english} + + +\subsection{Months} + +\selectlanguage{greek} +\newcounter{foo} +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\stepcounter{foo} \month=\value{foo} \today \\ +\selectlanguage{english} + +\section{Greek Numerals} + +See greek.pdf for the formation rules of Greek numerals. +Some examples: + +\selectlanguage{greek} + +\greeknumeral{1}, +\greeknumeral{2}, +\greeknumeral{3}, +\greeknumeral{4}, +\greeknumeral{5}, +\greeknumeral{6}, +\greeknumeral{7}, +\greeknumeral{8}, +\greeknumeral{9}, +\greeknumeral{10}, +\greeknumeral{11}, +\greeknumeral{12}, +\greeknumeral{20}, +\greeknumeral{345}, +\greeknumeral{500}, +\greeknumeral{1997}, +\greeknumeral{2013}, + +\Greeknumeral{1}, +\Greeknumeral{2}, +\Greeknumeral{3}, +\Greeknumeral{4}, +\Greeknumeral{5}, +\Greeknumeral{6}, +\Greeknumeral{7}, +\Greeknumeral{8}, +\Greeknumeral{9}, +\Greeknumeral{10}, +\Greeknumeral{11}, +\Greeknumeral{12}, +\Greeknumeral{20}, +\Greeknumeral{345}, +\Greeknumeral{500}, +\Greeknumeral{1997}, +\Greeknumeral{2013}, + + +\selectlanguage{english} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel-greek/usage.pdf b/Master/texmf-dist/doc/generic/babel-greek/usage.pdf Binary files differindex 4a290ee2b22..2695cdfc7b5 100644 --- a/Master/texmf-dist/doc/generic/babel-greek/usage.pdf +++ b/Master/texmf-dist/doc/generic/babel-greek/usage.pdf diff --git a/Master/texmf-dist/doc/generic/babel-greek/usage.tex b/Master/texmf-dist/doc/generic/babel-greek/usage.tex index 87f119de614..c3c4bde820d 100644 --- a/Master/texmf-dist/doc/generic/babel-greek/usage.tex +++ b/Master/texmf-dist/doc/generic/babel-greek/usage.tex @@ -33,7 +33,7 @@ \newcommand{\sg}{\selectlanguage{greek}} \newcommand{\sa}{\selectlanguage{american}} \begin{document} -\show\extrasgreek +%\show\extrasgreek %\show\extraspolutonikogreek \selectlanguage{american} diff --git a/Master/texmf-dist/source/generic/babel-greek/greek.dtx b/Master/texmf-dist/source/generic/babel-greek/greek.dtx index 0581b25f996..95910561258 100644 --- a/Master/texmf-dist/source/generic/babel-greek/greek.dtx +++ b/Master/texmf-dist/source/generic/babel-greek/greek.dtx @@ -25,7 +25,7 @@ % and covered by LPPL is defined by the unpacking script (greek.ins) % which is part of the package. % \fi -% \CheckSum{660} +% \CheckSum{1218} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -36,8 +36,8 @@ %<code>\ProvidesLanguage{greek} %\fi %\ProvidesFile{greek.dtx} - [2013/05/17 v1.4 Greek support from the babel system] -%\iffalse + [2013/06/21 v1.5 Greek support for the babel system] +%\iffalse %% File `greek.dtx' %% Babel package for LaTeX version 2e %% Copyright (C) 1989 -- 2005 @@ -87,6 +87,12 @@ % \changes{greek-1.3a}{1998/07/04}{polutoniko is now an attribute to % Greek, no longer a `dialect'} % \changes{greek-1.4}{2013/05/17}{new maintainer} +% \changes{greek-1.5}{2013/06/21}{bugfixes, +% change some symbol macros to aliases, +% LGR fixes via DeclareTextCommand instead of +% extrasgreek/noextrasgreek definitions, +% LICR macros in string definitions, +% LGR font encoding not used with XeTeX/LuaTeX.} % % \section{Babel support for the Greek language} % @@ -123,19 +129,8 @@ % % \subsection{Typing conventions} % -% Entering greek text can be quite difficult because of the many -% diacritical signs that need to be added for various purposes. -% The fonts that are used to typeset Greek make this a lot -% easier by offering a lot of ligatures. But in order for this to -% work, some characters need to be considered as letters. These -% characters are |<|, |>|, |~|, |`|, |'|, |"| and -% \verb=|=. Therefore their |\lccode| is changed when Greek is in -% effect. In order to let |\uppercase| give correct results, the -% |\uccode| of these characters is set to a non-existing character -% to make them disappear. Of course not all characters are needed -% when typesetting ``modern'' $\mu o\nu o\tau o\nu -% \iota\kappa\acute{o}$. In that case we only need the |'| and |"| -% symbols which are treated in the proper way. +% The file \file{usage.pdf} explains the several input conventions +% for Greek. % % \subsection{Greek numbering} % @@ -248,68 +243,130 @@ } % \end{macrocode} % +% Next, we check if Lua\LaTeX\ or Xe\LaTeX\ is running. If so, we set +% boolean key |\if@babel@greek@unicode| to true. +% (The test code is taken from russian.ldf. We hope that a future +% version of \file{babel.sty} will do the check and provide a boolean. +% +% We don't load the \pkg{ifluatex} or \pkg{ifxetex} package because +% |\RequirePackage| is not allowed at the stage of processing options +% (note that babel loads this file right when it processes its own options) +% but we borrow code from these packages. +% +% The test requires the e-TeX extensions (provided by all TeX engines in +% contemporary TeX distributions). +% +% \changes{greek-1.5}{2013/06/21}{Check for XeTeX/LuaTeX} +% \begin{macrocode} +\ifdefined\if@bbl@greek@unicode + \PackageError{babel}{if@bbl@greek@unicode already defined.\MessageBreak + Please contact author of greek.ldf} + \relax +\fi +\newif\if@bbl@greek@unicode +\ifdefined\luatexversion \@bbl@greek@unicodetrue \else +\ifdefined\XeTeXrevision \@bbl@greek@unicodetrue \fi\fi +% \end{macrocode} +% % Typesetting Greek texts requires a font containing Greek letters. -% For 8-bit LaTeX this package uses fonts with the LGR font encoding +% With the modern XeTeX or LuaTeX engines, the user should ensure that +% the choosen font contains the required glyphs. Examples for suitable +% fonts are the ``Deja Vu'' or the ``Linux Libertine'' OpenType fonts. +% +% For 8-bit LaTeX, this package uses fonts with the LGR font encoding % (see the `greek-fontenc' package http://www.ctan.org/pkg/greek-fontenc). -% The |cb| fonts -% created by Claudio Beccari\footnote{Apostolos Syropoulos wishes -% to thank him for his patience, collaboration, cooments and -% suggestions.} are a set of Greek text fonts matching -% Computer Modern. They provide all sorts of \textit{font -% combinations}. We make sure -% that the LGR encoding is known to \LaTeX, and if it isn't we abort. +% The |cb| fonts created by Claudio Beccari% +% \footnote{Apostolos Syropoulos wishes to thank him for his +% patience, collaboration, comments and suggestions.} +% are a complete set of LGR encoded Greek text fonts matching +% Computer Modern. % \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now % lowercase} % \changes{greek-1.4}{2013/05/17}{\file{lgrenc.def} moved to the % separate package `greek-fontenc'} +% \changes{greek-1.5}{2013/06/21}{LGR setup skipped with XeTeX/LuaTeX} +% \begin{macrocode} +\if@bbl@greek@unicode +% \end{macrocode} + % No font encoding switch required with Unicode fonts. + % Define dummy commands for |\textgreek| and |\greektext| (cf. below): % \begin{macrocode} -\InputIfFileExists{lgrenc.def}{}{% - \errhelp{I can't find the lgrenc.def file for the Greek fonts}% - \errmessage{Since I do not know what the LGR encoding means^^J - I can't typeset Greek.^^J - I stop here, while you get a suitable lgrenc.def file}\@@end - } + \let\greektext\relax + \let\textgreek\@firstofone +\else + \InputIfFileExists{lgrenc.def}{}{% + \errhelp{I can't find the lgrenc.def file for the Greek fonts}% + \errmessage{Since I do not know the LGR font encoding^^J + I can't typeset Greek with 8-bit TeX.^^J + Please install the "greek-fontenc" package or use XeTeX/LuaTeX.}\@@end + } % \end{macrocode} % -% We define a few commands in the \texttt{LGR} encoding +% We redefine a few commands in the LGR encoding % to work around problems because LGR is no \emph{standard text -% encoding}.\footnote{% -% The current implementation has the disadvantage that it makes -% the symbols from the package `textcomp' inaccessible if the active font -% encoding is LGR.} +% encoding} but has Greek letters in the places of Latin ones. % \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark} % misses a `t', \cs{copyright} should be \cs{textcopyright}} % \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}} % \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because % the definitions require the \texttt{\textbackslash latintext} macro % defined by Babel.} +% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters +% for "textcopyright" and "textregistered" macros} +% \changes{greek-1.5}{2013/06/15}{\textbackslash & made TextCommand} +% \begin{macrocode} + \ProvideTextCommand{\textcopyright}{LGR}{\textlatin{\textcopyright}} + \ProvideTextCommand{\textregistered}{LGR}{\textlatin{\textregistered}} + \ProvideTextCommand{\texttrademark}{LGR}{\textlatin{\texttrademark}} + \let\ltx@amp\& + \DeclareTextCommandDefault{\&}{\ltx@amp} + \DeclareTextCommand{\&}{LGR}{\textlatin{\ltx@amp}} + \ProvideTextCommand{\SS}{LGR}{\textlatin{\SS}} +% \end{macrocode} +% +% \begin{macro}{\greek@roman} +% \begin{macro}{\greek@Roman} +% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman} +% back to the language specific file} +% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to +% be added to \cs{extraspolutonikogreek}} +% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need +% \emph{not} be in \cs{extraspolutonikogreek} when they are already +% in \cs{extrasgreek}} +% \changes{greek-1.5}{2013/06/15}{@roman and @Roman made TextCommands} +% To prevent roman numerals being typeset in greek letters we need +% to adopt the internal \LaTeX\ commands |\@roman| and +% |\@Roman|. \textbf{The pre-1.5 definition caused errors where +% |\@roman| ends up in a situation where it needs to be expanded; +% Check whether problems persist with the AMS document classes!} % \begin{macrocode} -\ProvideTextCommand{\textcopyright}{LGR}{% - \textcircled{\textlatin{c}}} -\ProvideTextCommand{\textregistered}{LGR}{% - \textcircled{\textlatin{\textsc r}}} -\ProvideTextCommand{\texttrademark}{LGR}{% - \textsuperscript{\textlatin{TM}}} -\ProvideTextCommand{\SS}{LGR}{% - \textlatin{SS}} + \let\latin@roman\@roman + \DeclareTextCommandDefault{\@roman}[1]{\latin@roman{#1}} + \DeclareTextCommand{\@roman}{LGR}[1]{\textlatin{\latin@roman{#1}}} + \let\latin@Roman\@Roman + \DeclareTextCommandDefault{\@Roman}[1]{\latin@Roman{#1}} + \DeclareTextCommand{\@Roman}{LGR}[1]{\textlatin{\latin@Roman{#1}}} % \end{macrocode} +% \end{macro} +% \end{macro} % % Later in this file, the charcter No 159 is defined as uppercase of % |<|, |>|, |~|, |`|, |'|, |"| and \verb=|=. % Add composite commands, so that the dialytika is kept or put on the -% following character with |\MakeUppercase| +% following character of a diphthong with |\MakeUppercase| % (see lgrdef.enc from the the greek-fontenc package for details). % As a the TextCompositeCommand mechanism compares the % unexpanded literal strings, we need the literal character in the % declarations, too. -% \changes{greek-1.4}{2013/05/17}{Add TextCompositeCommands for ``uppercase -% diacritics''.} +% \changes{greek-1.4}{2013/05/17}{Add TextCompositeCommands for +% ``uppercase diacritics''.} +% \changes{greek-1.5}{2013/05/27}{Bugfix: @hiatus->LGR@hiatus} % \begin{macrocode} -\DeclareTextCompositeCommand{\"}{LGR}{}{\accdialytika} -\DeclareTextCompositeCommand{\'}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\`}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\<}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\>}{LGR}{}{\@hiatus} + \DeclareTextCompositeCommand{\"}{LGR}{}{\accdialytika} + \DeclareTextCompositeCommand{\'}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\`}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\<}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\>}{LGR}{}{\LGR@hiatus} % \end{macrocode} % % Now we define two commands that offer the possibility to switch @@ -322,9 +379,9 @@ % for shorter pieces of text the command |\textgreek| should be % used. % \begin{macrocode} -\DeclareRobustCommand{\greektext}{% - \fontencoding{LGR}\selectfont - \def\encodingdefault{LGR}} + \DeclareRobustCommand{\greektext}{% + \fontencoding{LGR}\selectfont + \def\encodingdefault{LGR}} % \end{macrocode} % \end{macro} % @@ -337,7 +394,7 @@ % \changes{greek-1.3k}{2003/03/19}{Added \cs{leavevmode} as was done % with \cs{latintext}} % \begin{macrocode} -\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}} + \DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}} % \end{macrocode} % \end{macro} % @@ -347,8 +404,9 @@ % outline family. In order to make it available we define the command % |\textol|. % \begin{macrocode} -\def\outlfamily{\usefont{LGR}{cmro}{m}{n}} -\DeclareTextFontCommand{\textol}{\outlfamily} + \def\outlfamily{\usefont{LGR}{cmro}{m}{n}} + \DeclareTextFontCommand{\textol}{\outlfamily} +\fi % End of LGR fixes not required with XeTeX/LuaTeX. % \end{macrocode} % \end{macro} % @@ -378,27 +436,46 @@ % as `s' instead of `c'.} % \begin{macrocode} \addto\captionsgreek{% - \def\prefacename{Pr'ologos}% - \def\refname{Anafor'es}% - \def\abstractname{Per'ilhyh}% - \def\bibname{Bibliograf'ia}% - \def\chaptername{Kef'alaio}% - \def\appendixname{Par'arthma}% - \def\contentsname{Perieq'omena}% - \def\listfigurename{Kat'alogos Sqhm'atwn}% - \def\listtablename{Kat'alogos Pin'akwn}% - \def\indexname{Euret'hrio}% - \def\figurename{Sq'hma}% - \def\tablename{P'inakas}% - \def\partname{M'eros}% - \def\enclname{Sunhmm'ena}% - \def\ccname{Koinopo'ihsh}% - \def\headtoname{Pros}% - \def\pagename{Sel'ida}% - \def\seename{bl'epe}% - \def\alsoname{bl'epe ep'ishs}% - \def\proofname{Ap'odeixh}% - \def\glossaryname{Glwss'ari}% + \def\prefacename{\textPi\textrho\'\textomicron\textlambda\textomicron% + \textgamma\textomicron\textfinalsigma}% + \def\refname{\textAlpha\textnu\textalpha% + \textphi\textomicron\textrho\'\textepsilon\textfinalsigma}% + \def\abstractname{\textPi\textepsilon\textrho\'\textiota% + \textlambda\texteta\textpsi\texteta}% + \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron% + \textgamma\textrho\textalpha\textphi\'\textiota\textalpha}% + \def\chaptername{\textKappa\textepsilon\textphi\'\textalpha% + \textlambda\textalpha\textiota\textomicron}% + \def\appendixname{\textPi\textalpha\textrho\'\textalpha\textrho% + \texttau\texteta\textmu\textalpha}% + \def\contentsname{\textPi\textepsilon\textrho\textiota% + \textepsilon\textchi\'\textomicron\textmu\textepsilon\textnu\textalpha}% + \def\listfigurename{\textKappa\textalpha\texttau\'\textalpha% + \textlambda\textomicron\textgamma\textomicron\textfinalsigma{} + \textSigma\textchi\texteta\textmu\'\textalpha\texttau\textomega\textnu}% + \def\listtablename{\textKappa\textalpha\texttau\'\textalpha% + \textlambda\textomicron\textgamma\textomicron\textfinalsigma{} + \textPi\textiota\textnu\'\textalpha\textkappa\textomega\textnu}% + \def\indexname{\textEpsilon\textupsilon\textrho\textepsilon% + \texttau\'\texteta\textrho\textiota\textomicron}% + \def\figurename{\textSigma\textchi\'\texteta\textmu\textalpha}% + \def\tablename{\textPi\'\textiota\textnu\textalpha% + \textkappa\textalpha\textfinalsigma}% + \def\partname{\textMu\'\textepsilon\textrho\textomicron\textfinalsigma}% + \def\enclname{\textSigma\textupsilon\textnu\texteta\textmu% + \textmu\'\textepsilon\textnu\textalpha}% + \def\ccname{\textKappa\textomicron\textiota\textnu\textomicron% + \textpi\textomicron\'\textiota\texteta\textsigma\texteta}% + \def\headtoname{\textPi\textrho\textomicron\textfinalsigma}% + \def\pagename{\textSigma\textepsilon\textlambda\'\textiota% + \textdelta\textalpha}% + \def\seename{\textbeta\textlambda\'\textepsilon\textpi\textepsilon}% + \def\alsoname{\textbeta\textlambda\'\textepsilon\textpi\textepsilon{} + \textepsilon\textpi\'\textiota\textsigma\texteta\textfinalsigma}% + \def\proofname{\textAlpha\textpi\'\textomicron% + \textdelta\textepsilon\textiota\textxi\texteta}% + \def\glossaryname{\textGamma\textlambda\textomega\textsigma% + \textsigma\'\textalpha\textrho\textiota}% } % \end{macrocode} % \end{macro} @@ -416,12 +493,16 @@ % \begin{macrocode} \let\captionspolutonikogreek\captionsgreek \addto\captionspolutonikogreek{% - \def\refname{>Anafor`es}% - \def\indexname{E<uret'hrio}% - \def\figurename{Sq~hma}% - \def\headtoname{Pr`os}% - \def\alsoname{bl'epe >ep'ishs}% - \def\proofname{>Ap'odeixh}% + \def\refname{\>\textAlpha\textnu\textalpha% + \textphi\textomicron\textrho\`\textepsilon\textfinalsigma}% + \def\indexname{\textEpsilon\<\textupsilon\textrho\textepsilon% + \texttau\'\texteta\textrho\textiota\textomicron}% + \def\figurename{\textSigma\textchi\~\texteta\textmu\textalpha}% + \def\headtoname{\textPi\textrho\`\textomicron\textfinalsigma}% + \def\alsoname{\textbeta\textlambda\'\textepsilon\textpi\textepsilon{} + \>\textepsilon\textpi\'\textiota\textsigma\texteta\textfinalsigma}% + \def\proofname{\>\textAlpha\textpi\'\textomicron% + \textdelta\textepsilon\textiota\textxi\texteta}% } % \end{macrocode} % \end{macro} @@ -442,9 +523,30 @@ % \begin{macrocode} \def\gr@month{% \ifcase\month\or - Ianouar'iou\or Febrouar'iou\or Mart'iou\or April'iou\or - Ma'"iou\or Ioun'iou\or Ioul'iou\or Augo'ustou\or - Septembr'iou\or Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi} + \textIota\textalpha\textnu\textomicron\textupsilon\textalpha% + \textrho\'\textiota\textomicron\textupsilon\or + \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon% + \textalpha\textrho\'\textiota\textomicron\textupsilon\or + \textMu\textalpha\textrho\texttau\'\textiota\textomicron\textupsilon\or + \textAlpha\textpi\textrho\textiota\textlambda\'\textiota% + \textomicron\textupsilon\or + \textMu\textalpha\'\"\textiota\textomicron\textupsilon\or + \textIota\textomicron\textupsilon\textnu\'\textiota% + \textomicron\textupsilon\or + \textIota\textomicron\textupsilon\textlambda\'\textiota% + \textomicron\textupsilon\or + \textAlpha\textupsilon\textgamma\textomicron\'\textupsilon\textsigma% + \texttau\textomicron\textupsilon\or + \textSigma\textepsilon\textpi\texttau\textepsilon\textmu% + \textbeta\textrho\'\textiota\textomicron\textupsilon\or + \textOmicron\textkappa\texttau\textomega\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textNu\textomicron\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textDelta\textepsilon\textkappa\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon% + \fi% +} \def\dategreek{% \def\today{\number\day \space \gr@month\space \number\year}} % \end{macrocode} @@ -459,10 +561,31 @@ % \cs{datepolutonikogreek}} % \begin{macrocode} \def\gr@c@month{% - \ifcase\month\or >Ianouar'iou\or - Febrouar'iou\or Mart'iou\or >April'iou\or Ma"'iou\or - >Ioun'iou\or >Ioul'iou\or A>ugo'ustou\or Septembr'iou\or - >Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi} + \ifcase\month\or + \>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha% + \textrho\'\textiota\textomicron\textupsilon\or + \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon% + \textalpha\textrho\'\textiota\textomicron\textupsilon\or + \textMu\textalpha\textrho\texttau\'\textiota\textomicron\textupsilon\or + \>\textAlpha\textpi\textrho\textiota\textlambda% + \'\textiota\textomicron\textupsilon\or + \textMu\textalpha\"\'\textiota\textomicron\textupsilon\or + \>\textIota\textomicron\textupsilon\textnu% + \'\textiota\textomicron\textupsilon\or + \>\textIota\textomicron\textupsilon\textlambda% + \'\textiota\textomicron\textupsilon\or + \textAlpha\>\textupsilon\textgamma\textomicron\'\textupsilon\textsigma% + \texttau\textomicron\textupsilon\or + \textSigma\textepsilon\textpi\texttau\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \>\textOmicron\textkappa\texttau\textomega\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textNu\textomicron\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textDelta\textepsilon\textkappa\textepsilon\textmu% + \textbeta\textrho\'\textiota\textomicron\textupsilon% + \fi +} % \end{macrocode} % \end{macro} % @@ -484,13 +607,17 @@ % The macro |\extrasgreek| will perform all the extra definitions % needed for the Greek language. The macro |\noextrasgreek| is used % to cancel the actions of |\extrasgreek|. For the moment these -% macros switch the fontencoding used and the definition of the -% internal macros |\@alph| and |\@Alph| because in Greek we do use +% macros switch the fontencoding (with 8-bit TeX) and the definition of +% the internal macros |\@alph| and |\@Alph| because in Greek we do use % the Greek numerals. -% +% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.} % \begin{macrocode} -\addto\extrasgreek{\greektext} -\addto\noextrasgreek{\latintext} +\if@bbl@greek@unicode + \relax +\else + \addto\extrasgreek{\greektext} + \addto\noextrasgreek{\latintext} +\fi % \end{macrocode} % % \begin{macro}{\gr@ill@value} @@ -622,53 +749,6 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\greek@roman} -% \begin{macro}{\greek@Roman} -% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman} -% back to the language specific file} -% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to -% be added to \cs{extraspolutonikogreek}} -% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need -% \emph{not} be in \cs{extraspolutonikogreek} when they are already -% in \cs{extrasgreek}} -% -% To prevent roman numerals being typeset in greek letters we need -% to adopt the internal \LaTeX\ commands |\@roman| and -% |\@Roman|. \textbf{Note that this may cause errors where -% |\@roman| ends up in a situation where it needs to be expanded; -% problems are known to exist with the AMS document classes.} -% \begin{macrocode} -\let\latin@roman\@roman -\let\latin@Roman\@Roman -\def\greek@roman#1{\textlatin{\latin@roman{#1}}} -\def\greek@Roman#1{\textlatin{\latin@Roman{#1}}} -\addto\extrasgreek{% - \let\@roman\greek@roman - \let\@Roman\greek@Roman} -\addto\noextrasgreek{% - \let\@roman\latin@roman - \let\@Roman\latin@Roman} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\greek@amp} -% \begin{macro}{\ltx@amp} -% The greek fonts do not contain an ampersand, so the \LaTeX\ -% command |\&| dosn't give the expected result if we do not do -% something about it. -% \changes{greek-1.2f}{1999/04/25}{Now switch the definition of -% \cs{\&} from \cs{extrasgreek}} -% \changes{greek-1.3c}{1999/05/17}{Added a missing opening brace} -% \begin{macrocode} -\let\ltx@amp\& -\def\greek@amp{\textlatin{\ltx@amp}} -\addto\extrasgreek{\let\&\greek@amp} -\addto\noextrasgreek{\let\&\ltx@amp} -% \end{macrocode} -% \end{macro} -% \end{macro} -% % What is left now is the definition of a set of macros to produce % the various digits. % \begin{macro}{\gr@num@i} @@ -684,13 +764,16 @@ % about the (non-)translation of a zero. % \begin{macrocode} \def\gr@num@i#1{% - \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi + \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or \textdelta\or + \textepsilon\or \textstigma\or \textzeta\or \texteta\or \texttheta\fi \ifnum#1=\z@\else\anw@true\fi\anw@print} \def\gr@num@ii#1{% - \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi + \ifcase#1\or \textiota\or \textkappa\or \textlambda\or \textmu\or + \textnu\or \textxi\or \textomicron\or \textpi\or \textqoppa\fi \ifnum#1=\z@\else\anw@true\fi\gr@num@i} \def\gr@num@iii#1{% - \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi + \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon\or + \textphi\or \textchi\or \textpsi\or \textomega\or \textsampi\fi \ifnum#1=\z@\anw@false\else\anw@true\fi\gr@num@ii} % \end{macrocode} % \end{macro} @@ -705,42 +788,74 @@ % \begin{macrocode} \def\gr@num@iv#1{% \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi + \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or \textdelta\or + \textepsilon\or \stigma\or \textzeta\or \texteta\or \texttheta\fi \gr@num@iii} \def\gr@num@v#1{% \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi + \ifcase#1\or \textiota\or \textkappa\or \textlambda\or \textmu\or + \textnu\or \textxi\or \textomicron\or \textpi\or \textqoppa\fi \gr@num@iv} \def\gr@num@vi#1{% \katwtonos - \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi + \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon\or + \textphi\or \textchi\or \textpsi\or \textomega\or \textsampi\fi \gr@num@v} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % +% Handling of Diacritics differs between Unicode and LGR encoding. +% \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.} + +% Greek letters drop diacritics (eccept dialytika and sub-iota) in +% UPPERCASE. This is not cared for by the Unicode standard. +% The file \file{xgreek-fixes.def} from \pkg{polyglossia} +% contains the required |\lccode| and |\uccode| corrections from the +% \pkg{xgreek} package by Apostolos Syropoulos. +% \begin{macrocode} +\if@bbl@greek@unicode + \InputIfFileExists{xgreek-fixes.def}{}{% + \PackageWarning{babel}{Can't find the file "xgreek-fixes.def".\MessageBreak + For correct up/downcasing of Greek text, + install the "polyglossia" package.}% + } +\else % 8-bit TeX +% \end{macrocode} +% The LGR encoded fonts that are used to typeset Greek with 8-bit TeX +% define ligatures for characters with diacritics. In order for this to +% work, some characters need to be considered as letters. These +% characters are |<|, |>|, |~|, |`|, |'|, |"| and +% \verb=|=. Therefore their |\lccode| is changed when Greek is in +% effect. In order to let |\uppercase| give correct results, the +% |\uccode| of these characters is set to a non-existing character +% to make them disappear. Of course not all characters are needed +% when typesetting ``modern'' $\mu o\nu o\tau o\nu +% \iota\kappa\acute{o}$. In that case we only need the |'| and |"| +% symbols which are treated in the proper way. +% % \begin{macro}{\greek@tilde} % \changes{greek-1.0c}{1997/02/19}{Added command} % The Greek script uses a number of characters with more -% than one accent. In LGR-encoded fonts combined diacritics can be +% than one accent. In LGR encoded fonts combined diacritics can be % obtained using Knuth's ligature mechanism (see usage.pdf). % Characters we need to have ligatures with are the tilde, the % acute and grave accent characters, the rough and smooth breathings, % the subscript, and the double quote character. -% In text input the |~| is normaly used to produce an +% In text input the |~| is normally used to produce an % unbreakable space. % \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not % active during the definition of \cs{greek@tilde}} -% \begin{macrocode} % \changes{greek-1.4}{2013/05/17}{do not re-define the tilde accent macro: -% it works as expected with the new lgrenc.def file.} -\begingroup - \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} - \catcode`\~=12 - \lccode`\!=`\~ - \lowercase{\def\x{\endgroup - \def\greek@tilde{!}}\x} +% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.} +% \begin{macrocode} + \begingroup + \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} + \catcode`\~=12 + \lccode`\!=`\~ + \lowercase{\def\x{\endgroup + \def\greek@tilde{!}}\x} % \end{macrocode} % \end{macro} % In order to get correct hyphenation we need to set the lower case @@ -762,16 +877,16 @@ % \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and % \cs{extraspolutonikogreek} should be complementary} % \begin{macrocode} -\addto\extrasgreek{% - \babel@savevariable{\lccode`v}\lccode`v=`v% - \babel@savevariable{\lccode`\'}\lccode`\'=`\'% - \babel@savevariable{\lccode`\"}\lccode`\"=`\"} -\addto\extraspolutonikogreek{% - \babel@savevariable{\lccode`\<}\lccode`\<=`\<% - \babel@savevariable{\lccode`\>}\lccode`\>=`\>% - \babel@savevariable{\lccode`\~}\lccode`\~=`\~% - \babel@savevariable{\lccode`\|}\lccode`\|=`\|% - \babel@savevariable{\lccode`\`}\lccode`\`=`\`} + \addto\extrasgreek{% + \babel@savevariable{\lccode`v}\lccode`v=`v% + \babel@savevariable{\lccode`\'}\lccode`\'=`\'% + \babel@savevariable{\lccode`\"}\lccode`\"=`\"} + \addto\extraspolutonikogreek{% + \babel@savevariable{\lccode`\<}\lccode`\<=`\<% + \babel@savevariable{\lccode`\>}\lccode`\>=`\>% + \babel@savevariable{\lccode`\~}\lccode`\~=`\~% + \babel@savevariable{\lccode`\|}\lccode`\|=`\|% + \babel@savevariable{\lccode`\`}\lccode`\`=`\`} % \end{macrocode} % And in order to get rid of all accents and breathings when a % string is |\uppercase|d we also change a number of uppercase @@ -794,15 +909,15 @@ % make the caret active, we can't use the double caret notation % here} % \begin{macrocode} -\addto\extrasgreek{% - \babel@savevariable{\uccode`\"}\uccode`\"=`\"% - \babel@savevariable{\uccode`\'}\uccode`\'=159} %% 159 == ^^9f -\addto\extraspolutonikogreek{% - \babel@savevariable{\uccode`\~}\uccode`\~=159% - \babel@savevariable{\uccode`\>}\uccode`\>=159% - \babel@savevariable{\uccode`\<}\uccode`\<=159% - \babel@savevariable{\uccode`\|}\uccode`\|=`\|% - \babel@savevariable{\uccode`\`}\uccode`\`=159} + \addto\extrasgreek{% + \babel@savevariable{\uccode`\"}\uccode`\"=`\"% + \babel@savevariable{\uccode`\'}\uccode`\'=159} %% 159 == ^^9f + \addto\extraspolutonikogreek{% + \babel@savevariable{\uccode`\~}\uccode`\~=159% + \babel@savevariable{\uccode`\>}\uccode`\>=159% + \babel@savevariable{\uccode`\<}\uccode`\<=159% + \babel@savevariable{\uccode`\|}\uccode`\|=`\|% + \babel@savevariable{\uccode`\`}\uccode`\`=159} % \end{macrocode} % For this to work we make the character |^^9f| a shorthand that % expands to nothing. In order for this to work we need to make a @@ -817,23 +932,24 @@ % character is now \cs{char159}} % \changes{greek-1.2a}{1997/10/31}{Need shorthand to exist for % ``monotoniko'' Greek, not ``polutoniko'' Greek} -% \changes{greek-1.3j}{2001/02/03}{Ues the tilde as an alias for +% \changes{greek-1.3j}{2001/02/03}{Use the tilde as an alias for % character 159} % \begin{macrocode} -\@tempcnta=\lccode`\~ -\lccode`\~=159 -\lowercase{% - \initiate@active@char{~}% - \declare@shorthand{greek}{~}{}} -\lccode`\~=\@tempcnta + \@tempcnta=\lccode`\~ + \lccode`\~=159 + \lowercase{% + \initiate@active@char{~}% + \declare@shorthand{greek}{~}{}} + \lccode`\~=\@tempcnta % \end{macrocode} % We can also make the tilde character itself expand to a tilde with % category code 12 to make the typing of texts easier. % \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with % \cs{catcode 12}} % \begin{macrocode} -\addto\extraspolutonikogreek{\languageshorthands{greek}}% -\declare@shorthand{greek}{~}{\greek@tilde} + \addto\extraspolutonikogreek{\languageshorthands{greek}}% + \declare@shorthand{greek}{~}{\greek@tilde} +\fi % End of LGR-specific code not required with XeTeX/LuaTeX. % \end{macrocode} % \end{macro} % \end{macro} @@ -850,17 +966,18 @@ % We now define a few symbols which are used in the typesetting of % greek numerals, as well as some other symbols which are usefull, % such as the $\epsilon\upsilon\rho\omega$ symbol, etc. -% \begin{macrocode} -\DeclareTextCommand{\anwtonos}{LGR}{\char"FE\relax} -\DeclareTextCommand{\katwtonos}{LGR}{\char"FF\relax} -\DeclareTextCommand{\qoppa}{LGR}{\char"12\relax} -\DeclareTextCommand{\stigma}{LGR}{\char"06\relax} -\DeclareTextCommand{\sampi}{LGR}{\char"1B\relax} -\DeclareTextCommand{\Digamma}{LGR}{\char"C3\relax} -\DeclareTextCommand{\ddigamma}{LGR}{\char"93\relax} -\DeclareTextCommand{\vardigamma}{LGR}{\char"07\relax} -\DeclareTextCommand{\euro}{LGR}{\char"18\relax} -\DeclareTextCommand{\permill}{LGR}{\char"19\relax} +% \changes{greek-1.5}{2013/06/11}{change symbol macros to aliases} +% \begin{macrocode} +\providecommand*{\anwtonos}{\textnumeralsigngreek} +\providecommand*{\katwtonos}{\textnumeralsignlowergreek} +\providecommand*{\qoppa}{\textqoppa} +\providecommand*{\stigma}{\textstigma} +\providecommand*{\sampi}{\textsampi} +\providecommand*{\Digamma}{\textDigamma} +\providecommand*{\ddigamma}{\textdigamma} +\providecommand*{\vardigamma}{\textvardigamma} +\providecommand*{\euro}{\texteuro} +\providecommand*{\permill}{\textperthousand} % \end{macrocode} % % Since the |~| cannot be used to produce an unbreakable white diff --git a/Master/texmf-dist/tex/generic/babel-greek/greek.ldf b/Master/texmf-dist/tex/generic/babel-greek/greek.ldf index 4fa267b8be2..7ade8596776 100644 --- a/Master/texmf-dist/tex/generic/babel-greek/greek.ldf +++ b/Master/texmf-dist/tex/generic/babel-greek/greek.ldf @@ -32,7 +32,7 @@ %% and covered by LPPL is defined by the unpacking script (greek.ins) %% which is part of the package. \ProvidesLanguage{greek} - [2013/05/17 v1.4 Greek support from the babel system] + [2013/06/21 v1.5 Greek support for the babel system] %% File `greek.dtx' %% Babel package for LaTeX version 2e %% Copyright (C) 1989 -- 2005 @@ -57,82 +57,171 @@ \let\extraspolutonikogreek\extrasgreek \let\noextraspolutonikogreek\noextrasgreek } -\InputIfFileExists{lgrenc.def}{}{% - \errhelp{I can't find the lgrenc.def file for the Greek fonts}% - \errmessage{Since I do not know what the LGR encoding means^^J - I can't typeset Greek.^^J - I stop here, while you get a suitable lgrenc.def file}\@@end - } -\ProvideTextCommand{\textcopyright}{LGR}{% - \textcircled{\textlatin{c}}} -\ProvideTextCommand{\textregistered}{LGR}{% - \textcircled{\textlatin{\textsc r}}} -\ProvideTextCommand{\texttrademark}{LGR}{% - \textsuperscript{\textlatin{TM}}} -\ProvideTextCommand{\SS}{LGR}{% - \textlatin{SS}} -\DeclareTextCompositeCommand{\"}{LGR}{}{\accdialytika} -\DeclareTextCompositeCommand{\'}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\`}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\<}{LGR}{}{\@hiatus} -\DeclareTextCompositeCommand{\>}{LGR}{}{\@hiatus} -\DeclareRobustCommand{\greektext}{% - \fontencoding{LGR}\selectfont - \def\encodingdefault{LGR}} -\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}} -\def\outlfamily{\usefont{LGR}{cmro}{m}{n}} -\DeclareTextFontCommand{\textol}{\outlfamily} +\ifdefined\if@bbl@greek@unicode + \PackageError{babel}{if@bbl@greek@unicode already defined.\MessageBreak + Please contact author of greek.ldf} + \relax +\fi +\newif\if@bbl@greek@unicode +\ifdefined\luatexversion \@bbl@greek@unicodetrue \else +\ifdefined\XeTeXrevision \@bbl@greek@unicodetrue \fi\fi +\if@bbl@greek@unicode + % No font encoding switch required with Unicode fonts. + % Define dummy commands for |\textgreek| and |\greektext| (cf. below): + \let\greektext\relax + \let\textgreek\@firstofone +\else + \InputIfFileExists{lgrenc.def}{}{% + \errhelp{I can't find the lgrenc.def file for the Greek fonts}% + \errmessage{Since I do not know the LGR font encoding^^J + I can't typeset Greek with 8-bit TeX.^^J + Please install the "greek-fontenc" package or use XeTeX/LuaTeX.}\@@end + } + \ProvideTextCommand{\textcopyright}{LGR}{\textlatin{\textcopyright}} + \ProvideTextCommand{\textregistered}{LGR}{\textlatin{\textregistered}} + \ProvideTextCommand{\texttrademark}{LGR}{\textlatin{\texttrademark}} + \let\ltx@amp\& + \DeclareTextCommandDefault{\&}{\ltx@amp} + \DeclareTextCommand{\&}{LGR}{\textlatin{\ltx@amp}} + \ProvideTextCommand{\SS}{LGR}{\textlatin{\SS}} + \let\latin@roman\@roman + \DeclareTextCommandDefault{\@roman}[1]{\latin@roman{#1}} + \DeclareTextCommand{\@roman}{LGR}[1]{\textlatin{\latin@roman{#1}}} + \let\latin@Roman\@Roman + \DeclareTextCommandDefault{\@Roman}[1]{\latin@Roman{#1}} + \DeclareTextCommand{\@Roman}{LGR}[1]{\textlatin{\latin@Roman{#1}}} + \DeclareTextCompositeCommand{\"}{LGR}{}{\accdialytika} + \DeclareTextCompositeCommand{\'}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\`}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\<}{LGR}{}{\LGR@hiatus} + \DeclareTextCompositeCommand{\>}{LGR}{}{\LGR@hiatus} + \DeclareRobustCommand{\greektext}{% + \fontencoding{LGR}\selectfont + \def\encodingdefault{LGR}} + \DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}} + \def\outlfamily{\usefont{LGR}{cmro}{m}{n}} + \DeclareTextFontCommand{\textol}{\outlfamily} +\fi % End of LGR fixes not required with XeTeX/LuaTeX. \providehyphenmins{\CurrentOption}{\@ne\@ne} \addto\captionsgreek{% - \def\prefacename{Pr'ologos}% - \def\refname{Anafor'es}% - \def\abstractname{Per'ilhyh}% - \def\bibname{Bibliograf'ia}% - \def\chaptername{Kef'alaio}% - \def\appendixname{Par'arthma}% - \def\contentsname{Perieq'omena}% - \def\listfigurename{Kat'alogos Sqhm'atwn}% - \def\listtablename{Kat'alogos Pin'akwn}% - \def\indexname{Euret'hrio}% - \def\figurename{Sq'hma}% - \def\tablename{P'inakas}% - \def\partname{M'eros}% - \def\enclname{Sunhmm'ena}% - \def\ccname{Koinopo'ihsh}% - \def\headtoname{Pros}% - \def\pagename{Sel'ida}% - \def\seename{bl'epe}% - \def\alsoname{bl'epe ep'ishs}% - \def\proofname{Ap'odeixh}% - \def\glossaryname{Glwss'ari}% + \def\prefacename{\textPi\textrho\'\textomicron\textlambda\textomicron% + \textgamma\textomicron\textfinalsigma}% + \def\refname{\textAlpha\textnu\textalpha% + \textphi\textomicron\textrho\'\textepsilon\textfinalsigma}% + \def\abstractname{\textPi\textepsilon\textrho\'\textiota% + \textlambda\texteta\textpsi\texteta}% + \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron% + \textgamma\textrho\textalpha\textphi\'\textiota\textalpha}% + \def\chaptername{\textKappa\textepsilon\textphi\'\textalpha% + \textlambda\textalpha\textiota\textomicron}% + \def\appendixname{\textPi\textalpha\textrho\'\textalpha\textrho% + \texttau\texteta\textmu\textalpha}% + \def\contentsname{\textPi\textepsilon\textrho\textiota% + \textepsilon\textchi\'\textomicron\textmu\textepsilon\textnu\textalpha}% + \def\listfigurename{\textKappa\textalpha\texttau\'\textalpha% + \textlambda\textomicron\textgamma\textomicron\textfinalsigma{} + \textSigma\textchi\texteta\textmu\'\textalpha\texttau\textomega\textnu}% + \def\listtablename{\textKappa\textalpha\texttau\'\textalpha% + \textlambda\textomicron\textgamma\textomicron\textfinalsigma{} + \textPi\textiota\textnu\'\textalpha\textkappa\textomega\textnu}% + \def\indexname{\textEpsilon\textupsilon\textrho\textepsilon% + \texttau\'\texteta\textrho\textiota\textomicron}% + \def\figurename{\textSigma\textchi\'\texteta\textmu\textalpha}% + \def\tablename{\textPi\'\textiota\textnu\textalpha% + \textkappa\textalpha\textfinalsigma}% + \def\partname{\textMu\'\textepsilon\textrho\textomicron\textfinalsigma}% + \def\enclname{\textSigma\textupsilon\textnu\texteta\textmu% + \textmu\'\textepsilon\textnu\textalpha}% + \def\ccname{\textKappa\textomicron\textiota\textnu\textomicron% + \textpi\textomicron\'\textiota\texteta\textsigma\texteta}% + \def\headtoname{\textPi\textrho\textomicron\textfinalsigma}% + \def\pagename{\textSigma\textepsilon\textlambda\'\textiota% + \textdelta\textalpha}% + \def\seename{\textbeta\textlambda\'\textepsilon\textpi\textepsilon}% + \def\alsoname{\textbeta\textlambda\'\textepsilon\textpi\textepsilon{} + \textepsilon\textpi\'\textiota\textsigma\texteta\textfinalsigma}% + \def\proofname{\textAlpha\textpi\'\textomicron% + \textdelta\textepsilon\textiota\textxi\texteta}% + \def\glossaryname{\textGamma\textlambda\textomega\textsigma% + \textsigma\'\textalpha\textrho\textiota}% } \let\captionspolutonikogreek\captionsgreek \addto\captionspolutonikogreek{% - \def\refname{>Anafor`es}% - \def\indexname{E<uret'hrio}% - \def\figurename{Sq~hma}% - \def\headtoname{Pr`os}% - \def\alsoname{bl'epe >ep'ishs}% - \def\proofname{>Ap'odeixh}% + \def\refname{\>\textAlpha\textnu\textalpha% + \textphi\textomicron\textrho\`\textepsilon\textfinalsigma}% + \def\indexname{\textEpsilon\<\textupsilon\textrho\textepsilon% + \texttau\'\texteta\textrho\textiota\textomicron}% + \def\figurename{\textSigma\textchi\~\texteta\textmu\textalpha}% + \def\headtoname{\textPi\textrho\`\textomicron\textfinalsigma}% + \def\alsoname{\textbeta\textlambda\'\textepsilon\textpi\textepsilon{} + \>\textepsilon\textpi\'\textiota\textsigma\texteta\textfinalsigma}% + \def\proofname{\>\textAlpha\textpi\'\textomicron% + \textdelta\textepsilon\textiota\textxi\texteta}% } \def\gr@month{% \ifcase\month\or - Ianouar'iou\or Febrouar'iou\or Mart'iou\or April'iou\or - Ma'"iou\or Ioun'iou\or Ioul'iou\or Augo'ustou\or - Septembr'iou\or Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi} + \textIota\textalpha\textnu\textomicron\textupsilon\textalpha% + \textrho\'\textiota\textomicron\textupsilon\or + \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon% + \textalpha\textrho\'\textiota\textomicron\textupsilon\or + \textMu\textalpha\textrho\texttau\'\textiota\textomicron\textupsilon\or + \textAlpha\textpi\textrho\textiota\textlambda\'\textiota% + \textomicron\textupsilon\or + \textMu\textalpha\'\"\textiota\textomicron\textupsilon\or + \textIota\textomicron\textupsilon\textnu\'\textiota% + \textomicron\textupsilon\or + \textIota\textomicron\textupsilon\textlambda\'\textiota% + \textomicron\textupsilon\or + \textAlpha\textupsilon\textgamma\textomicron\'\textupsilon\textsigma% + \texttau\textomicron\textupsilon\or + \textSigma\textepsilon\textpi\texttau\textepsilon\textmu% + \textbeta\textrho\'\textiota\textomicron\textupsilon\or + \textOmicron\textkappa\texttau\textomega\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textNu\textomicron\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textDelta\textepsilon\textkappa\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon% + \fi% +} \def\dategreek{% \def\today{\number\day \space \gr@month\space \number\year}} \def\gr@c@month{% - \ifcase\month\or >Ianouar'iou\or - Febrouar'iou\or Mart'iou\or >April'iou\or Ma"'iou\or - >Ioun'iou\or >Ioul'iou\or A>ugo'ustou\or Septembr'iou\or - >Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi} + \ifcase\month\or + \>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha% + \textrho\'\textiota\textomicron\textupsilon\or + \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon% + \textalpha\textrho\'\textiota\textomicron\textupsilon\or + \textMu\textalpha\textrho\texttau\'\textiota\textomicron\textupsilon\or + \>\textAlpha\textpi\textrho\textiota\textlambda% + \'\textiota\textomicron\textupsilon\or + \textMu\textalpha\"\'\textiota\textomicron\textupsilon\or + \>\textIota\textomicron\textupsilon\textnu% + \'\textiota\textomicron\textupsilon\or + \>\textIota\textomicron\textupsilon\textlambda% + \'\textiota\textomicron\textupsilon\or + \textAlpha\>\textupsilon\textgamma\textomicron\'\textupsilon\textsigma% + \texttau\textomicron\textupsilon\or + \textSigma\textepsilon\textpi\texttau\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \>\textOmicron\textkappa\texttau\textomega\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textNu\textomicron\textepsilon\textmu\textbeta% + \textrho\'\textiota\textomicron\textupsilon\or + \textDelta\textepsilon\textkappa\textepsilon\textmu% + \textbeta\textrho\'\textiota\textomicron\textupsilon% + \fi +} \def\Grtoday{% \expandafter\Greeknumeral\expandafter{\the\day}\space \gr@c@month \space \expandafter\Greeknumeral\expandafter{\the\year}} -\addto\extrasgreek{\greektext} -\addto\noextrasgreek{\latintext} +\if@bbl@greek@unicode + \relax +\else + \addto\extrasgreek{\greektext} + \addto\noextrasgreek{\latintext} +\fi \def\gr@ill@value#1{% \PackageWarning{babel}{Illegal value (#1) for greeknumeral}} \DeclareRobustCommand\anw@false{% @@ -176,84 +265,85 @@ \addto\noextrasgreek{% \let\@alph\latin@alph \let\@Alph\latin@Alph} -\let\latin@roman\@roman -\let\latin@Roman\@Roman -\def\greek@roman#1{\textlatin{\latin@roman{#1}}} -\def\greek@Roman#1{\textlatin{\latin@Roman{#1}}} -\addto\extrasgreek{% - \let\@roman\greek@roman - \let\@Roman\greek@Roman} -\addto\noextrasgreek{% - \let\@roman\latin@roman - \let\@Roman\latin@Roman} -\let\ltx@amp\& -\def\greek@amp{\textlatin{\ltx@amp}} -\addto\extrasgreek{\let\&\greek@amp} -\addto\noextrasgreek{\let\&\ltx@amp} \def\gr@num@i#1{% - \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi + \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or \textdelta\or + \textepsilon\or \textstigma\or \textzeta\or \texteta\or \texttheta\fi \ifnum#1=\z@\else\anw@true\fi\anw@print} \def\gr@num@ii#1{% - \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi + \ifcase#1\or \textiota\or \textkappa\or \textlambda\or \textmu\or + \textnu\or \textxi\or \textomicron\or \textpi\or \textqoppa\fi \ifnum#1=\z@\else\anw@true\fi\gr@num@i} \def\gr@num@iii#1{% - \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi + \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon\or + \textphi\or \textchi\or \textpsi\or \textomega\or \textsampi\fi \ifnum#1=\z@\anw@false\else\anw@true\fi\gr@num@ii} \def\gr@num@iv#1{% \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi + \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or \textdelta\or + \textepsilon\or \stigma\or \textzeta\or \texteta\or \texttheta\fi \gr@num@iii} \def\gr@num@v#1{% \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi + \ifcase#1\or \textiota\or \textkappa\or \textlambda\or \textmu\or + \textnu\or \textxi\or \textomicron\or \textpi\or \textqoppa\fi \gr@num@iv} \def\gr@num@vi#1{% \katwtonos - \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi + \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon\or + \textphi\or \textchi\or \textpsi\or \textomega\or \textsampi\fi \gr@num@v} -\begingroup - \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} - \catcode`\~=12 - \lccode`\!=`\~ - \lowercase{\def\x{\endgroup - \def\greek@tilde{!}}\x} -\addto\extrasgreek{% - \babel@savevariable{\lccode`v}\lccode`v=`v% - \babel@savevariable{\lccode`\'}\lccode`\'=`\'% - \babel@savevariable{\lccode`\"}\lccode`\"=`\"} -\addto\extraspolutonikogreek{% - \babel@savevariable{\lccode`\<}\lccode`\<=`\<% - \babel@savevariable{\lccode`\>}\lccode`\>=`\>% - \babel@savevariable{\lccode`\~}\lccode`\~=`\~% - \babel@savevariable{\lccode`\|}\lccode`\|=`\|% - \babel@savevariable{\lccode`\`}\lccode`\`=`\`} -\addto\extrasgreek{% - \babel@savevariable{\uccode`\"}\uccode`\"=`\"% - \babel@savevariable{\uccode`\'}\uccode`\'=159} %% 159 == ^^9f -\addto\extraspolutonikogreek{% - \babel@savevariable{\uccode`\~}\uccode`\~=159% - \babel@savevariable{\uccode`\>}\uccode`\>=159% - \babel@savevariable{\uccode`\<}\uccode`\<=159% - \babel@savevariable{\uccode`\|}\uccode`\|=`\|% - \babel@savevariable{\uccode`\`}\uccode`\`=159} -\@tempcnta=\lccode`\~ -\lccode`\~=159 -\lowercase{% - \initiate@active@char{~}% - \declare@shorthand{greek}{~}{}} -\lccode`\~=\@tempcnta -\addto\extraspolutonikogreek{\languageshorthands{greek}}% -\declare@shorthand{greek}{~}{\greek@tilde} -\DeclareTextCommand{\anwtonos}{LGR}{\char"FE\relax} -\DeclareTextCommand{\katwtonos}{LGR}{\char"FF\relax} -\DeclareTextCommand{\qoppa}{LGR}{\char"12\relax} -\DeclareTextCommand{\stigma}{LGR}{\char"06\relax} -\DeclareTextCommand{\sampi}{LGR}{\char"1B\relax} -\DeclareTextCommand{\Digamma}{LGR}{\char"C3\relax} -\DeclareTextCommand{\ddigamma}{LGR}{\char"93\relax} -\DeclareTextCommand{\vardigamma}{LGR}{\char"07\relax} -\DeclareTextCommand{\euro}{LGR}{\char"18\relax} -\DeclareTextCommand{\permill}{LGR}{\char"19\relax} + +\if@bbl@greek@unicode + \InputIfFileExists{xgreek-fixes.def}{}{% + \PackageWarning{babel}{Can't find the file "xgreek-fixes.def".\MessageBreak + For correct up/downcasing of Greek text, + install the "polyglossia" package.}% + } +\else % 8-bit TeX + \begingroup + \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} + \catcode`\~=12 + \lccode`\!=`\~ + \lowercase{\def\x{\endgroup + \def\greek@tilde{!}}\x} + \addto\extrasgreek{% + \babel@savevariable{\lccode`v}\lccode`v=`v% + \babel@savevariable{\lccode`\'}\lccode`\'=`\'% + \babel@savevariable{\lccode`\"}\lccode`\"=`\"} + \addto\extraspolutonikogreek{% + \babel@savevariable{\lccode`\<}\lccode`\<=`\<% + \babel@savevariable{\lccode`\>}\lccode`\>=`\>% + \babel@savevariable{\lccode`\~}\lccode`\~=`\~% + \babel@savevariable{\lccode`\|}\lccode`\|=`\|% + \babel@savevariable{\lccode`\`}\lccode`\`=`\`} + \addto\extrasgreek{% + \babel@savevariable{\uccode`\"}\uccode`\"=`\"% + \babel@savevariable{\uccode`\'}\uccode`\'=159} %% 159 == ^^9f + \addto\extraspolutonikogreek{% + \babel@savevariable{\uccode`\~}\uccode`\~=159% + \babel@savevariable{\uccode`\>}\uccode`\>=159% + \babel@savevariable{\uccode`\<}\uccode`\<=159% + \babel@savevariable{\uccode`\|}\uccode`\|=`\|% + \babel@savevariable{\uccode`\`}\uccode`\`=159} + \@tempcnta=\lccode`\~ + \lccode`\~=159 + \lowercase{% + \initiate@active@char{~}% + \declare@shorthand{greek}{~}{}} + \lccode`\~=\@tempcnta + \addto\extraspolutonikogreek{\languageshorthands{greek}}% + \declare@shorthand{greek}{~}{\greek@tilde} +\fi % End of LGR-specific code not required with XeTeX/LuaTeX. +\providecommand*{\anwtonos}{\textnumeralsigngreek} +\providecommand*{\katwtonos}{\textnumeralsignlowergreek} +\providecommand*{\qoppa}{\textqoppa} +\providecommand*{\stigma}{\textstigma} +\providecommand*{\sampi}{\textsampi} +\providecommand*{\Digamma}{\textDigamma} +\providecommand*{\ddigamma}{\textdigamma} +\providecommand*{\vardigamma}{\textvardigamma} +\providecommand*{\euro}{\texteuro} +\providecommand*{\permill}{\textperthousand} \ldf@finish{\CurrentOption} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z |