diff options
author | Karl Berry <karl@freefriends.org> | 2017-02-13 23:22:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-02-13 23:22:29 +0000 |
commit | 06a80c60d8760ed6c1a3559d91cbaf54e434f597 (patch) | |
tree | e1574005686893787d78730b596b526188547a4f /Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx | |
parent | ba74de022219d81d222baaf16a5e55c55ec4016e (diff) |
xgreek (13feb17)
git-svn-id: svn://tug.org/texlive/trunk@43222 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx')
-rw-r--r-- | Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx | 92 |
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 |