summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx')
-rw-r--r--Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx92
1 files changed, 58 insertions, 34 deletions
diff --git a/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx b/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx
index 51bc22b6259..a32eec25a28 100644
--- a/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx
+++ b/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx
@@ -16,7 +16,7 @@
%%
%\iffalse
%
-% (c) Copyright 2007-2016 Apostolos Syropoulos
+% (c) Copyright 2007-2017 Apostolos Syropoulos
% This program can be redistributed and/or modified under the
% terms of the LaTeX Project Public License Distributed from
% http://www.latex-project.org/lppl.txt; either
@@ -29,12 +29,12 @@
% Apostolos Syropoulos (asyropoulos@yahoo.com)
%
%\fi
-% \CheckSum{1881}
+% \CheckSum{1913}
% \iffalse This is a Metacomment
%
%<xgreek, >\ProvidesFile{xgreek.sty}
%
-%<xgreek, > [2016/04/28 v2.7 Package `xgreek.sty']
+%<xgreek, > [2017/02/10 v3.0 Package `xgreek.sty']
%
% \begin{macrocode}
%<*driver>
@@ -42,9 +42,9 @@
\GetFileInfo{xgreek.drv}
\usepackage{xltxtra}
\begin{document}
-\newICUfeature{Contextuals}{Alts}{+calt}
+%\newopentypefeature{Contextuals}{Alts}{+calt}
\setmainfont[Mapping=tex-text,Script=Greek,
- SmallCapsFeatures={Contextuals=Alts}]{Universal Modern}
+ SmallCapsFeatures={Contextuals=Alternate}]{Universal Modern}
\setmonofont{UM Typewriter}
\setsansfont[Mapping=tex-text]{GFS Neohellenic}
\DocInput{xgreek.dtx}
@@ -53,25 +53,26 @@
% \end{macrocode}
% \fi
%\StopEventually{}
-%\title{The \textsf{xgreek} package}
+%\title{Greek Language Support for\\ \XeLaTeX\ and Lua\LaTeX}
%\author{Apostolos Syropoulos\\
% Xanthi, Greece\\
% \texttt{asyropoulos@yahoo.com}}
-% \date{2009/11/23\\ Last Updated 2016/04/28}
+% \date{2009/11/23\\ Last Updated 2017/02/10}
%\maketitle
% \begin{abstract}
% The \textsf{xgreek} package provides rudimentary support for Greek language
-% typesetting with \XeLaTeX. In particular, it provides support for modern Greek (either
-% monotonic or polytonic) and ancient Greek.
+% typesetting with \XeLaTeX and Lua\LaTeX. In particular, it provides support for modern
+% Greek (either monotonic or polytonic) and ancient Greek.
%\end{abstract}
%
%\section{Introduction}
%
% The \textsf{xgreek} package provides rudimentary support for Greek language
-% typesetting with \XeLaTeX. Users will be able to typeset documents in either
-% modern Greek (monotonic or polytonic) or ancient Greek by selecting the appropriate
+% typesetting with \XeLaTeX and Lua\LaTeX. Users will be able to typeset documents in
+% either modern Greek (monotonic or polytonic) or ancient Greek by selecting the appropriate
% package option. The default ``language'' is monotonic Greek.
-%
+%
+% Support for Lua\LaTeX\ was provided by Javier Bezos.
%
% \section{The Source Code}
% According to the Unicode standard
@@ -86,7 +87,7 @@
% I first need to set up the correct |\uccode|s and |\lccode|s.
% \begin{macrocode}
%<*xgreek>
-\message{Package `xgreek' version 2.7 by Apostolos Syropoulos}
+\message{Package `xgreek' version 3.0 by Apostolos Syropoulos}
\global\lccode"0370="0371 \global\uccode"0370="0370
\global\lccode"0371="0371 \global\uccode"0371="0370
\global\lccode"0372="0373 \global\uccode"0372="0372
@@ -520,19 +521,35 @@
\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue
% \end{macrocode}
-% Now that I have defined the language dependant macros, I will define the various
-% supported options. Note I follow the standard mechanism to load hyphenation patterns.
+% Lua\LaTeX\ and \XeLaTeX\ have different ways to load hyphenation patterns. Package
+% \textsf{luahyphenrules} by Javier Bezos facilitates this process for people who
+% want to use Lua\LaTeX\ and the ``traditional'' way to load hyphenation patterns.
+% To ensure proper inclusion of LuaTeX staff, I use the following ``idiom'':
+% \begin{center}
+% |\ifx\directlua\undefined |\texttt{\textit{non Lua\LaTeX\ code}}|\else |%
+% \texttt{\textit{Lua\LaTeX\ code}}|\fi|
+% \end{center}
+% \begin{macrocode}
+\ifx\directlua\undefined\else\RequirePackage{luahyphenrules}\fi
+% \end{macrocode}
+% The code that follows specifies which hyphenation patterns will be active. The \XeLaTeX\ code
+% is quite standard and depends on the \textsf{babel} pattern loading mechanism, while the
+% Lua\LaTeX\ code uses the |\HyphenRules| macro, which has essentially the functionality
+% of the |\selectlanguage| macro.
% \begin{macrocode}
\DeclareOption{monogreek}{%
- \language\l@monogreek%
+ \ifx\directlua\undefined%
+ \language\l@monogreek\else\HyphenRules{monogreek}\fi%
}
\DeclareOption{polygreek}{%
- \language\l@polygreek%
+ \ifx\directlua\undefined%
+ \language\l@polygreek\else\HyphenRules{polygreek}\fi%
\polytonicn@mes%
\let\gr@month\gr@c@month%
}
\DeclareOption{ancientgreek}{%
- \language\l@ancientgreek%
+ \ifx\directlua\undefined%
+ \language\l@ancientgreek\else\HyphenRules{ancientgreek}\fi%
\@ncientn@mes%
\let\gr@month\gr@c@month%
}
@@ -544,8 +561,8 @@
\def\stigma{\char"03DB\relax}
}
% \end{macrocode}
-% As noted above, the new option |noindentfirst| restores the default \LaTeX\ behavior of adding no indentation to
-% the first paragraph after any header.
+% As noted above, the new option |noindentfirst| restores the default \LaTeX\ behavior of adding no
+% indentation to the first paragraph after any header.
% \begin{macrocode}
\DeclareOption{noindentfirst}{%
\let\@afterindentfalse\@saveafterindentfalse
@@ -750,7 +767,7 @@
% \item Χ denotes the number one thousand (1000)
% \item Μ denotes the number ten thousands (10000)
%\end{itemize}
-% Moreover, the letters Δ, Η, Χ, and Μ under the letter ^^^^^10143 (a form of Π)
+% Moreover, the letters Δ, Η, Χ, and Μ under the letter ^^^^^^010143 (a form of Π)
% denote five times their original value. In particular, the symbol ^^^^^10144, denotes
% the number 50, the symbol ^^^^^10145 denotes the number 500, the symbol ^^^^^10146
% denotes the number 5000, and the symbol ^^^^^10147 denotes the number 50,000. It
@@ -803,7 +820,7 @@
% $50000$.
% \begin{macrocode}
\@whilenum\@attic@num>49999\do{%
- ^^^^^10147\advance\@attic@num-50000}%
+ ^^^^^^010147\advance\@attic@num-50000}%
% \end{macrocode}
% Next the macro checks for tens of thousands.
% \begin{macrocode}
@@ -815,7 +832,7 @@
% it does have one.
% \begin{macrocode}
\ifnum\@attic@num>4999%
- ^^^^^10146\advance\@attic@num-5000%
+ ^^^^^^010146\advance\@attic@num-5000%
\fi\relax
% \end{macrocode}
% The macro should also check for thousands, the same way it checked for tens of thousands.
@@ -827,7 +844,7 @@
% handled the way the macro handled the case of the five thousands ``digit''.
% \begin{macrocode}
\ifnum\@attic@num>499%
- ^^^^^10145\advance\@attic@num-500%
+ ^^^^^^010145\advance\@attic@num-500%
\fi\relax
% \end{macrocode}
% It is time to check hundreds, which follow the same pattern as thousands.
@@ -838,7 +855,7 @@
% A numeral can have only one ^^^^^10144 ``digit'' (equivalent to 50).
% \begin{macrocode}
\ifnum\@attic@num>49%
- ^^^^^10144\advance\@attic@num-50%
+ ^^^^^^010144\advance\@attic@num-50%
\fi\relax
% \end{macrocode}
% The macro now checks now for tens digit.
@@ -913,15 +930,22 @@
% \begin{macro}{\setlanguage}
% We provide the |\setlanguage| command which
% activates the hypehnation patterns of some other language. It is similar
-% to babel's |\selectlanguage|, but we opted to use a new name to avoid any name conflicts.
-% Valid arguments include |monogreek|, |polygreek|, and |ancientgreek|.
-% \begin{macrocode}
-\def\setlanguage#1{%
- \expandafter\ifx\csname l@#1\endcsname\relax%
- \typeout{^^J Error: No hyphenation pattern for language #1 loaded,}%
- \typeout{ default hyphenation patterns are used.^^J}%
- \language=0%
- \else\language=\csname l@#1\endcsname\fi}
+% to babel's |\selectlanguage|, but we opted to use a new name to avoid possible name conflicts.
+% Valid arguments include |monogreek|, |polygreek|, |ancientgreek|, and |american|. As was noted
+% previously, package \textsf{luahyphenrules} provides the command |\HyphenRules| which has exactly
+% the same functionality as this command. So when using Lua\LaTeX\ users will actually use the
+% |\HyphenRules| command.
+% \begin{macrocode}
+\ifx\directlua\undefined%
+ \def\setlanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax%
+ \typeout{^^J Error: No hyphenation pattern for language #1 loaded,}%
+ \typeout{ default hyphenation patterns are used.^^J}%
+ \language=0%
+ \else\language=\csname l@#1\endcsname\fi}
+\else
+ \let\setlanguage\HyphenRules
+\fi
% \end{macrocode}
% \end{macro}
% The macros |\grtoday| and |\Grtoday| produces the current date, only that the