From f678b44c8079fe4717357894acb7567b60f7a17f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 24 Jun 2010 23:36:51 +0000 Subject: teubner update (24jun10) git-svn-id: svn://tug.org/texlive/trunk@19141 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/teubner/README | 134 +- Master/texmf-dist/doc/latex/teubner/README.TEXLIVE | 6 + .../texmf-dist/doc/latex/teubner/teubner-doc.pdf | Bin 445909 -> 0 bytes Master/texmf-dist/doc/latex/teubner/teubner.txt | 124 + Master/texmf-dist/source/latex/teubner/teubner.dtx | 2415 ++++++++++++++------ Master/texmf-dist/source/latex/teubner/teubner.ins | 11 +- .../tex/latex/teubner/LGRaccents-glyphs.def | 288 +++ Master/texmf-dist/tex/latex/teubner/teubner.sty | 432 ++-- Master/tlpkg/libexec/ctan2tds | 1 + 9 files changed, 2432 insertions(+), 979 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/teubner/README.TEXLIVE delete mode 100644 Master/texmf-dist/doc/latex/teubner/teubner-doc.pdf create mode 100644 Master/texmf-dist/doc/latex/teubner/teubner.txt create mode 100644 Master/texmf-dist/tex/latex/teubner/LGRaccents-glyphs.def (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/teubner/README b/Master/texmf-dist/doc/latex/teubner/README index 86b7d308de4..80166b52a72 100644 --- a/Master/texmf-dist/doc/latex/teubner/README +++ b/Master/texmf-dist/doc/latex/teubner/README @@ -1,120 +1,36 @@ - EXTENSION FOR PHILOLOGICAL TYPESETTING +This accompanies the teubner bundle version 3.0 dated April 2010. +Copyright 2010 Claudio Beccari -Copyright 2001-2006 Claudio Beccari +The bundle contains the files -The programs contained in this bundle can be redistributed and/or -modified under the terms of the LaTeX Project Public License -Distributed from CTAN archives in directory macros/latex/base/lppl.txt; -either version 1.3 of the License, or any later version. +README this file +teubner.txt a more descriptive file +teubner.dtx the documented TeX source file +teubner.ins the installation file +teubner-doc.pdf an extended documentation file -This bundle contains the following files +The bundle is distributed under the LPPL license version 1.3c or any later version. -teubner.txt this file -teubner.dtx documented TeX file -teubner.ins installation file -teubner-doc.pdf documentation file -teubner-doc.tex source documentation file +The bundle has the status of author maintained. -File teubner-doc.pdf is the documentation file that shows what can -be done with this extension package and displays several examples. -The first edition of this file could not resort to scalable type 1 Greek -fonts (2001); by the end of 2002 such fonts were available on CTAN, -therefore this edition not only reports the enhancements introduced in -version 2.0 but also it displays and prints perfectly. +The main purpose of this bundle is to provide classical philologists with some +means for typesetting their documents that usually contain very specific notation. -In order to use this extension package with LaTeX you have to -install it. Run teubner.ins through LaTeX; the generated file is -teubner.sty and must be moved where TeX the program can find it. -This depends very much on your particular implementation of the -TeX system, but if your system copes with the standard TeX -directory structure and with a multiplicity of different root -directory structures, you probably have a localtexmf root, -containing a tex directory which on turn contains a latex -directory. Under the latter directory create a new directory, -named, say, teubner, and move there teubner.sty. +This new version allows the typesetter to use both "italic" shapes: the Olga-like +and the Lipsian-like ones; it contains extended accent macros that avoid the kerning +problems that arise with the ligature mechanism embedded in the LGR encoded default +CBgreek fonts; is compatible with the use of different scalable Latin Type~1 fonts; contains new designs for the horizontally stretchable markers, et cetera. -I suggest you to create a directory teubner in the doc directory -of the localtexmf rooted structure and move there both -teubner-doc.pdf and teubner.dvi that you get by running LaTeX -directly on teubner.dtx. +The byproducts of the installation consists in a LGRaccents-gyphs.def file that might +be separately input and used also without the teubner bundle. Moreover this new +version generates on the fly the necessary font description files necessary to use the +LGR encoded Greek fonts with non TeX standard PostScript fonts; for example it +automatically generates the necessary .fd files if using the TX or the PX fonts; with +other Type 1 fonts the necessary .fd files require manual intervention, which simply +means giving a suitable command from within another open file that loads teubner. -For what concerns the fonts, I suggest you download the type 1 pdf fonts -from CTAN: there you can get also the tfm files and the sources for all -the Greek and metric symbol files; in case you prefer to use the raster -fonts generated by METAFONT you can download also the source METAFONT -files. - - -In the texmf rooted directory structure there should be a file -under fontname, named special.map; edit such file and possibly add the -line - -gmtr public teubner - -possibly preceded by a comment line of the form - -@c Metric symbols font - -This last task is not really necessary, but it is useful, because -the generated tfm and pixel files will be automatically deposited -in the proper directories, with no confusion with other fonts. - -Another important step is to control that you have the latest CB -Greek fonts; even if you got them installed with the TeX system -installation program, may be they are not the latest version, -compatible with this extension package. Control your cbgreek.txt -file and at the end of the file there is its date; this date -should be not earlier than 15th of August 2002. If the date is earlier -than this, connect to CTAN and download the latest version of the CB -Greek fonts both in METAFONT and in pfb type 1 format. Follow the -instructions for inserting the proper files in the proper directories, -and for adding the proper map file to the configuration files of dvips -and pdfLaTeX. If you already had the metric tfm files, remember to -delete them in order to have them generated on the fly by LaTeX or -pdfLaTeX, or download the newer tfm files from CTAN. - - -Another question you might ask yourself: is my TeX system complete and -up to date? The fact you installed a TeX system and you did not have the -CB fonts may be an index that you still have the babel package locked at -a version number earlier than 3.7. I suggest you to upgrade your TeX -system to the most up to date one you can find on CTAN. - -After all these steps are done, you are ready to use your teubner -extensions; it will not be easy at the beginning, because there -are hundreds of new commands. Be sure to have already thoroughly -read the documentation file teubner-doc.pdf and that you have the -hard copy close to you. Remember though that most commands are -latin names or abbreviations that should be familiar to any -philologist specialized in classical/ancient European languages, -such as classical Greek, classical Latin, et cetera. - -This set of extension commands has been tested in several -documents; nevertheless I prepared them as a hobby, in the hope of -helping a philologist friend. I hope this package may be useful -also to you, but I must disclaim any liability for any unwanted -results you might get, including the worst possible things that my -happen to anybody working with a computer. I will not write down -any strong disclaimer sentence in capital letters, because it -should be absolutely evident that I did something I consider -useful, but is up to you to decide to use it and to face the -consequences (... which nevertheless I hope they are what you -expected). - -If you find this package of some utility and you find some errors -and/or some glitches, please write me by e-mail -(claudio.beccari@polito.it). If you'd like me to realize some other -commands, please send me by e-mail your request together with a -scanned image containing the visual result you'd like to obtain. I -do not guarantee I'll be able to satisfy your request, but I'll -give it a try. In any case don't ask things LaTeX can't do; and if -you use LaTeX, you know what are its pros and cons. - -Happy philological LaTeXing! +Please, be sure to work with a 2010 updated collection of the CBgreek fonts. Claudio Beccari -Dipartimento di Elettronica -Politecnico di Torino, Italy - -Turin, 16th of January 2006 +claudio dot beccari at gmail dot com \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/teubner/README.TEXLIVE b/Master/texmf-dist/doc/latex/teubner/README.TEXLIVE new file mode 100644 index 00000000000..5bfc7ccd24d --- /dev/null +++ b/Master/texmf-dist/doc/latex/teubner/README.TEXLIVE @@ -0,0 +1,6 @@ +The following files have been removed in the TeX Live installation of +the current package, typically due to duplication, lack of space, or +missing source code. You can find these files on CTAN. If questions or +concerns, email tex-live@tug.org. + + teubner-doc.pdf diff --git a/Master/texmf-dist/doc/latex/teubner/teubner-doc.pdf b/Master/texmf-dist/doc/latex/teubner/teubner-doc.pdf deleted file mode 100644 index e33c899bfb7..00000000000 Binary files a/Master/texmf-dist/doc/latex/teubner/teubner-doc.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/teubner/teubner.txt b/Master/texmf-dist/doc/latex/teubner/teubner.txt new file mode 100644 index 00000000000..3a558a5b75d --- /dev/null +++ b/Master/texmf-dist/doc/latex/teubner/teubner.txt @@ -0,0 +1,124 @@ + THE TEUBNER PACKAGE VERSION 3.0 OF APRIL 2010 + EXTENSION FOR PHILOLOGICAL TYPESETTING + + +Copyright 2001-2004-2010 Claudio Beccari + +The programs contained in this bundle can be distributed and/or modified +under the terms of the LaTeX Project Public License (LPPL), version 1.3c +dated 2008-05-04 or later as it appears in + CTAN/macros/latex/base/lppl.tex. + + +This bundle contains the following files + +teubner.txt this file +teubner.dtx documented TeX file +teubner.ins installation file +teubner-doc.pdf documentation file + +File teubner-doc.pdf is the documentation file that shows what can be +done with this extension package and displays several examples. +Version 3.x of the teubner package contains many new enhancements, among +which it's worth noting the new extended accent macros (that avoid +kerning problems that show up using the ligature mechanism) and the new +macros that allow to use the LGR encoded CBgreek fonts in conjunction +with other PostScript scalable fonts; the compatibility with the Times +eXtended and the Palatino eXtended fonts, accessible through the +packages txfonts and pxfonts, are already built in; the compatibility +with the Latin Modern fonts was already available with version 2.x of +the teubner package. + +In order to use this extension package with LaTeX you have to +install it. May be the very installation of your (recent) TeX system +distribution already provided for it; may be your TeX system is +configured to load missing packages on the fly. In any case you can +check and possibly run your Package Manager (with MiKTeX follow the path +Programs|MiKTeX Settings|Packages; with TeXlive and MacTeX (if their +installation configuration was not the default one, that is a complete +installation) run tlmgr). If you feel more comfortable to do everything +by yourself and/or want to make a personal installation, run teubner.ins +through LaTeX; the generated files are teubner.sty and LGRaccents- +glyphs.def; they must be moved where TeX-the-program can find them. This +depends very much on your particular implementation of the TeX system, +but if your system copes with the standard TeX directory structure and +with a multiplicity of different root directory structures, you probably +have a localtexmf root, or a /texmmf in your Home directory containing a +TeX directory which on turn contains a latex directory. Under the latter +one create a new directory named, say, teubner and move there teubner.sty +and LGRaccents-glyphs.def. + +I suggest you to create a directory teubner in the doc directory of +the locally rooted structure and move there both teubner-doc.pdf and +teubner.pdf that you get by running pdflatex directly on teubner.dtx. + +For what concerns fonts, they should already be installed with a recent +TeX system distribution; this means that there are already all the files +TeX-the-program needs in order to do its work; there is one point, though, +that requires full attention; the default installation loads only the +PostScript fonts in size 10pt; all other sizes are are obtained by +reducing or enlarging that single size. The teubner package copes with +this situation if you specify the "10pt" option when calling this package, +but if you want to have perfect optical sizes, then you should download +from CTAN the full collection and install it in your computer. The +details for this installation require you read with due attention the +instructions that come with your TeX system distribution; it's not +difficult, but it requires to be very careful at every step. Remember, +though, that your Package Manager can do all the work for you. + +It's important to control that you have the latest CBgreek fonts; even +if you got them pre-installed with your TeX system distribution, may be +they are not the latest version. The full collection has been redone +in the year 2007; the reduced collection is a subset of the full one. +Earlier distributions, dated at least 2002, might be compatible; if you +get something strange is happening with the CBgreek fonts, verify if your +fonts are up to date. + +Another question you might ask yourself: is my TeX system complete and +up to date? The fact you installed a TeX system and you did not have the +CB fonts may be an index that you still have the babel package locked at +a version number earlier than 3.7. I suggest you to upgrade your TeX +system to the most up to date one you can find on CTAN. + +Connected to this point there is the question of the updated metric files +related to the Lipsian fonts; if your TeX system distribution has been +updated to what is available on CTAN by May 2010, your distribution +already contains the updated tfm files. Otherwise, please, update your +CBgreek fonts. + +After all these steps are done, you are ready to use your teubner +extensions; it will not be easy at the beginning, because there are +hundreds of new commands. Be sure to have already thoroughly read the +documentation file teubner-doc.pdf and that you have the hard copy close +to you. + +Remember, though, that most commands are Latin names or abbreviations +that should be familiar to any philologist specialized in classical/ +ancient European languages, such as classical Greek, Latin, et cetera. + +This set of extension commands has been tested in several documents; +nevertheless I prepared them as a hobby, trying to help a friend philolo- +gist. I hope this package may be useful also to you, but I must disclaim +any liability for any unwanted results you might get, including the worst +possible things that may happen to anybody using a computer. + +I will not write down any strong disclaimer sentence in capital letters, +because it should be absolutely evident that I did something I consider +useful, but is up to you to decide to use it and face the consequences +(... which nevertheless I hope they are what you expected). + +If you find this package of some utility and you find some errors and/or +some glitches, please write me by e-mail (see below). If you'd like me +to realize some other commands, please send me by e-mail your request +together with a scanned image containing the visual result you'd like to +obtain. I don't guarantee I'll be able to satisfy your request, but I'll +give it a try. In any case don't ask for things LaTeX can't do; and if +you use LaTeX, you know what are its pros and cons. + +Happy philological LaTeXing! + +Claudio Beccari Turin, 20 of June 2010 +Former Professor of Electronics +Politecnico di Torino, Italy +claudio dot beccari at gmail dot com + diff --git a/Master/texmf-dist/source/latex/teubner/teubner.dtx b/Master/texmf-dist/source/latex/teubner/teubner.dtx index 37e205bf2fa..7339840996a 100644 --- a/Master/texmf-dist/source/latex/teubner/teubner.dtx +++ b/Master/texmf-dist/source/latex/teubner/teubner.dtx @@ -24,14 +24,12 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -% \iffalse +% \iffalse %<*dtx> -\ProvidesFile{teubner.dtx} +\ProvidesFile{teubner.dtx}[2010/05/08 v.3.0k extensions for Greek philology] % %\NeedsTeXFormat{LaTeX2e} -%\ProvidesPackage{teubner} -%\ProvidesFile{teubner.dtx} - [2008/02/10 v.2.2d extensions for Greek philology] +%\ProvidesPackage{teubner}[2010/05/08 v.3.0k extensions for Greek philology] % %<*driver> \documentclass{ltxdoc} @@ -41,7 +39,7 @@ \thanks{This file has version number \fileversion, last revised on \filedate.}} - \author{Claudio Beccari\\\texttt{claudio.beccari@gmail.com}} + \author{Claudio Beccari\\\texttt{claudio dot beccari at gmail dot com}} \date{} \providecommand\babel{\textsf{babel}} \newcommand\lbr{\char123\relax}\newcommand\rbr{\char125\relax} @@ -51,6 +49,7 @@ \end{quote}\ignorespaces } \newcommand*\acro[1]{\expandafter\textsc\expandafter{\MakeLowercase{#1}}} + \usepackage{multicol} \begin{document} \maketitle \DocInput{teubner.dtx} @@ -58,7 +57,9 @@ % % \fi % -% \CheckSum{4013} +% \CheckSum{4957} +% \begin{multicols}{2}\tableofcontents\end{multicols} +% % % \begin{abstract} % This extension package complements the greek option of the \babel\ @@ -110,8 +111,8 @@ % end I think that the new typeface turned out pretty well thanks to % both my friends. % -% The Lipsian font, also called Leipzig or Lipsiakos in Greece, is one of the oblique -% fonts that used to be employed by the typesetters working in the +% The Lipsian font, also called Leipzig or Lipsiakos in Greece, is one of the +% oblique fonts that used to be employed by the typesetters working in the % German city of Leipzig, among which the Teubner Printing Company. % This Company's classical works of ancient Greek poetry are considered among % the best ever published. The name of this file and this extension @@ -134,7 +135,7 @@ % between classical Greek and some modern western language is performed % in a transparent way; possibly there might be some problem switching % from classical to modern spelling in Greek itself, but since in modern -% spelling the multiplicity of Greek diacritical mark is not forbidden, +% spelling the multiplicity of Greek diacritical marks is not forbidden, % it's the author choice to select classical or modern words, Lipsian or % Didot fonts, polytonic or monotonic accentuation. The worst it can happen % is that \babel\ might use just one hyphenation pattern set, so that in @@ -143,7 +144,7 @@ % % The CB Greek fonts, which have been available for some years now on % \acro{ctan} in the directory \texttt{/tex-archive/fonts/greek/cb} have -% been completed with the new files for the Lipsian fonts,and the metric +% been completed with the new files for the Lipsian fonts, and the metric % symbols font \texttt{gmtr????.*}; % the latter does not need a formal font definition file, because % the necessary definitions are included in this package. @@ -179,11 +180,15 @@ % \section{Environments} % I apologize if I chose Italian names for verse environments; I wanted to % use names very different from the corresponding English ones, but at the -% same time easily recognizable. -% -% \DescribeEnv{versi}\DescribeMacro{\verso} The environment \texttt{versi} -% is used to typeset verses -% in line, without an end of line at the end of each verse; a vertical bar +% same time easily recognizable; after all \emph{versi} is the plural of +% \emph{verso} and therefore is the exact Italian translation of \emph{verses}. +% If you feel more comfortable with Latin the alias environment names +% in Latin, |versus|, |Versus|, and |VERSUS|, are also available. +% +% \DescribeEnv{versi} +%\DescribeMacro{\verso} +% The environment \texttt{versi} (|versus|) is used to typeset verses +% in line, without an implicit end of line at the end of each verse; a vertical bar % with a number on top of it marks the verse limit while allowing a numeric % reference to a specific verse; the opening environment statement requires % a string, a short text, in order to indent the verse lines the amount of @@ -198,8 +203,9 @@ % instance of |\verso| or when numbering must be restarted, for example % after an ellipsis. % -% \DescribeEnv{Versi} The environment \texttt{Versi} is similar to the -% standard \LaTeX\ environment \texttt{verse}, except verses are numbered +% \DescribeEnv{Versi} +% The environment \texttt{Versi} (|Versus|) is similar to the +% standard \LaTeX\ environment \texttt{verse}, except verse lines are numbered % on multiples of~5; the opening statement requires the \meta{starting % number} as an optional argument; if this optional argument is not specified, % the starting number is assumed to be~1. @@ -211,8 +217,10 @@ % \bslash end\lbr Versi\rbr %\end{sintassi} % -% \DescribeEnv{VERSI}\DescribeMacro{\SubVerso}\DescribeMacro{\NoSubVerso} -% The environment \texttt{VERSI} allows for two verse +% \DescribeEnv{VERSI} +% \DescribeMacro{\SubVerso} +% \DescribeMacro{\NoSubVerso} +% The environment \texttt{VERSI} (|VERSUS|) allows for two verse % enumerations; the main enumeration is identical to the one performed by % the previous environment \texttt{Versi}, while the secondary enumeration % is in smaller digits and normally numbers consecutive verses, except @@ -246,9 +254,9 @@ % the above environments may be used to display ``metric verses'', that is the % pattern of long, short or ancipital symbols, together with any other metric symbol % so as to display the metrics without disturbing the written text; when doing -% this metric typesetting, it may happen that some verse patterns exhibit some variants; -% in this case the \texttt{bracedmetrics} environment comes handy, because it -% can display such variants in separate lines but grouped with a large right +% this metric typesetting, it may happen that some verse patterns exhibit some +% variants; in this case the \texttt{bracedmetrics} environment comes handy, because +% it can display such variants in separate lines but grouped with a large right % brace; some commands allow to roughly align these variants, so as to % allow to nest several such environments as if they were single blocks of metric % symbols. The argument of the opening statement specifies the width of the @@ -280,21 +288,37 @@ % % \DescribeMacro{\newmetrics} Here it might be useful to describe a command % for defining metric sequences, so as to shorten the definition of metric verses; -% this new command is |\newmetrics| and may be used for the definition of new commands -% whose name \emph{may start with one digit}: precisely this digit may be one -% of~2, 3,~4. Even if \LaTeX\ does not allow macros to contain both digits +% this new command is |\newmetrics| and may be used for the definition of new +% commands whose name \emph{may start with one digit}: precisely this digit may be +% one of~2, 3,~4. Even if \LaTeX\ does not allow macros to contain both digits % and letters, other service macros have been defined so as to handle these % special control sequences even if they start with \emph{one} digit strictly lower % than~5. The syntax is: % \begin{sintassi} % \bslash newmetrics\lbr\meta{control sequence}\rbr\lbr\meta{definition}\rbr % \end{sintassi} -% where \meta{definition} consists in general of a sequence of metric commands such as -% |\longa|, |\brevis|, |\anceps|, etc. +% where \meta{definition} consists in general of a sequence of metric commands such +% as |\longa|, |\brevis|, |\anceps|, etc. +% +% \section{Acknowledgements} +% I must thank with gratitude Paolo Ciacchi that urged me to prepare this extension +% file in order to help him typeset his master thesis of philological type in +% classical Greek. +% +% I am pleased to thank G\"unter Milde who wrote a definition file for accessing the +% LGR encoded fonts in order to fetch the accented glyphs; I kindly gave me +% permission to use his macros, that I adapted to the conventions used within this +% file. These macros are saved into the definition file |LGRaccent-glyph.def|, so that it can be used also without the |teubner| package, fore example for typesetting without setting the \emph{polytoniko} language attribute. +% +% I got some ideas also from a paper that Werner Lemberg published on Eutypon, the +% magazine of the Hellenic Friends of \TeX, where he discussed in a constructive +% critical way the problems connected with the LGR encoded fonts and the Unicode +% encoding. % % \StopEventually{} % % \section{Code} +% \subsection{Preliminaries} % The beginning of the file starts with the traditional stuff; % as usual we provide also the means for avoiding reading this file again. % \begin{macrocode} @@ -303,21 +327,22 @@ \def\teubner{teubner}\else\expandafter\endinput \fi % \end{macrocode} -% In order to use the PostScript pfb fonts (CM, EC, and CB) it is necessary to know if -% we are dealing with \LaTeX\ or pdf\LaTeX; this is necessary because apparently the -% pfb math extensible fonts derived from the \textsf{META\-FONT} counterparts do not have exactly the same -% effective dimensions; this is why the ``zeugma'' and the ``synizesis'' signs have to be corrected -% when the pfb fonts are used; with these, in facts, the black leader that joins the curved -% extremities appears a little too fat and does not join exactly le left mark. Therefore we -% define a new boolean\footnote{Thanks to Yuqing Deng who spotted an error somewhere else, -% that followed from an improper definition of the state variable \texttt{\string\ifPDF} such -% that the program performed correctly under \texttt{pdflatex} and crashed under \texttt{latex}.}: +% In order to use the PostScript pfb fonts (CM, EC, and CB) it is necessary to know +% if we are dealing with \LaTeX\ or pdf\LaTeX; this was necessary because apparently +% the pfb math scalable fonts derived from the \textsf{META\-FONT} counterparts do +% not have exactly the same effective dimensions; this is why the ``zeugma'' and the +% ``synizesis'' signs have to be corrected when the pfb fonts are used; with these, +% in facts, the black leader that joins the curved extremities appeared a little too +% fat and did not join exactly the left mark. Recently, apparently, the fonts have +% been corrected and this trick is not necessary any more. Nevertheless we define +% a new boolean that copes with the fact that sin 2007 the \TeX\ engine is +% \textsf{pdftex} even when DVI output is sought: % \begin{macrocode} \newif\ifPDF \PDFfalse \@ifundefined{pdfoutput}{\PDFfalse}{\ifnum\pdfoutput>\z@\PDFtrue\fi} % \end{macrocode} -% When \texttt{teubner.sty} is input the language Greek must have been already defined; -% otherwise an error message is issued and processing is terminated. +% When \texttt{teubner.sty} is input the language Greek must have been already +% defined; otherwise an error message is issued and processing is terminated. % \begin{macrocode} \ifx\captionsgreek\undefined \PackageError{teubner}{Greek language unknown!\MessageBreak @@ -328,83 +353,147 @@ Type X to exit.}% {Type X to exit.} \fi % \end{macrocode} -% If this test is passed, this means that not only the greek option to the \babel\ package -% is set, but also that all the \babel\ machinery is available. +% If this test is passed, this means that not only the greek option to the \babel\ +% package is set, but also that all the \babel\ machinery is available. % -% Since \texttt{teubner.sty} accepts some options it is necessary to provide +% Since \texttt{teubner.sty} accepts some options it is necessary to provide % their definitions; in particular the |\or| control sequence conflicts % with the |\or| primitive command used within the syntax of |\ifcase|\footnote{With % version 2002/07/18 v.1.0d this has been eliminated; the option remains for -% compatibility with older versions, but the only legal command is now \texttt{\string\oR}.}; -% |\oR|is a little exception since all the other accent-vowel macros -% contain only lowercase letters. The point is that accent vowel sequences -% that directly access the accented glyph are made up as such: +% compatibility with older versions, but the only legal command is now +% \texttt{\string\oR}.}; |\oR| is a little exception since all the other +% accent-vowel macros contain only lowercase letters. The point is that accent vowel +% sequences that directly access the accented glyph are made up as such: % \begin{sintassi} -% \bslash \meta{vowel}\meta{first diacritic}\meta{second diacritic}\meta{third diacritic} +% \bslash \meta{base character}\meta{first diacritic}\meta{second diacritic}% +% \meta{third diacritic} % \textrm{where} -% \meta{first diacritic} \textrm{is \texttt{d} or \texttt{r} or \texttt{s} for diaeresis, rough or smooth breadth} -% \meta{second diacritic} \textrm{is \texttt{c} or \texttt{a} or \texttt{g} for circumflex or acute or grave} +% \meta{first diacritic} \textrm{is \texttt{d} or \texttt{r} or \texttt{s} for +% diaeresis, rough or smooth breadth} +% \meta{second diacritic} \textrm{is \texttt{c} or \texttt{a} or \texttt{g} for +% circumflex or acute or grave} % \meta{third diacritic} \textrm{is \texttt{i} for iota subscript or adscript} % \end{sintassi} % Evidently none of the diacritical marks is compulsory, but at least one must -% be present; if more than one is present it must be given in that sequence. Since |\oR| -% means omicron with rough breath, it is not very important that it is declared -% with the standard sequence |ssub*mtr/m/n}{} +%\EC@family{U}{mtr}{m}{n}{gmtr} +\ifonesizetypeone +\DeclareFontShape{U}{mtr}{m}{n}{<-> gmtr1000}{}% +\else +\DeclareFontShape{U}{mtr}{m}{n}{% + <-5.5> gmtr0500 <5.5-6.5> gmtr0600 + <6.5-7.5> gmtr0700 <7.5-8.5> gmtr0800 + <8.5-9.5> gmtr0900 <9.5-11> gmtr1000 + <11-15> gmtr1200 <15-> gmtr1728}{}% +\fi +\DeclareFontShape{U}{mtr}{m}{it}{<->ssub*mtr/m/n}{}% +\DeclareFontShape{U}{mtr}{b}{it}{<->ssub*mtr/m/n}{}% +\DeclareFontShape{U}{mtr}{b}{n}{<->ssub*mtr/m/n}{}% \newcommand*\metricsfont{\fontencoding{U}\fontfamily{mtr}\upshape} % \end{macrocode} % \end{macro} @@ -418,10 +507,13 @@ Type X to exit.}% % % Some macros are necessary to switch languages; such macros must be independent % (at least for now) from the particular \babel\ version, whether it be version 3.6 -% or~3.7; in the former the concept of language attribute is unknown, while the latter -% recognizes varieties of the same language by the attribute setting. Such macros, -% besides being as robust as possible, must provide the alphabet changes as required. -%\begin{macro}{\GreekName} During the language switching operations |\GreekName| +% or~3.7; in the former the concept of ``language attribute'' is unknown, while the +% latter recognizes varieties of the same language by the attribute setting. +% Such macros, besides being as robust as possible, must provide the alphabet +% changes as required. +% +%\begin{macro}{\GreekName} +% During the language switching operations |\GreekName| % distinguishes the dialect or the main language whose attribute % gets set and, evidently, becomes effective when the main language \texttt{greek} % is in force. @@ -433,117 +525,355 @@ Type X to exit.}% \fi % \end{macrocode} %\end{macro} +% +% \subsection{Compatibility with Latin fonts} %\begin{macro}{\previouslanguage} -%\begin{macro}{\previousencoding} The ``default'' language is defined as the ``previous'' -% language; similarly the ``default'' encoding is defined as the ``previous'' encoding; these -% are the language and the encoding in force when the document starts; this is why such macros -% are defined at the beginning of the document: +%\begin{macro}{\previousencoding} +% The ``default'' language is defined as the +% ``previous'' language; similarly the ``default'' encoding is defined as the +% ``previous'' encoding; these are the language and the encoding in force when the +% document starts; this is why such macros are defined at the beginning of the +% document. At the same time we assure that if the CM (or EC) or the LM fonts are +% the default ones, nothing special is done, while if the default fonts are, say, +% the TX ones, they are correctly restored, but the CM families are used for the CB +% ones. +%\end{macro} +%\end{macro} +% +%\begin{macro}{\substitutefontfamily} +%\begin{macro}{\ifLipsian} +% The font macro |\substitutefontfamily| is already present in the \babel\ kernel; +% I copes only with the standard families, series and shapes, therefore it does not +% consider the Lipsian shape and its series. I had to redefine it together with a +% new conditional macro in order to do the same job as the original one but taking +% into consideration also the Lipsian shape; the purpose of this macro is to write +% in the working directory a number of font description files that refer to the LGR +% Greek encoding, but have the names of the Latin font families; such font +% description files, simply substitute these non existent encoding-family series and +% shapes with the existing series and shapes of any other LGR encoded Greek font, in +% particular the CB ones. By issuing a command such as: +% \begin{sintassi}\ttfamily +% \texttt{\string\ifFamily}\{pxr\}\{cmr\} +% \end{sintassi} +% an association is made with all the series and shapes of the Palatino serifed +% fonts to the corresponding CB serifed series and shapes; therefore when a language +% shift changes the default encoding from, say, \texttt{T1} to \texttt{LGR} the +% font family \texttt{LGR+pxr} is mapped to the font family \texttt{LGR+cmr} and +% everything is supposed to work fine; when another language change resets the +% encoding to \texttt{T1}, the original Latin script is used again. The redefined +% |\substitutefontfamily| macro is as such: +% \begin{macrocode} +\newif\ifLipsian + +\providecommand*\substitutefontfamily{}% +\renewcommand*\substitutefontfamily[3]{{% + \edef\@tempA{#1#2.fd}% + \lowercase\expandafter{\expandafter\def\expandafter\@tempA\expandafter{\@tempA}}% + \expandafter\IfFileExists\expandafter{\@tempA}{}{% + \immediate\openout15=\@tempA + \typeout{Writing file #1#2.fd} + \immediate\write15{% + \string\ProvidesFile{#1#2.fd}^^J + [\the\year/\two@digits{\the\month}/\two@digits{\the\day} + \space generated font description file]^^J + \string\DeclareFontFamily{#1}{#2}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}^^J + }% + \ifLipsian + \immediate\write15{% + \string\DeclareFontShape{#1}{#2}{m}{li}{<->ssub * #3/m/li}{}^^J %<- Lipsian + \string\DeclareFontShape{#1}{#2}{b}{li}{<->ssub * #3/b/li}{}^^J %<- Lipsian + \string\DeclareFontShape{#1}{#2}{bx}{li}{<->ssub * #3/bx/li}{}^^J %<-Lipsian + \string\DeclareFontShape{#1}{#2}{m}{ui}{<->ssub * #3/m/ui}{}^^J %<- upright Olga + \string\DeclareFontShape{#1}{#2}{b}{ui}{<->ssub * #3/m/ui}{}^^J %<- upright Olga + \string\DeclareFontShape{#1}{#2}{bx}{ui}{<->ssub * #3/bx/ui}{}^^J%<-upright Olga + \string\DeclareFontShape{#1}{#2}{m}{rs}{<->ssub * #3/m/rs}{}^^J %<-serifed lc + \string\DeclareFontShape{#1}{#2}{b}{rs}{<->ssub * #3/m/rs}{}^^J %<-serifed lc + \string\DeclareFontShape{#1}{#2}{bx}{rs}{<->ssub * #3/bx/rs}{}^^J%<-serifed lc + }% + \fi + \closeout15}% + }} + +% \end{macrocode} +% Notice that together with the Lipsian fonts the upright italics (Olga) and upright +% serifed lowercase alphabets are defined. In a while there are the definition for +% selecting these shapes. Of course you are not obliged to use them, but in case you +% wanted\dots +% +% These results are obtained by means of the following macros. +%\begin{macro}{\ifCMLM} +%\begin{macro}{\ifFamily} +% The |\ifCMLM| processes the necessary test in order to set the auxiliary macro +% |\n@xt| to be an alias to |\iftrue| or |iffalse| depending on the fact that the +% CM (or EC) fonts or the LM fonts are the default Latin ones, in this case it sets +% the |\n@xt| macro equivalent to |\iftrue|, otherwise it sets it to |\iffalse|. In +% order to succeed, it requires to analize the first two letters of the default +% family name; if these letters form one of the sequences |cm| or |lm|, the CM or +% LM fonts have been loaded, otherwise some other fonts are in force. We need +% therefore a macro with delimited arguments in order to extract the ffirst two +% letters of the family name. +% +% \begin{macrocode} +\def\ifCMLM#1#2#3!{\edef\f@milyprefix{#1#2}% + \ifthenelse{\(\equal{\f@milyprefix}{cm}\OR\equal{\f@milyprefix}{lm}\)}% + {\let\n@xt\iftrue}{\def\f@milyprefix{cmr}\let\n@xt\iffalse}\n@xt} + +% \end{macrocode} +% The other macro |\ifFamily| uses the previous macro and according to the test +% result, possibly runs the |\substitutefontfamily| macro that, if +% necessary, creates the description file that map the specified family font +% description file to the second specified font family, both connected to the LGR +% encoding. Therefore, after these font definition files exist, \LaTeX\ can fetch +% the Greek fonts by way of substitution. Let's explain again: if you specify +% \begin{verbatim} +% \Lispsiantrue\ifFamuly{pxr}{lmr}\Lipsianfalse +% \end{verbatim} +% you state that you want to run the macro on the serifed Palatino font family, by +% associating the |pxr| family to the |lmr| one\footnote{If you have the full CB +% Greek font collection it's more convenient to map the missing fonts to the Latin +% Modern Greek ones, while if you need to use the \emph{10pt} option, you'd better +% map the missing family to the ordinary Computer Modern ones; the actual fonts are +% the same, but the latter font definition files cope with the \emph{10pt} option, +% while the former don't.}; by specifying |\Lipsiantrue| you state that you want to +% create entries also for the Lipsian series and shape; afterwards you reset +% |\Lipsianfalse| in order to avoid that other call of that macro on non serifed or +% monospaced fonts try to create entries that in any case do not exist: the Lipsian +% font comes only as a serifed font!. In this way, if you are using Palatino fonts +% through the \textsf{pxpackage}, the |teubner| macros provide to create the +% necessary font description files so that while you are typesetting in medium +% normal Latin Palatino and you switch to Greek, the built in macros change the +% encoding to LGR; The LGR Palatino serifed medium normal Greek font does not exist, +% but that family, series and shape are mapped by the font description file to the +% corresponding LGR encoded Latin Modern CB fonts in medium series and normal shape, +% and typesetting goes on with the rigth Greek fonts. +% \begin{macrocode} +\newcommand*\ifFamily[2]{% +\expandafter\ifCMLM#1!\else\substitutefontfamily{LGR}{#1}{#2}\fi} + +% \end{macrocode} +% You don't actually need to use that macro for the Times or the Palatino eXtended +% fonts loaded by means of the corresponding packages \textsf{txfonts} or +% \textsf{pxfonts}, because a hook is set up so that ``at begin document'' the +% loading of those packages is tested, and if the test is true, the necessary font +% description files are possibly created. If you load the Tymes or the Palatino or +% any other non standard font by means of other packages, it's up to you to issue +% the |\substitutefontfamily| macro right after calling that font package and by +% using the correct family names; similarly you might substitute the new Latin font +% family names to other Greek font family names, if you have other fonts available. +% At the same time at begin document we memorize the name and encoding of the Latin +% font used for the default language, so that when returning to Latin font +% typesetting after Greek font typesetting, the proper language typesetting rules +% and encoding are restored. % \begin{macrocode} +\AtBeginDocument{% +\@ifpackageloaded{pxfonts}{\typeout{Palatino fonts loaded}% +\Lipsiantrue\ifFamily{pxr}{cmr}\Lipsianfalse +\ifFamily{pxss}{cmss}\ifFamily{pxtt}{cmtt}}{\relax}} + +\AtBeginDocument{% +\@ifpackageloaded{txfonts}{\typeout{Times fonts loaded}% +\Lipsiantrue\ifFamily{txr}{cmr}\Lipsianfalse +\ifFamily{txss}{cmss}\ifFamily{txtt}{cmtt}}{}} + \AtBeginDocument{% \edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}% -} -% \end{macrocode} -% Nevertheless this requires a minimum of attention in specifying the options for the -% \babel\ package and in the order extensions packages are read in. The |teubner.sty| package -% should be read \emph{after} any other package that sets o resets font definitions, -% in particular if font encoding is defined; for example if the T1 encoding is selected -% as the default one, in place of the OT1 encoding, then this choice must be made before -% this package is read in. Similarly when the \babel\ options are specified, remember that -% the last language name becomes the default language at begin document; never -% specify \texttt{greek} as the last language option\dots, well, unless you are going to write -% all your document in Greek; in this case the only switching you need is between -% Didot characters and Lipsian characters (which is simply done by means of |\upshape| -% and |\itshape|); in any case specify the polytonic spelling. -%\end{macro} -%\end{macro} -% -%\begin{macro}{\Lipsiakostext} |\Lipsiakostext| is a declaration stating that from now on + \edef\previousencoding{\f@encoding}} +% \end{macrocode} +% Nevertheless all this requires a minimum of attention in specifying the options +% for the \babel\ package and in the order extensions packages are read in. The +% |teubner.sty| package should be read \emph{after} any other package that sets or +% resets the Latin font encoding; for example if +% the T1 encoding is selected as the default one, in place of the OT1 encoding, then +% this choice must be made before this package is read in. Similarly when the +% \babel\ options are specified, remember that the last language name becomes the +% default language at begin document; never specify \texttt{greek} as the last +% language option! +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\begin{macro}{\Lipsiakostext} +%\begin{macro}{\lishape} +%\begin{macro}{\textli} +% |\lishape| is the normal declaration, modeled on the other similar macros in the +% \LaTeX\ kernel, made up to chose the Lipsian shape. Nevertheless since it is a +% light character, if it must blend well with the other PostScript fonts, not only +% the CM and LM, but also the other ones available for typesetting with the \TeX\ +% system, it is necessary to chose the |b| (bold) series in place of the |m| +% (medium) one, while maintaining the |bx| (bold extended) series when the other +% fonts are set with the blacker and larger series. This is why the |\lishape| +% declaration is a little more complicate than normal, since it has to test the +% value of the current series. The text command |\textli| matches the similar +% commands for Latin fonts. But the |\lishape| declaration is used also within the +% more complicated macros for declaring or setting the Lipsian font. +% +% |\Lipsiakostext| is a \emph{declaration} stating that from now on % typesetting will be done with the Lipsian fonts; notice that the encoding and the % language name in force before this declaration are memorized, then the current % Greek version is selected; the |\let\~\GRcirc| is required because swithching -% on and off may reset the active tilde and connected macros definitions. |\~| in Greek -% must set the circumflex accent, so we make sure that this really occurs. -% \begin{macrocode} -\DeclareRobustCommand\Lipsiakostext{\edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}% +% on and off may reset the active tilde and connected macros definitions. +% |\~| in Greek must set the circumflex accent, so we make sure that this really +% occurs. +% \begin{macrocode} +\DeclareRobustCommand{\lishape}{% +\not@math@alphabet\lishape\relax +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}{% +\ifboldLipsian +\ifthenelse{\equal{\f@series}{m}}% +{\fontseries{b}\fontshape{li}\rmfamily}% +{\fontshape{li}\rmfamily}\else +\fontshape{li}\rmfamily\fi}% +{\fontshape{it}\selectfont}}% + +\DeclareTextFontCommand{\textli}{\lishape}% +\DeclareRobustCommand\Lipsiakostext{% \expandafter\select@language\expandafter{\GreekName}% - \let\~\GRcirc\let~\greek@tilde\itshape} + \let\~\GRcirc\let~\greek@tilde\lishape} + % \end{macrocode} %\end{macro} -%\begin{macro}{\NoLipsiakostext} |\NoLipsiakostext| is the opposite declaration -% that undoes everything that was done with |\Lipsiakostext|. +%\end{macro} +%\end{macro} +%\begin{macro}{\textLipsias} +% |\textLipsias| is a command that typesets its argument with the |\Lipsiakostext| +% declaration in force. The \LaTeX\ command declaration used here makes sure that +% possible italic corrections are taken into account; hte actual font switching is +% made through the same |\Lipsiakostext| declaration, but the innner working +% maintain local this declaration, so non grouping is explicitly required; for this +% reason we suggest to use this text command rather than the font declaration. % \begin{macrocode} -\DeclareRobustCommand\NoLipsiakostext{% - \expandafter\select@language\expandafter{\previouslanguage}% - \expandafter\fontencoding\expandafter{\previousencoding}\upshape - \edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}\bbl@activate{~}% -} +\DeclareTextFontCommand{\textLipsias}{\Lipsiakostext} + % \end{macrocode} %\end{macro} -%\begin{macro}{\textLipsias} |\textLipsias| is a command that typesets its argument -% with the |\Lipsiakostext| declaration in force; actually the external font encoding -% and language are not memorized, because the pertinent Greek commands are just local. +%\begin{macro}{\NoLipsiakostext} |\NoLipsiakostext| is the opposite declaration +% that undoes everything that was done with |\Lipsiakostext|. Probably it is +% superfluous, but it has been asked for. If |\Lipsiakostext| is delimited within a +% scope by means of an explicit group or an environment, it stops its effectiveness +% with the end of its scope. +% +% It is worth noting that, in order to delimit within a scope the action of this and +% of the other declarations, it is possible to use them as environments with the +% same name without the backslash. for example one might input in the source file +% something as: +%\begin{quote}\obeylines +% |\begin{Lipsiakostext}| +% \meta{Greek text to be typeset with the Lipsian font} +% |\end{Lipsiakostext}| +%\end{quote} +% Remember also that these Greek text declarations may be issued while typesetting +% with Latin fonts; they provide also the language switch, so that they do not +% require the typesetter to first switch to Greek and then to choose a certain Greek +% font. % \begin{macrocode} -\DeclareRobustCommand\textLipsias[1]{{% - \expandafter\select@language\expandafter{\GreekName}% - \expandafter\fontencoding\expandafter{\GRencoding@name}% - \itshape\let\~\GRcirc\let~\greek@tilde#1}% -} +\DeclareRobustCommand\NoLipsiakostext{% + \ifthenelse{\equal{\f@series}{b}}{\fontseries{m}}{\relax}% + \fontshape{n}\selectfont + \expandafter\select@language\expandafter{\previouslanguage}% + \rmfamily\bbl@activate{~}} + % \end{macrocode} %\end{macro} -%\begin{macro}{\textDidot} |\textDidot| is a similar macro where the common upright -% Greek characters are selected; it goes by itself that if |\textit| is specified -% within the |\textDidot| argument, the typesetting is or becomes identical with what +%\begin{macro}{\textDidot} +% |\textDidot| is a similar macro where the common upright Greek characters are +% selected; it goes by itself that if |\textit| is specified within the +% |\textDidot| argument, the typesetting is or becomes identical with what % one can obtain with the |\textLipsias| command. % \begin{macrocode} \DeclareRobustCommand\textDidot[1]{{% \expandafter\select@language\expandafter{\GreekName}% - \expandafter\fontencoding\expandafter{\GRencoding@name}% - \upshape\let\~\GRcirc\let~\greek@tilde#1}% -} + \let\~\GRcirc\let~\greek@tilde + \fontencoding{LGR}\rmfamily#1}} + % \end{macrocode} %\end{macro} -%\begin{macro}{\textlatin} |\textlatin| is a redefinition of the standard \babel\ -% macro that is adapted to the present situation, where it may be called behind the -% scenes in certain situations that are beyond the control of the typesetter. Therefore +% +%\begin{macro}{\textlatin} +% |\textlatin| is a redefinition of the standard \babel\ macro that is adapted to +% the present situation, where it may be called behind the scenes in certain +% situations that are beyond the control of the typesetter. Therefore % every precaution is taken in order to be sure that the composition of the command -% argument is really done with the default encoding. +% argument is really done with the default encoding and font families, but +% maintaining the current series and shape; of course, if the shape is that related +% to the Lipsian font, then the italic shape is temporarily restored (local +% definition). Moreover, with the (default) Latin fonts the tilde is restored to a +% non breaking space by simly making it an active character. % \begin{macrocode} \DeclareRobustCommand\textlatin[1]{\edef\externalencoding{\f@encoding}{% + \def\itdefault{it}\def\@tempA{li}\ifx\@tempA\f@shape\def\f@shape{it}\fi% \expandafter\select@language\expandafter{\previouslanguage}% - \expandafter\fontencoding\expandafter{\previousencoding}% - \bbl@activate{~}\upshape#1}% - \expandafter\fontencoding\expandafter{\externalencoding}\selectfont} + \fontencoding{\previousencoding}% + \fontfamily{\rmdefault}\selectfont + \bbl@activate{~}#1}% + \expandafter\fontencoding\expandafter{\externalencoding}\rmfamily} + +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\uishape} +%\begin{macro}{\textui} +%\begin{macro}{\rsshape} +%\begin{macro}{\textrs} +% The other switching foont macros for using the other shaps that are available with +% the CB fonts are working only when tyesetting in Greek and the default encoding is +% therefore LGR. +% \begin{macrocode} +\DeclareRobustCommand\uishape{% +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}% +{\fontshape{ui}\selectfont}{\relax}} +\DeclareTextFontCommand{\textui}{\uishape} + +\DeclareRobustCommand\rsshape{% +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}% +{\fontshape{rs}\selectfont}{\relax}} +\DeclareTextFontCommand{\textrs}{\rsshape} + % \end{macrocode} %\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} % +% \subsection{Service macros} % Now we start the specific additions introduced with this package. % -% \begin{macro}{\numero} -% We define a short macro |\numero| used to strip off the pt part of a dimension value -% as displayed by \TeX\ itself; this service macro is going to be used quite a lot for -% getting the font slant per point parameter so as to be able to put in their correct -% position various signs over or under other signs. -% \begin{macrocode} -{% -\catcode`p=12\catcode`t=12\gdef\numero#1pt{#1}% -} -% \end{macrocode} -% \end{macro} -% +% \begin{macro}{\strip@pt} +% The \LaTeX\ kernel has the macro |\strip@pt| that strips off the pt part from the +% expanded value of a dimension register name and makes available the measure in pt +% of the contained length (the register contains the length measure in scaled +% points; the expansion performed by \TeX\ with the command |\the| converts the +% scaled points to printer points and shows the result with a string of decimal +% digits with, possibly, a decimal fraction); its argument is supposed +% to be a dimension register name, not its expanded contents. The |\strip@pt| +% command eliminates the decimal point and the fractional part if the latter is +% nought. % With the help of such service macro we are going to define a certain number of % ``lift accent'' macros or ``put cedilla'' macros that work with both upright and % slanted fonts, although they contain different parameters for Latin compared to % Greek alphabets. -% \begin{macro}{\lift@accent} The first ``lift accent'' macro just puts an accent over -% a letter, without inserting any space between them; the first argument is the accent -% code (decimal, hexadecimal or octal; I prefer decimal), while the second argument -% is the letter --~any letter, even if it is not a vowel! +% \end{macro} +% +% \begin{macro}{\lift@accent} +% The first ``lift accent'' macro just puts an accent over +% a letter, without inserting any space between them; the first argument is the +% accent code (decimal, hexadecimal or octal; I prefer decimal), while the second +% argument is the letter --~any letter, even if it is not a vowel! % \begin{macrocode} \newcommand*\lift@accent[2]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#2}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -553,16 +883,16 @@ Type X to exit.}% \@tempdima\ht\z@\advance\@tempdima-1ex\relax \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + % \end{macrocode} % \end{macro} % -% -% \begin{macro}{\Lift@accent} The second ``lift accent'' macro behaves -% as the first one except it interposes a small -% vertical distance between the accent and the letter: +% \begin{macro}{\Lift@accent} +% The second ``lift accent'' macro behaves as the first one except it interposes a +% small vertical distance between the accent and the letter: % \begin{macrocode} \newcommand*\Lift@accent[2]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#2}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -572,15 +902,17 @@ Type X to exit.}% \@tempdima\ht\z@\advance\@tempdima-1ex\advance\@tempdima.1ex\relax \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + % \end{macrocode} % \end{macro} % -% \begin{macro}{\LIFT@accent} The third ``lift accent'' macro behaves as the first one, -% except it interposes a specified vertical space between the letter and the accent; -% this space is specified as the second argument: +% \begin{macro}{\LIFT@accent} +% The third ``lift accent'' macro behaves as the first one, except it interposes a +% specified vertical space between the letter and the accent; this space is +% specified as the second argument: % \begin{macrocode} \newcommand*\LIFT@accent[3]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#3}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -592,22 +924,26 @@ Type X to exit.}% \advance\@tempdima#2\fi\let\@tempA\undefined \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + % \end{macrocode} % \end{macro} % % All these macros will be used in subsequent ``put accent'' macros, that will % stack also several accents one above the other; the necessity arises for example % when the macron or breve diacritical marks have to be put over accented letters; -% according to typographical practice the accents must go over the macron or the breve. +% according to typographical practice the accents must go over the macron or the +% breve. % In a similar way philologists often must use other diacritical marks in addition -% to the traditional Greek ones, therefore these macros will be used, for example, for -% setting the Scandinavian ring (from a Latin font) over a Greek letter (from a Greek font). +% to the traditional Greek ones, therefore these macros will be used, for example, +% for setting the Scandinavian ring (from a Latin font) over a Greek letter (from a +% Greek font). % -% \begin{macro}{\cap@} The first such unusual diacritical mark is a small cap, -% a small upside down breve sign, that is in position~1 of the Greek font table. +% \begin{macro}{\cap@} +% The first such unusual diacritical mark is a small cap, a small upside down breve +% sign, that is in position~1 of the Greek font table. % \begin{macrocode} \DeclareRobustCommand{\cap@}[1]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \setbox\tw@\hbox{\fontencoding{\GRencoding@name}\selectfont \char1}\dimen@-.5\wd\tw@ \setbox\z@\hbox{#1}% @@ -617,51 +953,59 @@ Type X to exit.}% \ifx\cf@encoding\GRencoding@name\else \ifx#1k\advance\dimen@-.3\wd\tw@\fi\fi \raise\@tempdima\hbox to\z@{\kern\dimen@\box\tw@\relax\hss}\box\z@}} + % \end{macrocode} % The |\ifx\cf@encoding\GRencoding@name| conditional construct shows that this % macro behaves differently with different font encodings; the following |\ifx#1k| % checks the argument against the Greek letter kappa, which shows very clearly -% that these macros operate on any letter, not only vowels. +% that these macros operate on any letter, not only on vowels. % \end{macro} -% \begin{macro}{\cap} By means of the above |\cap@| macro we can define three equivalent -% commands to be used either when the Greek encoding is in force, or when one of the -% Latin encodings is in force: +% +% \begin{macro}{\cap} +% By means of the above |\cap@| macro we can define three equivalent commands to be +% used either when the Greek encoding is in force, or when one of the Latin +% encodings is in force: % \begin{macrocode} \DeclareTextCommand{\cap}{\GRencoding@name}{\cap@} \DeclareTextCommand{\cap}{OT1}{\cap@} \DeclareTextCommand{\cap}{T1}{\cap@} + % \end{macrocode} -% Probably one definition would be sufficient, but on one side the presence -% of three encoding dependent macros are the remains of initial works, while on the other +% Probably one definition would be sufficient, but on one side the presence of three +% encoding dependent macros are the remains of initial works, while on the other % side they prevent to use these macros with encodings for which the macro might not -% work well, because it was not tested with other encodings. +% work well, because it was not tested with them. % \end{macro} % -% \begin{macro}{\cap@cedilla} Similarly a small cap can be put under another letter -% as it was a cedilla; for this task another macro is defined, which makes use of -% the same glyph in position~1 in the Greek font table: +% \begin{macro}{\cap@cedilla} +% Similarly a small cap can be put under another letter as it was a cedilla; for +% this task another macro is defined, which makes use of the same glyph in +% position~1 in the Greek font table: % \begin{macrocode} \newcommand*\cap@cedilla[1]{\leavevmode {\setbox4\hbox{\fontencoding{\GRencoding@name}\selectfont\char1}% \dimen@-.5\wd4 \setbox\z@\hbox{#1}% \ifx\cf@encoding\GRencoding@name -\ifx#1i\advance\dimen@ .65\wd\z@\else\advance\dimen@ .6\wd\z@\fi +\ifx#1i\advance\dimen@ .65\wd\z@\else\advance\dimen@ .5\wd\z@\fi \else \ifx#1i\advance\dimen@ .55\wd\z@\else\advance\dimen@ .5\wd\z@\fi \fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} % \end{macro} % -% \begin{macro}{\ring@cedilla} Another cedilla like diacritical mark is the -% Scandinavian ring put under a letter; the correct positioning requires -% careful examination of the letter under which it is to be placed, distinguishing -% the Greek from the Latin encodings: +% \begin{macro}{\ring@cedilla} +% Another cedilla like diacritical mark is the Scandinavian ring put under a letter; +% the ring is taken from the metrics font, so its slot position does not depend +% on the various Latin encodings; the correct positioning requires careful +% examination of the letter under which it is to be placed, distinguishing the Greek +% from the Latin encodings: % \begin{macrocode} \newcommand*\ring@cedilla[1]{\leavevmode {\setbox4\hbox{\metricsfont\char26}% -\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@-.5\wd4\ifdim\slant@\p@>\z@\advance\dimen@-.04ex\fi \setbox\z@\hbox{#1}% \ifx\cf@encoding\GRencoding@name @@ -672,19 +1016,20 @@ Type X to exit.}% \ifx#1u\advance\dimen@+.07\wd\z@\fi \ifx#1w\advance\dimen@+.03\wd\z@\fi \else - \ifx#1i\advance\dimen@ .55\wd\z@\else + \ifx#1i\advance\dimen@.55\wd\z@\else \ifx#1r\advance\dimen@.38\wd\z@\else \ifx#1o\advance\dimen@.47\wd\z@\else - \advance\dimen@ .5\wd\z@ + \advance\dimen@0.5\wd\z@ \fi\fi\fi \fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} % \end{macro} % -% \begin{macro}{\dot@cedilla} Even the standard \LaTeX\ macro |dot| must be redefined -% with a cedilla like macro, so as to make use of a special dot from the -% metric symbols font: +% \begin{macro}{\dot@cedilla} +% Even the standard \LaTeX\ macro |dot| must be redefined with a cedilla like macro, +% so as to make use of a special dot from the metric symbols font: % \begin{macrocode} \newcommand*\dot@cedilla[1]{\leavevmode {\setbox4\hbox{\metricsfont\char27}% @@ -699,14 +1044,16 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} %\end{macro} % -% \begin{macro}{\tie@cedilla} \LaTeX\ has the macro |\t| for placing a ``tie'' over two -% letters; philologists require also a tie under two letters; this is why another -% cedilla like macro is needed: +% \begin{macro}{\tie@cedilla} +% \LaTeX\ has the macro |\t| for placing a ``tie'' over two letters; philologists +% require also a tie under two letters; this is why another cedilla like macro is +% needed: % \begin{macrocode} -\newcommand*\tie@cedilla[1]{\leavevmode % mette un tie sotto l'argomento +\newcommand*\tie@cedilla[1]{\leavevmode {\setbox4\hbox{\fontencoding{\GRencoding@name}\selectfont\char20}% \dimen@-.5\wd4 \setbox\tw@\hbox{i}\setbox\z@\hbox{#1}% @@ -720,32 +1067,96 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} % \end{macro} -% All these accent like and cedilla like macros will be extensively used in the following -% definitions. +% +% \subsection{Extended accent definitions} +% We will use those service macros in the definition of several accent like macros +% that keep all the intricacies away from the user. Meanwhile we input from +% a separate file |LGRaccent-glyph.def| a whole set of extended accent macros +% slightly adapted from those contained in G\"unter Milde's definition file. +% In particular the \LaTeX\ kernel macros are used in order to declare accents, +% composite glyphs, composite commands, and the like; these are used as the default +% definitions; afterwards other definitions will be given that work when these +% composite macros don't work. +% In other words, while |\~| and |u| in Greek form the composite glyph ``upsilon +% with circumflex'' that exists in the Greek font table, the same macro |\~| and the +% letter |k| produce the superposition of a circumflex on top of a ``kappa'' glyph, +% since this glyph does not exist in the Greek font table. +% Notice that all these declarations are restricted to the Greek font encoding so +% they are usable only when such font is in force. See the |teubner-doc.pdf| file +% for more details concerning the usefulness of the extended accent macros vs.\ the +% ligature mechanism. +% +% \begin{macrocode} +\input{LGRaccents-glyphs.def} +% \end{macrocode} +% +% \subsection{Special accent macros} +% Now we come back to the ``accent like'' and ``cedilla like'' general macros we +% defined above, and that will be extensively used in the following definitions. +% Note that for what the circumflex is concerned, when |teubner| is in effect it is +% not defined as an active character and does not work as a non breaking space. The +% command |\~| and its equivalent |\GRcirc| is just an accent macro; how do you put +% a non breaking space in a Greek context? By simply using the \LaTeX\ kernel macro +% |\nobreakspace|; when typesetting with non-Greek fonts the |~| is certainly handy +% to insert a non breaking space (a tie), but for polytonic Greek spelling in the +% past 15 years or so the Greek language definition file has always used the |~| +% sign a a letter, not as an active character. If you look in the \babel\ package +% documentation related to the Greek language, you find that for what concerns the +% |~| with polytonic spelling a number ot ``dirty tricks'' have been used, but +% nothing has been done to replace the ``tie'' function of this character when +% typesetting in languages that use the Latin script; the only action related to +% this point has been to redefine the kernel macros for typesetting figure and table +% captions so as to substitute the |~| character with its explicit definition +% |\nobreakspace|. It is necessary to do the same when this package is used, +% although a shorter command |\nbs| is provided in order to simplify the input +% keying. +% \begin{macrocode} +\let\nbs\nobreakspace +% \end{macrocode +% +% Having defined the Greek accents with the extended macroso input with the +% |LGRaccents-glyphs.def| file, we can let some equivalences so that such accents +% may be used with shorter control sequences that are coherent with the +% corresponding ligatures. % \begin{macrocode} % grave \DeclareTextCommand{\`}{\GRencoding@name}[1]{\lift@accent{96}{#1}} % acute \DeclareTextCommand{\'}{\GRencoding@name}[1]{\lift@accent{39}{#1}} % circumflex -\DeclareTextCommand{\GRcirc}{\GRencoding@name}[1]{\lift@accent{126}{#1}} \DeclareTextCommand{\~}{\GRencoding@name}[1]{\lift@accent{126}{#1}} +\let\GRcirc\Perispomeni + +% \end{mcrocode} +% But we have to provide also the means for disabling the |~| shorthand that is +% reset every time the Greek language is selected again in a multilanguage document +% where language shifts take place quite often; we must also counteract the +% resetting of the |\~| definition performed by the |greek.ld| file in every +% language shift; it is not important to add the accent re-definition to the +% |\extrasgreek| macro, because when this macro is executed the last definition +% given is the one that lasts until the next language shift. +% \begin{macrocode} +\addto\extrasgreek{\shorthandoff{~}\let\~\Perispomeni} +\addto\noextrasgreek{\shorthandon{~}} + % \end{macrocode} -% For the diaeresis we need to put an invisible character (|v| in the LGR encoded CB fonts) -% in order to avoid any ligature with an implied end of word (boundarychar) that turns -% the diaeresis into an apostrophe. +% For the diaeresis we need to put an invisible character (|v| in the LGR encoded CB +% fonts) in order to avoid any ligature with an implied end of word (boundarychar) +% that turns the diaeresis into an apostrophe. % \begin{macrocode} % diaeresis \DeclareTextCommand{\"}{\GRencoding@name}[1]{\lift@accent{34v}{#1}} % breve \DeclareTextCommand{\u}{\GRencoding@name}[1]{\lift@accent{30}{#1}} % \end{macrocode} -% Besides the normal |\u| command for setting a breve command, another ``big breve'' -% is required by philologists, who need to mark a diphthong, or in general two letters; -% the macro |\U| does the job, but it is the typesetter's responsibility to input -% the macro argument as made of two letters (possibly with their own accents) +% Besides the normal |\u| command for setting a breve command, another ``large +% breve'' is required by philologists, who need to mark a diphthong, or in general +% two letters; the macro |\U| does the job, but it is the typesetter's +% responsibility to input the macro argument as made of two letters (possibly with +% their own accents): % \begin{macrocode} \DeclareTextCommand{\U}{\GRencoding@name}[1]{\lift@accent{151}{#1}} % macron @@ -773,16 +1184,19 @@ Type X to exit.}% % circumflex+smooth \DeclareTextCommand{\Cs}{\GRencoding@name}[1]{\lift@accent{92}{#1}} % \end{macrocode} -% Most of the above accent commands are used again in order to tie -% a text symbol meaning to certain combinations, that is when they receive as argument -% a vowel whose accented glyph is present in the font; in this way in order to type -% ``alpha with rough breath, acute accent and iota subscript'' you can type \verb"<'a|", -% or \verb"\Ar{a}|" or |\arai|; the advantage of using the first notation is its -% short string; the advantage of the second is that it does not break kerning -% commands with a preceeding letter; the advantage of the third is that it -% does not break any kerning either before or after. With the Lipsian font -% this trick is particularly useful for any sequence of alpha and upsilon each -% one with its own accents and/or diaresis. +% Most of the above accent commands are used again in order to tie a text symbol +% meaning to certain combinations, that is when they receive as argument a vowel +% whose accented glyph is present in the font; in this way in order to type +% ``alpha with rough breath, acute accent and iota subscript'' you can type +% \verb"<'a|", or \verb"\Ar{a}|" or |\arai| or \verb+\<'a|+, if you use Milde's +% accent macros; the advantage of using the first notation is its short string; the +% advantage of the second is that it does not break kerning commands with a +% preceeding letter; the advantage of the third is that it does not break any +% kerning either before or after; the fourth solution produces the same result as +% the third, but it's easier to make up and you don't have to memorize any specific +% naming rule for accented glyphs. With the Lipsian font this trick is particularly +% useful for any sequence of alpha and upsilon each one with its own accents and/or +% diaresis. % % In Greek the regular cedilla is meaningless, so that |\c| may be redefined % as a semivowel command; at the same time the typesetter might be more @@ -867,18 +1281,23 @@ Type X to exit.}% % iota subscript \DeclareTextCommand{\iS}{\GRencoding@name}[1] {\ooalign{#1\crcr\hidewidth\char124\hidewidth}} + % \end{macrocode} % -% \begin{macro}{\d} The |\d| macro must be made available also with the Greek encoding +% \begin{macro}{\d} +% The |\d| macro must be made available also with the Greek encoding % \begin{macrocode} \DeclareTextCommand{\d}{\GRencoding@name}[1]% {\leavevmode\bgroup\o@lign{\relax#1\crcr \hidewidth\sh@ft{10}.\hidewidth}\egroup} + % \end{macrocode} % \end{macro} % % Some other philologist diacritical marks are needed. -% \begin {macro}{\Open} The |\Open| macro sets a special sign under a letter in order +% +% \begin {macro}{\Open} +% The |\Open| macro sets a special sign under a letter in order % to mark it with an open pronunciation. % \begin{macrocode} \DeclareRobustCommand{\Open}[1]{\leavevmode @@ -894,9 +1313,11 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} % \end{macro} -% \begin {macro}{\nasal} The macro |\nasal| marks a letter for a nasal pronunciation. +% \begin {macro}{\nasal} +% The macro |\nasal| marks a letter for a nasal pronunciation. % \begin{macrocode} \DeclareRobustCommand{\nasal}[1]{\leavevmode {\setbox4\hbox{\raise-1.7ex\hbox{\GEcq}}% @@ -911,25 +1332,29 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + % \end{macrocode} % \end{macro} -%\begin {macro}{\tenaspir} Similarly |\tenaspir| marks a ``tenuis aspiratio'' +%\begin {macro}{\tenaspir} +% Similarly |\tenaspir| marks a ``tenuis aspiratio'' % \begin{macrocode} \DeclareRobustCommand{\tenaspir}[1]{#1\/% {\fontencoding{\GRencoding@name}\selectfont to exit.}% \DeclareTextCommand{\UO}{\GRencoding@name}[1]{\Open{\u{#1}}} % open and macron \DeclareTextCommand{\mO}{\GRencoding@name}[1]{\Open{\={#1}}} + % \DeclareTextCommand{\Ud}{T1}[1]{\d{\u{#1}}} \DeclareTextCommand{\md}{T1}[1]{\d{\={#1}}} @@ -949,32 +1375,40 @@ Type X to exit.}% \DeclareTextCommand{\md}{OT1}[1]{\d{\={#1}}} \DeclareTextCommand{\UO}{OT1}[1]{\Open{\u{#1}}} \DeclareTextCommand{\mO}{OT1}[1]{\Open{\={#1}}} + % \end{macrocode} % +% \subsection{Some text commands} % \begin{macro}{\greekquoteleft} -%\begin{macro}{\greekquoteleft} -%\begin{macro}{\textcompwordmark} -%\begin{macro}{\textemdash} -%\begin{macro}{emdash} -%\begin{macro}{\textendash} -% Several macros are traditionally defined for every encoding; we do not make exceptions. -% Actually all the symbols defined here can be obtained with the regular CB font ligatures -% so the macros are sort of superfluous. Nevertheless, in case any of the component symbols -% is made active and defined to perform something different, these macros can overcome -% the difficulty of producing the ligated glyphs. Even the |\textcompwordmark| macro, -% although the compound word mark is sort of unusual, could have been omitted, because -% with a Latin keyboard this symbol gets input by pressing the ``v'' key (``v'' stands -% for ``void''); all the hyphenation pattern files for the Greek language recognize -% ``v'' as a letter, an invisible letter, that breaks any ligature, that hides the end -% of the word, that allows hyphenation (if the rest of the word is taken as a -% \emph{word} by \TeX\ itself, which does not happen all the time!). +% \begin{macro}{\greekquoteright} +% \begin{macro}{\textguillemotleft} +% \begin{macro}{\textguillemotright} +% \begin{macro}{\textcompwordmark} +% \begin{macro}{\textemdash} +% \begin{macro}{emdash} +% \begin{macro}{\textendash} +% Several macros are traditionally defined for every encoding; we do not make +% exceptions. Actually all the symbols defined here can be obtained with the regular +% CB font ligatures so the macros are sort of superfluous. Nevertheless, in case any +% of the component symbols is made active and defined to perform something +% different, these macros can overcome the difficulty of producing the ligated +% glyphs. Even the |\textcompwordmark| macro, although the compound word mark is +% sort of unusual, could have been omitted, because with a Latin keyboard this +% symbol gets input by pressing the ``v'' key (``v'' stands for ``void''); all the +% hyphenation pattern files for the Greek language recognize ``v'' as a letter, an +% invisible one, that breaks any ligature, that hides the end of the word, that +% allows hyphenation (if the rest of the word is taken as a \emph{word} by \TeX\ +% itself, which does not always happens!\dots). % \begin{macrocode} \DeclareTextSymbol{\greekquoteleft}{\GRencoding@name}{123} +\let\textguillemotleft\greekquoteleft \DeclareTextSymbol{\greekquoteright}{\GRencoding@name}{125} +\let\textguillemotright\greekquoteright \DeclareTextSymbol{\textcompwordmark}{\GRencoding@name}{118} \DeclareTextSymbol{\textemdash}{\GRencoding@name}{127} \let\emdash\textemdash \DeclareTextSymbol{\textendash}{\GRencoding@name}{0} + % \end{macrocode} % \end{macro} % \end{macro} @@ -982,6 +1416,8 @@ Type X to exit.}% % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % %\begin{macro}{\stigma} %\begin{macro}{\varstigma} @@ -998,18 +1434,25 @@ Type X to exit.}% % font matrix with a normal keyboard stroke, and some deal with the Euro symbol and % the permill symbol, that are unlikely to be used in a philological text, % but, who knows\dots +% +% May be the standard names starting with |text| should be used; It would not be too +% difficult a task, but these names should be defined in the |greek.fd| language +% description file; I know tha Werner Lemberg ha written a paper on Eutypon on this +% subject, also in order to make use of the CB fonts with Unicode support. But this +% is just an extension to that package, so I am not going to redefine things that +% are already there or that will be there in a next version of that file. % \begin{macrocode} \DeclareTextSymbol{\stigma}{\GRencoding@name}{006} \DeclareTextSymbol{\varstigma}{\GRencoding@name}{007} \DeclareTextSymbol{\koppa}{\GRencoding@name}{18} -\DeclareTextSymbol{\varkoppa}{\GRencoding@name}{19} -\let\coppa\varkoppa +\DeclareTextSymbol{\varkoppa}{\GRencoding@name}{19}\let\coppa\varkoppa \DeclareTextSymbol{\sampi}{\GRencoding@name}{27} \DeclareTextSymbol{\Coppa}{\GRencoding@name}{21}\let\Koppa\Coppa \DeclareTextSymbol{\Stigma}{\GRencoding@name}{22} \DeclareTextSymbol{\Sampi}{\GRencoding@name}{23} \DeclareTextSymbol{\Euro}{\GRencoding@name}{24} \DeclareTextSymbol{\permill}{\GRencoding@name}{25} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1022,16 +1465,18 @@ Type X to exit.}% %\end{macro} %\end{macro} %\end{macro} +% %\begin{macro}{\textdollar} %\begin{macro}{\textsection} %\begin{macro}{\textsterling} %\begin{macro}{\textunderscore} -%\begin{macro}{\textvisiblespace} More important, although unlikely to be found in -% a philological text, is the question of standard \LaTeX\ commands that are defined -% with reference to some encoding; if Greek text is being typeset, the Greek encoding -% is being used and such symbols would not be available any more; \LaTeX would issue -% warning messages complaining for their absence. Therefore we redefined them also -% for the Greek encoding. +%\begin{macro}{\textvisiblespace} +% More important, although unlikely to be found in a philological text, is the +% question of standard \LaTeX\ commands that are defined with reference to some +% encoding; if Greek text is being typeset, the Greek encoding is being used and +% such symbols would not be available any more; \LaTeX would issue warning messages +% complaining for their absence. Therefore we redefined them also for the Greek +% encoding. % \begin{macrocode} \DeclareTextCommand{\textdollar}{\GRencoding@name}% {{\fontencoding{T1}\selectfont\char36}} @@ -1043,6 +1488,7 @@ Type X to exit.}% {{\fontencoding{T1}\selectfont\char95}} \DeclareTextCommand{\textvisiblespace}{\GRencoding@name}% {{\fontencoding{T1}\selectfont\char32}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1050,25 +1496,36 @@ Type X to exit.}% %\end{macro} %\end{macro} % -% Now come the dozens of macros that allow to access Greek accented vowels (plus rho with -% rough and smooth breaths) with macros instead of ligatures; such macros allow the -% kerning information to be used by \TeX, while the ligature mechanism would sometimes -% impeach the use of such kerning information. Notice that the same glyphs are often accessed -% with a ``text symbol'' or a ``text composite symbol''; as explained above the opportunity -% of using either one derives from the necessity of maintaining the kerning mechanism embedded in -% the font; if the CB fonts had a postfixed accent notation, instead of a prefixed one, none of -% these macros would be necessary (probably\dots!), but there would be other inconveniences. +% +% \subsection{Accent macros and glyph names} +% Now come dozens of macros that allow to access Greek accented vowels (plus rho +% with rough and smooth breaths) with macros instead of ligatures; such macros allow +% the kerning information to be used by \TeX, while the ligature mechanism would +% sometimes impeach the use of such kerning information. Notice that the same glyphs +% are often accessed with a ``text symbol'' or a ``text composite symbol''; as +% explained above the opportunity of using either one derives from the necessity of +% maintaining the kerning mechanism embedded in the font; if the CB fonts had a +% postfixed accent notation, instead of a prefixed one, none of these macros would +% be necessary (probably\dots!), but there would be other inconveniences. +% +% Notice that the following code is subject to the boolean variabale |GlyphNames| +% which is set to true by default, just fort compatibility with the past; I suggest +% to use the \emph{NoGlyphNames} when typesetting new documents, since the glyphs +% are more asily specified by means of the extended accent macros that are also less +% restricted in their names; for a letter marked with a smooth breath and an acute +% accent you can indifferently type before the letter one of the following |\>\'|, +% |\>'|, |\'\>|, |\'>| at your choice. Moreover you can always postfix the mark for +% the iota subscribed at the right of the letter, without any need o memorising +% complicated names. % \begin{macrocode} +\ifGlyphNames \DeclareTextSymbol{\ag}{\GRencoding@name}{128} -\DeclareTextComposite{\`}{\GRencoding@name}{a}{128} \DeclareTextSymbol{\ar}{\GRencoding@name}{129} \DeclareTextComposite{\r}{\GRencoding@name}{a}{129} \DeclareTextSymbol{\as}{\GRencoding@name}{130} \DeclareTextComposite{\s}{\GRencoding@name}{a}{130} \DeclareTextSymbol{\aa}{\GRencoding@name}{136} -\DeclareTextComposite{\'}{\GRencoding@name}{a}{136} \DeclareTextSymbol{\ac}{\GRencoding@name}{144} -\DeclareTextComposite{\~}{\GRencoding@name}{a}{144} \DeclareTextSymbol{\ai}{\GRencoding@name}{248} \DeclareTextSymbol{\aai}{\GRencoding@name}{140} \DeclareTextSymbol{\aci}{\GRencoding@name}{148} @@ -1094,7 +1551,6 @@ Type X to exit.}% \DeclareTextSymbol{\asgi}{\GRencoding@name}{143} \DeclareTextSymbol{\asci}{\GRencoding@name}{150} \DeclareTextSymbol{\hg}{\GRencoding@name}{152} -\DeclareTextComposite{\`}{\GRencoding@name}{h}{152} \DeclareTextSymbol{\hr}{\GRencoding@name}{153} \DeclareTextComposite{\r}{\GRencoding@name}{h}{153} \DeclareTextSymbol{\hs}{\GRencoding@name}{154} @@ -1106,7 +1562,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsi}{\GRencoding@name}{158} \DeclareTextSymbol{\hrgi}{\GRencoding@name}{167} \DeclareTextSymbol{\ha}{\GRencoding@name}{160} -\DeclareTextComposite{\'}{\GRencoding@name}{h}{160} \DeclareTextSymbol{\hra}{\GRencoding@name}{161} \DeclareTextComposite{\Ar}{\GRencoding@name}{h}{161} \DeclareTextSymbol{\hsa}{\GRencoding@name}{162} @@ -1118,7 +1573,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsai}{\GRencoding@name}{166} \DeclareTextSymbol{\hsgi}{\GRencoding@name}{175} \DeclareTextSymbol{\hc}{\GRencoding@name}{168} -\DeclareTextComposite{\~}{\GRencoding@name}{h}{168} \DeclareTextSymbol{\hrc}{\GRencoding@name}{169} \DeclareTextComposite{\Cr}{\GRencoding@name}{h}{169} \DeclareTextSymbol{\hsc}{\GRencoding@name}{170} @@ -1128,7 +1582,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsci}{\GRencoding@name}{174} \DeclareTextSymbol{\hi}{\GRencoding@name}{249} \DeclareTextSymbol{\wg}{\GRencoding@name}{176} -\DeclareTextComposite{\`}{\GRencoding@name}{w}{176} \DeclareTextSymbol{\wr}{\GRencoding@name}{177} \DeclareTextComposite{\r}{\GRencoding@name}{w}{177} \DeclareTextSymbol{\ws}{\GRencoding@name}{178} @@ -1140,7 +1593,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsi}{\GRencoding@name}{182} \DeclareTextSymbol{\wrgi}{\GRencoding@name}{183} \DeclareTextSymbol{\wa}{\GRencoding@name}{184} -\DeclareTextComposite{\'}{\GRencoding@name}{w}{184} \DeclareTextSymbol{\wra}{\GRencoding@name}{185} \DeclareTextComposite{\Ar}{\GRencoding@name}{w}{185} \DeclareTextSymbol{\wsa}{\GRencoding@name}{186} @@ -1152,7 +1604,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsai}{\GRencoding@name}{190} \DeclareTextSymbol{\wsgi}{\GRencoding@name}{191} \DeclareTextSymbol{\wc}{\GRencoding@name}{192} -\DeclareTextComposite{\~}{\GRencoding@name}{w}{192} \DeclareTextSymbol{\wrc}{\GRencoding@name}{193} \DeclareTextComposite{\Cr}{\GRencoding@name}{w}{193} \DeclareTextSymbol{\wsc}{\GRencoding@name}{194} @@ -1162,7 +1613,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsci}{\GRencoding@name}{198} \DeclareTextSymbol{\wi}{\GRencoding@name}{250} \DeclareTextSymbol{\ig}{\GRencoding@name}{200} -\DeclareTextComposite{\`}{\GRencoding@name}{i}{200} \DeclareTextSymbol{\ir}{\GRencoding@name}{201} \DeclareTextComposite{\r}{\GRencoding@name}{i}{201} \DeclareTextSymbol{\is}{\GRencoding@name}{202} @@ -1170,7 +1620,6 @@ Type X to exit.}% \DeclareTextSymbol{\irg}{\GRencoding@name}{203} \DeclareTextComposite{\Gr}{\GRencoding@name}{i}{203} \DeclareTextSymbol{\ia}{\GRencoding@name}{208} -\DeclareTextComposite{\'}{\GRencoding@name}{i}{208} \DeclareTextSymbol{\ira}{\GRencoding@name}{209} \DeclareTextComposite{\Ar}{\GRencoding@name}{i}{209} \DeclareTextSymbol{\isa}{\GRencoding@name}{210} @@ -1178,13 +1627,11 @@ Type X to exit.}% \DeclareTextSymbol{\isg}{\GRencoding@name}{211} \DeclareTextComposite{\Gs}{\GRencoding@name}{i}{211} \DeclareTextSymbol{\ic}{\GRencoding@name}{216} -\DeclareTextComposite{\~}{\GRencoding@name}{i}{216} \DeclareTextSymbol{\irc}{\GRencoding@name}{217} \DeclareTextComposite{\Cr}{\GRencoding@name}{i}{217} \DeclareTextSymbol{\isc}{\GRencoding@name}{218} \DeclareTextComposite{\Cs}{\GRencoding@name}{i}{218} \DeclareTextSymbol{\id}{\GRencoding@name}{240} -\DeclareTextComposite{\"}{\GRencoding@name}{i}{240} \DeclareTextSymbol{\idg}{\GRencoding@name}{241} \DeclareTextComposite{\Gd}{\GRencoding@name}{i}{241} \DeclareTextSymbol{\ida}{\GRencoding@name}{242} @@ -1192,7 +1639,6 @@ Type X to exit.}% \DeclareTextSymbol{\idc}{\GRencoding@name}{243} \DeclareTextComposite{\Cd}{\GRencoding@name}{i}{243} \DeclareTextSymbol{\ug}{\GRencoding@name}{204} -\DeclareTextComposite{\`}{\GRencoding@name}{u}{204} \DeclareTextSymbol{\ur}{\GRencoding@name}{205} \DeclareTextComposite{\r}{\GRencoding@name}{u}{205} \DeclareTextSymbol{\us}{\GRencoding@name}{206} @@ -1200,7 +1646,6 @@ Type X to exit.}% \DeclareTextSymbol{\urg}{\GRencoding@name}{207} \DeclareTextComposite{\Gr}{\GRencoding@name}{u}{207} \DeclareTextSymbol{\ua}{\GRencoding@name}{212} -\DeclareTextComposite{\'}{\GRencoding@name}{u}{212} \DeclareTextSymbol{\ura}{\GRencoding@name}{213} \DeclareTextComposite{\Ar}{\GRencoding@name}{u}{213} \DeclareTextSymbol{\usa}{\GRencoding@name}{214} @@ -1208,13 +1653,11 @@ Type X to exit.}% \DeclareTextSymbol{\usg}{\GRencoding@name}{215} \DeclareTextComposite{\Gs}{\GRencoding@name}{u}{215} \DeclareTextSymbol{\uc}{\GRencoding@name}{220} -\DeclareTextComposite{\~}{\GRencoding@name}{u}{220} \DeclareTextSymbol{\urc}{\GRencoding@name}{221} \DeclareTextComposite{\Cr}{\GRencoding@name}{u}{221} \DeclareTextSymbol{\usc}{\GRencoding@name}{222} \DeclareTextComposite{\Cs}{\GRencoding@name}{u}{222} \DeclareTextSymbol{\ud}{\GRencoding@name}{244} -\DeclareTextComposite{\"}{\GRencoding@name}{u}{244} \DeclareTextSymbol{\udg}{\GRencoding@name}{245} \DeclareTextComposite{\Gd}{\GRencoding@name}{u}{245} \DeclareTextSymbol{\uda}{\GRencoding@name}{246} @@ -1222,7 +1665,6 @@ Type X to exit.}% \DeclareTextSymbol{\udc}{\GRencoding@name}{247} \DeclareTextComposite{\Cd}{\GRencoding@name}{u}{247} \DeclareTextSymbol{\eg}{\GRencoding@name}{224} -\DeclareTextComposite{\`}{\GRencoding@name}{e}{224} \DeclareTextSymbol{\er}{\GRencoding@name}{225} \DeclareTextComposite{\r}{\GRencoding@name}{e}{225} \DeclareTextSymbol{\es}{\GRencoding@name}{226} @@ -1230,7 +1672,6 @@ Type X to exit.}% \DeclareTextSymbol{\erg}{\GRencoding@name}{227} \DeclareTextComposite{\Gr}{\GRencoding@name}{e}{227} \DeclareTextSymbol{\ea}{\GRencoding@name}{232} -\DeclareTextComposite{\'}{\GRencoding@name}{e}{232} \DeclareTextSymbol{\era}{\GRencoding@name}{233} \DeclareTextComposite{\Ar}{\GRencoding@name}{e}{233} \DeclareTextSymbol{\esa}{\GRencoding@name}{234} @@ -1240,13 +1681,11 @@ Type X to exit.}% \DeclareTextSymbol{\oR}{\GRencoding@name}{229} \DeclareTextComposite{\r}{\GRencoding@name}{o}{229} \DeclareTextSymbol{\og}{\GRencoding@name}{228} -\DeclareTextComposite{\`}{\GRencoding@name}{o}{228} \DeclareTextSymbol{\os}{\GRencoding@name}{230} \DeclareTextComposite{\s}{\GRencoding@name}{o}{230} \DeclareTextSymbol{\org}{\GRencoding@name}{231} \DeclareTextComposite{\Gr}{\GRencoding@name}{o}{231} \DeclareTextSymbol{\oa}{\GRencoding@name}{236} -\DeclareTextComposite{\'}{\GRencoding@name}{o}{236} \DeclareTextSymbol{\ora}{\GRencoding@name}{237} \DeclareTextComposite{\Ar}{\GRencoding@name}{o}{237} \DeclareTextSymbol{\osa}{\GRencoding@name}{238} @@ -1258,19 +1697,26 @@ Type X to exit.}% \DeclareTextSymbol{\rs}{\GRencoding@name}{252} \DeclareTextComposite{\s}{\GRencoding@name}{r}{252} \DeclareTextSymbol{\Id}{\GRencoding@name}{219} -\DeclareTextComposite{\"}{\GRencoding@name}{I}{219} \DeclareTextSymbol{\Ud}{\GRencoding@name}{223} \DeclareTextComposite{\"}{\GRencoding@name}{U}{223} +\fi + % % \end{macrocode} % +% \subsection{Text philological symbols and macros} % Next come some short macros for inserting special symbols that philologists -% use quite often in Greek. -%\begin{macro}{\h} Macro |\h| is used to insert a Latin ``h'' while typesetting in Greek. -%\begin{macro}{\q} Macro |\q| is used to insert a Latin ``q'' while typesetting in Greek. -%\begin{macro}{\yod}\begin{macro}{\iod} Macros |\yod| and |\iod| are used to insert a -% Latin ``j'' while typesetting in Greek; the control sequence |\jod| was avoided in order -% to reduce the possibility of typing |\jot| which is a \TeX\ internal dimension. +% use quite often in Greek. +%\begin{macro}{\h} +% Macro |\h| is used to insert a Latin ``h'' while typesetting in Greek. +%\begin{macro}{\q} +% Macro |\q| is used to insert a Latin ``q'' while typesetting in Greek. +%\begin{macro}{\yod} +%\begin{macro}{\iod} +% Macros |\yod| and |\iod| are used to insert a +% Latin ``j'' while typesetting in Greek; the control sequence |\jod| was avoided in +% order to reduce the possibility of typing |\jot| which is a \TeX\ internal +% dimension. % \begin{macrocode} \DeclareTextCommand{\h}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont h}} @@ -1279,31 +1725,36 @@ Type X to exit.}% \DeclareTextCommand{\yod}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont j}}% \let\iod\yod + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} +% %\begin {macro}{\f} %\begin {macro}{\F} %\begin {macro}{\digamma} %\begin {macro}{\Digamma} -% At the same time it was believed that for inserting lower -% and upper case ``digamma'' it was preferable to use short macros and to avoid -% the dilemma between the |\ddigamma| and the |\digamma| macros, the former being the +% At the same time it was believed that for inserting lower and upper case +% ``digamma'' it was preferable to use short macros and to avoid the dilemma between +% the |\ddigamma| and the |\digamma| macros, the former being the % one defined in the \texttt{greek} extension to \babel, the latter being % a standard mathematical symbol; initially I believed that philologists do -% not use mathematical symbols so we made |\digamma| an alias for |\f|; afterwards I found out that -% mathematicians, physicists, engineers, \dots\ use the \textsf{teubner.sty} package and that the |\digamma| is a symbol -% already defined in the package \textsf{amssymb.sty}; therefore I made a -% conditional creation of this alias; this trick is delayed to the beginning of -% the document, so as to make it independent on the order with which packages -% are loaded. +% not use mathematical symbols so we made |\digamma| an alias for |\f|; afterwards I +% found out that mathematicians, physicists, engineers,~\dots\ use the +% \textsf{teubner.sty} package and that the |\digamma| is a symbol already defined +% in the package \textsf{amssymb.sty}; therefore I made a conditional creation of +% this alias; this trick is delayed to the beginning of the document, so as to make +% it independent on the order with which packages are loaded. % \begin{macrocode} \DeclareTextSymbol{\f}{\GRencoding@name}{147} -\AtBeginDocument{\@ifpackageloaded{amssymb}{\let\AMSdigamma\digamma -\def\digamma{\textormath{\f}{\AMSdigamma}}}{\let\digamma\f}} +\AtBeginDocument{\@ifpackageloaded{amssymb}% +{\let\AMSdigamma\digamma\def\digamma{\textormath{\f}{\AMSdigamma}}}% amssymb loaded +{\let\digamma\f}% amssymb not loadedloaded +} \DeclareTextSymbol{\F}{\GRencoding@name}{195}\let\Digamma\F + % \end{macrocode} %\end{macro} %\end{macro} @@ -1312,19 +1763,19 @@ Type X to exit.}% % %\begin {macro}{\fLow} %\begin {macro}{\fHigh} -% The digamma glyphs set forth another question because, -% according to Paolo Ciacchi, a different glyph should be used for typesetting text -% compared with the one that is used as a variant in Milesian numerals in place of the -% standard stigma symbol. -% By means of macros |\fLow| or |\fHigh| it is possible to chose the raised or the lowered -% digamma glyphs; Greek numerals always use the lowered one, while when text is being -% typeset the typesetter can chose the version he likes best. +% The digamma glyphs set forth another question because, according to Paolo Ciacchi, +% a different glyph should be used for typesetting text compared with the one that +% is used as a variant in Milesian numerals in place of the standard stigma symbol. +% By means of macros |\fLow| or |\fHigh| it is possible to chose the raised or the +% lowered digamma glyphs; Greek numerals always use the lowered one, while when text +% is being typeset the typesetter can chose the version he likes best. % \begin{macrocode} \DeclareRobustCommand{\fLow}% {{\setbox\z@\hbox{\f}\dimen@\ht\z@ \advance\dimen@-1ex\raise-\dimen@\hbox{\box\z@}}} \DeclareRobustCommand{\fHigh}% {{\setbox\z@\hbox{\f}\dimen@\dp\z@\raise\dimen@\hbox{\box\z@}}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1335,30 +1786,33 @@ Type X to exit.}% %\begin{macro}{\frapar} % Here we start a set of miscellaneous macros. We begin with some parentheses % that should turn out in upright shape, even if the default font is the Lipsian -% one which is oblique; its parentheses are oblique as in all oblique fonts, therefore -% we need to quietly change fonts behind the scenes. The same is true with the -% question mark that, philologically speaking, represents an uncertain element, not -% the termination of a real question; it should therefore always come out between -% parentheses and in upright shape from a Latin font. While the parenthesized -% question mark comes from the OT1 Latin upright font, the parentheses obtained with -% |\lpar| and |\rpar| are taken from the metric symbols font, as well as the -% parentheses used in the parenthesized text processed with macro |\frapar|. +% one which is oblique; its parentheses are oblique as in all oblique fonts, +% therefore we need to quietly change fonts behind the scenes. The same is true with +% the question mark that, philologically speaking, represents an uncertain element, +% not the termination of a real question; it should therefore always come out +% between parentheses and in upright shape from a Latin font. While the +% parenthesized question mark comes from the OT1 Latin upright font, the parentheses +% obtained with |\lpar| and |\rpar| are taken from the metric symbols font, as well +% as the parentheses used in the parenthesized text processed with macro |\frapar|. % \begin{macrocode} \DeclareRobustCommand\qmark{\hskip.16ex{\fontencoding{OT1}\upshape(?)}} \DeclareRobustCommand\lpar{{\metricsfont(}} \DeclareRobustCommand\rpar{{\metricsfont)}} \DeclareRobustCommand\frapar[1]{\lpar#1\rpar} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} % -%\begin{macro}{\ap} The apex/superscript macro |\ap| does not differ much from the plain -% standard \LaTeX\ macro |\textsuperscript|, the only difference being the italic correction +%\begin{macro}{\ap} +% The apex/superscript macro |\ap| does not differ much from the plain standard +% \LaTeX\ macro |\textsuperscript|, the only difference being the italic correction % that precedes |\textsuperscript|. % \begin{macrocode} \DeclareRobustCommand{\ap}[1]{\/\textsuperscript{#1}} + % \end{macrocode} %\end{macro} % @@ -1366,9 +1820,10 @@ Type X to exit.}% %\begin{macro}{\DOTS} %\begin{macro}{\Dashes} %\begin{macro}{\DASHES} -% Four macros are defined so as to insert a certain number of dots or dashes as specified -% in the optional command argument; |\Dots| and |\Dashes| fit the dots or the dashes -% pretty close together, while |\DOTS| and |\DASHES| fit them more loosely apart. +% Four macros are defined so as to insert a certain number of dots or dashes as +% specified in the optional command argument; |\Dots| and |\Dashes| fit the dots or +% the dashes pretty close together, while |\DOTS| and |\DASHES| fit them more +% loosely apart. % \begin{macrocode} \newcommand\Dots[1][1]{{\count255=#1\@whilenum\count255>\z@ \do{\kern.4ex\d{v}\kern.4ex\advance\count255\m@ne}}} @@ -1378,6 +1833,7 @@ Type X to exit.}% \do{\kern.4ex--\kern.4ex\advance\count255\m@ne}}} \newcommand\DASHES[1][1]{{\count255=#1\@whilenum\count255>\z@ \do{\kern.8ex--\kern.8ex\advance\count255\m@ne}}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1388,11 +1844,12 @@ Type X to exit.}% %\begin{macro}{\;} %\begin{macro}{\?} %\begin{macro}{\MutPers} -% Greek text or poetry sometimes requires some stacked dots; here we prepared macros for -% two (|\:|), three (|\;|), and four (|\?|) stacked dots. Two stacked dots in a row indicate -% that the speaker of a drama or comedy has changed (\textit{mutatio personae}). For |\:| -% and |\;| it is necessary to preserve the mathematical meaning, while |\?| apparently does -% not have any previous use in standard \LaTeX. The real macros are |\tw@dots|, |\thre@dots|, +% Greek text or poetry sometimes requires some stacked dots; here we prepared macros +% for two (|\:|), three (|\;|), and four (|\?|) stacked dots. Two stacked dots in a +% row indicate that the speaker of a drama or comedy has changed (\textit{mutatio +% personae}). For |\:| and |\;| it is necessary to preserve the mathematical +% meaning, while |\?| apparently does not have any previous use in standard \LaTeX. +% The real macros are |\tw@dots|, |\thre@dots|, % and |\f@urdots|. % \begin{macrocode} \DeclareRobustCommand{\:}{\textormath{\tw@dots}{\mskip\medmuskip}} @@ -1405,6 +1862,7 @@ Type X to exit.}% \hbox{.}\vss\hbox{.}}}} \def\f@urdots{\mbox{\kern1\p@\vbox to 2ex{\hbox{.}\vss \hbox{.}\vss\hbox{.}\vss\hbox{.}}}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1423,6 +1881,7 @@ Type X to exit.}% \DeclareRobustCommand{\|}{\relax\ensuremath{\mskip2mu\vert}} \DeclareRobustCommand{\dBar}{\ensuremath{\vert\vert}} \DeclareRobustCommand{\tBar}{\ensuremath{\vert\vert\vert}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1433,17 +1892,18 @@ Type X to exit.}% %\begin{macro}{\posthindspace} %\begin{macro}{\,} %\begin{macro}{\!} -% The following are mostly service macros for adjusting the spacing within macro definitions. -% Nevertheless they are available also to the typesetter, because sometimes certain glyph -% combinations require a little adjustment. Of course the typesetter will not use them -% at the very beginning, but only during proof revision, so as to introduce them only -% where really necessary. +% The following are mostly service macros for adjusting the spacing within macro +% definitions. Nevertheless they are available also to the typesetter, because +% sometimes certain glyph combinations require a little adjustment. Of course the +% typesetter will not use them at the very beginning, but only during proof +% revision, so as to introduce them only where really necessary. % \begin{macrocode} \def\negthinspace{\nobreak\hskip-0.07em} \def\posthinspace{\nobreak\hskip0.07em} \def\posthindspace{\nobreak\hskip0.14em} \renewcommand{\,}{\textormath{\posthinspace}{\mskip\thinmuskip}} \renewcommand{\!}{\textormath{\negthinspace}{\mskip-\thinmuskip}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1471,16 +1931,17 @@ Type X to exit.}% % been modified under the assumption that the copyist made some error. % Such enclosing marks include angle brackets, square brackets, upper part % of square brackets, lower part of square brackets. Such symbols may even -% appear doubled. Most if these glyphs have been designed anew, because they +% appear doubled. Most of these glyphs have been designed anew, because they % are missing or are inadequate if they are taken from the usual CM fonts (either % text or math fonts). Brackets for example have been designed as to be higher % and deeper than the font total height, so as not to interfere with Greek -% accents and to accomodate for at least one level of nesting (for example square brackets -% enclosing lower part of square brackets. The single glyphs may be used directly by -% the typesetter, but we think that the commands requiring some text are fare more useful. -% |\Ladd| and its double version |\LLadd| enclose text that should be added for sure. -% |\ladd| and its double version |\lladd| enclose text that probably should be added. -% |\lesp| and its synonymous |\ldel| enclose text that should be deleted. +% accents and to accomodate for at least one level of nesting (for example square +% brackets enclosing lower part of square brackets. The single glyphs may be used +% directly by the typesetter, but we think that the commands requiring some text are +% far more useful. |\Ladd| and its double version |\LLadd| enclose text that should +% be added for sure. +% |\ladd| and its double version |\lladd| enclose text that probably should be +% added. |\lesp| and its synonymous |\ldel| enclose text that should be deleted. % |\mqi| surrounds some text with the lower part of open and closed square brackets. % |\mqs| surrounds some text with the upper part of open and closed square brackets. % See \texttt{teubenr-doc.pdf} for samples of such commands. @@ -1496,7 +1957,7 @@ Type X to exit.}% \DeclareRobustCommand\mqs[1]{\lmqs{#1\/}\rmqs} \DeclareRobustCommand{\Ladd}[1]{{\metricsfont<}{\!\!#1\/}% {\metricsfont>}}% litterae certe addendae -\DeclareRobustCommand{\LLadd}[1]{{\metricsfont<\kern-.3ex<}%subst. \hskip with \kern +\DeclareRobustCommand{\LLadd}[1]{{\metricsfont<\kern-.3ex<} {\!\!#1\/}{\metricsfont>\kern-.3ex>}}% litterae certe addendae \DeclareRobustCommand{\ladd}[1]{{\metricsfont\kern.15ex[\negthinspace}% {#1\/}{\metricsfont]\kern-.15ex}}% litterae addendae @@ -1506,6 +1967,7 @@ Type X to exit.}% \DeclareRobustCommand{\lesp}[1]% {\mbox{$\{\kern-.20ex$#1\kern.16ex$\}$}}% litterae delendae \let\ldel\lesp + % \end{macrocode} %\end{macro} %\end{macro} @@ -1522,20 +1984,22 @@ Type X to exit.}% %\end{macro} %\end{macro} % +% \subsection{Greek, English, and German quotes} %\begin{macro}{\itopenquotes} %\begin{macro}{\itclosedquotes} %\begin{macro}{\itoq} -%\begin{macro}{\itcq} The following macros allow to set Italian\slash English -% high quotes even while typing in Greek; such quotes are standard in Italian -% and in English typesetting and their commands preserve the font family shape -% and series of the surrounding font. In French typography, as well in the -% typographic traditions of other countries, different quotes are used. In that case -% the typesetter must resort to a change of language, for example returning to German, -% inputting the German quotes, then turning back to Greek. He might as well define -% his own macros, or he might clone the following definitions and change them -% according to his country typographic traditions. If he decides to modify these -% definitions he should either rename this file or he should put his redefinitions -% in a private package to be input \emph{after} \texttt{teubner.sty}. +%\begin{macro}{\itcq} +% The following macros allow to set Italian\slash English high quotes even while +% typing in Greek; such quotes are standard in Italian and in English typesetting +% and their commands preserve the font family shape and series of the surrounding +% font. In French typography, as well in the typographic traditions of other +% countries, different quotes are used. In that case the typesetter must resort to a +% change of language, for example returning to German, inputting the German quotes, +% then turning back to Greek. He might as well define his own macros, or he might +% clone the following definitions and change them according to his country +% typographic traditions. If he decides to modify these definitions he should either +% rename this file or he should put his redefinitions in a private package to be +% input \emph{after} \texttt{teubner.sty}. % \begin{macrocode} \DeclareTextCommand{\itopenquotes}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont\char92}}% @@ -1543,6 +2007,7 @@ Type X to exit.}% {{\fontencoding{OT1}\selectfont\char34}}% \let\itoq\itopenquotes \let\itcq\itclosedquotes + % \end{macrocode} %\end{macro} %\end{macro} @@ -1557,13 +2022,14 @@ Type X to exit.}% %\begin{macro}{\GEqtext} %\begin{macro}{\ENodq} %\begin{macro}{\ENcdq} -%\begin{macro}{\ENdqtext} On the opposite the following German and English quotes -% are redesigned and included in the metric symbols font. Since this font is in -% one shape and one series, these quotes do not change as the outside font does, but -% remains fixed; the most useful commands are |\GEdqtext| for enclosing some text -% within German double quotes, |\GEqtext| for enclosing some text within German single -% quotes, and |\ENdqtext| for enclosing some text in English double quotes. Apparently -% while setting Greek poetry in stacked, possibly enumerated, verses German double +%\begin{macro}{\ENdqtext} +% On the opposite the following German and English quotes are redesigned and +% included in the metric symbols font. Since this font is in one shape and one +% series, these quotes do not change as the outside font does, but remain fixed; the +% most useful commands are |\GEdqtext| for enclosing some text within German double +% quotes, |\GEqtext| for enclosing some text within German single quotes, and +% |\ENdqtext| for enclosing some text in English double quotes. Apparently +% while setting Greek poetry in stacked, possibly enumerated, verses, German double % or single quotes are often used, since they cannot be misunderstood with Greek % diacritical marks. Modern Greek double quotes apparently are not appreciated by % philologists, at least outside Greece. @@ -1579,6 +2045,7 @@ Type X to exit.}% \newcommand\ENodq{{\metricsfont\char16}} \newcommand\ENcdq{{\metricsfont\char17}} \newcommand\ENdqtext[1]{\ENodq\negthinspace#1\/\posthinspace\ENcdq} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1590,8 +2057,10 @@ Type X to exit.}% %\end{macro} %\end{macro} % +% \subsection{Other philological symbols and macros} % \begin{macro}{\LitNil} -% \begin{macro}{\litnil} The next synonymous macros indicate the \emph{littera nihil}. +% \begin{macro}{\litnil} +% The next synonymous macros indicate the \emph{littera nihil}. % \begin{macrocode} \DeclareRobustCommand\LitNil{\textbullet} \let\litnil\LitNil @@ -1601,39 +2070,50 @@ Type X to exit.}% % %\begin{macro}{\sva} %\begin{macro}{\shva} -%\begin{macro}{\shwa} The CB fonts include also the letter ``shwa'', the glyph that +%\begin{macro}{\shwa} +% The CB fonts include also the letter ``shwa'', the glyph that % appears as a roman ``e'' rotated 180$^\circ$ around its center. Philologists % need it even when writing Greek. In order to make it available also when the % Latin encodings are in force, suitable definitions have been given so that the -% suitable CB font is changed behind the scenes without any intervention by the -% typesetter. -% \begin{macrocode} -\DeclareTextSymbol{\sva}{\GRencoding@name}{26} +% suitable CB font was changed behind the scenes without any intervention by the +% typesetter. With this version of |teubner.sty| a new definition is made up that +% uses the |\rotatebox| facility of the |graphicx| package; In a future revision of +% the CB fonts the |\schwa| slot shall be freed so that Greek glyphs only populate +% it, without extraneous presences. The |\schwa| glyph is made available also with +% the Latin encodings. +% \begin{macrocode} +%\DeclareTextSymbol{\sva}{\GRencoding@name}{26} +\DeclareTextCommand{\sva}{\GRencoding@name}{% +\rotatebox[origin=c]{180}{\def\@tempA{li}% +\fontencoding{OT1}\ifx\f@shape\@tempA\fontshape{it}\fi\selectfont e}} \DeclareTextCommand\sva{OT1}{{\expandafter\fontencoding \expandafter{\GRencoding@name}\selectfont\sva}} \DeclareTextCommand\sva{T1}{{\expandafter\fontencoding \expandafter{\GRencoding@name}\selectfont\sva}} \let\shva\sva\let\shwa\sva + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} % -%\begin{macro}{\skewstack} The |\skewstack| command stacks two arguments not one on -% top of the other, but the second argument is placed to the right and upwards relative -% to the first argument. The second argument is set in script font size. Although there are -% similarities with the |\textsuperscript| command, the exact placement of the second -% argument depends on the shape (height and depth) of both arguments. This command -% will be used for creating some philologist's symbols, but is readily available to the +%\begin{macro}{\skewstack} +% The |\skewstack| command stacks two arguments not one on top of the other, but the +% second argument is placed to the right and upwards relative to the first argument. +% The second argument is set in script font size. Although there are similarities +% with the |\textsuperscript| command, the exact placement of the second argument +% depends on the shape (height and depth) of both arguments. This command will be +% used for creating some philologist's symbols, but is readily available to the % typesetter both for direct use and for writing macros defining new symbols. % \begin{macrocode} \DeclareRobustCommand\skewstack[2]{{% -\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{#1}\dimen@\ht\z@\box\z@ \kern-.045em\setbox\@ne\hbox{\scriptsize#2}% \ifdim\dimen@>1.2ex\advance\dimen@-\ht\@ne\else \dimen@1ex\advance\dimen@-.5\ht\@ne\fi \kern\slant@\dimen@\raise\dimen@\hbox{\box\@ne}}} + % \end{macrocode} %\end{macro} % @@ -1642,9 +2122,10 @@ Type X to exit.}% %\begin{macro}{\gw} %\begin{macro}{\gusv} %\begin{macro}{\qusv} -%\begin{macro}{\qu} Matter of fact some common Latin stacked symbols are defined here in -% terms of |\skewstack|. As it may bee seen, the second argument (the first as well, -% but here there are no examples) may in turn contain other macros for composite symbols. +%\begin{macro}{\qu} +% Matter of fact some common Latin stacked symbols are defined here in terms of +% |\skewstack|. As it may bee seen, the second argument (the first as well, but here +% there are no examples) may in turn contain other macros for composite symbols. % \begin{macrocode} \DeclareRobustCommand\hv{{\fontencoding{OT1}\selectfont \skewstack{h}{v}}} @@ -1658,6 +2139,7 @@ Type X to exit.}% \skewstack{q}{\semiv{u}}}} \DeclareRobustCommand\qu{{\fontencoding{OT1}\selectfont \skewstack{q}{u}}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1666,19 +2148,21 @@ Type X to exit.}% %\end{macro} %\end{macro} % -%\begin{macro}{\dz} Without using |\skewstack| other symbols may be defined; -% here |\dz| is just an example, where the kerning between `d' and `z' has -% been found by cut and try. With other glyphs may be other kernings -% are necessary. +%\begin{macro}{\dz} +% Without using |\skewstack| other symbols may be defined; here |\dz| is just an +% example, where the kerning between `d' and `z' has been found by cut and try. With +% other glyphs may be different kerning is necessary. % \begin{macrocode} \DeclareRobustCommand\dz{{\fontencoding{OT1}\selectfont d\kern-.33ex z}} + % \end{macrocode} %\end{macro} % % Now we come to another set of commands like the ones needed to mark the syneresis % or the zeugma and other similar marks. -%\begin{macro}{\Utie} This first macro sets a ``smile'' symbol under a couple of -% letters. The glyph is fine but is good only for two adjacent letters, therefore +%\begin{macro}{\Utie} +% This first macro sets a ``smile'' symbol under a couple of letters. The glyph is +% fine but is good only for two adjacent letters, therefore % it is necessary to have a stretchable symbol. % \begin{macrocode} \DeclareRobustCommand\Utie[1]{% @@ -1686,12 +2170,14 @@ Type X to exit.}% \hfil#1\hfil\crcr \noalign{\kern.3ex\nointerlineskip}% \hfil$\smile$\hfil\crcr}}}} + % \end{macrocode} %\end{macro} % %\begin{macro}{\siner} -%\begin{macro}{\siniz} This is why the |\siner| and |\siniz| synonymous commands -% have been defined; in place of the ``smile'' symbol they contain a stretchable +%\begin{macro}{\siniz} +% This is why the |\siner| and |\siniz| synonymous commands have been defined; in +% place of or in addition to the ``smile'' symbol; they contain a stretchable % filler |\upfill| that behaves almost as the stretchable horizontal brace that is % used in the definition of the \LaTeX\ commands |\underbrace| or |\overbrace|. % \begin{macrocode} @@ -1701,44 +2187,41 @@ Type X to exit.}% \noalign{\kern.6ex\nointerlineskip}% \upfill\crcr}}}} \let\siniz\siner + % \end{macrocode} %\end{macro} %\end{macro} -%\begin{macro}{\upfill} The |\upfill| is defined as a leader, the same way as the -% corresponding \LaTeX\ stretchable horizontal brace; but as mentioned before we -% introduce a correction in case we are typesetting with pdf\LaTeX, because the -% pfb extensible math fonts, from wich the curved extremities are taken from, apparently -% do not have the actual dimension declared in the tmf files. +% +%\begin{macro}{\upfill} +% The |\upfill| is defined as a leader, the same way as the corresponding \LaTeX\ +% stretchable horizontal brace. % \begin{macrocode} \def\upfill{$\m@th \scriptstyle\setbox\z@\hbox{$\scriptstyle\bracelu$}% \kern.16ex\bracelu\ifPDF\kern-.15ex\fi - \leaders\vrule \@height\ifPDF.85\fi\ht\z@ \@depth\z@\hfill + \leaders\vrule \@height\ht\z@ \@depth\z@\hfill \braceru\kern.16ex$} + % \end{macrocode} %\end{macro} -%\begin{macro}{\downfill} The down fill arc is totally similar to the up fill one, except -% for its terminating elements that change the shape of the arc from ``up'' to ``down''; we -% introduce the same correction as in |\upfill| for the same reasons. +% +%\begin{macro}{\downfill} +% The |\downfill| arc is totally similar to the |\upfill| one, except for its +% terminating elements that change the shape of the arc from ``up'' to ``down''. % \begin{macrocode} \def\downfill{$\m@th\scriptstyle\setbox\z@\hbox{$\scriptstyle\braceld$}% \kern.16ex\braceld\ifPDF\kern-.15ex\fi - \leaders\vrule \@height\ifPDF.85\fi\ht\z@ \@depth\z@\hfill + \leaders\vrule \@height\ht\z@ \@depth\z@\hfill \bracerd\kern.16ex$} + % \end{macrocode} %\end{macro} -% With both macros we could have edited the pfb files, but this would have required -% to distribute the corrected |cmex10.pfb| file together with the bundle, causing possible users -% to mess up their map of PostScript fonts. Of course the chosen solution has the -% opposite draw back: when and if the corrected pfb files will be distributed with each -% more or less complete \TeX\ bundle, then this file will require to be corrected again. But -% this is simple because it suffices to eliminate the whole |\ifPFB| business. % -%\begin{macro}{\zeugma} Similarly |\zeugma| puts a stretchable arc over its -% argument; it must take into account the slant of the argument font so -% as to skew the placement of the arc. +%\begin{macro}{\zeugma} +% Similarly |\zeugma| puts a stretchable arc over its argument; it must take into +% account the slant of the argument font so as to skew the placement of the arc. % \begin{macrocode} \newcommand*\zeugma[1]{{\vbox{\setbox\z@\hbox{#1}\dimen@=\ht\z@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \dimen\tw@=\wd\z@ \dimen@=\@slant\dimen@\ifmetricsfont\dimen@=\z@ \advance\dimen\tw@-.5ex\fi @@ -1749,104 +2232,76 @@ Type X to exit.}% \else\kern.4ex\fi\nointerlineskip}% \hfil{#1}\hfil\crcr}}}% } + % \end{macrocode} %\end{macro} % %\begin{macro}{\slzeugma} -%\begin{macro}{\rszeugma} Although the shape of oblique zeugma arcs cannot be -% changed depending on the width and height of the zeugma argument, in certain -% circumstances the philologists want to use oblique zeugma marks. This is why -% we defined a ``sloping zeugma arc'' |\slzeugma|, and a ``rising zeugma arc'' -% |\rszeugma| that can be used with poor results, if such arcs are superimposed -% over the ``wrong'' letters. There is nothing automatic in the choice of the -% oblique arc and is totally on the typesetter responsibility to use the -% correct command. +%\begin{macro}{\rszeugma} +% Although the shape of oblique zeugma arcs cannot be changed depending on the width +% and height of the zeugma argument, in certain circumstances the philologists want +% to use oblique zeugma marks. This is why we defined a ``sloping zeugma arc'' +% |\slzeugma|, and a ``rising zeugma arc'' |\rszeugma| that can be used with poor +% results, if such arcs are superimposed over the ``wrong'' letters. There is +% nothing automatic in the choice of the oblique arc and is totally on the +% typesetter responsibility to use the correct command. These slanted zeugma signs +% are possibly useful only for two letters since they are not stretchable. % \begin{macrocode} \newcommand*\slzeugma[1]{{\leavevmode \setbox\tw@\hbox{\metricsfont\char120}% \setbox\z@\hbox{#1}\dimen@.5\wd\z@\advance\dimen@-.5\wd\tw@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \advance\dimen@\@slant\ht\z@ \hbox to\z@{\kern\dimen@\box\tw@\hss}\box\z@ }% } + \newcommand*\rszeugma[1]{{\leavevmode \setbox\tw@\hbox{\metricsfont\char122}% \setbox\z@\hbox{#1}\dimen@.5\wd\z@\advance\dimen@-.5\wd\tw@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \advance\dimen@\@slant\ht\z@ \hbox to\z@{\kern\dimen@\box\tw@\hss}\box\z@ }% } + % \end{macrocode} %\end{macro} %\end{macro} % %\begin{macro}{\nexus} -%\begin{macro}{\nesso}The same line of reasoning leads us to define two different -% commands for marking nexus relationships; since such commands are not synonymous -% we had to use the Latin and (arbitrarily) the Italian name to distinguish them. -% The difference is that |\nesso| covers the nexus with a leader made of ``Latin'' -% circumflex signs (hats), while |\nexus| covers the nexus with a stretchable trapeze. -% \begin{macrocode} -\newcommand*{\nexus}[1]{{\setbox\tw@\hbox{#1}% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% +%\begin{macro}{\nesso} +% Originally I had two different macros for marking a \emph{nexus}; one made use of a ``up stretchable turtle bracket'', and the user used a leader of Latin circumflex signs. Both were unsatisfactory; the latter was really ugly, but I kept the macro name as a synonym for compatibility with the past. The good looking marker is obtained from a mathematical |\widehat| sign by stretching it to the width of the string the marcher should mark; the new macro |\nexus| (that replaces the stretchable turtle bracket) relies on the facilities offered by the |\resizebox| of the package |graphicx|. +% \begin{macrocode} +\newcommand*{\nexus}[1]{{\setbox\tw@\hbox{#1\/}% + \edef\slant@{\strip@pt\fontdimen1\font}% \@tempdima=\slant@\ht\tw@\advance\@tempdima.45ex - \setbox4\hbox to\wd\tw@{\hss\nexusfill\hss} + \setbox4\hbox{\resizebox{\wd\tw@}{\height}{$\widehat{\phantom{aaa}}$}}% + \setbox4\hbox{\smash{\lower1.35ex\hbox{\box4}}}% \vbox{\ialign{##\crcr% - \kern\@tempdima\box4 + \kern\@tempdima\box4% \crcr \noalign{\kern.15ex\nointerlineskip}% \hfil{#1}\hfil\crcr}}}} -\newcommand*\nesso[1]{{\setbox\tw@\hbox{#1}% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% - \@tempdima=\slant@\ht\tw@\advance\@tempdima.9ex - \ifdim\wd\tw@<1ex - \setbox4\hbox{\metricsfont\kern-.5ex\Hat}% - \else - \setbox4\hbox to\wd\tw@{\hss\nexfill\hss}% - \fi - \vbox{\ialign{##\crcr% - \kern\@tempdima\box4 - \crcr - \noalign{\kern.15ex\nointerlineskip}% - \hfil\box\tw@\hfil\crcr}}}} +\let\nesso\nexus + % \end{macrocode} %\end{macro} %\end{macro} -%\begin{macro}{\nexfill} -%\begin {macro}{\nexusfill}|\nexfill| is a leader made up of ``Latin'' circumflex -% signs; since the sign has a special meaning in mathematics, the definition -% of |\nexfill| requires the temporary change of the circumflex catcode. The -% command |\nexus|, on the opposite, requires another leader definition that -% contains the oblique sides of the trapeze. The latter were defined as glyphs -% in the Greek fonts. |\nexus| is supposed to be used \emph{only} while -% typesetting Greek text or poetry. -% \begin{macrocode} -{\catcode`\^=12\relax\global\chardef\Hat`\^ -\gdef\nexfill{{\metricsfont\leaders\hbox{^}\hfill}}} % -\newdimen\Uunit -\def\nexusfill{\setbox\z@\hbox{\char16}% - \Uunit=0.83333\p@ - \kern.16ex\char16\kern-.08ex - \leaders\vrule\@height\z@\@depth\Uunit\hfill - \kern.08ex\char17\kern.16ex} -% \end{macrocode} -%\end{macro} -%\end{macro} % %\begin{macro}{\coronis} %\begin {macro}{\Coronis} %\begin {macro}{\paragr} -% \begin {macro}{\dpar} While setting poetry it is necessary to mark the end of -% paragraphs, which do not necessarily coincide with the ends of stanzas. After -% the verse that concludes a logical paragraph philologists insert a mark called -% ``coronis'' (synonymous of paragraph, therefore the command |\paragr|) or -% a ``stronger'' mark called ``Coronis'', which differs from the common ``coronis'' -% because it bears an inverted semilunar sign on its left. Both marks are input -% by means of their respective commands |\paragr| (preferred to |\coronis|) or -% |\Coronis| inserted \emph{at the beginning of the paragraph terminating verse}. +% \begin {macro}{\dpar} +% While setting poetry it is necessary to mark the end of paragraphs, which do not +% necessarily coincide with the ends of stanzas. After the verse that concludes a +% logical paragraph philologists insert a mark called ``coronis'' (synonymous of +% paragraph, therefore the command |\paragr|) or a ``stronger'' mark called +% ``Coronis'', which differs from the common ``coronis'' because it bears an +% inverted semilunar sign on its left. Both marks are input by means of their +% respective commands |\paragr| (preferred to |\coronis|) or |\Coronis| inserted +% \emph{at the beginning of the paragraph terminating verse}. % The command |\dparagr| inserts a double coronis mark, which is sometimes required % in place of the ordinary single mark. % \begin{macrocode} @@ -1860,13 +2315,14 @@ Type X to exit.}% \DeclareRobustCommand{\dparagr}% {\raisebox{-1.3ex}[\z@][\z@]{\coronis@rule}% \raisebox{-1.6ex}[\z@][\z@]{\coronis@rule}} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} % -%\begin{macro}{\sinafia} +%\begin {macro}{\sinafia} %\begin {macro}{\crux} %\begin {macro}{\FinisCarmen} %\begin {macro}{\apici} @@ -1875,17 +2331,19 @@ Type X to exit.}% %\begin {macro}{\star} %\begin {macro}{\dstar} %\begin {macro}{\tstar} -%\begin {macro}{\responsio} The next group of commands are intended to insert special -% symbols in the philological text; just the command |\apici| requires an argument, -% a block of text that shall be enclosed within straight vertical apices, irrespective -% of the font slant. The command |\FinisCarmen| although very descriptive, is long to -% type, therefore a shorter alias |\FinCar| has been defined. |\apex| was the initial -% name given to the command, but on a second time it was changed to |\positio|, and the -% latter should always be used in place of the former. For what concerns |\star| which is -% a standard \LaTeX\ math command, the original definition is saved in the service -% macro |\m@thst@r| and the command is redefined so as to perform as it should both in -% text and in math mode. The symbol $\int$, on the contrary, was redefined so as not -% to mix math with text, even if its rendering resorts to mathematics. +%\begin {macro}{\responsio} +% The next group of commands are intended to insert special symbols in the +% philological text; just the command |\apici| requires an argument, a block of text +% that shall be enclosed within straight vertical apices, irrespective of the font +% slant. The command |\FinisCarmen| although very descriptive, is long to type, +% therefore a shorter alias |\FinCar| has been defined. |\apex| was the initial name +% given to the command, but on a second time it was changed to |\positio|, and the +% latter should always be used in place of the former. For what concerns |\star| +% which is a standard \LaTeX\ math command, the original definition is saved in the +% service macro |\m@thst@r| and the command is redefined so as to perform as it +% should both in text and in math mode. The symbol $\int$, on the contrary, was +% redefined so as not to mix math with text, even if its rendering resorts to +% mathematics. % \begin{macrocode} \DeclareRobustCommand*\sinafia{{\metricsfont s}} \DeclareRobustCommand*{\crux}{{\metricsfont\char'171}} @@ -1903,6 +2361,7 @@ Type X to exit.}% \DeclareRobustCommand*{\dstar}{{\upshape **}} \DeclareRobustCommand*{\tstar}{{\upshape ***}} \DeclareRobustCommand*{\responsio}{{\boldmath\ensuremath{\sim}}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1916,25 +2375,28 @@ Type X to exit.}% %\end{macro} % %\begin{macro}{\thorn} -%\begin{macro}{\Thorn} |\thorn| and |\Thorn| are the exact equivalents of |\th| and |\Th| -% that ere defined only for the T1 encoding. Therefore such encoding is selected -% in an implicit way. +%\begin{macro}{\Thorn} |\thorn| and |\Thorn| are the exact equivalents of |\th| +% and |\Th| that are defined only for the T1 encoding. Therefore such encoding is +% selected in an implicit way. % \begin{macrocode} \DeclareRobustCommand{\thorn}{{\fontencoding{T1}\selectfont\th}} \DeclareRobustCommand{\Thorn}{{\fontencoding{T1}\selectfont\TH}} + % \end{macrocode} %\end{macro} %\end{macro} % +% \subsection{Ancient Greek monetary unit symbols} %\begin{macro}{\dracma} %\begin {macro}{\hemiobelion} %\begin {macro}{\tetartemorion} %\begin {macro}{\stater} %\begin {macro}{\denarius} -%\begin {macro}{\etos} This set of symbols, taken from the metrics symbol font -% (which by this time is evident does not contain only metrics symbols) represent -% the unit symbols of some coins of ancient Greece, as they were found on many -% ``ostraka'' in many archeological sites. +%\begin {macro}{\etos} +% This set of symbols, taken from the metrics symbol font (which by this time is +% evident does not contain only metrics symbols) represents the unit symbols of some +% coins of ancient Greece, as they were found on many ``ostraka'' in several +% archeological sites. % \begin{macrocode} \DeclareRobustCommand{\dracma}{{\metricsfont D}} \DeclareRobustCommand{\hemiobelion}{{\metricsfont A}} @@ -1942,6 +2404,7 @@ Type X to exit.}% \DeclareRobustCommand{\stater}{{\metricsfont C}} \DeclareRobustCommand{\denarius}{{\metricsfont E}} \DeclareRobustCommand{\etos}{{\metricsfont G}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -1950,19 +2413,23 @@ Type X to exit.}% %\end{macro} %\end{macro} % +% \subsection{Another set of philological symbols and macros} %\begin{macro}{\cut} %\begin{macro}{\dcutbar} %\begin{macro}{\bcutbar} -%\begin{macro}{\gcutbar} The following set of macros are all connected with the principal -% macro |\cut|, which should position a horizontal tie or bar across a certain number -% of latin letters, specifically `d', `b', and `g'; due to their different shapes, such -% bars are of different length and located at different heights; if they are in italics -% the bar position must change again. Therefore even if the user command |\cut| is the -% same for all these letters, its action must change depending on different circumstances. -% It merely checks its argument (it must be \emph{one} letter and unpredictable results -% are obtained if more that one token is passed as argument to |\cut|) and selects the -% proper bar. The specific bar commands |\dcutbar|, |\bcutbar|, and |\gcutbar|, are -% defined in such a way as to cope only with the their initial letter. +%\begin{macro}{\gcutbar} +% The following set of macros are all connected with the principal macro |\cut|, +% which should position a horizontal tie or bar across a certain number of latin +% letters, specifically `d', `b', and `g'; due to their different shapes, such bars +% are of different length and located at different heights; if they are in italics +% the bar position must change again. Therefore even if the user command |\cut| is +% the same for all these letters, its action must change depending on different +% circumstances. +% It merely checks its argument (it must be \emph{one} letter and unpredictable +% results are obtained if more that one token is passed as an argument to |\cut|) +% and selects the proper bar. The specific bar commands |\dcutbar|, |\bcutbar|, and +% |\gcutbar|, are defined in such a way as to cope only with the their initial +% letter. % \begin{macrocode} \DeclareRobustCommand{\cut}[1]{% \ifx#1d\dcutbar\else @@ -1972,16 +2439,16 @@ Type X to exit.}% \fi \fi} % -\def\dcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\dcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% d\dimen@1.2ex\kern\slant@\dimen@ \llap{\vrule\@height1.3ex\@depth-\dimen@ \ifdim\slant@\p@>\z@\@width.35em\else\@width.4em\fi\kern.03em}}} -\def\bcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\bcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% \rlap{\dimen@1.2ex\kern\slant@\dimen@ \ifdim\slant@\p@=\z@\kern.03em\fi \vrule\@height1.3ex\@depth-\dimen@ \ifdim\slant@\p@>\z@\@width.3em\else\@width.4em\fi}b}} -\def\gcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\gcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% \ifdim\slant@\p@>\z@ g\kern-.55ex\dimen@.2ex\kern-\slant@\dimen@ \vrule\@height-.1ex\@depth\dimen@\@width.6ex @@ -1989,18 +2456,18 @@ Type X to exit.}% \dimen@.2ex\kern\slant@\dimen@\vrule\@height.3ex\@depth-\dimen@ \@width.6ex\kern-.55ex\relax g \fi}} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} % -%\begin{macro}{\OSN} The next macro is just a shortcut instead of using -% |\oldstylenums|. We do not remember why we defined a whole command, instead -% of just |\let|ting the new control sequence be a synonym for the existing -% one. +%\begin{macro}{\OSN} +% The next macro is just a shortcut instead of using |\oldstylenums|. % \begin{macrocode} -\newcommand*{\OSN}[1]{\oldstylenums{#1}} +\let\OSN\oldstylenums + % \end{macrocode} %\end{macro} % @@ -2012,7 +2479,7 @@ Type X to exit.}% % a special pronunciation of the guttural that produces a ``click''. %\begin{macrocode} \newcommand\splus{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{s}% \dimen@=\wd\z@ \setbox\tw@\hbox{$\scriptscriptstyle+$}% @@ -2022,7 +2489,7 @@ Type X to exit.}% \kern\slant@\dimen@\kern-.5\wd\tw@\box\tw@}}% \box\z@}}% \newcommand\stimes{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{s}% \dimen@=\wd\z@ \setbox\tw@\hbox{$\scriptscriptstyle\times$}% @@ -2032,7 +2499,7 @@ Type X to exit.}% \kern\slant@\dimen@\kern-.5\wd\tw@\box\tw@}}% \box\z@}}% \newcommand\kclick{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{k}% \setbox\tw@\hbox{\fontencoding\GRencoding@name\selectfont\s{v}}% \dimen@\wd\z@ @@ -2041,32 +2508,35 @@ Type X to exit.}% \fi k\makebox[\z@][r]{\unhcopy\tw@\kern.5\dimen@}% }}% + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} - % +% \subsection{Poetry environments and macros} %\begin {macro}{\verso} -%\begin{environment}{versi} Here we start with verse environments; we already explained -% we defined three new verse environments that typeset verses in ``in-line'' verses, +%\begin{environment}{versi} +% Here we start with verse environments; we already explained that we defined three +% new verse environments that typeset poetry in ``in-line'' verses, % ``numbered by five'' verses, and ``numbered by five and subnumbered'' verses. % For the environment |versi| we first need a counter and a little macro for % generating the short bar that has to receive the verse number as a ``limits'' % superscript. % \begin{macrocode} -%%%%%%%%%%%%%%%%%%%%%%%%%% verse environments \newcounter{verso}\setcounter{verso}{0} -\newcommand{\smallvert}{\vrule\@height1ex} +\newcommand{\smallvert}{\vrule\@height.6ex\@depth.4ex} + % \end{macrocode} -% Next we define the macro |\verso| that sets the small bar with the verse number on top. -% Since the initial numbering might be different from~1, |\verso| accepts an optional -% argument, which is intended to be the initial counter value. Since |\verso| steps up -% the counter a different action must be taken if the optional argument is present; -% in order to be able to reference such verse by means of the |\label|--|\ref| cross reference -% mechanism, this stepping up must be done by means of |\refstepcounter|; therefore we -% have to leave |\refstepcounter| outside the conditional code, and step down the counter -% by one unit only in case the initial value is specified. +% Next we define the macro |\verso| that sets the small bar with the verse number on +% top. Since the initial numbering might be different from~1, |\verso| accepts an +% optional argument, which is intended to be the initial counter value. Since +% |\verso| steps up the counter a different action must be taken if the optional +% argument is present; in order to be able to reference such verse by means of the +% |\label|--|\ref| cross reference mechanism, this stepping up must be done by means +% of |\refstepcounter|; therefore we have to leave |\refstepcounter| outside the +% conditional code, and step down the counter by one unit only in case the initial +% value is specified. % \begin{macrocode} \DeclareRobustCommand\verso[1][]{% \def\@tempA{#1}\ifx\@tempA\empty @@ -2074,42 +2544,49 @@ Type X to exit.}% \setcounter{verso}{#1}\addtocounter{verso}{\m@ne}% \fi \refstepcounter{verso}% - \ensuremath{\mathop{\smallvert}\limits^{\theverso}}% - \space\ignorespaces -} + \@killglue\space + \ensuremath{\mathop{\smallvert}\limits^{\scriptscriptstyle\theverso}}% + \space\ignorespaces} + % \end{macrocode} -% Now that the verse separation macro is ready we can define the environment; the required -% opening statement argument represents a short text whose width is taken as a measure -% for indentation, so that verses are typeset with a left margin that leaves out this -% short text. Substantially this environment is a \texttt{list} one, and the left -% margin variable width is totally similar to the one used in |thebibiography| environment. -% Also the |\makelabel| command has been modified accordingly. +% Now that the verse separation macro is ready we can define the environment; the +% required opening statement argument represents a short text whose width is taken +% as a measure for indentation, so that verses are typeset with a left margin that +% leaves out this short text. Substantially this environment is a \texttt{list} one, +% and the left margin variable width is totally similar to the one used in +% |thebibiography| environment. Also the |\makelabel| command has been modified +% accordingly. % \begin{macrocode} \newenvironment{versi}[1]{% \def\makelabel##1{##1} -\list{}{\settowidth\labelwidth{#1}\leftmargin\labelwidth +\setbox\z@\hbox{#1}% +\list{}{\labelwidth\wd\z@\leftmargin\labelwidth \advance\leftmargin\labelsep}% + \item[\box\z@] }{% \endlist } +\let\versus\versi \let\endversus\endversi % \end{macrocode} %\end{environment} %\end{macro} % -%\begin{environment}{Versi} The second environment |Versi| accepts an optional -% starting number in the opening, statement, whose default value is~1: verses are -% composed as in the standard \LaTeX\ |verse| environment (with one minor difference) -% except they are numbered in the left margin with a progression of five; only verse numbers -% that are integer multiples of five are displayed. The minor difference is that stanzas -% cannot be marked with a blank line in the input |.tex| file, as it is customary with +%\begin{environment}{Versi} +% The second environment |Versi| accepts an optional starting number in the opening, +% statement, whose default value is~1: verses are composed as in the standard +% \LaTeX\ |verse| environment (with one minor difference) except they are numbered +% in the left margin with a progression of five; only verse numbers that are integer +% multiples of five are displayed. The minor difference is that stanzas cannot be +% marked with a blank line in the input |.tex| file, as it is customary with % the standard environment, but if a visual mark is desired, such as extra vertical -% space, it is necessary to resort to the optional spacing parameter that can be specified -% to the |\\| command. This environment uses the same verse counting counter, defined for -% use with the |versi| environment. +% space, it is necessary to resort to the optional spacing parameter that can be +% specified to the |\\| command. This environment uses the same verse counting +% counter, defined for use with the |versi| environment. +% %\begin{macro}{\BreakVersotrue} %\begin{macro}{\BreakVersofalse} -% For specific purposes it is necessary to have a boolean -% variable for allowing or prohibiting verses to split up at the end of line; the default is not +% For specific purposes it is necessary to have a boolean variable for allowing or +% prohibiting verses to split up at the end of line; the default is not % to split. % \begin{macrocode} \newif\ifBreakVersi @@ -2117,55 +2594,58 @@ Type X to exit.}% \newenvironment{Versi}[1][1]{% \setcounter{verso}{#1}% % \end{macrocode} -% an internal macro |\writ@verso| does not actually write out the complete, possibly -% numbered verse, but provides for checking that the verse counter contains a multiple of~5, -% and to write it out using old stile numbers; in case the number is not an integer multiple -% of~5 the number is written out as the |\empty| macro. %\end{macro} %\end{macro} +% An internal macro |\writ@verso| does not actually write out the complete, possibly +% numbered verse, but provides for checking that the verse counter contains a +% multiple of~5, and to write it out using old stile numbers; in case the number is +% not an integer multiple of~5 the number is written out as the |\empty| macro. % \begin{macrocode} \def\writ@verso{% \count255=\value{verso}\divide\count255by5\relax \multiply\count255by5\relax \advance\count255-\value{verso}% \ifnum\count255=\z@ - {\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% + {\fontseries{m}\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% \else - \empty + \empty \fi}% % \end{macrocode} -% Since the |\\| command should provide the same functionality as the regular \LaTeX\ -% command, while in this environment it should provide other functionalities, such as -% triggering the display of the verse number, It is necessary to define an intermediate -% command |\v@rscr|, that examines the possible optional arguments, such as the optional -% star or the brackets enclosing vertical spacing +% Since the |\\| command should provide the same functionality as the regular +% \LaTeX\ command, while in this environment it should provide other +% functionalities, such as triggering the display of the verse number. It is +% necessary to define an intermediate command |\v@rscr|, that examines the possible +% optional arguments, such as the optional star or the brackets enclosing vertical +% spacing % \begin{macrocode} \def\\{\@ifstar{\v@rscr{\@M}}{\v@rscr{\z@}}}% \def\v@rscr##1{\@ifnextchar[{\wr@teverse{##1}}% {\wr@teverse{##1}[\z@]}}% % \end{macrocode} -% Finally the |\wr@teverse| macro does the actual typesetting of the verse. Notice that -% the environment opening statement and every succeeding previous verse starts an -% horizontal box where the contents of the current verse is stored. Therefore the first -% thing to do is to close the box with the |\egroup| command, then a line of text is -% output that contains a possibly empty box or the verse number and the command for -% stepping up the verse counter, followed by the verse box number~0 and an end of paragraph; -% in this way the |\\| operates always in vertical mode, contrary to what happens in the |verse| -% standard \LaTeX\ environment. Even in this environment the actual typesetting is done -% within a |list| environment, whose parameters are set differently from what they are -% in the |verse| environment. Notice in any case that the command |\wr@teverse| reopens -% the~0 box, so on the last verse, upon closing the environment, it is necessary to -% remember to close such box, whose contents is irrelevant and can be thrown away. -% -% I have experienced some problems in typesetting verses in two-column format; the column width -% might be too short for setting up verses even if verses are not that long, because -% in the left margin there must be room for the verse numbering; for homogeneity the spacing -% must conform also with the following environment \texttt{VERSI} that has a secondary -% verse numbering, therefore it can't be too small. The result is that there might be a test -% for controlling the two-column format, but I think that it is more useful for the typesetter -% to be able to switch on and off the possibility of breaking long verses on more lines. -% On two-column format in any case it is better to leave the right margin to coincide with -% the column right margin. +% Finally the |\wr@teverse| macro does the actual typesetting of the verse. Notice +% that the environment opening statement and every succeeding previous verse starts +% an horizontal box where the contents of the current verse is stored. Therefore the +% first thing to do is to close the box with the |\egroup| command, then a line of +% text is output that contains a possibly empty box or the verse number and the +% command for stepping up the verse counter, followed by the verse box number~0 and +% an end of paragraph; in this way the |\\| operates always in vertical mode, +% contrary to what happens in the |verse| standard \LaTeX\ environment. Even in this +% environment the actual typesetting is done within a |list| environment, whose +% parameters are set differently from what they are in the |verse| environment. +% Notice in any case that the command |\wr@teverse| reopens the~0 box, so on the +% last verse, upon closing the environment, it is necessary to remember to close +% such box, whose contents is irrelevant and can be thrown away. +% +% I have experienced some problems in typesetting verses in two-column format; the +% column width might be too short for setting up verses even if verses are not that +% long, because in the left margin there must be room for the verse numbering; for +% homogeneity the spacing must conform also with the following environment +% \texttt{VERSI} that has a secondary verse numbering, therefore it can't be too +% small. The result is that there might be a test for controlling the two-column +% format, but I think that it is more useful for the typesetter to be able to switch +% on and off the possibility of breaking long verses on more lines. +% On two-column format in any case it is better to leave the right margin to +% coincide with the column right margin. % \begin{macrocode} \def\wr@teverse##1[##2]{\egroup \makebox[3em][r]{% @@ -2196,38 +2676,44 @@ Type X to exit.}% \item\leavevmode\setbox\z@\hbox\bgroup\ignorespaces }{% % \end{macrocode} -% Upon closing it is necessary to activate the writing out of the last verse that is still -% in the~0 box, but since this box is immediately reopened, it is necessary to close it -% again before exiting the environment. +% Upon closing it is necessary to activate the writing out of the last verse that is +% still in the~0 box, but since this box is immediately reopened, it is necessary to +% close it again before exiting the environment. % \begin{macrocode} \\% \egroup \endlist } +\let\Versus\Versi \let\endVersus\endVersi + % \end{macrocode} %\end{environment} % -%\begin{environment}{VERSI} The third environment |VERSI| set verses in the traditional -% way, but numbers them with two different enumerations; the principal one is by -% multiples of five, while the secondary one counts by units, and may be turned on and off, -% or reset at will. We therefore need another counter for the secondary enumeration -% and commands for turning it on and off and for resetting the counter. We need also -% a new length and a new boolean variable in order to manage the secondary enumeration. -% The new length represents an indentation of those verses that do no have the secondary -% enumeration, while secondary enumerated verses are not indented. For \texttt{VERSI} -% there is the same possibility of turning on and off the possibility of breaking verses -% at the end of line as it happens for the environment \texttt{Versi}. +%\begin{environment}{VERSI} The third environment |VERSI| set verses in the +% traditional way, but numbers them with two different enumerations; the principal +% one is by multiples of five, while the secondary one counts by units, and may be +% turned on and off, or reset at will. We therefore need another counter for the +% secondary enumeration and commands for turning it on and off and for resetting the +% counter. We need also a new length and a new boolean variable in order to manage +% the secondary enumeration. +% The new length represents an indentation of those verses that do no have the +% secondary enumeration, while secondary enumerated verses are not indented. For +% \texttt{VERSI} there is the same possibility of turning on and off the possibility +% of breaking verses at the end of line as it happens for the environment +% \texttt{Versi}. % \begin {macro}{\SubVerso} -% \begin {macro}{\NoSubVerso} Macro |\NoSubVerso| turns off the secondary enumeration; -% macro |\SubVerso| turns on the secondary enumeration, but it accepts an optional -% argument for resetting the secondary counter; the default value is~0; if no optional -% argument is specified, and therefore if the optional argument has its default value~0, -% no resetting is performed and the enumeration keeps going from the last contents of -% the secondary counter; if the first use of |\SubVerso| does not contain the optional -% argument, the secondary enumeration keep going from the old contents of the secondary -% counter which is unpredictable, depending upon the previous occurrences of the -% environment |VERSI|. The typesetter, therefore, must remember to specify the optional -% argument to |\SubVerso| the first time he uses it in this environment. +% \begin {macro}{\NoSubVerso} +% Macro |\NoSubVerso| turns off the secondary enumeration; macro |\SubVerso| turns +% on the secondary enumeration, but it accepts an optional argument for resetting +% the secondary counter; the default value is~0; if no optional argument is +% specified, and therefore if the optional argument has its default value~0, no +% resetting is performed and the enumeration keeps going from the last contents of +% the secondary counter; if the first use of |\SubVerso| does not contain the +% optional argument, the secondary enumeration keeps going from the old contents of +% the secondary counter which is unpredictable, depending upon the previous +% occurrences of the environment |VERSI|. The typesetter, therefore, must remember +% to specify the optional argument to |\SubVerso| the first time he uses it in this +% environment. % \begin{macrocode} \newcounter{subverso} \setcounter{subverso}{0} \newif\ifSubVerso @@ -2240,42 +2726,43 @@ Type X to exit.}% \global\protected@edef\@currentlabel{\the\c@subverso}% \fi \global\versoskip.3em\ignorespaces} + % \end{macrocode} %\end{macro} %\end{macro} % The opening environment statement accepts an optional argument (default equals~1) -% which represents the primary enumeration starting number +% which represents the primary enumeration starting number: % \begin{macrocode} \newenvironment{VERSI}[1][1]{% \setcounter{verso}{#1}% % \end{macrocode} -% We need two macros |\writ@verso| and |\writ@subverso|, that typeset the primary and -% secondary enumeration; the first one is similar to the one used in the |Versi| environment, -% while the second one has no special features except the conditional construct needed -% to check if the secondary enumeration has to be printed out. +% We need two macros |\writ@verso| and |\writ@subverso|, that typeset the primary +% and secondary enumeration; the first one is similar to the one used in the |Versi| +% environment, while the second one has no special features except the conditional +% construct needed to check if the secondary enumeration has to be printed out. % \begin{macrocode} \def\writ@verso{% \count255=\value{verso}\divide\count255by5\relax \multiply\count255by5\relax \advance\count255-\value{verso}% - \ifnum\count255=0\relax - {\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% + \ifnum\count255=0\relax + {\fontseries{m}\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% \else - \empty + \empty \fi}% \NoSubVerso \def\writ@subverso{% \ifSubVerso - {\scriptsize\expandafter\oldstylenums + {\fontseries{m}\scriptsize\expandafter\oldstylenums \expandafter{\the\c@subverso}}% \fi}% % \end{macrocode} % Similarly to the previous environment, the |\\| command must be redefined % so as to perform more or less as the standard one, while doing all the necessary -% actions needed in this environment. It must check the presence of the optional star -% and of the optional vertical skip and it has to pass control to a service macro -% |\v@rscr| that does the actual job; actually it passes control to a third macro -% |\writ@verse| that effectively outputs the current verse. +% actions needed in this environment. It must check the presence of the optional +% star and of the optional vertical skip and it has to pass control to a service +% macro |\v@rscr| that does the actual job; actually it passes control to a third +% macro |\writ@verse| that effectively outputs the current verse. % \begin{macrocode} \def\\{\@ifstar{\v@rscr{\@M}}{\v@rscr{\z@}}}% \def\v@rscr##1{\@ifnextchar[{\writ@verse{##1}}% @@ -2295,8 +2782,8 @@ Type X to exit.}% \penalty##1\vskip##2\relax \setbox\z@\hbox\bgroup\ignorespaces}% % \end{macrocode} -% For the remaining part, the environment is a normal |list| environment with specific -% initial parameters. +% For the remaining part, the environment is a normal |list| environment with +% specific initial parameters. % \begin{macrocode} \list{}{\parsep\z@\itemsep\z@ \if@twocolumn @@ -2319,12 +2806,14 @@ Type X to exit.}% % contents, of no significance now, can be lost upon closing the environment group. % \begin{macrocode} \\% - \egroup\endlist -} + \egroup\endlist} +\let\VERSUS\VERSI \let\endVERSUS\endVERSUS + % \end{macrocode} %\end{environment} % -% Now we start defining many things concerned with metrics; the metric symbol font +% \subsection{Metrics symbols, macros and environmnets} +% Now we start defining many macros concerned with metrics; the metric symbol font % has been developed mainly for this purpose. We start defining some macros for % inputting specific symbols; many such macros have their own aliases in Latin. % @@ -2345,13 +2834,15 @@ Type X to exit.}% %\begin{macro}{\ubarsbreve} %\begin{macro}{\ubarsbrevis} %\begin{macro}{\ubrevelunga} -%\begin{macro}{\ubrevislonga} The following definitions are straightforward; a small -% comment on |\breve|: since it is also a math command in standard \LaTeX, its meaning -% is saved in a service macro |\br@ve| and the |\breve| macro is redefined taking into -% account whether the typesetting is being done in text or in math mode. The unusual -% letters that appear in the definitions of the various metric symbols have no mysterious -% meaning; they might have been specified by |\char|\meta{number}, but it seemed shorter -% to specify the corresponding letters that would occupy the same slots in literal fonts. +%\begin{macro}{\ubrevislonga} +% The following definitions are straightforward; a small comment on |\breve|: since +% it is also a math command in standard \LaTeX, its meaning is saved in a service +% macro |\br@ve| and the |\breve| macro is redefined taking into account whether the +% typesetting is being done in text or in math mode. The unusual letters that appear +% in the definitions of the various metric symbols have no mysterious meaning; they +% might have been specified by |\char|\meta{number}, but it seemed shorter to +% specify the corresponding letters that would occupy the same slots in literal +% fonts. % \begin{macrocode} \DeclareRobustCommand\lunga{{\metricsfont l}} \let\longa\lunga @@ -2372,6 +2863,7 @@ Type X to exit.}% \let\ubarsbrevis\ubarsbreve \DeclareRobustCommand{\ubrevelunga}{{\metricsfont\char107}} \let\ubrevislonga\ubrevelunga + % \end{macrocode} %\end{macro} %\end{macro} @@ -2405,20 +2897,20 @@ Type X to exit.}% %\begin {macro}{\ancepsdbrevis} %\begin {macro}{\aeolicbii} %\begin {macro}{\aeolicbiii} -%\begin {macro}{\aeolicbiv} Similarly the following symbols have straightforward -% definitions. Only |\hiatus| and |\Hiatus| require a small explanation; |\hiatus| -% inserts a small capital `H' in superscript position; in a first moment it was -% chosen the solution of designing a specific sans serif glyph in superscript position -% directly in the metric symbol font (actually this symbol is still part of the font) -% but while testing it, Paolo Ciacchi observed that a regular `H' with serifs was -% better looking than the sans serif counterpart. Therefore the definition was -% changes in order to use the current font upright shape; by specifying `H', it is -% irrelevant if the current one is a Latin font, and the letter is a capital 'h', or -% if the current one is a Greek font and the letter is a capital `eta'. |\Hiatus| -% displays the same symbol in a zero width box so that it does not occupy any -% horizontal space; it is useful wile writing down complicated metric sequences. -% Macro|\X| may be considered, thanks to its shape, a shortcut in place of the -% full name |\anceps|. +%\begin {macro}{\aeolicbiv} +% Similarly the following symbols have straightforward definitions. Only |\hiatus| +% and |\Hiatus| require a small explanation; |\hiatus| inserts a small capital `H' +% in superscript position; in a first moment it was chosen the solution of designing +% a specific sans serif glyph in superscript position directly in the metric symbol +% font (actually this symbol is still part of the font), but while testing it, Paolo +% Ciacchi observed that a regular `H' with serifs was better looking than the sans +% serif counterpart. Therefore the definition was changed in order to use the +% current font upright shape; by specifying `H', it is irrelevant if the current one +% is a Latin font, and the letter is a capital 'h', or if the current one is a Greek +% font and the letter is a capital `eta'. |\Hiatus| displays the same symbol in a +% zero width box so that it does not occupy any horizontal space; it is useful while +% writing down complicated metric sequences. Macro|\X| may be considered, thanks to +% its shape, a mnemonic shortcut in place of the full name |\anceps|. % \begin{macrocode} \DeclareRobustCommand\corona{{\metricsfont\char20}} \let\ElemInd\corona @@ -2434,6 +2926,7 @@ Type X to exit.}% \DeclareRobustCommand{\aeolicbii}{{\metricsfont I}} \DeclareRobustCommand{\aeolicbiii}{{\metricsfont J}} \DeclareRobustCommand{\aeolicbiv}{{\metricsfont K}} + % \end{macrocode} %\end{macro} %\end{macro} @@ -2453,42 +2946,46 @@ Type X to exit.}% %\begin{macro}{\stripsl@sh} %\begin{macro}{\2} %\begin{macro}{\3} -%\begin{macro}{\4} Here we prepare for the definition of a very useful macro, |\newmetrics| -% that should ease quite a lot writing complicated and repetitive metric sequences. +%\begin{macro}{\4} +% Here we prepare for the definition of a very useful macro, |\newmetrics|, that +% should ease quite a lot writing complicated and repetitive metric sequences. % We shall define |\newmetrics| by means of the internal \LaTeX\ macro |\@namedef| % which accepts a macro name containing any character, provided this name does not % contain the initial back slash (if it does this back slash becomes part of the -% macro name; see the \TeX{}book where there is an example for the definition of |\\TeX|). -% Therefore we need a service macro |\stripsl@sh|that strips the first token from the control sequence, so that -% the na\"{\i}f user does not have to treat the new metrics control sequence differently -% from the control sequences it uses for example with |\newcommand|. Next we define -% three numeric control sequences that should be followed by the rest of the macro name. -% The na\"{\i}f user then can type in something like \verb*+\2iamb + in order to activate -% a macro whose name is formed by the tokens |2iamb|, which is normally impossible in -% \LaTeX. Notice, though, the compulsory space after the macro name. +% macro name; see the \TeX{}book where there is an example for the definition of +% |\\TeX|). Therefore we need a service macro |\stripsl@sh| that strips the first +% token from the control sequence, so that the na\"if user does not have to treat +% the new metrics control sequence differently from the control sequences it uses +% for example with |\newcommand|. Next we define three numeric control sequences +% that should be followed by the rest of the macro name. +% The na\"if user can then type in something like \verb*+\2iamb + in order to +% activate a macro whose name is formed by the tokens |2iamb|, which is normally +% impossible in \LaTeX. Notice, though, the compulsory space after the macro name. % \begin{macrocode} \newif\ifmetricsfont\metricsfontfalse \def\stripsl@sh#1{\expandafter\@gobble\string#1} \def\2#1 {\csname2#1\endcsname} \def\3#1 {\csname3#1\endcsname} \def\4#1 {\csname4#1\endcsname} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} -%\begin {macro}{\newmetrics} Here is the user macro |\newmetrics|, -% to be used just as |\newcommand|, -% except it accepts a macro name starting with one of the digits `2', `3', or `4', and sets -% the suitable boolean variable to true so that in a long metric sequence the metric font -% might be selected just once. +%\begin {macro}{\newmetrics} +% Here is the user macro |\newmetrics|, to be used just as |\newcommand|, except it +% accepts a macro name starting with one of the digits `2', `3', or `4', and sets +% the suitable boolean variable to true so that in a long metric sequence the metric +% font might be selected just once. % \begin{macrocode} \newcommand\newmetrics[2]{% \expandafter\@namedef\expandafter{\stripsl@sh#1}% - {{\metricsfonttrue#2}}% -} + {{\metricsfonttrue#2}}} + % \end{macrocode} %\end{macro} +% %\begin {macro}{\iam} %\begin {macro}{\chor} %\begin {macro}{\enopl} @@ -2496,9 +2993,10 @@ Type X to exit.}% %\begin {macro}{\aeolchorsor} %\begin {macro}{\hexam} %\begin {macro}{\pentam} -%\begin {macro}{\2tr} Here some common metric sequences are defined; some define single -% measures, such as the `iambus' or the `choriambus', while some define complete verses such as the -% `hexameter' or the `pentameter' +%\begin {macro}{\2tr} +% Here some common metric sequences are defined; some define single measures, such +% as the `iambus' or the `choriambus', while some define complete verses such as the +% `hexameter' or the `pentameter'. % \begin{macrocode} \newmetrics\iam{\barbreve\lunga\breve\lunga} \newmetrics\chor{\lunga\breve\breve\lunga} @@ -2512,8 +3010,9 @@ Type X to exit.}% \newmetrics{\pentam}{\lunga\barbbreve\lunga\barbbreve\lunga\dBar \lunga\breve\breve\lunga\breve\breve\lunga} \newmetrics{\2tr}{\lunga\breve\lunga\X\ \lunga\breve\lunga\X\ } + % \end{macrocode} -% As it may be seen the definition of such metric sequences may contain almost +% As it may be seen, the definition of such metric sequences may contain almost % anything; here |\zeugma| was used as well as \verb*+\ +, but almost every % macro defined in the previous parts may be freely used. %\end{macro} @@ -2525,32 +3024,35 @@ Type X to exit.}% %\end{macro} %\end{macro} % -%\begin{macro}{\metricstack} |\metricstack| is a command similar to |\shortstack| -% used to stack something over something else; specifically the second argument -% over the third one; it was specifically designed for use while typesetting -% metric sequences, but actually there is nothing that forbids to use it with -% any base character (typeset in text LR mode) and any superscript character -% belonging to a math alphabet (which is being set in script--script style, not -% in script style, as it happens with |\shortstack|. +%\begin{macro}{\metricstack} +% |\metricstack| is a command similar to |\shortstack| used to stack something over +% something else; specifically the second argument over the third one; it was +% specifically designed for use while typesetting metric sequences, but actually +% there is nothing that forbids to use it with any base character (typeset in text +% LR mode) and any superscript character belonging to a math alphabet (which is +% being set in script--script style, not in script style, as it happens with +% |\shortstack|. % \begin{macrocode} \DeclareRobustCommand*{\metricstack}[2]% {$\mathord{\mathop{\hbox{#1\rule{\z@}{1ex}}}% - \limits^{\scriptscriptstyle\relax#2\relax}}$% -} + \limits^{\scriptscriptstyle\relax#2\relax}}$} + % \end{macrocode} %\end{macro} % -%\begin{macro}{\svert} |\svert| is a short vertical rule that may be used, for example -% with |\metricstack| for putting a small number over a dividing vertical bar in metric +%\begin{macro}{\svert} +% |\svert| is a short vertical rule that may be used, for example, with +% |\metricstack| for putting a small number over a dividing vertical bar in metric % sequences. % \begin{macrocode} \newcommand*{\svert}{\vrule\@height.8ex\@depth.2ex\relax} % \end{macrocode} %\end{macro} % -%\begin{macro}{\textoverline} \LaTeX\ has macro |\underline| that can be used in both -% text and math mode; there is nothing similar for overlining, therefore we defined -% a new command for this task. +%\begin{macro}{\textoverline} +% \LaTeX\ has macro |\underline| that can be used in both text and math mode; there +% is nothing similar for overlining, therefore we defined a new command for this +% task. % \begin{macrocode} \DeclareRobustCommand*{\textoverline}[1]{% \leavevmode\vbox{\setbox\z@\hbox{#1} @@ -2558,81 +3060,111 @@ Type X to exit.}% \hbox to\wd\z@{\hrulefill}\crcr \noalign{\kern.4ex\nointerlineskip}% \hfil\box\z@\hfil\crcr}}} + % \end{macrocode} %\end{macro} % %\begin{macro}{\verseskip} -%\begin {environment}{bracedmetrics} The environment |bracedmetrics| is used primarily -% for setting some metric sequences one atop the other, with a certain alignment -% and grouped together with a right brace. We need therefore a length name -% |\br@cedmetrics| for measuring the width of this large metrics sequence stack; we need -% a command |\verseskip| for inserting a blank space before, after or in the middle of a metric -% sequence, that more or less is as wide as an integer number of metric symbols, -% and, last but not least, the environment itself for typesetting this large object -% containing the said metric sequences; see the documentation file \texttt{teubner-doc.pdf} -% for examining some examples. +%\begin {environment}{bracedmetrics} +% The environment |bracedmetrics| is used primarily for setting some metric +% sequences one atop the other, with a certain alignment and grouped together with a +% right brace. We need therefore a length name |\br@cedmetrics| for measuring the +% width of this large metrics sequence stack; we need a command |\verseskip| for +% inserting a blank space before, after or in the middle of a metric sequence, that +% more or less is as wide as an integer number of metric symbols, and, last but not +% least, the environment itself for typesetting this large object containing the +% said metric sequences; see the documentation file \texttt{teubner-doc.pdf} for +% examining some examples. % \begin{macrocode} \newlength{\br@cedmetrics} \newcommand*{\verseskip}[1]{{% - \setbox\z@\hbox{\longa}\dimen@\wd\z@\leavevmode\hbox to#1\dimen@{}}% -} + \setbox\z@\hbox{\longa}\dimen@\wd\z@\leavevmode\hbox to#1\dimen@{}}} + \newenvironment{bracedmetrics}[1]{\def\Hfill{\leavevmode\hfill}% \settowidth{\br@cedmetrics}{#1}% \ifvmode\vskip1ex\fi $\displaystyle\left.% \vcenter\bgroup\hsize\br@cedmetrics\parindent\z@\parskip\z@ }{\egroup\right\}$} + % \end{macrocode} %\end{environment} %\end{macro} % +% \subsection{Debugging commands} %\begin{macro}{\TRON} %\begin{macro}{\GTRON} %\begin{macro}{\TROF} -%\begin{macro}{\GTROF} Here there are some macros for turning on and off the tracing -% facilities of \TeX, that turn out to be useful while debugging; they are accessible -% also to the end user. Global settings must be turned on and off globally; local settings +%\begin{macro}{\GTROF} +%\begin{macro}{\treceon} +%\begin{macro}{\traceoff} +% Here there are some macros for turning on and off the tracing facilities of \TeX, +% that turn out to be useful while debugging; they are accessible also to the end +% user. Global settings must be turned on and off globally; local settings % die out by themselves when a group is closed, but it is a good habit to explicitly % turn them out regardless of groups. Attention that when the tracing facilities are -% on and a page ship out takes place, the |.log| file receives a lot of material, and the -% file gets very large. -% \begin{macrocode} +% on and a page ship out takes place, the |.log| file receives a lot of material, +% and this file gets very large. In order to avoid logging too much information the +% |trace| package is loaded; this package give access to the macros |\traceon| and +% |\traceoff| that log a lot of information, except the redundant one, specifically +% all the macros executed during any font change. Users don't realize the amount of +% processing done behind the scenes when with the New Font Selection Scheme (NFSS) a +% font change takes place; luckily enough modern processors are quite fast so that +% the compilation CPU time does not become too heavy. But if the \TeX\ processing is +% logged, this amount of work implies thousands of lines of almost meaningless +% information when the purpose of logging depends on errors that are difficult to +% spot; Font changes are almost exempt from errors, so the processing of the inner +% workings need not be logged down. +% +% If the user needs to trace something in order to spot errors, s/he is invited to +% use the commands |\traceon| and |\traceoff|; commands |\TRON| and |\TROF| do log +% much more material, in particular font changes, but at least they action may be +% confined within groups or environments; |\GTRON| and |\GTROF| are global settings +% and can't be confined within groups or environments; sometimes they are necessary, +% but it's important to turn off global tracing as soon as possible. +% \begin{macrocode} +\RequirePackage{trace} \def\GTRON{\global\tracingcommands=\tw@ \global\tracingmacros=\tw@} \def\GTROF{\global\tracingcommands=\z@ \global\tracingmacros=\z@} \def\TRON{\tracingcommands=\tw@ \tracingmacros=\tw@} \def\TROF{\tracingcommands=\z@ \tracingmacros=\z@} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} +%\end{macro} +%\end{macro} % -% When typesetting Greek it may occur to specify numbers written out as Milesian numerals; -% the \texttt{greek} option to the \babel\ package defines a couple of macros for transforming -% explicit arabic numerals or counter contents as Milesian numerals. Since this package -% offers more possibilities in the choice of those ``non alphabetic'' characters used in the -% Milesian notation, such macros have to be redefined. On the occasion we changed some -% little internal details so as to make such macros a little faster and more robust. +% \subsection{Classical Greek numerals} +% When typesetting Greek it may occur to specify numbers written out as Milesian +% numerals; the \texttt{greek} option to the \babel\ package defines a couple of +% macros for transforming explicit arabic numerals or counter contents as Milesian +% numerals. Since this package offers more possibilities in the choice of those +% ``non alphabetic'' characters used in the Milesian notation, such macros have to +% be redefined. On the occasion we changed some little internal details so as to make such macros a little faster and more robust. %\begin{macro}{\Greeknumeral} %\begin{macro}{\greeknumeral} %\begin{macro}{\@ifStar} %\begin{macro}{\grtoday} -% Both |\gereeknumeral| and |\Greeknumeral|, the latter producing -% upper case Greek numerals, while the former produces lower case ones, resort to a service -% macro |\gr@@numeral|. But the new definition accepts the starred version; without the star -% the digit value~6 is represented with a ``stigma'', while with the star that value is -% represented with a lowered ``digamma''. The upper case version requires intermediate -% macros before using |\MakeUppercase| on the result of converting lower to upper case -% Milesian value symbols. This means that |\gr@@numeral| may work only with lower case -% symbols. -% It turned out that the normal redefinition command |\renewcommand| produced fragile -% commands that broke out when used as arguments of other commands, specifically the Greek date -% was broken when it was passed as the argument to the |\date| command of the class \textsf{memoir}; -% therefore I decided to redefine the |\@ifstar| macro into another |\@ifStar| one so as not to -% fiddle with \LaTeX\ kernel commands. I defined also the lowercase version of the |\grtoday| date, -% since the \babel\ package provides only the |\today| command with no control over the use of -% which type of numerals; |\grtoday| uses the lowercase Milesian numerals through the redefined -% |\greeknumeral| macro. +% Both |\gereeknumeral| and |\Greeknumeral|, the latter producing upper case Greek +% numerals, while the former produces lower case ones, resort to a service macro +% |\gr@@numeral|. But the new definition accepts the starred version; without the +% star the digit value~6 is represented with a ``stigma'', while with the star that +% value is represented with a lowered ``digamma''. The upper case version requires +% intermediate macros before using |\MakeUppercase| on the result in order to +% convert lower to upper case Milesian value symbols. This means that |\gr@@numeral| +% may work only with lower case symbols. +% It turned out that the normal redefinition command |\renewcommand| produced +% fragile commands that broke out when used as arguments of other commands, +% specifically the Greek date was broken when it was passed as the argument to the +% |\date| command of the class \textsf{memoir}; therefore I decided to redefine the +% |\@ifstar| macro into another |\@ifStar| one so as not to fiddle with \LaTeX\ +% kernel commands. I defined also the lowercase version of the |\grtoday| date, +% since the \babel\ package provides only the |\today| command with no control over +% the use of which type of numerals; |\grtoday| uses the lowercase Milesian numerals +% through the redefined |\greeknumeral| macro. % \begin{macrocode} \def\@ifStar#1#2{\def\@tempA{#1}\def\@tempB{#2}\futurelet\@tempC\@testStar} \def\@testStar{\ifx\@tempC*\bbl@afterelse\expandafter\@tempA\@gobble\else @@ -2647,31 +3179,34 @@ $\displaystyle\left.% \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} \def\Gr@@knum@ral#1{\let\s@i\Digamma \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} -\def\grtoday{{\expandafter\greeknumeral\expandafter{\the\day}} % keep the space -\gr@c@month \space {\expandafter\greeknumeral\expandafter{\the\year}}} +\def\grtoday{{\expandafter\greeknumeral\expandafter{\the\day}}\space +\gr@c@month\space{\expandafter\greeknumeral\expandafter{\the\year}}} + % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} -%\begin{macro}{\gr@@numeral} |\gr@@numeral| must do most of the processing; it must check -% that the argument is within the allowable range $1\sim999\,999$ and issue suitable -% warnings if not. On the other end if the number is within the correct range it must check -% in which decade it falls and must call other macros so as to produce the correct -% decimal digit~$\leftrightarrow$ Milesian symbol. Six such macros are needed because the -% allowable range contains at maximum six decimal places. Apparently Milesian symbology -% allows to go beyond one million, but Apostolos Syropoulos, who originally wrote the code -% thought (correctly) that Milesian numbers would not be used for ``acrobatic performances'' -% but possibly for writing the Greek date with the AD year; six decimal places are -% more than enough for this purpose. |\gr@ill@value| was not redefined from -% Apostolos Syropoulos' \babel\ definition; it simply issues a warning message about -% the argument out of range. The presence of the primitive command |number| -% in these macros is for two purposes: (a) transforms a counter contents into a -% sequence of digits tokens, and (b) if the argument is already a digit string, -% it removes any leading zeros. No braces are present because this string is examined -% sequentially one digit at a time from the leading position to the least significant -% position; of course this means that the decimal zero is treated correctly even -% if Milesian symbols do not have the equivalent of a zero. +%\begin{macro}{\gr@@numeral} +% |\gr@@numeral| must do most of the processing; it must check that the argument is +% within the allowable range $1\sim999\,999$ and issue suitable warnings if not. On +% the other side, if the number is within the correct range, it must check in which +% decade it falls and must call other macros so as to produce the correct decimal +% digit~$\leftrightarrow$ Milesian symbol. Six such macros are needed because the +% allowable range contains at maximum six decimal places. Apparently Milesian +% symbology allows to go beyond one million, but Apostolos Syropoulos, who +% originally wrote the code thought (correctly) that Milesian numbers would not be +% used for ``acrobatic performances'' but possibly for writing the Greek date with +% the AD year; six decimal places are more than enough for this purpose. +% |\gr@ill@value| was not redefined from Apostolos Syropoulos' \babel\ definition; +% it simply issues a warning message about an argument out of range. The presence of +% the primitive command |number| in these macros is for two purposes: (a) transforms +% a counter contents into a sequence of digits tokens, and (b) if the argument is +% already a digit string, it removes any leading zeros. No braces are present +% because this string is examined sequentially one digit at a time from the leading +% position to the least significant position; of course this means that the decimal +% zero is treated correctly even if Milesian symbols do not have the equivalent of a +% zero. % \begin{macrocode} \def\gr@@numeral#1{% \ifnum#1<\@ne\space\gr@ill@value{#1}% @@ -2704,16 +3239,18 @@ $\displaystyle\left.% %\begin{macro}{\gr@num@iii} %\begin{macro}{\gr@num@iv} %\begin{macro}{\gr@num@v} -%\begin{macro}{\gr@num@vi} The next six macros transform single decimal digits into Milesian -% symbols. -% The argument to each macro is a single decimal digit; their positional value is determined -% by the calling macro that invokes a different transformation routine for every position. -% To the right of the least significant position there must be the symbol ``anwtonos'', -% similar to an apostrophe, while to the left of each most significant symbol whose -% value is greater than 999 there must be a ``katwtonos'' symbol, similar to a lowered -% and inverted apostrophe. Zeros are examined in all macros, except the one for ``units'', -% because their value cannot be printed but there still is the possibility that there are -% no more digits higher than zero, so that the anwtonos must be set. +%\begin{macro}{\gr@num@vi} +% The next six macros transform single decimal digits into Milesian symbols. The +% argument to each macro is a single decimal digit; their positional value is +% determined by the calling a macro that invokes a different transformation routine +% for every position. +% To the right of the least significant position there must be the symbol +% ``anwtonos'', similar to an apostrophe, while to the left of each most significant +% symbol whose value is greater than 999 there must be a ``katwtonos'' symbol, +% similar to a lowered and inverted apostrophe. Zeros are examined in all macros, +% except the one for ``units'', because their value cannot be printed but there +% still is the possibility that there are no more digits higher than zero, so that +% the anwtonos must be set. % Macros |\n@vanta| and |\n@vecento| are set by the calling macros so as to be the % correct lower or upper case `qoppa' or sampi' respectively. % \begin{macrocode} @@ -2744,6 +3281,7 @@ $\displaystyle\left.% \ifcase#1\or r\or s\or t\or u\or f% \or q\or y\or w\or \n@vecento\fi \gr@num@v} + % \end{macrocode} %\end{macro} %\end{macro} @@ -2751,9 +3289,412 @@ $\displaystyle\left.% %\end{macro} %\end{macro} %\end{macro} -% \begin{macrocode} -% +% +%\subsection{Attic numerals} +% It's true that Apostolos Siropoulos wrote also the |athnum.sty| extension package +% in order to typeset integer numbers with the Athenian or Attic notation; this +% representation of integer strictly positive integers was similar in a way to the +% Roman notation, based on a biquinalry representation of decimal digits (taking +% into account that there was not a symbol for zero) so as the Romans had the +% symbols for 1, 5, 10, 50, 100, 500 and 1000 (I, V, X, L, C, D, M) the Attic +% notation has symbols for the same sequence of decimal values extended with +% 10\,000 and 50\,000. While typesetting philological texts in Greek it might be +% necessary to use also the Attic notation. % As the original Roman notation used +% to be purely additive (i.e.\ 9\,=\,VIIII), so is the Attic notation. +% +%\begin{macro}{\AtticNumeral} +%\begin{macro}{\AtticCycl@} +% Therefore another conversion macro was devised that receives the value to be +% converted as its argument and checks that it falls between the boundaries; +% actually the lower boundary is zero, while the upper boundary was chosen to be +% 99\,999, for no other reason that the lack of further symbols, beyond the value +% 50\,000, would force to long sequences of identical symbols that are difficult +% to read. The |athnum.sty| package allows to extend this range to 249\,9999; +% should it be necessary, the user is invited to load that package and its +% transformation command |\athnum|. +% +% The user command |\AtticNumeral| is very simple, but it must be preceded by the +% definitions of the quinary symbols for 50, 500, 5000, and 50\,000; such symbols +% are present in all the CB Greek fonts in all sizes, series and shapes; therefore +% the definitions must be subject to the LGR enconding: +% \begin{macrocode} +\DeclareTextSymbol{\Vmiria}{\GRencoding@name}{5} +\DeclareTextSymbol{\Vkilo}{\GRencoding@name}{4} +\DeclareTextSymbol{\Vetto}{\GRencoding@name}{3} +\DeclareTextSymbol{\Vdeka}{\GRencoding@name}{2} +% \end{macrocode} +% The we need a command for issuing a warning message if the number to be +% transformed is out of range: +% \begin{macrocode} +\newcommand*\attic@ill@value[1]{\PackageWarning{teubner}{% +Illegal value (\number#1) for \string\ActicNumeral\space}} +% \end{macrocode} +% Finally the robust definition of the |\AtticNumeral| command" +% \begin{macrocode} +\DeclareRobustCommand*\AtticNumeral[1]{% +\ifnum#1<\@ne \attic@ill@value{#1}\else + \ifnum#1>99999\relax \attic@ill@value{#1}\else + \AtticCycl@{#1} + \fi +\fi} + % \end{macrocode} +% The real transformation algorithm is transfered to the auxiliary macro +% |\AttiCycl@|, where successive division by 10 allow to extract the various decimal +% digits of various weights maintaining the remainder in the original counter; each +% decimal digit is possibly divided into the quinary value and the remaining units +% up to 4; the the cycle is repeated untile the decimal units, that do not require +% the computation of the remainder and terminate the cycle. Notice that we use also +% the $\varepsilon$-\TeX\ extended commands for integer computations; this implies +% that |teubner| mus be run with a suitably recent version of the typesetting engine +% that embeds the above extensions. +% \begin{macrocode} +\def\AtticCycl@#1{% + \bgroup + \countdef\valore=252\countdef\cifra=250\relax + \valore=#1\relax + \cifra=\valore\divide\cifra10000\relax + \valore=\numexpr\valore-\cifra*10000\relax + \ifnum\cifra>4\relax\Vmiria \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{M\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra1000\relax + \valore=\numexpr\valore-\cifra*1000\relax + \ifnum\cifra>4\relax\Vkilo \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{Q\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra100\relax + \valore=\numexpr\valore-\cifra*100\relax + \ifnum\cifra>4\relax\Vetto \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{H\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra10\relax + \valore=\numexpr\valore-\cifra*10\relax + \ifnum\cifra>4\relax\Vdeka \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{D\advance\cifra\m@ne}% + \cifra=\valore + \ifnum\cifra>4\relax P\advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{I\advance\cifra\m@ne}% + \egroup} + +% \end{macrocode} +%\end{macro} +%\end{macro} +% \begin{macrocode} +% % +%<*defs> +\ProvidesFile{LGRaccents-glyphs.def}% + [2010/05/08 v.2.0a Definitions of accents and glyphs for LGR encoded Greek fonts] +% \end{macrocode} +% \subsection{First set of extended accent definitions} +% These macros were originally defined by Guenter Milde +% in his file lgrenc-accents.def version 3.2 dated 2008-06-17 +% and released under the LPPL LaTeX Project Public License +% version 1.3 or ay later version. +% +% These macros were slightly modified by Claudio Beccari +% in this file, version 1.0 of 2010-04-13, in order to adapt them +% to the teubner.sty package, but they can be used independently of +% this package. +% +% This modified version is released again under the LPPL license +% version 1.3c or any later version. +% +% These definitions are a modest variation of the standard LGR +% encoded ligature set, in the sense that they don't rely on +% ligatures but on accent and composite text macros that address +% directly the accented glyphs. +% +% For example, if alpha with smooth spirit, acute accent and iota +% subscribed has to be inserted in the Greek text, the user +% can use either one of the following solutions: +% \begin{quote} +% 1) \verb+>'a|+ \\ +% 2) \verb+\>'a|+ +% \end{quote} +% Solution 1) saves hitting one key but breaks the kerning mechanism; +% Solution 2) requires hitting one more key but preserves the kerning +% mechanism. +% +% Only the diacritics that involve the breve (\u) and the macron (\=) +% are regular TeX accent macros and behave as ordinary OT1-like +% accents. There is no addressing of the marked glyphs, because the 256 +% font table can't accommodate so many glyphs. +% +% This file should be usable by inputting it even without requiring the +% polutoniko language attribute of the Greek language. +% +% For more details read the teubner.pdf and the teubner-doc.pdf files +% that are part of the teubner package documentation. +% +% \begin{macrocode} +\providecommand*\GRencoding@name{LGR} +\DeclareTextAccent{\u}{\GRencoding@name}{"1E} % breve +\DeclareTextAccent{\=}{\GRencoding@name}{"1F} % macron + +\DeclareTextAccent{\Dialytika}{\GRencoding@name}{"22} % dialytika +\DeclareTextAccent{\Oxia}{\GRencoding@name}{"27} % oxia +\DeclareTextAccent{\Varia}{\GRencoding@name}{"60} % varia +\DeclareTextAccent{\Perispomeni}{\GRencoding@name}{"7E} % perispomeni +\DeclareTextAccent{\Dasia}{\GRencoding@name}{"3C} % rough breath/spirit +\DeclareTextAccent{\Psili}{\GRencoding@name}{"3E} % smooth breath/spirit +\DeclareTextCommand{\<}{\GRencoding@name}{\Dasia} % alias coomand +\DeclareTextCommand{\>}{\GRencoding@name}{\Psili} % alias command +% +\DeclareTextAccent{\DialytikaOxia}{\GRencoding@name}{"23} % oxia+dialytika +\DeclareTextAccent{\DialytikaVaria}{\GRencoding@name}{"24} % varia+dialytika +\DeclareTextAccent{\DialytikaPerispomeni}{\GRencoding@name}{"20} % perisp.+dial. + +\DeclareTextAccent{\DasiaOxia}{\GRencoding@name}{"56} % oxia+rough +\DeclareTextAccent{\DasiaVaria}{\GRencoding@name}{"43} % varia+rough +\DeclareTextAccent{\DasiaPerispomeni}{\GRencoding@name}{"40}% perisp.+rough + +\DeclareTextAccent{\PsiliOxia}{\GRencoding@name}{"5E} % oxia+smooth +\DeclareTextAccent{\PsiliVaria}{\GRencoding@name}{"5F} % varia+smooth +\DeclareTextAccent{\PsiliPerispomeni}{\GRencoding@name}{"5C}% perisp/+smooth +% composite commands +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{'}{\DialytikaOxia} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\'}{\DialytikaOxia} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{`}{\DialytikaVaria} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\`}{\DialytikaVaria} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{~}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\~}{\DialytikaPerispomeni} + +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{"}{\DialytikaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\"}{\DialytikaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{<}{\DasiaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\<}{\DasiaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{>}{\PsiliOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\>}{\PsiliOxia} + +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{"}{\DialytikaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\"}{\DialytikaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{<}{\DasiaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\<}{\DasiaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{>}{\PsiliVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\>}{\PsiliVaria} + +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{"}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\"}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{<}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\<}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{>}{\PsiliPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\>}{\PsiliPerispomeni} + +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{'}{\PsiliOxia} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\'}{\PsiliOxia} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{`}{\PsiliVaria} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\`}{\PsiliVaria} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{~}{\PsiliPerispomeni} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\~}{\PsiliPerispomeni} + +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{'}{\DasiaOxia} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\'}{\DasiaOxia} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{`}{\DasiaVaria} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\`}{\DasiaVaria} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{~}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\~}{\DasiaPerispomeni} + +% \end{macrocode} + + +% \subsection{Second set of extended accent definitions} +% Now come another bunch of Milde's macros for composite glyphs; none of them +% involves glyphs containing the subscript or adscript iota; this symbol, in facts +% is postfixed to the previous glyph macro description, so its ligature takes place +% after the previous glyph macro has been expanded; remember also that with the +% ``high accents'' you can use both input strings, for example: |>'| and |\>'|; +% therefore you can use the simple ligature input and, if kerning is not working +% well with certain glyphs, you can just add a backslash in front of the ligature +% sequence and everything gets fixed with proper ligatures. So, if |a>'u| with +% certain fonts results in broken kerning, you just change it to |a\>'u| and the +% kerning gets fixed. +% \begin{macrocode} +\DeclareTextComposite{\`}{\GRencoding@name}{a}{128} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{a}{129} +\DeclareTextComposite{\Psili}{\GRencoding@name}{a}{130} +\DeclareTextComposite{\'}{\GRencoding@name}{a}{136} +\DeclareTextComposite{\~}{\GRencoding@name}{a}{144} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{a}{137} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{a}{145} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{a}{131} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{a}{138} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{a}{146} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{a}{139} +\DeclareTextComposite{\`}{\GRencoding@name}{h}{152} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{h}{153} +\DeclareTextComposite{\Psili}{\GRencoding@name}{h}{154} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{h}{163} +\DeclareTextComposite{\'}{\GRencoding@name}{h}{160} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{h}{161} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{h}{162} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{h}{171} +\DeclareTextComposite{\~}{\GRencoding@name}{h}{168} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{h}{169} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{h}{170} +\DeclareTextComposite{\`}{\GRencoding@name}{w}{176} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{w}{177} +\DeclareTextComposite{\Psili}{\GRencoding@name}{w}{178} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{w}{179} +\DeclareTextComposite{\'}{\GRencoding@name}{w}{184} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{w}{185} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{w}{186} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{w}{187} +\DeclareTextComposite{\~}{\GRencoding@name}{w}{192} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{w}{193} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{w}{194} +\DeclareTextComposite{\`}{\GRencoding@name}{i}{200} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{i}{201} +\DeclareTextComposite{\Psili}{\GRencoding@name}{i}{202} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{i}{203} +\DeclareTextComposite{\'}{\GRencoding@name}{i}{208} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{i}{209} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{i}{210} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{i}{211} +\DeclareTextComposite{\~}{\GRencoding@name}{i}{216} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{i}{217} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{i}{218} +\DeclareTextComposite{\"}{\GRencoding@name}{i}{240} +\DeclareTextComposite{\DialytikaVaria}{\GRencoding@name}{i}{241} +\DeclareTextComposite{\DialytikaTonos}{\GRencoding@name}{i}{242} +\DeclareTextComposite{\DialytikaPerispomeni}{\GRencoding@name}{i}{243} +\DeclareTextComposite{\`}{\GRencoding@name}{u}{204} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{u}{205} +\DeclareTextComposite{\Psili}{\GRencoding@name}{u}{206} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{u}{207} +\DeclareTextComposite{\'}{\GRencoding@name}{u}{212} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{u}{213} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{u}{214} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{u}{215} +\DeclareTextComposite{\~}{\GRencoding@name}{u}{220} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{u}{221} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{u}{222} +\DeclareTextComposite{\"}{\GRencoding@name}{u}{244} +\DeclareTextComposite{\DialytikaVaria}{\GRencoding@name}{u}{245} +\DeclareTextComposite{\DialytikaTonos}{\GRencoding@name}{u}{246} +\DeclareTextComposite{\DialytikaPerispomeni}{\GRencoding@name}{u}{247} +\DeclareTextComposite{\`}{\GRencoding@name}{e}{224} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{e}{225} +\DeclareTextComposite{\Psili}{\GRencoding@name}{e}{226} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{e}{227} +\DeclareTextComposite{\'}{\GRencoding@name}{e}{232} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{e}{233} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{e}{234} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{e}{235} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{o}{229} +\DeclareTextComposite{\`}{\GRencoding@name}{o}{228} +\DeclareTextComposite{\Psili}{\GRencoding@name}{o}{230} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{o}{231} +\DeclareTextComposite{\'}{\GRencoding@name}{o}{236} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{o}{237} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{o}{238} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{o}{239} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{r}{251} +\DeclareTextComposite{\Psili}{\GRencoding@name}{r}{252} + +% \end{macrocode} +% With capital letters the dialytika (diaeresis) is maintained on top of the letters +% `I' and `U', while for the other capital letters the diacritics are typeset in +% front of them, not on top of them, as it is customary with Greek typesetting best +% practice; the Unicode capital accented glyphs do exist, but they should never be +% used; the CB fonts don't even contain them. There is no concern with kerning +% because the diacritics preceding the capital letters are not preceded by something +% else; what follows is kerned the usual way. With \"I and \"U specific kernings are +% provided, if the dialytika macro |\"| is used, while kerning dith the dialytika +% ligature temporarily work with kludges that should not be present in any font, but +% the CB fonts have because the |AU| and |A'U| kerning was terrible without them; +% now, with Milde's macros and or the pre-existing |\Id| and |\Ud| macros, should +% not be of any concern. +% \begin{macrocode} +\DeclareTextComposite{\"}{\GRencoding@name}{I}{219} +\DeclareTextComposite{\"}{\GRencoding@name}{U}{223} + +% Greek Extended +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{A}{>A} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{A}{`A} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{A}{<`A} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{A}{>'A} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{A}{<'A} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{A}{>\char126A} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{A}{<\char126A} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{A}{>A} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{A}{E} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{E}{`E} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{E}{<`E} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{E}{>'E} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{E}{<'E} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{E}{>E} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{E}{H} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{H}{`H} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{H}{<`H} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{H}{>'H} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{H}{<'H} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{H}{>\char126H} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{H}{<\char126H} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{H}{>H} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{H}{I} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{I}{`I} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{I}{<`I} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{I}{>'I} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{I}{<'I} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{I}{>\char126I} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{I}{<\char126I} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{I}{>I} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{I}{O} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{O}{`O} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{O}{<`O} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{O}{>'O} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{O}{<'O} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{O}{>O} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{O}{W} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{W}{`W} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{W}{<`W} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{W}{>'W} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{W}{<'W} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{W}{>\char126W} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{W}{<\char126W} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{W}{>W} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{W}{ +% \end{macrocode} % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/teubner/teubner.ins b/Master/texmf-dist/source/latex/teubner/teubner.ins index e603e76d863..b693b2d9e81 100644 --- a/Master/texmf-dist/source/latex/teubner/teubner.ins +++ b/Master/texmf-dist/source/latex/teubner/teubner.ins @@ -13,7 +13,7 @@ %% %% IMPORTANT NOTICE: %% -%% Copyright 2001-2003 Claudio Beccari +%% Copyright 2001-2010 Claudio Beccari %% All rights reserved. %% %% Permission is granted to distribute verbatim copies of this file @@ -28,12 +28,15 @@ \input docstrip.tex \preamble -Copyright 2001--2004 Claudio Beccari All rights reserved. +Copyright 2001--2010 Claudio Beccari All rights reserved. This system is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +This file is distributed under the LPPL licence, version 1.3c +dated 2008-05-04 or later as it appears in +CTAN/macros/latex/base/lppl.tex. IMPORTANT NOTICE: @@ -55,13 +58,15 @@ etc. \keepsilent \Msg{*** Generating the extension package teubner.sty ***} +\Msg{*** Generating the accent and glyph definition file ***} \generateFile{teubner.sty}{t}{\from{teubner.dtx}{package}} - +\generateFile{LGRaccents-glyphs.def}{t}{\from{teubner.dtx}{defs}} \ifToplevel{ \Msg{***********************************************************} \Msg{*} \Msg{* Now move teubner.sty where LaTeX can find it } +\Msg{* Now move LGRaccents-glyphs.def where LaTeX can find it } \Msg{*} \Msg{* Happy TeXing!} \Msg{***********************************************************} diff --git a/Master/texmf-dist/tex/latex/teubner/LGRaccents-glyphs.def b/Master/texmf-dist/tex/latex/teubner/LGRaccents-glyphs.def new file mode 100644 index 00000000000..59609487066 --- /dev/null +++ b/Master/texmf-dist/tex/latex/teubner/LGRaccents-glyphs.def @@ -0,0 +1,288 @@ +%% +%% This is file `LGRaccents-glyphs.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% teubner.dtx (with options: `defs') +%% +%% Copyright 2001--2010 Claudio Beccari All rights reserved. +%% +%% This system is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +%% +%% This file is distributed under the LPPL licence, version 1.3c +%% dated 2008-05-04 or later as it appears in +%% CTAN/macros/latex/base/lppl.tex. +%% +%% IMPORTANT NOTICE: +%% +%% You are not allowed to change this file. +%% +%% You are allowed to distribute this file under the condition that it is +%% specified in the source file teubner.dtx. +%% +%% If you receive only some of these files from someone, complain! +%% +%% You are NOT ALLOWED to distribute this file alone. You are NOT +%% ALLOWED to take money for the distribution or use of either this +%% file or a changed version, except for a nominal charge for copying +%% etc. +%% \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 +%% Lower-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 +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesFile{LGRaccents-glyphs.def}% + [2010/05/08 v.2.0a Definitions of accents and glyphs for LGR encoded Greek fonts] +\providecommand*\GRencoding@name{LGR} +\DeclareTextAccent{\u}{\GRencoding@name}{"1E} % breve +\DeclareTextAccent{\=}{\GRencoding@name}{"1F} % macron + +\DeclareTextAccent{\Dialytika}{\GRencoding@name}{"22} % dialytika +\DeclareTextAccent{\Oxia}{\GRencoding@name}{"27} % oxia +\DeclareTextAccent{\Varia}{\GRencoding@name}{"60} % varia +\DeclareTextAccent{\Perispomeni}{\GRencoding@name}{"7E} % perispomeni +\DeclareTextAccent{\Dasia}{\GRencoding@name}{"3C} % rough breath/spirit +\DeclareTextAccent{\Psili}{\GRencoding@name}{"3E} % smooth breath/spirit +\DeclareTextCommand{\<}{\GRencoding@name}{\Dasia} % alias coomand +\DeclareTextCommand{\>}{\GRencoding@name}{\Psili} % alias command +\DeclareTextAccent{\DialytikaOxia}{\GRencoding@name}{"23} % oxia+dialytika +\DeclareTextAccent{\DialytikaVaria}{\GRencoding@name}{"24} % varia+dialytika +\DeclareTextAccent{\DialytikaPerispomeni}{\GRencoding@name}{"20} % perisp.+dial. + +\DeclareTextAccent{\DasiaOxia}{\GRencoding@name}{"56} % oxia+rough +\DeclareTextAccent{\DasiaVaria}{\GRencoding@name}{"43} % varia+rough +\DeclareTextAccent{\DasiaPerispomeni}{\GRencoding@name}{"40}% perisp.+rough + +\DeclareTextAccent{\PsiliOxia}{\GRencoding@name}{"5E} % oxia+smooth +\DeclareTextAccent{\PsiliVaria}{\GRencoding@name}{"5F} % varia+smooth +\DeclareTextAccent{\PsiliPerispomeni}{\GRencoding@name}{"5C}% perisp/+smooth +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{'}{\DialytikaOxia} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\'}{\DialytikaOxia} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{`}{\DialytikaVaria} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\`}{\DialytikaVaria} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{~}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\"}{\GRencoding@name}{\~}{\DialytikaPerispomeni} + +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{"}{\DialytikaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\"}{\DialytikaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{<}{\DasiaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\<}{\DasiaOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{>}{\PsiliOxia} +\DeclareTextCompositeCommand{\'}{\GRencoding@name}{\>}{\PsiliOxia} + +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{"}{\DialytikaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\"}{\DialytikaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{<}{\DasiaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\<}{\DasiaVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{>}{\PsiliVaria} +\DeclareTextCompositeCommand{\`}{\GRencoding@name}{\>}{\PsiliVaria} + +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{"}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\"}{\DialytikaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{<}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\<}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{>}{\PsiliPerispomeni} +\DeclareTextCompositeCommand{\~}{\GRencoding@name}{\>}{\PsiliPerispomeni} + +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{'}{\PsiliOxia} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\'}{\PsiliOxia} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{`}{\PsiliVaria} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\`}{\PsiliVaria} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{~}{\PsiliPerispomeni} +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{\~}{\PsiliPerispomeni} + +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{'}{\DasiaOxia} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\'}{\DasiaOxia} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{`}{\DasiaVaria} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\`}{\DasiaVaria} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{~}{\DasiaPerispomeni} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{\~}{\DasiaPerispomeni} + + +\DeclareTextComposite{\`}{\GRencoding@name}{a}{128} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{a}{129} +\DeclareTextComposite{\Psili}{\GRencoding@name}{a}{130} +\DeclareTextComposite{\'}{\GRencoding@name}{a}{136} +\DeclareTextComposite{\~}{\GRencoding@name}{a}{144} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{a}{137} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{a}{145} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{a}{131} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{a}{138} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{a}{146} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{a}{139} +\DeclareTextComposite{\`}{\GRencoding@name}{h}{152} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{h}{153} +\DeclareTextComposite{\Psili}{\GRencoding@name}{h}{154} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{h}{163} +\DeclareTextComposite{\'}{\GRencoding@name}{h}{160} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{h}{161} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{h}{162} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{h}{171} +\DeclareTextComposite{\~}{\GRencoding@name}{h}{168} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{h}{169} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{h}{170} +\DeclareTextComposite{\`}{\GRencoding@name}{w}{176} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{w}{177} +\DeclareTextComposite{\Psili}{\GRencoding@name}{w}{178} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{w}{179} +\DeclareTextComposite{\'}{\GRencoding@name}{w}{184} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{w}{185} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{w}{186} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{w}{187} +\DeclareTextComposite{\~}{\GRencoding@name}{w}{192} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{w}{193} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{w}{194} +\DeclareTextComposite{\`}{\GRencoding@name}{i}{200} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{i}{201} +\DeclareTextComposite{\Psili}{\GRencoding@name}{i}{202} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{i}{203} +\DeclareTextComposite{\'}{\GRencoding@name}{i}{208} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{i}{209} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{i}{210} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{i}{211} +\DeclareTextComposite{\~}{\GRencoding@name}{i}{216} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{i}{217} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{i}{218} +\DeclareTextComposite{\"}{\GRencoding@name}{i}{240} +\DeclareTextComposite{\DialytikaVaria}{\GRencoding@name}{i}{241} +\DeclareTextComposite{\DialytikaTonos}{\GRencoding@name}{i}{242} +\DeclareTextComposite{\DialytikaPerispomeni}{\GRencoding@name}{i}{243} +\DeclareTextComposite{\`}{\GRencoding@name}{u}{204} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{u}{205} +\DeclareTextComposite{\Psili}{\GRencoding@name}{u}{206} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{u}{207} +\DeclareTextComposite{\'}{\GRencoding@name}{u}{212} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{u}{213} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{u}{214} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{u}{215} +\DeclareTextComposite{\~}{\GRencoding@name}{u}{220} +\DeclareTextComposite{\DasiaPerispomeni}{\GRencoding@name}{u}{221} +\DeclareTextComposite{\PsiliPerispomeni}{\GRencoding@name}{u}{222} +\DeclareTextComposite{\"}{\GRencoding@name}{u}{244} +\DeclareTextComposite{\DialytikaVaria}{\GRencoding@name}{u}{245} +\DeclareTextComposite{\DialytikaTonos}{\GRencoding@name}{u}{246} +\DeclareTextComposite{\DialytikaPerispomeni}{\GRencoding@name}{u}{247} +\DeclareTextComposite{\`}{\GRencoding@name}{e}{224} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{e}{225} +\DeclareTextComposite{\Psili}{\GRencoding@name}{e}{226} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{e}{227} +\DeclareTextComposite{\'}{\GRencoding@name}{e}{232} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{e}{233} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{e}{234} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{e}{235} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{o}{229} +\DeclareTextComposite{\`}{\GRencoding@name}{o}{228} +\DeclareTextComposite{\Psili}{\GRencoding@name}{o}{230} +\DeclareTextComposite{\DasiaVaria}{\GRencoding@name}{o}{231} +\DeclareTextComposite{\'}{\GRencoding@name}{o}{236} +\DeclareTextComposite{\DasiaOxia}{\GRencoding@name}{o}{237} +\DeclareTextComposite{\PsiliOxia}{\GRencoding@name}{o}{238} +\DeclareTextComposite{\PsiliVaria}{\GRencoding@name}{o}{239} +\DeclareTextComposite{\Dasia}{\GRencoding@name}{r}{251} +\DeclareTextComposite{\Psili}{\GRencoding@name}{r}{252} + +\DeclareTextComposite{\"}{\GRencoding@name}{I}{219} +\DeclareTextComposite{\"}{\GRencoding@name}{U}{223} + +\DeclareTextCompositeCommand{\Psili}{\GRencoding@name}{A}{>A} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{A}{`A} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{A}{<`A} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{A}{>'A} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{A}{<'A} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{A}{>\char126A} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{A}{<\char126A} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{A}{>A} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{A}{E} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{E}{`E} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{E}{<`E} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{E}{>'E} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{E}{<'E} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{E}{>E} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{E}{H} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{H}{`H} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{H}{<`H} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{H}{>'H} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{H}{<'H} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{H}{>\char126H} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{H}{<\char126H} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{H}{>H} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{H}{I} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{I}{`I} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{I}{<`I} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{I}{>'I} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{I}{<'I} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{I}{>\char126I} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{I}{<\char126I} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{I}{>I} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{I}{O} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{O}{`O} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{O}{<`O} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{O}{>'O} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{O}{<'O} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{O}{>O} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{O}{W} +\DeclareTextCompositeCommand{\Dasia}{\GRencoding@name}{W}{`W} +\DeclareTextCompositeCommand{\DasiaVaria}{\GRencoding@name}{W}{<`W} +\DeclareTextCompositeCommand{\PsiliOxia}{\GRencoding@name}{W}{>'W} +\DeclareTextCompositeCommand{\DasiaOxia}{\GRencoding@name}{W}{<'W} +\DeclareTextCompositeCommand{\PsiliPerispomeni}{\GRencoding@name}{W}{>\char126W} +\DeclareTextCompositeCommand{\DasiaPerispomeni}{\GRencoding@name}{W}{<\char126W} +\DeclareTextCompositeCommand{\>}{\GRencoding@name}{W}{>W} +\DeclareTextCompositeCommand{\<}{\GRencoding@name}{W}{ to exit.}% \fi \newif\ifor\orfalse % Compatibility with older versions \DeclareOption{or}{\relax} +\newif\ifboldLipsian \boldLipsianfalse +\DeclareOption{boldLipsian}{\boldLipsiantrue} \newif\ifonesizetypeone \DeclareOption{10pt}{\onesizetypeonetrue} +\newif\ifGlyphNames \GlyphNamestrue +\DeclareOption{NoGlyphNames}{\GlyphNamesfalse} \ProcessOptions* \def\GRencoding@name{LGR} -\ifonesizetypeone\RequirePackage[10pt]{type1ec}[2002/09/07]\fi -\input{lgrcmr.fd} -\expandafter\EC@family\expandafter{\GRencoding@name}{cmr}{m}{it} {grml} -\expandafter\EC@family\expandafter{\GRencoding@name}{cmr}{bx}{it} {grxl} +\ifonesizetypeone + \RequirePackage[10pt]{type1ec}[2002/09/07] +\fi +\RequirePackage{graphicx} +\RequirePackage{ifthen} \DeclareFontFamily{U}{mtr}{\hyphenchar\font\m@ne} -\EC@family{U}{mtr}{m}{n}{gmtr} -\DeclareFontShape{U}{mtr}{m}{it}{<->ssub*mtr/m/n}{} +\ifonesizetypeone +\DeclareFontShape{U}{mtr}{m}{n}{<-> gmtr1000}{}% +\else +\DeclareFontShape{U}{mtr}{m}{n}{% + <-5.5> gmtr0500 <5.5-6.5> gmtr0600 + <6.5-7.5> gmtr0700 <7.5-8.5> gmtr0800 + <8.5-9.5> gmtr0900 <9.5-11> gmtr1000 + <11-15> gmtr1200 <15-> gmtr1728}{}% +\fi +\DeclareFontShape{U}{mtr}{m}{it}{<->ssub*mtr/m/n}{}% +\DeclareFontShape{U}{mtr}{b}{it}{<->ssub*mtr/m/n}{}% +\DeclareFontShape{U}{mtr}{b}{n}{<->ssub*mtr/m/n}{}% \newcommand*\metricsfont{\fontencoding{U}\fontfamily{mtr}\upshape} \RequirePackage{exscale} \ifx\languageattribute\undefined @@ -77,40 +94,117 @@ Type X to exit.}% \else \languageattribute{greek}{polutoniko}\def\GreekName{greek}% \fi +\newif\ifLipsian + +\providecommand*\substitutefontfamily{}% +\renewcommand*\substitutefontfamily[3]{{% + \edef\@tempA{#1#2.fd}% + \lowercase\expandafter{\expandafter\def\expandafter\@tempA\expandafter{\@tempA}}% + \expandafter\IfFileExists\expandafter{\@tempA}{}{% + \immediate\openout15=\@tempA + \typeout{Writing file #1#2.fd} + \immediate\write15{% + \string\ProvidesFile{#1#2.fd}^^J + [\the\year/\two@digits{\the\month}/\two@digits{\the\day} + \space generated font description file]^^J + \string\DeclareFontFamily{#1}{#2}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}^^J + }% + \ifLipsian + \immediate\write15{% + \string\DeclareFontShape{#1}{#2}{m}{li}{<->ssub * #3/m/li}{}^^J %<- Lipsian + \string\DeclareFontShape{#1}{#2}{b}{li}{<->ssub * #3/b/li}{}^^J %<- Lipsian + \string\DeclareFontShape{#1}{#2}{bx}{li}{<->ssub * #3/bx/li}{}^^J %<-Lipsian + \string\DeclareFontShape{#1}{#2}{m}{ui}{<->ssub * #3/m/ui}{}^^J %<- upright Olga + \string\DeclareFontShape{#1}{#2}{b}{ui}{<->ssub * #3/m/ui}{}^^J %<- upright Olga + \string\DeclareFontShape{#1}{#2}{bx}{ui}{<->ssub * #3/bx/ui}{}^^J%<-upright Olga + \string\DeclareFontShape{#1}{#2}{m}{rs}{<->ssub * #3/m/rs}{}^^J %<-serifed lc + \string\DeclareFontShape{#1}{#2}{b}{rs}{<->ssub * #3/m/rs}{}^^J %<-serifed lc + \string\DeclareFontShape{#1}{#2}{bx}{rs}{<->ssub * #3/bx/rs}{}^^J%<-serifed lc + }% + \fi + \closeout15}% + }} + +\def\ifCMLM#1#2#3!{\edef\f@milyprefix{#1#2}% + \ifthenelse{\(\equal{\f@milyprefix}{cm}\OR\equal{\f@milyprefix}{lm}\)}% + {\let\n@xt\iftrue}{\def\f@milyprefix{cmr}\let\n@xt\iffalse}\n@xt} + +\newcommand*\ifFamily[2]{% +\expandafter\ifCMLM#1!\else\substitutefontfamily{LGR}{#1}{#2}\fi} + +\AtBeginDocument{% +\@ifpackageloaded{pxfonts}{\typeout{Palatino fonts loaded}% +\Lipsiantrue\ifFamily{pxr}{cmr}\Lipsianfalse +\ifFamily{pxss}{cmss}\ifFamily{pxtt}{cmtt}}{\relax}} + +\AtBeginDocument{% +\@ifpackageloaded{txfonts}{\typeout{Times fonts loaded}% +\Lipsiantrue\ifFamily{txr}{cmr}\Lipsianfalse +\ifFamily{txss}{cmss}\ifFamily{txtt}{cmtt}}{}} + \AtBeginDocument{% \edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}% -} -\DeclareRobustCommand\Lipsiakostext{\edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}% + \edef\previousencoding{\f@encoding}} +\DeclareRobustCommand{\lishape}{% +\not@math@alphabet\lishape\relax +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}{% +\ifboldLipsian +\ifthenelse{\equal{\f@series}{m}}% +{\fontseries{b}\fontshape{li}\rmfamily}% +{\fontshape{li}\rmfamily}\else +\fontshape{li}\rmfamily\fi}% +{\fontshape{it}\selectfont}}% + +\DeclareTextFontCommand{\textli}{\lishape}% +\DeclareRobustCommand\Lipsiakostext{% \expandafter\select@language\expandafter{\GreekName}% - \let\~\GRcirc\let~\greek@tilde\itshape} + \let\~\GRcirc\let~\greek@tilde\lishape} + +\DeclareTextFontCommand{\textLipsias}{\Lipsiakostext} + \DeclareRobustCommand\NoLipsiakostext{% + \ifthenelse{\equal{\f@series}{b}}{\fontseries{m}}{\relax}% + \fontshape{n}\selectfont \expandafter\select@language\expandafter{\previouslanguage}% - \expandafter\fontencoding\expandafter{\previousencoding}\upshape - \edef\previouslanguage{\languagename}% - \edef\previousencoding{\f@encoding}\bbl@activate{~}% -} -\DeclareRobustCommand\textLipsias[1]{{% - \expandafter\select@language\expandafter{\GreekName}% - \expandafter\fontencoding\expandafter{\GRencoding@name}% - \itshape\let\~\GRcirc\let~\greek@tilde#1}% -} + \rmfamily\bbl@activate{~}} + \DeclareRobustCommand\textDidot[1]{{% \expandafter\select@language\expandafter{\GreekName}% - \expandafter\fontencoding\expandafter{\GRencoding@name}% - \upshape\let\~\GRcirc\let~\greek@tilde#1}% -} + \let\~\GRcirc\let~\greek@tilde + \fontencoding{LGR}\rmfamily#1}} + \DeclareRobustCommand\textlatin[1]{\edef\externalencoding{\f@encoding}{% + \def\itdefault{it}\def\@tempA{li}\ifx\@tempA\f@shape\def\f@shape{it}\fi% \expandafter\select@language\expandafter{\previouslanguage}% - \expandafter\fontencoding\expandafter{\previousencoding}% - \bbl@activate{~}\upshape#1}% - \expandafter\fontencoding\expandafter{\externalencoding}\selectfont} -{% -\catcode`p=12\catcode`t=12\gdef\numero#1pt{#1}% -} + \fontencoding{\previousencoding}% + \fontfamily{\rmdefault}\selectfont + \bbl@activate{~}#1}% + \expandafter\fontencoding\expandafter{\externalencoding}\rmfamily} + +\DeclareRobustCommand\uishape{% +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}% +{\fontshape{ui}\selectfont}{\relax}} +\DeclareTextFontCommand{\textui}{\uishape} + +\DeclareRobustCommand\rsshape{% +\ifthenelse{\equal{\f@encoding}{\GRencoding@name}}% +{\fontshape{rs}\selectfont}{\relax}} +\DeclareTextFontCommand{\textrs}{\rsshape} + \newcommand*\lift@accent[2]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#2}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -120,8 +214,9 @@ Type X to exit.}% \@tempdima\ht\z@\advance\@tempdima-1ex\relax \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + \newcommand*\Lift@accent[2]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#2}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -131,8 +226,9 @@ Type X to exit.}% \@tempdima\ht\z@\advance\@tempdima-1ex\advance\@tempdima.1ex\relax \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + \newcommand*\LIFT@accent[3]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@=\z@\setbox\z@\hbox{\char#1}\advance\dimen@-.5\wd\z@ \setbox\tw@\hbox{i}\setbox\z@\hbox{#3}% \ifdim\wd\z@>\wd\tw@\advance\dimen@ .5\wd\z@ @@ -144,8 +240,9 @@ Type X to exit.}% \advance\@tempdima#2\fi\let\@tempA\undefined \advance\dimen@\slant@\@tempdima \raise\@tempdima\hbox to\z@{\kern\dimen@\char#1\relax\hss}\box\z@}} + \DeclareRobustCommand{\cap@}[1]{\leavevmode -{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +{\edef\slant@{\strip@pt\fontdimen1\font}% \setbox\tw@\hbox{\fontencoding{\GRencoding@name}\selectfont \char1}\dimen@-.5\wd\tw@ \setbox\z@\hbox{#1}% @@ -155,22 +252,25 @@ Type X to exit.}% \ifx\cf@encoding\GRencoding@name\else \ifx#1k\advance\dimen@-.3\wd\tw@\fi\fi \raise\@tempdima\hbox to\z@{\kern\dimen@\box\tw@\relax\hss}\box\z@}} + \DeclareTextCommand{\cap}{\GRencoding@name}{\cap@} \DeclareTextCommand{\cap}{OT1}{\cap@} \DeclareTextCommand{\cap}{T1}{\cap@} + \newcommand*\cap@cedilla[1]{\leavevmode {\setbox4\hbox{\fontencoding{\GRencoding@name}\selectfont\char1}% \dimen@-.5\wd4 \setbox\z@\hbox{#1}% \ifx\cf@encoding\GRencoding@name -\ifx#1i\advance\dimen@ .65\wd\z@\else\advance\dimen@ .6\wd\z@\fi +\ifx#1i\advance\dimen@ .65\wd\z@\else\advance\dimen@ .5\wd\z@\fi \else \ifx#1i\advance\dimen@ .55\wd\z@\else\advance\dimen@ .5\wd\z@\fi \fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + \newcommand*\ring@cedilla[1]{\leavevmode {\setbox4\hbox{\metricsfont\char26}% -\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\edef\slant@{\strip@pt\fontdimen1\font}% \dimen@-.5\wd4\ifdim\slant@\p@>\z@\advance\dimen@-.04ex\fi \setbox\z@\hbox{#1}% \ifx\cf@encoding\GRencoding@name @@ -181,13 +281,14 @@ Type X to exit.}% \ifx#1u\advance\dimen@+.07\wd\z@\fi \ifx#1w\advance\dimen@+.03\wd\z@\fi \else - \ifx#1i\advance\dimen@ .55\wd\z@\else + \ifx#1i\advance\dimen@.55\wd\z@\else \ifx#1r\advance\dimen@.38\wd\z@\else \ifx#1o\advance\dimen@.47\wd\z@\else - \advance\dimen@ .5\wd\z@ + \advance\dimen@0.5\wd\z@ \fi\fi\fi \fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + \newcommand*\dot@cedilla[1]{\leavevmode {\setbox4\hbox{\metricsfont\char27}% \dimen@-.5\wd4 @@ -201,7 +302,8 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} -\newcommand*\tie@cedilla[1]{\leavevmode % mette un tie sotto l'argomento + +\newcommand*\tie@cedilla[1]{\leavevmode {\setbox4\hbox{\fontencoding{\GRencoding@name}\selectfont\char20}% \dimen@-.5\wd4 \setbox\tw@\hbox{i}\setbox\z@\hbox{#1}% @@ -215,10 +317,17 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + +\input{LGRaccents-glyphs.def} +\let\nbs\nobreakspace \DeclareTextCommand{\`}{\GRencoding@name}[1]{\lift@accent{96}{#1}} \DeclareTextCommand{\'}{\GRencoding@name}[1]{\lift@accent{39}{#1}} -\DeclareTextCommand{\GRcirc}{\GRencoding@name}[1]{\lift@accent{126}{#1}} \DeclareTextCommand{\~}{\GRencoding@name}[1]{\lift@accent{126}{#1}} +\let\GRcirc\Perispomeni + +\addto\extrasgreek{\shorthandoff{~}\let\~\Perispomeni} +\addto\noextrasgreek{\shorthandon{~}} + \DeclareTextCommand{\"}{\GRencoding@name}[1]{\lift@accent{34v}{#1}} \DeclareTextCommand{\u}{\GRencoding@name}[1]{\lift@accent{30}{#1}} \DeclareTextCommand{\U}{\GRencoding@name}[1]{\lift@accent{151}{#1}} @@ -285,9 +394,11 @@ Type X to exit.}% {\LIFT@accent{30}{-.1ex}{\lift@accent{34v}{#1}}} \DeclareTextCommand{\iS}{\GRencoding@name}[1] {\ooalign{#1\crcr\hidewidth\char124\hidewidth}} + \DeclareTextCommand{\d}{\GRencoding@name}[1]% {\leavevmode\bgroup\o@lign{\relax#1\crcr \hidewidth\sh@ft{10}.\hidewidth}\egroup} + \DeclareRobustCommand{\Open}[1]{\leavevmode {\setbox4\hbox{\raise-.33ex\hbox{\metricsfont\char14}}% \dimen@-.5\wd4 @@ -301,6 +412,7 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + \DeclareRobustCommand{\nasal}[1]{\leavevmode {\setbox4\hbox{\raise-1.7ex\hbox{\GEcq}}% \dimen@-.5\wd4 @@ -314,15 +426,18 @@ Type X to exit.}% \fi \setbox\tw@\hbox{o}\ifdim\wd\z@=\wd\tw@\advance\dimen@-.05\wd\z@\fi \hbox to\z@{\kern\dimen@\box4\hss}\unhbox\z@}} + \DeclareRobustCommand{\tenaspir}[1]{#1\/% {\fontencoding{\GRencoding@name}\selectfont to exit.}% \DeclareTextCommand{\md}{OT1}[1]{\d{\={#1}}} \DeclareTextCommand{\UO}{OT1}[1]{\Open{\u{#1}}} \DeclareTextCommand{\mO}{OT1}[1]{\Open{\={#1}}} + \DeclareTextSymbol{\greekquoteleft}{\GRencoding@name}{123} +\let\textguillemotleft\greekquoteleft \DeclareTextSymbol{\greekquoteright}{\GRencoding@name}{125} +\let\textguillemotright\greekquoteright \DeclareTextSymbol{\textcompwordmark}{\GRencoding@name}{118} \DeclareTextSymbol{\textemdash}{\GRencoding@name}{127} \let\emdash\textemdash \DeclareTextSymbol{\textendash}{\GRencoding@name}{0} + \DeclareTextSymbol{\stigma}{\GRencoding@name}{006} \DeclareTextSymbol{\varstigma}{\GRencoding@name}{007} \DeclareTextSymbol{\koppa}{\GRencoding@name}{18} -\DeclareTextSymbol{\varkoppa}{\GRencoding@name}{19} -\let\coppa\varkoppa +\DeclareTextSymbol{\varkoppa}{\GRencoding@name}{19}\let\coppa\varkoppa \DeclareTextSymbol{\sampi}{\GRencoding@name}{27} \DeclareTextSymbol{\Coppa}{\GRencoding@name}{21}\let\Koppa\Coppa \DeclareTextSymbol{\Stigma}{\GRencoding@name}{22} \DeclareTextSymbol{\Sampi}{\GRencoding@name}{23} \DeclareTextSymbol{\Euro}{\GRencoding@name}{24} \DeclareTextSymbol{\permill}{\GRencoding@name}{25} + \DeclareTextCommand{\textdollar}{\GRencoding@name}% {{\fontencoding{T1}\selectfont\char36}} \DeclareTextCommand{\textsection}{\GRencoding@name}% @@ -358,16 +477,15 @@ Type X to exit.}% {{\fontencoding{T1}\selectfont\char95}} \DeclareTextCommand{\textvisiblespace}{\GRencoding@name}% {{\fontencoding{T1}\selectfont\char32}} + +\ifGlyphNames \DeclareTextSymbol{\ag}{\GRencoding@name}{128} -\DeclareTextComposite{\`}{\GRencoding@name}{a}{128} \DeclareTextSymbol{\ar}{\GRencoding@name}{129} \DeclareTextComposite{\r}{\GRencoding@name}{a}{129} \DeclareTextSymbol{\as}{\GRencoding@name}{130} \DeclareTextComposite{\s}{\GRencoding@name}{a}{130} \DeclareTextSymbol{\aa}{\GRencoding@name}{136} -\DeclareTextComposite{\'}{\GRencoding@name}{a}{136} \DeclareTextSymbol{\ac}{\GRencoding@name}{144} -\DeclareTextComposite{\~}{\GRencoding@name}{a}{144} \DeclareTextSymbol{\ai}{\GRencoding@name}{248} \DeclareTextSymbol{\aai}{\GRencoding@name}{140} \DeclareTextSymbol{\aci}{\GRencoding@name}{148} @@ -393,7 +511,6 @@ Type X to exit.}% \DeclareTextSymbol{\asgi}{\GRencoding@name}{143} \DeclareTextSymbol{\asci}{\GRencoding@name}{150} \DeclareTextSymbol{\hg}{\GRencoding@name}{152} -\DeclareTextComposite{\`}{\GRencoding@name}{h}{152} \DeclareTextSymbol{\hr}{\GRencoding@name}{153} \DeclareTextComposite{\r}{\GRencoding@name}{h}{153} \DeclareTextSymbol{\hs}{\GRencoding@name}{154} @@ -405,7 +522,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsi}{\GRencoding@name}{158} \DeclareTextSymbol{\hrgi}{\GRencoding@name}{167} \DeclareTextSymbol{\ha}{\GRencoding@name}{160} -\DeclareTextComposite{\'}{\GRencoding@name}{h}{160} \DeclareTextSymbol{\hra}{\GRencoding@name}{161} \DeclareTextComposite{\Ar}{\GRencoding@name}{h}{161} \DeclareTextSymbol{\hsa}{\GRencoding@name}{162} @@ -417,7 +533,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsai}{\GRencoding@name}{166} \DeclareTextSymbol{\hsgi}{\GRencoding@name}{175} \DeclareTextSymbol{\hc}{\GRencoding@name}{168} -\DeclareTextComposite{\~}{\GRencoding@name}{h}{168} \DeclareTextSymbol{\hrc}{\GRencoding@name}{169} \DeclareTextComposite{\Cr}{\GRencoding@name}{h}{169} \DeclareTextSymbol{\hsc}{\GRencoding@name}{170} @@ -427,7 +542,6 @@ Type X to exit.}% \DeclareTextSymbol{\hsci}{\GRencoding@name}{174} \DeclareTextSymbol{\hi}{\GRencoding@name}{249} \DeclareTextSymbol{\wg}{\GRencoding@name}{176} -\DeclareTextComposite{\`}{\GRencoding@name}{w}{176} \DeclareTextSymbol{\wr}{\GRencoding@name}{177} \DeclareTextComposite{\r}{\GRencoding@name}{w}{177} \DeclareTextSymbol{\ws}{\GRencoding@name}{178} @@ -439,7 +553,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsi}{\GRencoding@name}{182} \DeclareTextSymbol{\wrgi}{\GRencoding@name}{183} \DeclareTextSymbol{\wa}{\GRencoding@name}{184} -\DeclareTextComposite{\'}{\GRencoding@name}{w}{184} \DeclareTextSymbol{\wra}{\GRencoding@name}{185} \DeclareTextComposite{\Ar}{\GRencoding@name}{w}{185} \DeclareTextSymbol{\wsa}{\GRencoding@name}{186} @@ -451,7 +564,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsai}{\GRencoding@name}{190} \DeclareTextSymbol{\wsgi}{\GRencoding@name}{191} \DeclareTextSymbol{\wc}{\GRencoding@name}{192} -\DeclareTextComposite{\~}{\GRencoding@name}{w}{192} \DeclareTextSymbol{\wrc}{\GRencoding@name}{193} \DeclareTextComposite{\Cr}{\GRencoding@name}{w}{193} \DeclareTextSymbol{\wsc}{\GRencoding@name}{194} @@ -461,7 +573,6 @@ Type X to exit.}% \DeclareTextSymbol{\wsci}{\GRencoding@name}{198} \DeclareTextSymbol{\wi}{\GRencoding@name}{250} \DeclareTextSymbol{\ig}{\GRencoding@name}{200} -\DeclareTextComposite{\`}{\GRencoding@name}{i}{200} \DeclareTextSymbol{\ir}{\GRencoding@name}{201} \DeclareTextComposite{\r}{\GRencoding@name}{i}{201} \DeclareTextSymbol{\is}{\GRencoding@name}{202} @@ -469,7 +580,6 @@ Type X to exit.}% \DeclareTextSymbol{\irg}{\GRencoding@name}{203} \DeclareTextComposite{\Gr}{\GRencoding@name}{i}{203} \DeclareTextSymbol{\ia}{\GRencoding@name}{208} -\DeclareTextComposite{\'}{\GRencoding@name}{i}{208} \DeclareTextSymbol{\ira}{\GRencoding@name}{209} \DeclareTextComposite{\Ar}{\GRencoding@name}{i}{209} \DeclareTextSymbol{\isa}{\GRencoding@name}{210} @@ -477,13 +587,11 @@ Type X to exit.}% \DeclareTextSymbol{\isg}{\GRencoding@name}{211} \DeclareTextComposite{\Gs}{\GRencoding@name}{i}{211} \DeclareTextSymbol{\ic}{\GRencoding@name}{216} -\DeclareTextComposite{\~}{\GRencoding@name}{i}{216} \DeclareTextSymbol{\irc}{\GRencoding@name}{217} \DeclareTextComposite{\Cr}{\GRencoding@name}{i}{217} \DeclareTextSymbol{\isc}{\GRencoding@name}{218} \DeclareTextComposite{\Cs}{\GRencoding@name}{i}{218} \DeclareTextSymbol{\id}{\GRencoding@name}{240} -\DeclareTextComposite{\"}{\GRencoding@name}{i}{240} \DeclareTextSymbol{\idg}{\GRencoding@name}{241} \DeclareTextComposite{\Gd}{\GRencoding@name}{i}{241} \DeclareTextSymbol{\ida}{\GRencoding@name}{242} @@ -491,7 +599,6 @@ Type X to exit.}% \DeclareTextSymbol{\idc}{\GRencoding@name}{243} \DeclareTextComposite{\Cd}{\GRencoding@name}{i}{243} \DeclareTextSymbol{\ug}{\GRencoding@name}{204} -\DeclareTextComposite{\`}{\GRencoding@name}{u}{204} \DeclareTextSymbol{\ur}{\GRencoding@name}{205} \DeclareTextComposite{\r}{\GRencoding@name}{u}{205} \DeclareTextSymbol{\us}{\GRencoding@name}{206} @@ -499,7 +606,6 @@ Type X to exit.}% \DeclareTextSymbol{\urg}{\GRencoding@name}{207} \DeclareTextComposite{\Gr}{\GRencoding@name}{u}{207} \DeclareTextSymbol{\ua}{\GRencoding@name}{212} -\DeclareTextComposite{\'}{\GRencoding@name}{u}{212} \DeclareTextSymbol{\ura}{\GRencoding@name}{213} \DeclareTextComposite{\Ar}{\GRencoding@name}{u}{213} \DeclareTextSymbol{\usa}{\GRencoding@name}{214} @@ -507,13 +613,11 @@ Type X to exit.}% \DeclareTextSymbol{\usg}{\GRencoding@name}{215} \DeclareTextComposite{\Gs}{\GRencoding@name}{u}{215} \DeclareTextSymbol{\uc}{\GRencoding@name}{220} -\DeclareTextComposite{\~}{\GRencoding@name}{u}{220} \DeclareTextSymbol{\urc}{\GRencoding@name}{221} \DeclareTextComposite{\Cr}{\GRencoding@name}{u}{221} \DeclareTextSymbol{\usc}{\GRencoding@name}{222} \DeclareTextComposite{\Cs}{\GRencoding@name}{u}{222} \DeclareTextSymbol{\ud}{\GRencoding@name}{244} -\DeclareTextComposite{\"}{\GRencoding@name}{u}{244} \DeclareTextSymbol{\udg}{\GRencoding@name}{245} \DeclareTextComposite{\Gd}{\GRencoding@name}{u}{245} \DeclareTextSymbol{\uda}{\GRencoding@name}{246} @@ -521,7 +625,6 @@ Type X to exit.}% \DeclareTextSymbol{\udc}{\GRencoding@name}{247} \DeclareTextComposite{\Cd}{\GRencoding@name}{u}{247} \DeclareTextSymbol{\eg}{\GRencoding@name}{224} -\DeclareTextComposite{\`}{\GRencoding@name}{e}{224} \DeclareTextSymbol{\er}{\GRencoding@name}{225} \DeclareTextComposite{\r}{\GRencoding@name}{e}{225} \DeclareTextSymbol{\es}{\GRencoding@name}{226} @@ -529,7 +632,6 @@ Type X to exit.}% \DeclareTextSymbol{\erg}{\GRencoding@name}{227} \DeclareTextComposite{\Gr}{\GRencoding@name}{e}{227} \DeclareTextSymbol{\ea}{\GRencoding@name}{232} -\DeclareTextComposite{\'}{\GRencoding@name}{e}{232} \DeclareTextSymbol{\era}{\GRencoding@name}{233} \DeclareTextComposite{\Ar}{\GRencoding@name}{e}{233} \DeclareTextSymbol{\esa}{\GRencoding@name}{234} @@ -539,13 +641,11 @@ Type X to exit.}% \DeclareTextSymbol{\oR}{\GRencoding@name}{229} \DeclareTextComposite{\r}{\GRencoding@name}{o}{229} \DeclareTextSymbol{\og}{\GRencoding@name}{228} -\DeclareTextComposite{\`}{\GRencoding@name}{o}{228} \DeclareTextSymbol{\os}{\GRencoding@name}{230} \DeclareTextComposite{\s}{\GRencoding@name}{o}{230} \DeclareTextSymbol{\org}{\GRencoding@name}{231} \DeclareTextComposite{\Gr}{\GRencoding@name}{o}{231} \DeclareTextSymbol{\oa}{\GRencoding@name}{236} -\DeclareTextComposite{\'}{\GRencoding@name}{o}{236} \DeclareTextSymbol{\ora}{\GRencoding@name}{237} \DeclareTextComposite{\Ar}{\GRencoding@name}{o}{237} \DeclareTextSymbol{\osa}{\GRencoding@name}{238} @@ -557,9 +657,10 @@ Type X to exit.}% \DeclareTextSymbol{\rs}{\GRencoding@name}{252} \DeclareTextComposite{\s}{\GRencoding@name}{r}{252} \DeclareTextSymbol{\Id}{\GRencoding@name}{219} -\DeclareTextComposite{\"}{\GRencoding@name}{I}{219} \DeclareTextSymbol{\Ud}{\GRencoding@name}{223} \DeclareTextComposite{\"}{\GRencoding@name}{U}{223} +\fi + \DeclareTextCommand{\h}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont h}} \DeclareTextCommand{\q}{\GRencoding@name}% @@ -567,20 +668,27 @@ Type X to exit.}% \DeclareTextCommand{\yod}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont j}}% \let\iod\yod + \DeclareTextSymbol{\f}{\GRencoding@name}{147} -\AtBeginDocument{\@ifpackageloaded{amssymb}{\let\AMSdigamma\digamma -\def\digamma{\textormath{\f}{\AMSdigamma}}}{\let\digamma\f}} +\AtBeginDocument{\@ifpackageloaded{amssymb}% +{\let\AMSdigamma\digamma\def\digamma{\textormath{\f}{\AMSdigamma}}}% amssymb loaded +{\let\digamma\f}% amssymb not loadedloaded +} \DeclareTextSymbol{\F}{\GRencoding@name}{195}\let\Digamma\F + \DeclareRobustCommand{\fLow}% {{\setbox\z@\hbox{\f}\dimen@\ht\z@ \advance\dimen@-1ex\raise-\dimen@\hbox{\box\z@}}} \DeclareRobustCommand{\fHigh}% {{\setbox\z@\hbox{\f}\dimen@\dp\z@\raise\dimen@\hbox{\box\z@}}} + \DeclareRobustCommand\qmark{\hskip.16ex{\fontencoding{OT1}\upshape(?)}} \DeclareRobustCommand\lpar{{\metricsfont(}} \DeclareRobustCommand\rpar{{\metricsfont)}} \DeclareRobustCommand\frapar[1]{\lpar#1\rpar} + \DeclareRobustCommand{\ap}[1]{\/\textsuperscript{#1}} + \newcommand\Dots[1][1]{{\count255=#1\@whilenum\count255>\z@ \do{\kern.4ex\d{v}\kern.4ex\advance\count255\m@ne}}} \newcommand\DOTS[1][1]{{\count255=#1\@whilenum\count255>\z@ @@ -589,6 +697,7 @@ Type X to exit.}% \do{\kern.4ex--\kern.4ex\advance\count255\m@ne}}} \newcommand\DASHES[1][1]{{\count255=#1\@whilenum\count255>\z@ \do{\kern.8ex--\kern.8ex\advance\count255\m@ne}}} + \DeclareRobustCommand{\:}{\textormath{\tw@dots}{\mskip\medmuskip}} \DeclareRobustCommand{\;}{\textormath{\thre@dots}{\mskip\thickmuskip}} \DeclareRobustCommand{\?}{\f@urdots} @@ -599,14 +708,17 @@ Type X to exit.}% \hbox{.}\vss\hbox{.}}}} \def\f@urdots{\mbox{\kern1\p@\vbox to 2ex{\hbox{.}\vss \hbox{.}\vss\hbox{.}\vss\hbox{.}}}} + \DeclareRobustCommand{\|}{\relax\ensuremath{\mskip2mu\vert}} \DeclareRobustCommand{\dBar}{\ensuremath{\vert\vert}} \DeclareRobustCommand{\tBar}{\ensuremath{\vert\vert\vert}} + \def\negthinspace{\nobreak\hskip-0.07em} \def\posthinspace{\nobreak\hskip0.07em} \def\posthindspace{\nobreak\hskip0.14em} \renewcommand{\,}{\textormath{\posthinspace}{\mskip\thinmuskip}} \renewcommand{\!}{\textormath{\negthinspace}{\mskip-\thinmuskip}} + \DeclareRobustCommand{\lbrk}{{\metricsfont\posthindspace[\negthinspace}} \DeclareRobustCommand{\rbrk}{{\metricsfont]}} \DeclareRobustCommand\lmqi{{\metricsfont!}} @@ -618,7 +730,7 @@ Type X to exit.}% \DeclareRobustCommand\mqs[1]{\lmqs{#1\/}\rmqs} \DeclareRobustCommand{\Ladd}[1]{{\metricsfont<}{\!\!#1\/}% {\metricsfont>}}% litterae certe addendae -\DeclareRobustCommand{\LLadd}[1]{{\metricsfont<\kern-.3ex<}%subst. \hskip with \kern +\DeclareRobustCommand{\LLadd}[1]{{\metricsfont<\kern-.3ex<} {\!\!#1\/}{\metricsfont>\kern-.3ex>}}% litterae certe addendae \DeclareRobustCommand{\ladd}[1]{{\metricsfont\kern.15ex[\negthinspace}% {#1\/}{\metricsfont]\kern-.15ex}}% litterae addendae @@ -628,12 +740,14 @@ Type X to exit.}% \DeclareRobustCommand{\lesp}[1]% {\mbox{$\{\kern-.20ex$#1\kern.16ex$\}$}}% litterae delendae \let\ldel\lesp + \DeclareTextCommand{\itopenquotes}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont\char92}}% \DeclareTextCommand{\itclosedquotes}{\GRencoding@name}% {{\fontencoding{OT1}\selectfont\char34}}% \let\itoq\itopenquotes \let\itcq\itclosedquotes + \newcommand\GEodq{\bgroup\futurelet\@tempA\GE@dq} \def\GE@dq{{\metricsfont\char18}\ifx\@tempA m\posthinspace\fi\egroup} \newcommand\GEcdq{{\metricsfont\char16}} @@ -645,21 +759,26 @@ Type X to exit.}% \newcommand\ENodq{{\metricsfont\char16}} \newcommand\ENcdq{{\metricsfont\char17}} \newcommand\ENdqtext[1]{\ENodq\negthinspace#1\/\posthinspace\ENcdq} + \DeclareRobustCommand\LitNil{\textbullet} \let\litnil\LitNil -\DeclareTextSymbol{\sva}{\GRencoding@name}{26} +\DeclareTextCommand{\sva}{\GRencoding@name}{% +\rotatebox[origin=c]{180}{\def\@tempA{li}% +\fontencoding{OT1}\ifx\f@shape\@tempA\fontshape{it}\fi\selectfont e}} \DeclareTextCommand\sva{OT1}{{\expandafter\fontencoding \expandafter{\GRencoding@name}\selectfont\sva}} \DeclareTextCommand\sva{T1}{{\expandafter\fontencoding \expandafter{\GRencoding@name}\selectfont\sva}} \let\shva\sva\let\shwa\sva + \DeclareRobustCommand\skewstack[2]{{% -\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{#1}\dimen@\ht\z@\box\z@ \kern-.045em\setbox\@ne\hbox{\scriptsize#2}% \ifdim\dimen@>1.2ex\advance\dimen@-\ht\@ne\else \dimen@1ex\advance\dimen@-.5\ht\@ne\fi \kern\slant@\dimen@\raise\dimen@\hbox{\box\@ne}}} + \DeclareRobustCommand\hv{{\fontencoding{OT1}\selectfont \skewstack{h}{v}}} \DeclareRobustCommand\qw{{\fontencoding{OT1}\selectfont @@ -672,28 +791,34 @@ Type X to exit.}% \skewstack{q}{\semiv{u}}}} \DeclareRobustCommand\qu{{\fontencoding{OT1}\selectfont \skewstack{q}{u}}} + \DeclareRobustCommand\dz{{\fontencoding{OT1}\selectfont d\kern-.33ex z}} + \DeclareRobustCommand\Utie[1]{% \mbox{\vtop{\ialign{##\crcr \hfil#1\hfil\crcr \noalign{\kern.3ex\nointerlineskip}% \hfil$\smile$\hfil\crcr}}}} + \DeclareRobustCommand{\siner}[1]{% \mbox{\vtop{\ialign{##\crcr \hfil#1\hfil\crcr \noalign{\kern.6ex\nointerlineskip}% \upfill\crcr}}}} \let\siniz\siner + \def\upfill{$\m@th \scriptstyle\setbox\z@\hbox{$\scriptstyle\bracelu$}% \kern.16ex\bracelu\ifPDF\kern-.15ex\fi - \leaders\vrule \@height\ifPDF.85\fi\ht\z@ \@depth\z@\hfill + \leaders\vrule \@height\ht\z@ \@depth\z@\hfill \braceru\kern.16ex$} + \def\downfill{$\m@th\scriptstyle\setbox\z@\hbox{$\scriptstyle\braceld$}% \kern.16ex\braceld\ifPDF\kern-.15ex\fi - \leaders\vrule \@height\ifPDF.85\fi\ht\z@ \@depth\z@\hfill + \leaders\vrule \@height\ht\z@ \@depth\z@\hfill \bracerd\kern.16ex$} + \newcommand*\zeugma[1]{{\vbox{\setbox\z@\hbox{#1}\dimen@=\ht\z@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \dimen\tw@=\wd\z@ \dimen@=\@slant\dimen@\ifmetricsfont\dimen@=\z@ \advance\dimen\tw@-.5ex\fi @@ -704,52 +829,37 @@ Type X to exit.}% \else\kern.4ex\fi\nointerlineskip}% \hfil{#1}\hfil\crcr}}}% } + \newcommand*\slzeugma[1]{{\leavevmode \setbox\tw@\hbox{\metricsfont\char120}% \setbox\z@\hbox{#1}\dimen@.5\wd\z@\advance\dimen@-.5\wd\tw@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \advance\dimen@\@slant\ht\z@ \hbox to\z@{\kern\dimen@\box\tw@\hss}\box\z@ }% } + \newcommand*\rszeugma[1]{{\leavevmode \setbox\tw@\hbox{\metricsfont\char122}% \setbox\z@\hbox{#1}\dimen@.5\wd\z@\advance\dimen@-.5\wd\tw@ - \edef\@slant{\expandafter\numero\the\fontdimen1\font}% + \edef\@slant{\strip@pt\fontdimen1\font}% \advance\dimen@\@slant\ht\z@ \hbox to\z@{\kern\dimen@\box\tw@\hss}\box\z@ }% } -\newcommand*{\nexus}[1]{{\setbox\tw@\hbox{#1}% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + +\newcommand*{\nexus}[1]{{\setbox\tw@\hbox{#1\/}% + \edef\slant@{\strip@pt\fontdimen1\font}% \@tempdima=\slant@\ht\tw@\advance\@tempdima.45ex - \setbox4\hbox to\wd\tw@{\hss\nexusfill\hss} + \setbox4\hbox{\resizebox{\wd\tw@}{\height}{$\widehat{\phantom{aaa}}$}}% + \setbox4\hbox{\smash{\lower1.35ex\hbox{\box4}}}% \vbox{\ialign{##\crcr% - \kern\@tempdima\box4 + \kern\@tempdima\box4% \crcr \noalign{\kern.15ex\nointerlineskip}% \hfil{#1}\hfil\crcr}}}} -\newcommand*\nesso[1]{{\setbox\tw@\hbox{#1}% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% - \@tempdima=\slant@\ht\tw@\advance\@tempdima.9ex - \ifdim\wd\tw@<1ex - \setbox4\hbox{\metricsfont\kern-.5ex\Hat}% - \else - \setbox4\hbox to\wd\tw@{\hss\nexfill\hss}% - \fi - \vbox{\ialign{##\crcr% - \kern\@tempdima\box4 - \crcr - \noalign{\kern.15ex\nointerlineskip}% - \hfil\box\tw@\hfil\crcr}}}} -{\catcode`\^=12\relax\global\chardef\Hat`\^ -\gdef\nexfill{{\metricsfont\leaders\hbox{^}\hfill}}} -\newdimen\Uunit -\def\nexusfill{\setbox\z@\hbox{\char16}% - \Uunit=0.83333\p@ - \kern.16ex\char16\kern-.08ex - \leaders\vrule\@height\z@\@depth\Uunit\hfill - \kern.08ex\char17\kern.16ex} +\let\nesso\nexus + \def\C@rule{\vrule\@height.45ex\@depth-.35ex\@width1.5em} \def\coronis@rule{\hbox to\z@{\hss\C@rule\hss}} \def\Coronis@rule{\hbox to\z@ @@ -760,6 +870,7 @@ Type X to exit.}% \DeclareRobustCommand{\dparagr}% {\raisebox{-1.3ex}[\z@][\z@]{\coronis@rule}% \raisebox{-1.6ex}[\z@][\z@]{\coronis@rule}} + \DeclareRobustCommand*\sinafia{{\metricsfont s}} \DeclareRobustCommand*{\crux}{{\metricsfont\char'171}} \DeclareRobustCommand*{\FinisCarmen}{\ensuremath{\otimes}} @@ -776,14 +887,17 @@ Type X to exit.}% \DeclareRobustCommand*{\dstar}{{\upshape **}} \DeclareRobustCommand*{\tstar}{{\upshape ***}} \DeclareRobustCommand*{\responsio}{{\boldmath\ensuremath{\sim}}} + \DeclareRobustCommand{\thorn}{{\fontencoding{T1}\selectfont\th}} \DeclareRobustCommand{\Thorn}{{\fontencoding{T1}\selectfont\TH}} + \DeclareRobustCommand{\dracma}{{\metricsfont D}} \DeclareRobustCommand{\hemiobelion}{{\metricsfont A}} \DeclareRobustCommand{\tetartemorion}{{\metricsfont B}} \DeclareRobustCommand{\stater}{{\metricsfont C}} \DeclareRobustCommand{\denarius}{{\metricsfont E}} \DeclareRobustCommand{\etos}{{\metricsfont G}} + \DeclareRobustCommand{\cut}[1]{% \ifx#1d\dcutbar\else \ifx#1b\bcutbar\else @@ -791,16 +905,16 @@ Type X to exit.}% \fi \fi \fi} -\def\dcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\dcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% d\dimen@1.2ex\kern\slant@\dimen@ \llap{\vrule\@height1.3ex\@depth-\dimen@ \ifdim\slant@\p@>\z@\@width.35em\else\@width.4em\fi\kern.03em}}} -\def\bcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\bcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% \rlap{\dimen@1.2ex\kern\slant@\dimen@ \ifdim\slant@\p@=\z@\kern.03em\fi \vrule\@height1.3ex\@depth-\dimen@ \ifdim\slant@\p@>\z@\@width.3em\else\@width.4em\fi}b}} -\def\gcutbar{{\edef\slant@{\expandafter\numero\the\fontdimen1\font}% +\def\gcutbar{{\edef\slant@{\strip@pt\fontdimen1\font}% \ifdim\slant@\p@>\z@ g\kern-.55ex\dimen@.2ex\kern-\slant@\dimen@ \vrule\@height-.1ex\@depth\dimen@\@width.6ex @@ -808,9 +922,11 @@ Type X to exit.}% \dimen@.2ex\kern\slant@\dimen@\vrule\@height.3ex\@depth-\dimen@ \@width.6ex\kern-.55ex\relax g \fi}} -\newcommand*{\OSN}[1]{\oldstylenums{#1}} + +\let\OSN\oldstylenums + \newcommand\splus{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{s}% \dimen@=\wd\z@ \setbox\tw@\hbox{$\scriptscriptstyle+$}% @@ -820,7 +936,7 @@ Type X to exit.}% \kern\slant@\dimen@\kern-.5\wd\tw@\box\tw@}}% \box\z@}}% \newcommand\stimes{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{s}% \dimen@=\wd\z@ \setbox\tw@\hbox{$\scriptscriptstyle\times$}% @@ -830,7 +946,7 @@ Type X to exit.}% \kern\slant@\dimen@\kern-.5\wd\tw@\box\tw@}}% \box\z@}}% \newcommand\kclick{\leavevmode{% - \edef\slant@{\expandafter\numero\the\fontdimen1\font}% + \edef\slant@{\strip@pt\fontdimen1\font}% \setbox\z@\hbox{k}% \setbox\tw@\hbox{\fontencoding\GRencoding@name\selectfont\s{v}}% \dimen@\wd\z@ @@ -840,25 +956,29 @@ Type X to exit.}% k\makebox[\z@][r]{\unhcopy\tw@\kern.5\dimen@}% }}% -%%%%%%%%%%%%%%%%%%%%%%%%%% verse environments \newcounter{verso}\setcounter{verso}{0} -\newcommand{\smallvert}{\vrule\@height1ex} +\newcommand{\smallvert}{\vrule\@height.6ex\@depth.4ex} + \DeclareRobustCommand\verso[1][]{% \def\@tempA{#1}\ifx\@tempA\empty \else \setcounter{verso}{#1}\addtocounter{verso}{\m@ne}% \fi \refstepcounter{verso}% - \ensuremath{\mathop{\smallvert}\limits^{\theverso}}% - \space\ignorespaces -} + \@killglue\space + \ensuremath{\mathop{\smallvert}\limits^{\scriptscriptstyle\theverso}}% + \space\ignorespaces} + \newenvironment{versi}[1]{% \def\makelabel##1{##1} -\list{}{\settowidth\labelwidth{#1}\leftmargin\labelwidth +\setbox\z@\hbox{#1}% +\list{}{\labelwidth\wd\z@\leftmargin\labelwidth \advance\leftmargin\labelsep}% + \item[\box\z@] }{% \endlist } +\let\versus\versi \let\endversus\endversi \newif\ifBreakVersi \BreakVersifalse \newenvironment{Versi}[1][1]{% @@ -868,9 +988,9 @@ Type X to exit.}% \multiply\count255by5\relax \advance\count255-\value{verso}% \ifnum\count255=\z@ - {\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% + {\fontseries{m}\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% \else - \empty + \empty \fi}% \def\\{\@ifstar{\v@rscr{\@M}}{\v@rscr{\z@}}}% \def\v@rscr##1{\@ifnextchar[{\wr@teverse{##1}}% @@ -907,6 +1027,8 @@ Type X to exit.}% \egroup \endlist } +\let\Versus\Versi \let\endVersus\endVersi + \newcounter{subverso} \setcounter{subverso}{0} \newif\ifSubVerso \newlength{\versoskip} @@ -918,21 +1040,22 @@ Type X to exit.}% \global\protected@edef\@currentlabel{\the\c@subverso}% \fi \global\versoskip.3em\ignorespaces} + \newenvironment{VERSI}[1][1]{% \setcounter{verso}{#1}% \def\writ@verso{% \count255=\value{verso}\divide\count255by5\relax \multiply\count255by5\relax \advance\count255-\value{verso}% - \ifnum\count255=0\relax - {\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% + \ifnum\count255=0\relax + {\fontseries{m}\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% \else - \empty + \empty \fi}% \NoSubVerso \def\writ@subverso{% \ifSubVerso - {\scriptsize\expandafter\oldstylenums + {\fontseries{m}\scriptsize\expandafter\oldstylenums \expandafter{\the\c@subverso}}% \fi}% \def\\{\@ifstar{\v@rscr{\@M}}{\v@rscr{\z@}}}% @@ -968,8 +1091,9 @@ Type X to exit.}% \item\leavevmode\setbox\z@\hbox\bgroup\ignorespaces }{% \\% - \egroup\endlist -} + \egroup\endlist} +\let\VERSUS\VERSI \let\endVERSUS\endVERSUS + \DeclareRobustCommand\lunga{{\metricsfont l}} \let\longa\lunga \let\br@ve\breve @@ -989,6 +1113,7 @@ Type X to exit.}% \let\ubarsbrevis\ubarsbreve \DeclareRobustCommand{\ubrevelunga}{{\metricsfont\char107}} \let\ubrevislonga\ubrevelunga + \DeclareRobustCommand\corona{{\metricsfont\char20}} \let\ElemInd\corona \DeclareRobustCommand\coronainv{{\metricsfont\char21}} @@ -1003,15 +1128,17 @@ Type X to exit.}% \DeclareRobustCommand{\aeolicbii}{{\metricsfont I}} \DeclareRobustCommand{\aeolicbiii}{{\metricsfont J}} \DeclareRobustCommand{\aeolicbiv}{{\metricsfont K}} + \newif\ifmetricsfont\metricsfontfalse \def\stripsl@sh#1{\expandafter\@gobble\string#1} \def\2#1 {\csname2#1\endcsname} \def\3#1 {\csname3#1\endcsname} \def\4#1 {\csname4#1\endcsname} + \newcommand\newmetrics[2]{% \expandafter\@namedef\expandafter{\stripsl@sh#1}% - {{\metricsfonttrue#2}}% -} + {{\metricsfonttrue#2}}} + \newmetrics\iam{\barbreve\lunga\breve\lunga} \newmetrics\chor{\lunga\breve\breve\lunga} \newmetrics\enopl{\breve\lunga\breve\breve\lunga\breve\breve\lunga} @@ -1024,10 +1151,11 @@ Type X to exit.}% \newmetrics{\pentam}{\lunga\barbbreve\lunga\barbbreve\lunga\dBar \lunga\breve\breve\lunga\breve\breve\lunga} \newmetrics{\2tr}{\lunga\breve\lunga\X\ \lunga\breve\lunga\X\ } + \DeclareRobustCommand*{\metricstack}[2]% {$\mathord{\mathop{\hbox{#1\rule{\z@}{1ex}}}% - \limits^{\scriptscriptstyle\relax#2\relax}}$% -} + \limits^{\scriptscriptstyle\relax#2\relax}}$} + \newcommand*{\svert}{\vrule\@height.8ex\@depth.2ex\relax} \DeclareRobustCommand*{\textoverline}[1]{% \leavevmode\vbox{\setbox\z@\hbox{#1} @@ -1035,20 +1163,24 @@ Type X to exit.}% \hbox to\wd\z@{\hrulefill}\crcr \noalign{\kern.4ex\nointerlineskip}% \hfil\box\z@\hfil\crcr}}} + \newlength{\br@cedmetrics} \newcommand*{\verseskip}[1]{{% - \setbox\z@\hbox{\longa}\dimen@\wd\z@\leavevmode\hbox to#1\dimen@{}}% -} + \setbox\z@\hbox{\longa}\dimen@\wd\z@\leavevmode\hbox to#1\dimen@{}}} + \newenvironment{bracedmetrics}[1]{\def\Hfill{\leavevmode\hfill}% \settowidth{\br@cedmetrics}{#1}% \ifvmode\vskip1ex\fi $\displaystyle\left.% \vcenter\bgroup\hsize\br@cedmetrics\parindent\z@\parskip\z@ }{\egroup\right\}$} + +\RequirePackage{trace} \def\GTRON{\global\tracingcommands=\tw@ \global\tracingmacros=\tw@} \def\GTROF{\global\tracingcommands=\z@ \global\tracingmacros=\z@} \def\TRON{\tracingcommands=\tw@ \tracingmacros=\tw@} \def\TROF{\tracingcommands=\z@ \tracingmacros=\z@} + \def\@ifStar#1#2{\def\@tempA{#1}\def\@tempB{#2}\futurelet\@tempC\@testStar} \def\@testStar{\ifx\@tempC*\bbl@afterelse\expandafter\@tempA\@gobble\else \bbl@afterfi\@tempB\fi} @@ -1062,8 +1194,9 @@ $\displaystyle\left.% \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} \def\Gr@@knum@ral#1{\let\s@i\Digamma \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} -\def\grtoday{{\expandafter\greeknumeral\expandafter{\the\day}} % keep the space -\gr@c@month \space {\expandafter\greeknumeral\expandafter{\the\year}}} +\def\grtoday{{\expandafter\greeknumeral\expandafter{\the\day}}\space +\gr@c@month\space{\expandafter\greeknumeral\expandafter{\the\year}}} + \def\gr@@numeral#1{% \ifnum#1<\@ne\space\gr@ill@value{#1}% \else @@ -1115,6 +1248,45 @@ $\displaystyle\left.% \ifcase#1\or r\or s\or t\or u\or f% \or q\or y\or w\or \n@vecento\fi \gr@num@v} + +\DeclareTextSymbol{\Vmiria}{\GRencoding@name}{5} +\DeclareTextSymbol{\Vkilo}{\GRencoding@name}{4} +\DeclareTextSymbol{\Vetto}{\GRencoding@name}{3} +\DeclareTextSymbol{\Vdeka}{\GRencoding@name}{2} +\newcommand*\attic@ill@value[1]{\PackageWarning{teubner}{% +Illegal value (\number#1) for \string\ActicNumeral\space}} +\DeclareRobustCommand*\AtticNumeral[1]{% +\ifnum#1<\@ne \attic@ill@value{#1}\else + \ifnum#1>99999\relax \attic@ill@value{#1}\else + \AtticCycl@{#1} + \fi +\fi} + +\def\AtticCycl@#1{% + \bgroup + \countdef\valore=252\countdef\cifra=250\relax + \valore=#1\relax + \cifra=\valore\divide\cifra10000\relax + \valore=\numexpr\valore-\cifra*10000\relax + \ifnum\cifra>4\relax\Vmiria \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{M\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra1000\relax + \valore=\numexpr\valore-\cifra*1000\relax + \ifnum\cifra>4\relax\Vkilo \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{Q\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra100\relax + \valore=\numexpr\valore-\cifra*100\relax + \ifnum\cifra>4\relax\Vetto \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{H\advance\cifra\m@ne}% + \cifra=\valore\divide\cifra10\relax + \valore=\numexpr\valore-\cifra*10\relax + \ifnum\cifra>4\relax\Vdeka \advance\cifra-5\fi + \@whilenum\cifra>\z@\do{D\advance\cifra\m@ne}% + \cifra=\valore + \ifnum\cifra>4\relax P\advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{I\advance\cifra\m@ne}% + \egroup} + \endinput %% %% End of file `teubner.sty'. diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 1c1255497f6..67e252f72c1 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1757,6 +1757,7 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot' 'stix' => 'STIX_Font_Release_Documentation_2010.pdf', # no source 'stubs' => 'stubs.pdf', # no source 'susy' => 'susy.pdf', # no source + 'teubner' => 'teubner-doc.pdf', # no source 'xskak' => 'xskak.pdf', # no source ); -- cgit v1.2.3