diff options
author | Karl Berry <karl@freefriends.org> | 2008-07-01 01:03:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-07-01 01:03:10 +0000 |
commit | b969e55843a1ee8c12045343c18b4565c4471838 (patch) | |
tree | d52be13891451e8dd02f1777fd5c91cbb2487d4e /Master/texmf-dist/source/xelatex/xgreek | |
parent | 3162035fb38abf635f76f77824771f7d052ce335 (diff) |
xgreek update (25jun08)
git-svn-id: svn://tug.org/texlive/trunk@9133 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xgreek')
-rw-r--r-- | Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx | 575 |
1 files changed, 536 insertions, 39 deletions
diff --git a/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx b/Master/texmf-dist/source/xelatex/xgreek/xgreek.dtx index 22d071f78cd..41413da30da 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 Apostolos Syropoulos +% (c) Copyright 2007-2008 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,22 +29,24 @@ % Apostolos Syropoulos (asyropoulos@yahoo.com) % %\fi -% \CheckSum{424} +% \CheckSum{1797} % \iffalse This is a Metacomment % %<xgreek, >\ProvidesFile{xgreek.sty} % -%<xgreek, > [2007/11/18 v1.0c Package `xgreek.sty'] +%<xgreek, > [2008/06/22 v2.0 Package `xgreek.sty'] % % \begin{macrocode} %<*driver> \documentclass{ltxdoc} \GetFileInfo{xgreek.drv} +\usepackage{xunicode,xltxtra} \usepackage{fontspec} -\language=\american \begin{document} -\setmainfont{GFS Bodoni} +\setmainfont[Mapping=tex-text,Script=Greek, + SmallCapsFeatures={Contextuals=Alts}]{Universal Modern} \setmonofont{UM Typewriter} +\setsansfont[Mapping=tex=text]{GFS Neohellenic} \DocInput{xgreek.dtx} \end{document} %</driver> @@ -55,28 +57,346 @@ %\author{Apostolos Syropoulos\\ % Xanthi, Greece\\ % \texttt{asyropoulos@yahoo.com}} -% \date{2007/01/09} +% \date{2008/06/22} %\maketitle % \begin{abstract} % The \textsf{xgreek} package provides rudimentary support for Greek language -% typesetting with X$\epsilon$\LaTeX. In particular, it provides support for modern Greek (either +% typesetting with \XeLaTeX. 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 X$\epsilon$\LaTeX. Users will be able to typeset documents in either +% typesetting with \XeLaTeX. 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 modern greek. +% package option. The default ``language'' is monotonic Greek. % % % \section{The Source Code} -% We define the various strings that correspond to the standard \LaTeX\ captions. -% Since monotonic Greek is the default option, we define these strings accordingly. -% Options +% According to the Unicode standard +%\begin{center} +%|http://www.unicode.org/Public/UNIDATA/UnicodeData.txt| +%\end{center} +% the uppercase form of \textsc{greek small letter epsilon with tonos} is +% \textsc{greek capital letter eta with tonos}. This is certainly wrong. The main reason +% is that accents are not part of the letter as for example is the case with +% \textsc{latin small letter k with caron}. Since, \XeLaTeX\ blindly follows the Unicode +% standard, commands like |\MakeUppercase| produce wrong output. For this reason +% we first need to set up the correct |\uccode|s and |\lccode|s. % \begin{macrocode} %<*xgreek> +\message{Package `xgreek' version 2.0 by Apostolos Syropoulos} +\global\lccode"0386="03AC \global\uccode"0386="0391 +\global\lccode"0388="03AD \global\uccode"0388="0395 +\global\lccode"0389="03AC \global\uccode"0389="0397 +\global\lccode"038A="03AF \global\uccode"038A="0399 +\global\lccode"038C="03CC \global\uccode"038C="039F +\global\lccode"038E="03CD \global\uccode"038E="03A5 +\global\lccode"038F="03CE \global\uccode"038F="03A9 +\global\lccode"0390="0390 \global\uccode"0390="03AA +\global\lccode"0391="03B1 \global\uccode"0391="0391 +\global\lccode"0392="03B2 \global\uccode"0392="0392 +\global\lccode"0393="03B3 \global\uccode"0393="0393 +\global\lccode"0394="03B4 \global\uccode"0394="0394 +\global\lccode"0395="03B5 \global\uccode"0395="0395 +\global\lccode"0396="03B6 \global\uccode"0396="0396 +\global\lccode"0397="03B7 \global\uccode"0397="0397 +\global\lccode"0398="03B8 \global\uccode"0398="0398 +\global\lccode"0399="03B9 \global\uccode"0399="0399 +\global\lccode"039A="03BA \global\uccode"039A="039A +\global\lccode"039B="03BB \global\uccode"039B="039B +\global\lccode"039C="03BC \global\uccode"039C="039C +\global\lccode"039D="03BD \global\uccode"039D="039D +\global\lccode"039E="03BE \global\uccode"039E="039E +\global\lccode"039F="03BF \global\uccode"039F="039F +\global\lccode"03A0="03C0 \global\uccode"03A0="03A0 +\global\lccode"03A1="03C1 \global\uccode"03A1="03A1 +\global\lccode"03A3="03C3 \global\uccode"03A3="03A3 +\global\lccode"03A4="03C4 \global\uccode"03A4="03A4 +\global\lccode"03A5="03C5 \global\uccode"03A5="03A5 +\global\lccode"03A6="03C6 \global\uccode"03A6="03A6 +\global\lccode"03A7="03C7 \global\uccode"03A7="03A7 +\global\lccode"03A8="03C8 \global\uccode"03A8="03A8 +\global\lccode"03A9="03C9 \global\uccode"03A9="03A9 +\global\lccode"03AA="03CA \global\uccode"03AA="03AA +\global\lccode"03AB="03CB \global\uccode"03AB="03AB +\global\lccode"03AC="03AC \global\uccode"03AC="0391 +\global\lccode"03AD="03AD \global\uccode"03AD="0395 +\global\lccode"03AE="03AE \global\uccode"03AE="0397 +\global\lccode"03AF="03AF \global\uccode"03AF="0399 +\global\lccode"03B0="03B0 \global\uccode"03B0="03AB +\global\lccode"03B1="03B1 \global\uccode"03B1="0391 +\global\lccode"03B2="03B2 \global\uccode"03B2="0392 +\global\lccode"03B3="03B3 \global\uccode"03B3="0393 +\global\lccode"03B4="03B4 \global\uccode"03B4="0394 +\global\lccode"03B5="03B5 \global\uccode"03B5="0395 +\global\lccode"03B6="03B6 \global\uccode"03B6="0396 +\global\lccode"03B7="03B7 \global\uccode"03B7="0397 +\global\lccode"03B8="03B8 \global\uccode"03B8="0398 +\global\lccode"03B9="03B9 \global\uccode"03B9="0399 +\global\lccode"03BA="03BA \global\uccode"03BA="039A +\global\lccode"03BB="03BB \global\uccode"03BB="039B +\global\lccode"03BC="03BC \global\uccode"03BC="039C +\global\lccode"03BD="03BD \global\uccode"03BD="039D +\global\lccode"03BE="03BE \global\uccode"03BE="039E +\global\lccode"03BF="03BF \global\uccode"03BF="039F +\global\lccode"03C0="03C0 \global\uccode"03C0="03A0 +\global\lccode"03C1="03C1 \global\uccode"03C1="03A1 +\global\lccode"03C2="03C2 \global\uccode"03C2="03A3 +\global\lccode"03C3="03C3 \global\uccode"03C3="03A3 +\global\lccode"03C4="03C4 \global\uccode"03C4="03A4 +\global\lccode"03C5="03C5 \global\uccode"03C5="03A5 +\global\lccode"03C6="03C6 \global\uccode"03C6="03A6 +\global\lccode"03C7="03C7 \global\uccode"03C7="03A7 +\global\lccode"03C8="03C8 \global\uccode"03C8="03A8 +\global\lccode"03C9="03C9 \global\uccode"03C9="03A9 +\global\lccode"03CA="03CA \global\uccode"03CA="03AA +\global\lccode"03CB="03CB \global\uccode"03CB="03AB +\global\lccode"03CC="03CC \global\uccode"03CC="039F +\global\lccode"03CD="03CD \global\uccode"03CD="03A5 +\global\lccode"03CE="03CE \global\uccode"03CE="03A9 +\global\lccode"03D0="03D0 \global\uccode"03D0="0392 +\global\lccode"03D1="03D1 \global\uccode"03D1="0398 +\global\lccode"03D2="03C5 \global\uccode"03D2="03A5 +\global\lccode"03D3="03CD \global\uccode"03D3="03A5 +\global\lccode"03D4="03CB \global\uccode"03D4="03AB +\global\lccode"03D5="03C6 \global\uccode"03D5="03A6 +\global\lccode"03D6="03C0 \global\uccode"03D6="03A0 +\global\lccode"03DA="03DB \global\uccode"03DA="03DA +\global\lccode"03DB="03DB \global\uccode"03DB="03DA +\global\lccode"03DC="03DD \global\uccode"03DC="03DC +\global\lccode"03DD="03DD \global\uccode"03DD="03DC +\global\lccode"03DE="03DF \global\uccode"03DE="03DE +\global\lccode"03DF="03DF \global\uccode"03DF="03DE +\global\lccode"03E0="03E1 \global\uccode"03E0="039A +\global\lccode"03E0="03E1 \global\uccode"03E1="03A1 +\global\lccode"03F0="03BA \global\uccode"03F0="039A +\global\lccode"03F1="03C1 \global\uccode"03F1="03A1 +\global\lccode"03F2="03F2 \global\uccode"03F2="03F9 +\global\lccode"03F9="03F2 \global\uccode"03F9="03F9 +\global\lccode"1F00="1F00 \global\uccode"1F00="0391 +\global\lccode"1F01="1F01 \global\uccode"1F01="0391 +\global\lccode"1F02="1F02 \global\uccode"1F02="0391 +\global\lccode"1F03="1F03 \global\uccode"1F03="0391 +\global\lccode"1F04="1F04 \global\uccode"1F04="0391 +\global\lccode"1F05="1F05 \global\uccode"1F05="0391 +\global\lccode"1F06="1F06 \global\uccode"1F06="0391 +\global\lccode"1F07="1F07 \global\uccode"1F07="0391 +\global\lccode"1F08="1F00 \global\uccode"1F08="0391 +\global\lccode"1F09="1F01 \global\uccode"1F09="0391 +\global\lccode"1F0A="1F02 \global\uccode"1F0A="0391 +\global\lccode"1F0B="1F03 \global\uccode"1F0B="0391 +\global\lccode"1F0C="1F04 \global\uccode"1F0C="0391 +\global\lccode"1F0D="1F05 \global\uccode"1F0D="0391 +\global\lccode"1F0E="1F06 \global\uccode"1F0E="0391 +\global\lccode"1F0F="1F07 \global\uccode"1F0F="0391 +\global\lccode"1F10="1F10 \global\uccode"1F10="0395 +\global\lccode"1F11="1F11 \global\uccode"1F11="0395 +\global\lccode"1F12="1F12 \global\uccode"1F12="0395 +\global\lccode"1F13="1F13 \global\uccode"1F13="0395 +\global\lccode"1F14="1F14 \global\uccode"1F14="0395 +\global\lccode"1F15="1F15 \global\uccode"1F15="0395 +\global\lccode"1F18="1F10 \global\uccode"1F18="0395 +\global\lccode"1F19="1F11 \global\uccode"1F19="0395 +\global\lccode"1F1A="1F12 \global\uccode"1F1A="0395 +\global\lccode"1F1B="1F13 \global\uccode"1F1B="0395 +\global\lccode"1F1C="1F14 \global\uccode"1F1C="0395 +\global\lccode"1F1D="1F15 \global\uccode"1F1D="0395 +\global\lccode"1F20="1F20 \global\uccode"1F20="0397 +\global\lccode"1F21="1F21 \global\uccode"1F21="0397 +\global\lccode"1F22="1F22 \global\uccode"1F22="0397 +\global\lccode"1F23="1F23 \global\uccode"1F23="0397 +\global\lccode"1F24="1F24 \global\uccode"1F24="0397 +\global\lccode"1F25="1F25 \global\uccode"1F25="0397 +\global\lccode"1F26="1F26 \global\uccode"1F26="0397 +\global\lccode"1F27="1F27 \global\uccode"1F27="0397 +\global\lccode"1F28="1F20 \global\uccode"1F28="0397 +\global\lccode"1F29="1F21 \global\uccode"1F29="0397 +\global\lccode"1F2A="1F22 \global\uccode"1F2A="0397 +\global\lccode"1F2B="1F23 \global\uccode"1F2B="0397 +\global\lccode"1F2C="1F24 \global\uccode"1F2C="0397 +\global\lccode"1F2D="1F25 \global\uccode"1F2D="0397 +\global\lccode"1F2E="1F26 \global\uccode"1F2E="0397 +\global\lccode"1F2F="1F27 \global\uccode"1F2F="0397 +\global\lccode"1F30="1F30 \global\uccode"1F30="0399 +\global\lccode"1F31="1F31 \global\uccode"1F31="0399 +\global\lccode"1F32="1F32 \global\uccode"1F32="0399 +\global\lccode"1F33="1F33 \global\uccode"1F33="0399 +\global\lccode"1F34="1F34 \global\uccode"1F34="0399 +\global\lccode"1F35="1F35 \global\uccode"1F35="0399 +\global\lccode"1F36="1F36 \global\uccode"1F36="0399 +\global\lccode"1F37="1F37 \global\uccode"1F37="0399 +\global\lccode"1F38="1F30 \global\uccode"1F38="0399 +\global\lccode"1F39="1F31 \global\uccode"1F39="0399 +\global\lccode"1F3A="1F32 \global\uccode"1F3A="0399 +\global\lccode"1F3B="1F33 \global\uccode"1F3B="0399 +\global\lccode"1F3C="1F34 \global\uccode"1F3C="0399 +\global\lccode"1F3D="1F35 \global\uccode"1F3D="0399 +\global\lccode"1F3E="1F36 \global\uccode"1F3E="0399 +\global\lccode"1F3F="1F37 \global\uccode"1F3F="0399 +\global\lccode"1F40="1F40 \global\uccode"1F40="039F +\global\lccode"1F41="1F41 \global\uccode"1F41="039F +\global\lccode"1F42="1F42 \global\uccode"1F42="039F +\global\lccode"1F43="1F43 \global\uccode"1F43="039F +\global\lccode"1F44="1F44 \global\uccode"1F44="039F +\global\lccode"1F45="1F45 \global\uccode"1F45="039F +\global\lccode"1F48="1F40 \global\uccode"1F48="039F +\global\lccode"1F49="1F41 \global\uccode"1F49="039F +\global\lccode"1F4A="1F42 \global\uccode"1F4A="039F +\global\lccode"1F4B="1F43 \global\uccode"1F4B="039F +\global\lccode"1F4C="1F44 \global\uccode"1F4C="039F +\global\lccode"1F4D="1F45 \global\uccode"1F4D="039F +\global\lccode"1F50="1F50 \global\uccode"1F50="03A5 +\global\lccode"1F51="1F51 \global\uccode"1F51="03A5 +\global\lccode"1F52="1F52 \global\uccode"1F52="03A5 +\global\lccode"1F53="1F53 \global\uccode"1F53="03A5 +\global\lccode"1F54="1F54 \global\uccode"1F54="03A5 +\global\lccode"1F55="1F55 \global\uccode"1F55="03A5 +\global\lccode"1F56="1F56 \global\uccode"1F56="03A5 +\global\lccode"1F57="1F57 \global\uccode"1F57="03A5 +\global\lccode"1F59="1F51 \global\uccode"1F59="03A5 +\global\lccode"1F5B="1F53 \global\uccode"1F5B="03A5 +\global\lccode"1F5D="1F55 \global\uccode"1F5D="03A5 +\global\lccode"1F5F="1F57 \global\uccode"1F5F="03A5 +\global\lccode"1F60="1F60 \global\uccode"1F60="03A9 +\global\lccode"1F61="1F61 \global\uccode"1F61="03A9 +\global\lccode"1F62="1F62 \global\uccode"1F62="03A9 +\global\lccode"1F63="1F63 \global\uccode"1F63="03A9 +\global\lccode"1F64="1F64 \global\uccode"1F64="03A9 +\global\lccode"1F65="1F65 \global\uccode"1F65="03A9 +\global\lccode"1F66="1F66 \global\uccode"1F66="03A9 +\global\lccode"1F67="1F67 \global\uccode"1F67="03A9 +\global\lccode"1F68="1F60 \global\uccode"1F68="03A9 +\global\lccode"1F69="1F61 \global\uccode"1F69="03A9 +\global\lccode"1F6A="1F62 \global\uccode"1F6A="03A9 +\global\lccode"1F6B="1F63 \global\uccode"1F6B="03A9 +\global\lccode"1F6C="1F64 \global\uccode"1F6C="03A9 +\global\lccode"1F6D="1F65 \global\uccode"1F6D="03A9 +\global\lccode"1F6E="1F66 \global\uccode"1F6E="03A9 +\global\lccode"1F6F="1F67 \global\uccode"1F6F="03A9 +\global\lccode"1F70="1F70 \global\uccode"1F70="0391 +\global\lccode"1F71="1F71 \global\uccode"1F71="0391 +\global\lccode"1F72="1F72 \global\uccode"1F72="0395 +\global\lccode"1F73="1F73 \global\uccode"1F73="0395 +\global\lccode"1F74="1F74 \global\uccode"1F74="0397 +\global\lccode"1F75="1F75 \global\uccode"1F75="0397 +\global\lccode"1F76="1F76 \global\uccode"1F76="0399 +\global\lccode"1F77="1F77 \global\uccode"1F77="0399 +\global\lccode"1F78="1F78 \global\uccode"1F78="039F +\global\lccode"1F79="1F79 \global\uccode"1F79="039F +\global\lccode"1F7A="1F7A \global\uccode"1F7A="03A5 +\global\lccode"1F7B="1F7B \global\uccode"1F7B="03A5 +\global\lccode"1F7C="1F7C \global\uccode"1F7C="03A9 +\global\lccode"1F7D="1F7D \global\uccode"1F7D="03A9 +\global\lccode"1F80="1F80 \global\uccode"1F80="1FBC +\global\lccode"1F81="1F81 \global\uccode"1F81="1FBC +\global\lccode"1F82="1F82 \global\uccode"1F82="1FBC +\global\lccode"1F83="1F83 \global\uccode"1F83="1FBC +\global\lccode"1F84="1F84 \global\uccode"1F84="1FBC +\global\lccode"1F85="1F85 \global\uccode"1F85="1FBC +\global\lccode"1F86="1F86 \global\uccode"1F86="1FBC +\global\lccode"1F87="1F87 \global\uccode"1F87="1FBC +\global\lccode"1F88="1F80 \global\uccode"1F88="1FBC +\global\lccode"1F89="1F81 \global\uccode"1F89="1FBC +\global\lccode"1F8A="1F82 \global\uccode"1F8A="1FBC +\global\lccode"1F8B="1F83 \global\uccode"1F8B="1FBC +\global\lccode"1F8C="1F84 \global\uccode"1F8C="1FBC +\global\lccode"1F8D="1F85 \global\uccode"1F8D="1FBC +\global\lccode"1F8E="1F86 \global\uccode"1F8E="1FBC +\global\lccode"1F8F="1F87 \global\uccode"1F8F="1FBC +\global\lccode"1F90="1F90 \global\uccode"1F90="1FCC +\global\lccode"1F91="1F91 \global\uccode"1F91="1FCC +\global\lccode"1F92="1F92 \global\uccode"1F92="1FCC +\global\lccode"1F93="1F93 \global\uccode"1F93="1FCC +\global\lccode"1F94="1F94 \global\uccode"1F94="1FCC +\global\lccode"1F95="1F95 \global\uccode"1F95="1FCC +\global\lccode"1F96="1F96 \global\uccode"1F96="1FCC +\global\lccode"1F97="1F97 \global\uccode"1F97="1FCC +\global\lccode"1F98="1F90 \global\uccode"1F98="1FCC +\global\lccode"1F99="1F91 \global\uccode"1F99="1FCC +\global\lccode"1F9A="1F92 \global\uccode"1F9A="1FCC +\global\lccode"1F9B="1F93 \global\uccode"1F9B="1FCC +\global\lccode"1F9C="1F94 \global\uccode"1F9C="1FCC +\global\lccode"1F9D="1F95 \global\uccode"1F9D="1FCC +\global\lccode"1F9E="1F96 \global\uccode"1F9E="1FCC +\global\lccode"1F9F="1F97 \global\uccode"1F9F="1FCC +\global\lccode"1FA0="1FA0 \global\uccode"1FA0="1FFC +\global\lccode"1FA1="1FA1 \global\uccode"1FA1="1FFC +\global\lccode"1FA2="1FA2 \global\uccode"1FA2="1FFC +\global\lccode"1FA3="1FA3 \global\uccode"1FA3="1FFC +\global\lccode"1FA4="1FA4 \global\uccode"1FA4="1FFC +\global\lccode"1FA5="1FA5 \global\uccode"1FA5="1FFC +\global\lccode"1FA6="1FA6 \global\uccode"1FA6="1FFC +\global\lccode"1FA7="1FA7 \global\uccode"1FA7="1FFC +\global\lccode"1FA8="1FA0 \global\uccode"1FA8="1FFC +\global\lccode"1FA9="1FA1 \global\uccode"1FA9="1FFC +\global\lccode"1FAA="1FA2 \global\uccode"1FAA="1FFC +\global\lccode"1FAB="1FA3 \global\uccode"1FAB="1FFC +\global\lccode"1FAC="1FA4 \global\uccode"1FAC="1FFC +\global\lccode"1FAD="1FA5 \global\uccode"1FAD="1FFC +\global\lccode"1FAE="1FA6 \global\uccode"1FAE="1FFC +\global\lccode"1FAF="1FA7 \global\uccode"1FAF="1FFC +\global\lccode"1FB0="1FB0 \global\uccode"1FB0="1FB8 +\global\lccode"1FB1="1FB1 \global\uccode"1FB1="1FB9 +\global\lccode"1FB2="1FB2 \global\uccode"1FB2="1FBC +\global\lccode"1FB3="1FB3 \global\uccode"1FB3="1FBC +\global\lccode"1FB4="1FB4 \global\uccode"1FB4="1FBC +\global\lccode"1FB6="1FB6 \global\uccode"1FB6="0391 +\global\lccode"1FB7="1FB7 \global\uccode"1FB7="1FBC +\global\lccode"1FB8="1FB0 \global\uccode"1FB8="1FB8 +\global\lccode"1FB9="1FB1 \global\uccode"1FB9="1FB9 +\global\lccode"1FBA="1F70 \global\uccode"1FBA="0391 +\global\lccode"1FBB="1F71 \global\uccode"1FBB="0391 +\global\lccode"1FBC="1FB3 \global\uccode"1FBC="1FBC +\global\lccode"1FBD="1FBD \global\uccode"1FBD="1FBD +\global\lccode"1FC2="1FC2 \global\uccode"1FC2="1FCC +\global\lccode"1FC3="1FC3 \global\uccode"1FC3="1FCC +\global\lccode"1FC4="1FC4 \global\uccode"1FC4="1FCC +\global\lccode"1FC6="1FC6 \global\uccode"1FC6="0397 +\global\lccode"1FC7="1FC7 \global\uccode"1FC7="1FCC +\global\lccode"1FC8="1F72 \global\uccode"1FC8="0395 +\global\lccode"1FC9="1F73 \global\uccode"1FC9="0395 +\global\lccode"1FCA="1F74 \global\uccode"1FCA="0397 +\global\lccode"1FCB="1F75 \global\uccode"1FCB="0397 +\global\lccode"1FCC="1FC3 \global\uccode"1FCC="1FCC +\global\lccode"1FD0="1FD0 \global\uccode"1FD0="1FD8 +\global\lccode"1FD1="1FD1 \global\uccode"1FD1="1FD9 +\global\lccode"1FD2="1FD2 \global\uccode"1FD2="03AA +\global\lccode"1FD3="1FD3 \global\uccode"1FD3="03AA +\global\lccode"1FD6="1FD6 \global\uccode"1FD6="0399 +\global\lccode"1FD7="1FD7 \global\uccode"1FD7="03AA +\global\lccode"1FD8="1FD0 \global\uccode"1FD8="1FD8 +\global\lccode"1FD9="1FD1 \global\uccode"1FD9="1FD9 +\global\lccode"1FDA="1F76 \global\uccode"1FDA="0399 +\global\lccode"1FDB="1F77 \global\uccode"1FDB="0399 +\global\lccode"1FE0="1FE0 \global\uccode"1FE0="1FE8 +\global\lccode"1FE1="1FE1 \global\uccode"1FE1="1FE9 +\global\lccode"1FE2="1FE2 \global\uccode"1FE2="03AB +\global\lccode"1FE3="1FE3 \global\uccode"1FE3="03AB +\global\lccode"1FE4="1FE4 \global\uccode"1FE4="03A1 +\global\lccode"1FE5="1FE5 \global\uccode"1FE5="1FEC +\global\lccode"1FE6="1FE6 \global\uccode"1FE6="03A5 +\global\lccode"1FE7="1FE7 \global\uccode"1FE7="03AB +\global\lccode"1FE8="1FE0 \global\uccode"1FE8="1FE8 +\global\lccode"1FE9="1FE1 \global\uccode"1FE9="1FE9 +\global\lccode"1FEA="1F7A \global\uccode"1FEA="03A5 +\global\lccode"1FEB="1F7B \global\uccode"1FEB="03A5 +\global\lccode"1FEC="1FE5 \global\uccode"1FEC="1FEC +\global\lccode"1FF2="1FF2 \global\uccode"1FF2="1FFC +\global\lccode"1FF3="1FF3 \global\uccode"1FF3="1FFC +\global\lccode"1FF4="1FF4 \global\uccode"1FF4="1FFC +\global\lccode"1FF6="1FF6 \global\uccode"1FF6="03A9 +\global\lccode"1FF7="1FF7 \global\uccode"1FF7="1FFC +\global\lccode"1FF8="1F78 \global\uccode"1FF8="039F +\global\lccode"1FF9="1F79 \global\uccode"1FF9="039F +\global\lccode"1FFA="1F7C \global\uccode"1FFA="03A9 +\global\lccode"1FFB="1F7D \global\uccode"1FFB="03A9 +\global\lccode"1FFC="1FF3 \global\uccode"1FFC="1FFC +% \end{macrocode} +% Next we define the various strings that correspond to the standard \LaTeX\ captions. +% We first define the strings for monotonic Greek. +% \begin{macrocode} \def\prefacename{Πρόλογος}% \def\refname{Αναφορές}% \def\abstractname{Περίληψη}% @@ -99,17 +419,7 @@ \def\proofname{Απόδειξη}% \def\glossaryname{Γλωσσάρι}% % \end{macrocode} -% The macro |\dategreek| redefines the command |\today| to produce greek dates. The -% names of months are defined by the macro |\gr@month|. -% \begin{macrocode} -\def\gr@month{% - \ifcase\month\or Ιανουαρίου\or Φεβρουαρίου\or Μαρτίου\or Απριλίου\or - Μαΐου\or Ιουνίου\or Ιουλίου\or Αυγούστου\or - Σεπτεμβρίου\or Οκτωβρίου\or Νοεμβρίου\or Δεκεμβρίου\fi} -\def\today{\number\day \space \gr@month\space \number\year} -% \end{macrocode} -% Macro |\polytonicn@mes| is invoked when either polytonic Greek or ancient Greek is -% the main language of the document. +% Macro |\polytonicn@mes| is invoked when polytonic Greek is the main language of the document. % \begin{macrocode} \def\polytonicn@mes{% \def\refname{Ἀναφορὲς}% @@ -120,6 +430,45 @@ \def\proofname{Ἀπόδειξη}% } % \end{macrocode} +% Macro |\@ncientn@mes| is invoked when ancient Greek is the main language of the document. +% \begin{macrocode} +\def\@ncientn@mes{% + \def\prefacename{Προοίμιον}% + \def\refname{Αναφοραί}% + \def\abstractname{Περίληψις}% + \def\bibname{Βιβλιογραφία}% + \def\chaptername{Κεφάλαιον}% + \def\appendixname{Παράρτημα}% + \def\contentsname{Περιεχόμενα}% + \def\listfigurename{Κατάλογος σχημάτων}% + \def\listtablename{Κατάλογος πινάκων}% + \def\indexname{Εὑρετήριον}% + \def\figurename{Σχήμα}% + \def\tablename{Πίναξ}% + \def\partname{Μέρος}% + \def\enclname{Συνημμένως}% + \def\ccname{Κοινοποίησις}% + \def\headtoname{Πρὸς}% + \def\pagename{Σελὶς}% + \def\seename{ὃρα}% + \def\alsoname{ὃρα ὡσαύτως}% + \def\proofname{Ἀπόδειξις}% + \def\glossaryname{Γλωσσάριον}% + \def\refname{Ἀναφοραὶ}% + \def\indexname{Εὑρετήριο}% + \def\figurename{Σχῆμα}% + \def\headtoname{Πρὸς}% +} +% \end{macrocode} +% We redefine |\today| so as to produce dates in Greek. The +% names of months are defined by the macro |\gr@month|. +% \begin{macrocode} +\def\gr@month{% + \ifcase\month\or Ιανουαρίου\or Φεβρουαρίου\or Μαρτίου\or Απριλίου\or + Μαΐου\or Ιουνίου\or Ιουλίου\or Αυγούστου\or + Σεπτεμβρίου\or Οκτωβρίου\or Νοεμβρίου\or Δεκεμβρίου\fi} +\def\today{\number\day \space \gr@month\space \number\year} +% \end{macrocode} % When either polytonic Greek or ancient Greek is the main language of the document, % then the macro |\gr@c@month| becomes active. % \begin{macrocode} @@ -129,25 +478,30 @@ Ὀκτωβρίου\or Νοεμβρίου\or Δεκεμβρίου\fi} % \end{macrocode} % Now that we have defined the language dependant macros, we can safely define the various -% supported options. +% supported options. Note we follow the standard mechanims to load hyphenation patterns. % \begin{macrocode} -\DeclareOption{monotonic}{% - \language\moderngreek +\DeclareOption{monogreek}{% + \language\l@monogreek% } -\DeclareOption{polytonic}{% - \language\moderngreek% +\DeclareOption{polygreek}{% + \language\l@polygreek% \polytonicn@mes% \let\gr@month\gr@c@month% } -\DeclareOption{ancient}{% - \language\ancientgreek% - \polytonicn@mes% +\DeclareOption{ancientgreek}{% + \language\l@ancientgreek% + \@ncientn@mes% \let\gr@month\gr@c@month% } -\ExecuteOptions{monotonic} -\frenchspacing +\ExecuteOptions{monogreek} \ProcessOptions % \end{macrocode} +% The following commands take care of the basic rules of typography. +% \begin{macrocode} +\frenchspacing +\let\@afterindentfalse\@afterindenttrue +\@afterindenttrue +% \end{macrocode} % Before we proceed let us define a few macros, which allow one to access characters % that are not usually easily accessible such as the sampi or koppa symbols. % \begin{macrocode} @@ -161,8 +515,8 @@ \def\euro{\char"20AC\relax} \def\permill{\char"2030\relax} % \end{macrocode} -% Now we are going to define the macros that typeset Greek numerals. The code is -% borrowed from the greek option for the babel package. +% Now we are going to define the macros that typeset alphabetic Greek numerals. The code +% is borrowed from the greek option for the babel package. % \begin{macro}{\gr@ill@value} % When the argument of |\greeknumeral| has a value outside of the % acceptable bounds ($0 < x < 999999$) a warning will be issued @@ -252,6 +606,148 @@ % \end{macrocode} % \end{macro} % +% The alphabetic numbering system is not the only numbering system employed by Greeks. +% In fact, Greeks used various systems that are now known as {\em acrophonic} numbering +% systems. Most scholars are familiral with the acrophonic Attic numbering system and the +% the command |\atticnum| can be used to generate acrophonic Attic numerals. +% The acrophonic Attic numbering system, like the Roman one, employs +% letters to denote important numbers. Multiple occurrence of a letter denote +% a multiple of the ``important'' number, e.g., the letter Ι denotes 1, so +% ΙΙΙ denotes 3. Here are the basic digits used in the acrophonic Attic numbering +% system: +% \begin{itemize} +% \item Ι denotes the number one (1) +% \item Π denotes the number five (5) +% \item Δ denotes the number ten (10) +% \item Η denotes the number one hundred (100) +% \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 Π) +% 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 +% must be noted that the numbering system does not provide negative numerals or a symbol for +% zero. +%\begin{macro}{\@@atticnum} +% Now, we turn our attention to the definition of the macro +% |\@@atticnum|. This macro uses one integer variable (or counter in +% \TeX's jargon.) +% \begin{macrocode} +\newcount\@attic@num +% \end{macrocode} +% The macro |\@@atticnum| is also defined as a robust command. +% \begin{macrocode} +\DeclareRobustCommand*{\@@atticnum}[1]{% +% \end{macrocode} +% After assigning to variable |\@attic@num| the value of the macro's argument, +% we make sure that the argument is in the expected range, i.e., it is greater +% than zero, and less or equal to $249999$. In case it isn't, we simply +% produce a |\space|, warn the user about it and quit. Although, the +% |\atticnum| macro is capable to produce an Athenian numeral for even greater +% intergers, the following argument by Claudio Beccari convised me to place +% this above upper limit: +% \begin{quote} +% According to psychological perception studies (that ancient Athenians +% and Romans perfectly knew without needing to study Freud and Jung) +% living beings (which includes at least all vertebrates, not only +% humans) can perceive up to four randomly set objects of the same kind +% without the need of counting, the latter activity being a specific +% acquired ability of human kind; the biquinary numbering notation +% used by the Athenians and the Romans exploits this natural +% characteristic of human beings. +% \end{quote} +% \begin{macrocode} + \@attic@num#1\relax + \ifnum\@attic@num<\@ne% + \space% + \PackageWarning{xgreek}{% + Illegal value (\the\@attic@num) for acrophonic Attic numeral}% + \else\ifnum\@attic@num>249999% + \space% + \PackageWarning{xgreek}{% + Illegal value (\the\@attic@num) for acrophonic Attic numeral}% + \else +% \end{macrocode} +% Having done all the necessary checks, we are now ready to do the actual +% computation. If the number is greater than $49999$, then it certainly +% has at least one ^^^^^10147 ``digit''. We find all such digits by continuously +% subtracting $50000$ from |\@attic@num|, until |\@attic@num| becomes less than +% $50000$. +% \begin{macrocode} + \@whilenum\@attic@num>49999\do{% + ^^^^^10147\advance\@attic@num-50000}% +% \end{macrocode} +% We now check for tens of thousands. +% \begin{macrocode} + \@whilenum\@attic@num>9999\do{% + M\advance\@attic@num-\@M}% +% \end{macrocode} +% Since a number can have only one ^^^^^10146 ``digit'' (equivalent to 5000), it +% is easy to check it out and produce the corresponding numeral in case it does +% have one. +% \begin{macrocode} + \ifnum\@attic@num>4999% + ^^^^^10146\advance\@attic@num-5000% + \fi\relax +% \end{macrocode} +% Next, we check for thousands, the same way we checked for tens of thousands. +% \begin{macrocode} + \@whilenum\@attic@num>999\do{% + Χ\advance\@attic@num-\@m}% +% \end{macrocode} +% Like the five thousands, a numeral can have at most one ^^^^^10145 ``digit'' +% (equivalent to 500). +% \begin{macrocode} + \ifnum\@attic@num>499% + ^^^^^10145\advance\@attic@num-500% + \fi\relax +% \end{macrocode} +% It is time to check hundreds, which follow the same pattern as thousands +% \begin{macrocode} + \@whilenum\@attic@num>99\do{% + Η\advance\@attic@num-100}% +% \end{macrocode} +% A numeral can have only one ^^^^^10144 ``digit'' (equivalent to 50). +% \begin{macrocode} + \ifnum\@attic@num>49% + ^^^^^10144\advance\@attic@num-50% + \fi\relax +% \end{macrocode} +% Let's check now decades. +% \begin{macrocode} + \@whilenum\@attic@num>9\do{% + Δ\advance\@attic@num by-10}% +% \end{macrocode} +% We check for five and, finally, for the digits 1, 2, 3, and 4. +% \begin{macrocode} + \@whilenum\@attic@num>4\do{% + Π\advance\@attic@num-5}% + \ifcase\@attic@num\or Ι\or ΙΙ\or ΙΙΙ\or ΙΙΙΙ\fi% + \fi\fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@atticnum} +% The command |\@atticnum| has one argument, which +% is a counter. It calls the command |\@@atticnum| to process the value of +% the counter. +% \begin{macrocode} +\def\@atticnum#1{% + \expandafter\@@atticnum\expandafter{\the#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\atticnum} +% The command |\atticnum| is a wrapper that declares +% a new counter in a local scope, assigns to it the argument of the command +% and calls the macro |\@atticnum|. This way the command can process correctly +% either a number or a counter. +% \begin{macrocode} +\def\atticnum#1{% + \@attic@num#1\relax + \@atticnum{\@attic@num}} +% \end{macrocode} +%\end{macro} % % \begin{macro}{\greek@alph} % \begin{macro}{\greek@Alph} @@ -267,7 +763,7 @@ \def\greek@alph#1{\expandafter\greeknumeral\expandafter{\the#1}} \def\greek@Alph#1{\expandafter\Greeknumeral\expandafter{\the#1}} % \end{macrocode} -% By default use Greek enumerals instaed of Latin numerals to enumerate items in an +% By default use Greek alphabetic enumerals instaed of Latin numerals to enumerate items in an % enumeration environment. % \begin{macrocode} \let\@alph\greek@alph @@ -337,14 +833,15 @@ % \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. +% 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 #1\endcsname\relax% + \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 #1\endcsname\fi} + \else\language=\csname l@#1\endcsname\fi} % \end{macrocode} % \end{macro} % The macros |\grtoday| and |\Grtoday| produces the current date, only that the |