diff options
author | Norbert Preining <norbert@preining.info> | 2020-11-19 03:02:56 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-11-19 03:02:56 +0000 |
commit | 760d89b8378840fd2799ef792b5300b760723bff (patch) | |
tree | d1e2cd4d09121d1307151aff10f36720c03f37f1 /macros/latex/contrib/teubner | |
parent | a1f21689acf2d63ab8b813a55c5bf4374a06d964 (diff) |
CTAN sync 202011190302
Diffstat (limited to 'macros/latex/contrib/teubner')
-rw-r--r-- | macros/latex/contrib/teubner/README | 44 | ||||
-rw-r--r-- | macros/latex/contrib/teubner/teubner-doc.pdf | bin | 381111 -> 400556 bytes | |||
-rw-r--r-- | macros/latex/contrib/teubner/teubner-doc.tex | 269 | ||||
-rw-r--r-- | macros/latex/contrib/teubner/teubner.dtx | 1287 | ||||
-rw-r--r-- | macros/latex/contrib/teubner/teubner.pdf | bin | 611666 -> 623831 bytes | |||
-rw-r--r-- | macros/latex/contrib/teubner/teubner.txt | 89 | ||||
-rw-r--r-- | macros/latex/contrib/teubner/teubnertx.sty | 91 |
7 files changed, 818 insertions, 962 deletions
diff --git a/macros/latex/contrib/teubner/README b/macros/latex/contrib/teubner/README index f1c8b924fc..1031c6c12d 100644 --- a/macros/latex/contrib/teubner/README +++ b/macros/latex/contrib/teubner/README @@ -1,6 +1,6 @@ -This accompanies the teubner bundle version 4.x dated November 2015 or later. +This accompanies the teubner bundle version 5.0 dated November 2020 or later. -Copyright 2010-2016 Claudio Beccari +Copyright 2010-2020 Claudio Beccari The bundle contains the files @@ -15,30 +15,36 @@ The bundle is distributed under the LPPL license version 1.3c or any later versi The bundle has the status of author maintained. -The main purpose of this bundle is to provide classical philologists with some -means for typesetting their documents that usually contain very specific mark up. +The main purpose of this bundle is to provide classical philologists with +some means for typesetting their documents that usually contain very +specific mark up. This version allows the typesetter to use both "italic" shapes: the Olga-like -and the Lipsian-like ones; it complies with the LICR (LaTeX Internal Character -Representation) of the Greek glyphs that avoid the kerning problems that arise -with the ligature mechanism embedded in the LGR encoded default CBfonts; it is -compatible with the use of different vector Latin Type 1 fonts; -contains new designs for the horizontally stretchable markers, et cetera. +and the Lipsian-like ones; it complies with the LICR (LaTeX Internal +Character Representation) of the Greek glyphs that avoid the kerning problems +that arise with the ligature mechanism embedded in the LGR encoded default +CBfonts; it is compatible with the use of different vector Latin Type 1 +fonts; contains new designs for the horizontally stretchable markers, et +cetera. Running pdflatex on the .dtx file produces both the documentation and extracts the byproduct files teubner.sty, teubnertx.sty, teubner.pdf. -The readable extended documentation file teubner-doc.pdf is obtained by running -pdflatex on the teubner-doc.tex file. +The readable extended documentation file teubner-doc.pdf is obtained by +running pdflatex on the teubner-doc.tex file. Moreover this teubner package generates on the fly the font description files necessary to use the LGR encoded Greek fonts with some non standard TeX -PostScript fonts; for example, it automatically generates the necessary 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. - -Please, be sure to work with a 2010 updated collection of the CBfonts; with a 2014 -updated version of the TeX system; with a babel version 3.9g or later; with the -language description file greek.ldf version 1.9b or later. The teubner package works also with previous versions of the above pieces of software, but with limited performances. +PostScript fonts; for example, it automatically generates the necessary +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. + +Please, be sure to work with a *2010* updated collection of the CBfonts; +moreover with a *2019* or later updated version of the TeX system; with a +babel version 3.9g or later; with the language description file greek.ldf +version 1.9b or later; teubner version 5.0 and later patches the +modifications of greek.ldf 1.10 so as cope with the ancient Greek numbering +system. The teubner package does not work with previous versions of +the above pieces of software; it may even produce fatal errors; therefore be sure to work only with a complete and up-to-date TeX system installation. Claudio Beccari claudio dot beccari at gmail dot com
\ No newline at end of file diff --git a/macros/latex/contrib/teubner/teubner-doc.pdf b/macros/latex/contrib/teubner/teubner-doc.pdf Binary files differindex 803ba492c4..8e7dd8cca7 100644 --- a/macros/latex/contrib/teubner/teubner-doc.pdf +++ b/macros/latex/contrib/teubner/teubner-doc.pdf diff --git a/macros/latex/contrib/teubner/teubner-doc.tex b/macros/latex/contrib/teubner/teubner-doc.tex index a1ec488d22..651f46cf2a 100644 --- a/macros/latex/contrib/teubner/teubner-doc.tex +++ b/macros/latex/contrib/teubner/teubner-doc.tex @@ -9,7 +9,7 @@ %\usepackage{pxfonts} \usepackage{mflogo} \usepackage[greek,english]{babel} -\def\workingdate{2016/03/31}% see two lines ahead +\def\workingdate{2020/11/01}% see two lines ahead \usepackage[boldLipsian,10pt,GlyphNames]% <-------- teubner options {teubner}[\workingdate]% <--- older versions don't work well \usepackage[scaled=0.90]{helvet} @@ -43,15 +43,15 @@ \usepackage{multicol} \title{\texttt{teubner.sty}% \thanks{This paper documents \texttt{teubner.sty} version \fileversion\ of \filedate.}\\ -An extension to the \textsf{greek} option\\ of the \babel\ package} +A package to extend the \textsf{greek} option\\ of the \babel\ package} \author{Claudio Beccari\thanks{\texttt{claudio dot beccari at gmail dot com}}} -\date{Turin, March 2016}% <---- this is the date of the teubenr-doc document! +\date{November 2020}% <---- this is the date of the teubenr-doc document! \def\comando#1{\expandafter\texttt\expandafter{\string#1}} \def\cs#1{\texttt{\char92#1}} \def\ARG#1{\texttt{\char123}\meta{#1}\texttt{\char125}} \def\meta#1{$\langle${\normalfont\itshape#1}$\rangle$} \let\marg\ARG\let\Arg\meta -\def\brArg#1{\texttt{\char123#1\char125}} +\def\Marg#1{\texttt{\char123#1\char125}}\let\brArg\Marg \def\opt#1{\texttt{[}\meta{#1}\texttt{]}} \def\g#1 {\textDidot{#1}} \def\l#1 {\textLipsias{#1}} @@ -74,9 +74,12 @@ An extension to the \textsf{greek} option\\ of the \babel\ package} \advance\textheight80pt \advance\topmargin-40pt +\providecommand\setfontsize{} +\DeclareRobustCommand*\setfontsize[2][1.2]{% +\linespread{#1}\fontsize{#2}{#2}\selectfont} + \begin{document}\errorcontextlines=20 -%\expandafter\show\csname ver@greek.ldf\endcsname %%versione del file-opzione \maketitle {\columnseprule=0.4pt @@ -85,46 +88,30 @@ An extension to the \textsf{greek} option\\ of the \babel\ package} \end{multicols}} \section{Introduction} -%\begin{sloppypar} -This package \texttt{teubner.sty} is an extension of the \textsf{greek} option -of the \babel\ package intended to typeset classical Greek with -a philological approach. This version 4.x cannot yet typeset the critical -apparatus as the philologists are used to, but may be this work will continue -and include also that facility. Apparently it is not incompatible with \textsf{eledmac}, but it may be considered a complement. -%\end{sloppypar} +This package \texttt{teubner.sty} is a module that extends the \textsf{greek} option of the \babel\ package intended to typeset classical Greek with a philological approach. This version 4.x cannot yet typeset the critical apparatus as the philologists are used to, but may be this work will continue and include also that facility. Apparently it is not incompatible with \textsf{eledmac}, but it may be considered a complement. {\tolerance=9999 This document does not substitute the official package documentation \texttt{teubner.dtx} and its typeset version \texttt{teubner.pdf}; it extends the information contained into those files.\par} This package is supposed to work with my CB fonts available on the -Comprehensive \TeX\ Archive Network (\textsc{ctan}); one of the actions of this -package consists in adding to the default ``italic'' Greek shape another one -called ``Lispiakos'' in Greece; this name derives from the high quality of the -fonts used in the printers' shops in the city of Lipsia in the past 100~years -or so; one of the printer shops that continues printing books for philologists -(since 1849) is the B.G.~Teubner Verlags\-gesell\-schaft, that publishes the -collection called ``Bibliotheca Scriptorum Graecorum et Latinorum -Teubneriana''. The name given to this extension package is in homage to that -printing company and to its high quality tradition in printing Greek texts. +Comprehensive \TeX\ Archive Network (\textsc{ctan}); one of the actions of this package consists in adding to the default “italic” Greek shape another one called “Lispiakos” in Greece; this name derives from the high quality of the fonts used in the printers' shops in the city of Lipsia in the past 100~years or so; one of the printer shops that continues printing books for philologists (since 1849) is the B.G.~Teubner Verlags\-gesell\-schaft, that publishes the collection called “Bibliotheca Scriptorum Graecorum et Latinorum Teubneriana”. The name given to this package is in homage to that printing company and to its high quality tradition in printing Greek texts. This package is generally loaded by default with any complete distribution of the \TeX\ system; in basic distributions it might not be there, but in general it is sufficient to use the distribution facilities for loading it; with MiKTeX, for example one uses the MiKTeX settings and the Package tab. With \TeX\-live it is sufficient to operate with the program \textsf{tlmgr}; and so on. -The problem, if there is one, is to have the full collection of the CB fonts; in partial distributions the scalable PostScript CB fonts are in one size, 10\,pt, and it is necessary to use the \emph{10pt} option in order to have the various enlarged or reduced sizes. For professional work, if the user has a partial \TeX\ system installation, it is necessary to load the \texttt{cbgreek-full} font collection and be sure that the map files are duly upgraded. In case, read your distribution instructions to see how to control and, possibly, how to provide for this upgrade. Please, notice that this very file has been typeset with the \emph{10pt} option in force, so that if you want to typeset it again from source, you need the minimum amount of vector fonts needed by \textsf{pdflatex} to do its job. +The problem, if there is one, is to have the full collection of the CB fonts; in partial distributions the scalable PostScript CB fonts are in one size, 10\,pt, and it is necessary to use the \emph{10pt} option in order to have the various enlarged or reduced sizes. For professional work, if the user has a partial \TeX\ system installation, it is necessary to load the \texttt{cbgreek-full} font collection and be sure that the map files are duly upgraded. In case, read your distribution instructions to see how to control and, possibly, how to provide for this upgrade. Please, notice that this very document has been typeset with the \emph{10pt} option in force, so that if you want to typeset it again from source, you need the minimum amount of vector fonts needed by \textsf{pdflatex} to do its job. -In any case this \texttt{teubner} extension package makes the CB font collection (full or reduced) directly compatible by construction with both the CM fonts (OT1 and T1 encoded; the latter ones are often referred to as the EC fonts) and with the LM fonts; it also contains adequate hooks in order to make them compatible and usable with other font collections; this very file has been successfully typeset using the CM and LM fonts, and also resorting to the Times and Palatino eXtended collections requested with the packages \texttt{txfonts}\footnote{Antonis Tsolomitis wrote package \textsf{txfontsb} for using a different Greek font collection together with the TX fonts so that the Latin and Greek glyph styles directly match each other; see the \textsf{txfontsb} package documentation for more information.} and \texttt{pxfonts} respectively. +In any case this \texttt{teubner} package makes the CB font collection (full or reduced) directly compatible by construction with both the CM fonts (OT1 and T1 encoded; the latter ones are often referred to as the EC fonts) and with the LM fonts; it also contains adequate hooks in order to make them compatible and usable with other font collections; this very file has been successfully typeset using the CM and LM fonts, and also resorting to the Times and Palatino eXtended collections requested with the packages \texttt{txfonts}\footnote{Antonis Tsolomitis wrote package \textsf{txfontsb} for using a different Greek font collection together with the TX fonts so that the Latin and Greek glyph styles directly match each other; see the \textsf{txfontsb} package documentation for more information.} and \texttt{pxfonts} respectively. -This additional documentation will start by briefly recalling some peculiarities -of the CB fonts and their mapping to the Latin keyboard; afterwards it will -list the new commands and their syntax. +This additional documentation will start by briefly recalling some peculiarities of the CB fonts and their mapping to the Latin keyboard; afterwards it will list the new commands and their syntax. \section{Usage} -The \pack{teubner} extension is loaded in the usual way, but there are some simple rules to follow: +The \pack{teubner} package is loaded in the usual way, but there are some simple rules to follow: \begin{quote} -\texttt{\string\usepackage}\opt{options}\brArg{teubner} +\texttt{\string\usepackage}\opt{options}\Marg{teubner} \end{quote} -Since \pack{teubner} is an extension of the \pack{babel} package, it must be loaded after the latter. If you load it before and/or if you load it after, but you invoked the \texttt{babel} package without specifying the \meta{greek} language and the \texttt{polutoniko} Greek language attribute, \texttt{teubner} refuses to be completely loaded and emits a message very clear on this subject, so that you know what you should do in order to use the facilities offered by its extensions. +Since \pack{teubner} is a module that adds to the |greek.ldf| support for \pack{babel} package the functionalities needed by the Hellenists, it must be loaded after the latter. If you load it before and/or if you load it after, but you invoked the \texttt{babel} package without specifying the \meta{greek} language and the \texttt{ancient} Greek language attribute, \texttt{teubner} refuses to completely load and outputs a message very clear on this subject, so that you know what you should do in order to use the facilities offered by this module. \noindent\textbf{Warning}: Some people like the Lipsian font shape and want to load it also for writing mathematics with it. No problem, but they shouldn't do this with \pack{teubner}, which is useful only to typeset Greek text. For using other alphabets in mathematics there are more suitable ways that rely on the commands described in the \texttt{fntguide.pdf} distributed with every \TeX\ system in \texttt{\$TEXMFDIST\slash doc\slash latex\slash base/}. @@ -144,7 +131,7 @@ Option & Meaning\R \\\hline \i GlyphNames & to be selected in order to have available also the set of macros that directly address the accented glyphs\\[1ex] \hline \end{tabular} -\caption{Options for the \pack{teubner} extension package}\label{t:opzioni} +\caption{Options for the \pack{teubner} package}\label{t:opzioni} \bhrule \end{table} @@ -154,13 +141,11 @@ You should never need (and therefore never use) the \textit{or} option for two r If you are using Latin fonts different from the CM , EC, or LM collections, you have to control what you get with or without the option \textit{boldLipsian}; generally speaking, this option is best used with darker normal fonts; I have tried the Times, the Palatino, and the Fourier ones, and actually this option is desirable. This might not be true with other vector fonts. -With the inclusion of the extended accent macros in the \pack{teubner} package (see below), the named accented glyphs should not be needed anymore; these accented glyph name macros are not defined by default, but for backwards compatibility they are available if the \emph{GlyphNames} option is specified; with the 2013 new Greek support for the \babel\ package, the extended accent macros are defined in a more efficient way and you should not need them any more; therefore, unless you specify this option, you avoid overloading the internal \TeX\ memory areas, thus leaving extra space for more useful extensions. I suggest you to let the \emph{default} option \textit{NoGlyphNames} act as its name implies, and make use of the extended accent macros, should the need arise (see below). Moreover, if your keyboard has facilities for entering polytonic Greek, or if you installa a keyboard driver that allows you to do so, you can directly input Greek text with the Greek alphabet, without using the transliteration provided by the Greek support for \babel. +With the inclusion of the extended accent macros in the \pack{teubner} package (see below), the named accented glyphs should not be needed anymore; these accented glyph name macros are not defined by default, but for backwards compatibility they are available if the \emph{GlyphNames} option is specified; with the 2013 new Greek support for the \babel\ package, the extended accent macros are defined in a more efficient way and you should not need them any more; therefore, unless you specify this option, you avoid overloading the internal \TeX\ memory areas, thus leaving extra space for more useful packages. I suggest you to let the \emph{default} option \textit{NoGlyphNames} act as its name implies, and make use of the extended accent macros, should the need arise (see below). Moreover, if your keyboard has facilities for entering polytonic Greek, or if you install a keyboard driver that allows you to do so, you can directly input Greek text with the Greek alphabet, without using the transliteration provided by the Greek support for \babel. \section{The CB Greek fonts} -The CB Greek fonts (full collection) come in all shapes, sizes and series as the European Modern fonts that conform with the T1 encoding introduced after the Cork Conference of the \TeX\ Users Group Society in 1991\footnote{If you want to or you have to use the single 10pt size fonts, you certainly produce smaller PDF files, at the expense of a slightly poorer typographical quality.}. The CB fonts conform -to the encoding that is still being called LGR, since up to now there is no -established encoding name for the Greek alphabet among the \TeX\ users, not -yet, at least. +The CB Greek fonts (full collection) come in all shapes, sizes and series as the European Modern fonts that conform with the T1 encoding introduced after the Cork Conference of the \TeX\ Users Group Society in 1991\footnote{If you want to or you have to use the single 10pt size fonts, you certainly produce smaller PDF files, at the expense of a slightly poorer typographical quality.}. The CB fonts conform to the encoding that is still being called LGR, since up to now there is no +established encoding name for the Greek alphabet among the \TeX\ users, not yet, at least. For several reasons I suggest to use the Latin Modern fonts, instead of the CM or EC (CM-Super) ones, because the former are piecewise continuously scalable, while the latter offer only fixed font sizes. Recently also the CM-Super fonts may be continuously scaled as the Latin Modern ones, but it is necessary to use a specific extra package without any option. The regular shape has capital letters with serifs that are in the same style as the Latin capital ones, while the lower case letters @@ -170,47 +155,36 @@ oblique (or slanted) versions. The CB fonts contain also the upright and slanted, medium and boldface small caps alphabets. -The ``italic'' shape was designed in order to imitate the Olga font designed so -as to have a contrasting style compared with the slanted Didot shape, in order -to play the same role as the italic letters play with the Latin roman -ones. The Olga alphabets come in medium and boldface series, and in -oblique and upright shapes. +The “italic” shape was designed in order to imitate the Olga font designed so as to have a contrasting style compared with the slanted Didot shape, in order to play the same role as the italic letters play with the Latin roman ones. The Olga alphabets come in medium and boldface series, and in oblique and upright shapes. The CB fonts are completed with the sans serif fonts, the monospaced typewriter fonts and the fonts for slides, besides an outline family that shows the regular shapes and series just with their contours; there is also a shape with serifed lower case letters. -The CB Lipsian fonts imitate the beautiful shapes used in -Lipsia; they come in medium, bold, and extra-bold series, without -an upright version, and they are meant to replace the -corresponding Olga shapes. Their `simple bold' series is good for mixing -with PostScript fonts, whose medium series is slightly blacker -than the corresponding EC and LM fonts nurmally used with \LaTeX; this is easily achieved by passing the \emph{boldLipsian} option when invoking this \pack{teubner} extension file. Notice that the Lipsian font produces an alternative to the ordinary `italic' Olga shape, it is not any more the default `italic' shape as it used to be with previous versions of this package; now, in the same document, you can use both shapes and produce both versions: +The CB Lipsian fonts imitate the beautiful shapes used in Lipsia; they come in medium, bold, and extra-bold series, without an upright version, and they are meant to replace the corresponding Olga shapes. Their `simple bold' series is good for mixing with PostScript fonts, whose medium series is slightly blacker than the corresponding EC and LM fonts normally used with \LaTeX; this is easily achieved by passing the \emph{boldLipsian} option when invoking this \pack{teubner} file. Notice that the Lipsian font produces an alternative to the ordinary ‘italic’ Olga shape, that is not any more the default `italic' shape as it used to be with previous versions of this package; now, in the same document, you can use both shapes and produce both versions: \foreignlanguage{greek}{\textit{Baq'ulides} -\textlatin{\upshape and} +\textlatin{and} \textli{Baq'ulides}}. -With the availability of the unslanted Olga font and the serifed lowercase alphabet, you can use also the \verb|\textui| and the \verb|\textrs| commands so as to obtain \foreignlanguage{greek}{\textui{Baq'ulides} \textlatin{\upshape and} \textrs{Baq'ulides}}; also in extended boldface: \foreignlanguage{greek}{\bfseries\textui{Baq'ulides} \textlatin{\upshape \mdseries and} \textrs{Baq'ulides}}. +With the availability of the upright Olga font and the serifed lowercase alphabet, you can use also the \verb|\textui| and the \verb|\textrs| commands so as to obtain \foreignlanguage{greek}{\textui{Baq'ulides} \textlatin{and} \textrs{Baq'ulides}}; also in extended boldface: \foreignlanguage{greek}{\bfseries\textui{Baq'ulides} \textlatin{\mdseries and} \textrs{Baq'ulides}}. -But if you really want to permanently change the ``italic'' Greek font shape to the Lipsian one, without keeping the alternative, then in your preamble add the following statements \emph{after} you have loaded the \texttt{teubner} package: +But if you really want to permanently change the “italic” Greek font shape to the Lipsian one, without keeping the alternative, then in your preamble add the following statements \emph{after} you have loaded the \texttt{teubner} package: \begin{verbatim} \addto\extrasgreek{\def\itdefault{li}}% \addto\noextrasgreek{\def\itdefault{it}}% \end{verbatim} -With these settings, \verb|\textit| and \verb|\textli| become equivalent and both use the Lipsian shape while typesetting Greek text. Reverting to Latin script the \verb|\textli| text command uses the italic shape by default and there is no need to add anything else to the \verb|\noextrasgreek| macro. +With these settings, \verb|\textit| and \verb|\textli| become equivalent and both use the Lipsian shape while typesetting Greek text. Reverting to Latin script the \verb|\textli| text command uses the italic shape by default and there is no need to add anything else to the +\verb|\noextrasgreek| macro. \subsection*{Technical information} Typesetting documents with different scripts sets forth some problems. The \emph{greek} option to the \babel\ package, besides setting up the typographical rules for Greek, as it does for any other language, provides the script change; it defines also the \verb|\textlatin| macro in order to typeset something with the Latin script while the default script is Greek, as well as the \verb|\textgreek| macro to typeset something with the Greek script when typesetting with a Latin one. Of course the usual \verb|\selectlanguage| and \verb|\foreinglanguage| commands, as well as the \texttt{otherlanguage} environment, provide for a global change of the typesetting characteristics or an environment where the settings are reset to Greek. -\noindent\textbf{Beware}! Differently from before, \verb|\textlatin| changes only the encoding and sets some other small details, but it does not reset the local font family to "roman", as it used to do before \verb|teubner| version~4.8. This was remarked by Jens Börstinghaus, whom I thank very much for this bug notification. In facts \verb|\textlatin| is often used behind the scenes by \LaTeX\ internal commands and the user has little or no control over the font characteristics; before the font family was reset to the default, instead of continuing with the current family, series and shape. Now it does, and the users should explicitly declare some other family, series or shape if they do not want the current ones. - - -With standard \babel\ the CB fonts used to work only in conjunction with the CM fonts with either the OT1 (real CM fonts) or T1 (EC fonts) encoding. Since the 2008 distribution of standard \babel, the CB fonts work fine also with the Latin Modern fonts. This \pack{teubner} extension tries to work seamlessly also with other font families, but it is not that simple. Some technical explanations are necessary. +With standard \babel\ the CB fonts used to work only in conjunction with the CM fonts with either the OT1 (real CM fonts) or T1 (EC fonts) encoding. Since the 2008 distribution of standard \babel, the CB fonts work fine also with the Latin Modern fonts. This \pack{teubner} module tries to work seamlessly also with other font families, but it is not that simple. Some technical explanations are necessary. When \LaTeX\ needs to use a specific font in a certain encoding and belonging to a particular family, series and shape, available in such and such sizes, it gets this information by reading a \emph{font description file}; this file's name is composed with the encoding and the family names glued together and has the extension \texttt{.fd}; for OT1 encoded Computer Modern CM regular (serifed) fonts this file would be \texttt{ot1cmr.fd}. Any other package that is requested for using different fonts defines possibly a different encoding and certainly different family names. For using the Times eXtended TX fonts with T1 encoding, the \texttt{txfonts.sty} package defines the family name \texttt{txr} (for serifed fonts) so that \LaTeX\ reads the font description file \texttt{t1txr.fd} that contains the relevant information for all the series, shapes, and sizes available. -The CB fonts are encoded according to the LGR encoding but have the same family names as the CM ones; since 2008, also the family names of the Latin Modern LM collection are recognised; therefore the relevant font description files for the regular\footnote{The regular lower case Greek alphabet does not have serifs; serifs are present in the font shape called `serifed' that corresponds to the\texttt{\string\textrs} font command.} family are \texttt{lgrcmr.fd} and \texttt{lgrlmr.fd} respectively. The two collections of description files are not equivalent with one another, and they are not equivalent to the OT1 or T1 encoded CM or LM fonts, in the sense that the series and shapes available for these sets of fonts are not identical, even if most of them are. +The CB fonts are encoded according to the LGR encoding but have the same family names as the CM ones; since 2008, also the family names of the Latin Modern LM collection are recognised; therefore the relevant font description files for the regular\footnote{The regular lower case Greek alphabet does not have serifs; serifs are present in the font shape called `serifed' that corresponds to the\texttt{\string\textrs} font command.} families are \texttt{lgrcmr.fd} and \texttt{lgrlmr.fd} respectively. The two collections of description files are not equivalent with one another, and they are not equivalent to the OT1 or T1 encoded CM or LM fonts, in the sense that the series and shapes available for these sets of fonts are not identical, even if most of them are. In this way with CM and LM fonts the script switching for the same (existing) series and shapes amounts to switching the encoding name. At the same time there might exist some font switching commands that refer to a series or shape that does not exist in the other script families; one important example in our case is the Lipsian shape that is available only with the CB fonts. There is no problem in declaring the Lipsian shape switching commands that behave in a proper way together with the CM and LM fonts, but even if I did my best for working with other font families, I am not 100\% confident that my macros restore correctly the other font characteristics when declaring a different series or shape. @@ -227,13 +201,13 @@ In this package I tried to forecast most situations, but I am not sure I coped w In particular I hooked the language changing declarations with suitable default family names; for example, when using the Times or the Palatino eXtended TX or PX fonts, three new family description files are created so as to connect the LGR encoding and the names of the above scalable fonts to the corresponding CB fonts\footnote{I chose the CM Greek families, instead of the LM ones, because only the former are described by means of macros that cope with the \emph{10pt} option to the \texttt{teubner} package; just in case\dots\ The actual used fonts are the same in any case, except possibly for the visual sizes; the CM fonts come in fixed sizes, while the LM fonts are continuously scalable by enlarging or reducing a smaller number of base visual sizes.}. -If you use different scalable fonts you can specify yourself the font associations you want to use; simply, after loading a package that sets other default font family or families, open the the package file and take notice of the new family names; for each \meta{latin} family (serifed, sans serif, monospace) create a connection with the corresponding \meta{greek} family by means of the following command: +If you use different scalable fonts you can specify yourself the font associations you want to use; simply, after loading a package that sets other default font family or families, open the package file and take notice of the new family names; for each \meta{latin} family (serifed, sans serif, monospace) create a connection with the corresponding \meta{greek} family by means of the following command: \begin{quote} \texttt{\string\ifFamily}\marg{latin}\marg{greek} \end{quote} right after the \verb|\usepackage| command with which you call that package. -Example: suppose you want to use the regular Fourier fonts to replace the default roman normal serifed fonts; then you should load the package \texttt{fourier} \emph{after} the \texttt{teubner} extension and specify: +Example: suppose you want to use the regular Fourier fonts to replace the default roman normal serifed fonts; then you should load the package \texttt{fourier} \emph{after} the \texttt{teubner} module and specify: \begin{verbatim} \usepackage{fourier} \Lipsiantrue @@ -241,20 +215,21 @@ Example: suppose you want to use the regular Fourier fonts to replace the defaul \end{verbatim} You can see that the family name \texttt{futs}, corresponding to the regular Fourier font family, has been matched to the CB Greek \texttt{cmr} font family; the name \texttt{futs} has been deduced by reading the \texttt{fourier.sty} file from which one can see that the family declaration for the regular Fourier font family is \texttt{futs}. This sort of coding does not take place with all fonts: if the Iwona fonts had to be chosen, for example, then the font family name would coincide with the font name, making it difficult to distinguish between the \emph{font name} and the \emph{font family name}. -Notice the \verb|\Lipsiantrue| command before issuing the matching command -\verb|\ifFamily}|. This command is optional and is used only if the composer wishes to use the Lipsian fonts; in this case the \texttt{li} shape is also defined, so that the \verb|\textli| and \verb|\lishape| commands do not issue any error message. At the end of the execution if the \verb|\ifFamily| command, the boolean switch is automatically reset to \verb|\Lipsianfalse|. +Notice the \verb|\Lipsiantrue| command before issuing the matching command \verb|\ifFamily}|. This command is optional and is used only if the composer wishes to use the Lipsian fonts; in this case the \texttt{li} shape is also defined, so that the \verb|\textli| and +\verb|\lishape| commands do not issue any error message. At the end of the execution of the \verb|\ifFamily| command, the boolean switch is automatically reset to \verb|\Lipsianfalse|. -\noindent\textbf{Warning}: According to several maintainers of the language support packages, the procedure used with \verb|\ifFamily|, that produces in the local working directory a real, permanent \texttt{.fd} file, is not the best approach to create such pairing of fonts. G\"unter Milde, for example, produce a \pack{substitutefontfamily} package that defines the command \comando\subtitutefontfamily\ which creates a similar association, but does not write anything to the disk; simply the created association declarations are stored in the job memory, so that when the typesetting job is over, no traces remain on disk; this certainly avoids clogging the disk with the same files scattered all over in different directories that were the working one for different typesetting jobs. +\noindent\textbf{Warning}: According to several maintainers of the language support packages, the procedure used with \verb|\ifFamily|, that produces in the local working directory a real, permanent \texttt{.fd} file, is not the best approach to create such pairing of fonts. G\"unter Milde, for example, produced a \pack{substitutefontfamily} package that defines the command \comando\subtitutefontfamily\ which creates a similar association, but does not write anything to the disk; simply the created association declarations are stored in the job memory, so that when the typesetting job is over, no traces remain on disk; this certainly avoids clogging the disk with the same files scattered all over in different directories that were the working ones for different typesetting jobs. -A small caveat: when you issue for the first time the command \verb|\ifFamily| you might not see the expected result (while with Milde's package you immediately obtain the expected result), and your Greek text might be typeset with the default ``Greek error font''. But the second time you typeset your document the expected result is obtained with the correct fonts. This is because with the very first run a new font description file is generated, and this file will be available only in subsequent typesetting runs. +A small caveat: when you issue for the first time the \verb|\ifFamily| command you might not see the expected result (while with Milde's package you immediately obtain the expected result), and your Greek text might be typeset with the default “Greek error font”. But the second time you typeset your document the expected result is obtained with the correct fonts. This is because with the very first run a new font description file is generated, and this file will be available only in subsequent typesetting runs. Nevertheless this does not imply that the correct fonts are used if the font switching macros are used without scoping groups or environments. Sometimes, when you use declarations instead of commands, it might be necessary to issue an apparently redundant \verb|\rmfamily| or \verb|\selectfont| command in order to re-establish the correct defaults. -In order to insert \emph{short texts} in Greek, either in Didot upright or in Lipsian inclined shape, the \emph{text} commands \verb|\textDidot| and \verb|\textLipsias| may be used, as well as a redefined \verb|\textlatin| \emph{text} command for typesetting a short Latin script text while typesetting in Greek; these macros should already select the correct encoding, family, series and shape in most circumstances. If the users want to change some of these font characteristics, they have to do it explicitly. +In order to insert \emph{short texts} in Greek, either in Didot upright or in Lipsian inclined shape, the \emph{text} commands \verb|\textDidot| and \verb|\textLipsias| may be used, as well as a redefined +\verb|\textlatin| \emph{text} command for typesetting a short Latin script text while typesetting in Greek; these macros should already select the correct encoding, family, series and shape in most circumstances. The \emph{text commands}, contrary to the corresponding \emph{text declarations}, typeset their argument within a group, so that the font characteristics are also correctly restored after the command execution is completed. -Therefore I suggest you to either use the text commands or to use the declarations as environment names (without the initial backslash), so that they provide the necessary group delimiters; it's syntactically correct and useful to input something such as: +Therefore I suggest you to either use the text commands or to use the declarations as environment names (without the initial backslash), so that they provide the necessary group delimiters; it is syntactically correct and useful to input something such as: \begin{quote} \verb|\begin{Lipsiakostext}|\\ \meta{Greek text to be typeset with the Lipsian font}\\ @@ -263,13 +238,13 @@ Therefore I suggest you to either use the text commands or to use the declaratio \section{Font installation} -In order to use the Greek CB fonts and the extensions provided with this -package, you need to install them, if they are not already installed by default when you install your preferred \TeX\ system \emph{complete} distribution. You can freely download those fonts from \acro{ctan}, where you can find both the PostScript scalable ones and the driver files for generating their bitmaped with \MF; since nowadays it's very unlikely that \LaTeX\ users limit themselves to a final DVI file, but typeset their documents in PDF (or PS formats), the pixel files are very unlikely needed to produce their final documents; the \MF\ pixel files just allow the DVI previewer (should one be used) to run \MF\ in the background in order to produce the necessary pixel files so as to display on the screen the typeset documents\footnote{I mean documents that have been typeset with \textsf{latex}, not with \textsf{pdflatex}.}. These days there are other solutions to preview directly the typeset output file in PDF format and to use the previewer for direct and inverse search, so that the DVI format becomes really necessary only in very special and rare occasions. In the future it's very likely that the choice among such PDF previewers is much greater than today: there are certainly the multi\-platform shell editors \textsf{TeXworks}, \textsf{TeXstudio}, and \textsf{Texmaker} that incorporate a PDF previewer capable of direct and inverse search; for modern Windows platforms there is the \textsf{SumatraPDF} previewer that may be configured to work with various shell editors in order to perform in the same way. For Mac platforms, besides the default shell editor and previewer \textsf{TeXShop}, and the multi-platform program \textsf{TeXworks}, the Mac specific \textsf{TeXnicle} and \textsf{Texpad}, one can proceed with \textsf{Aquamacs} as a shell editor and \textsf{Skim} as PDF previewer that work together so as to allow direct and inverse search. +In order to use the Greek CB fonts and the facilities provided by this +package, you need to install them, if they are not already installed by default when you install your preferred \TeX\ system \emph{complete} distribution. You can freely download those fonts from \acro{ctan}, where you can find both the PostScript scalable ones and the driver files for generating their bitmapped versions with \MF; since nowadays it's very unlikely that \LaTeX\ users limit themselves to a final DVI file, but typeset their documents in PDF (or PS formats), the pixel files are very unlikely needed to produce their final documents; the \MF\ pixel files just allow the DVI previewer (should one be used) to run \MF\ in the background in order to produce the necessary pixel files so as to display on the screen the typeset documents\footnote{I mean documents that have been typeset with \textsf{latex}, not with \textsf{pdflatex}.}. These days there are other solutions to preview directly the typeset output file in PDF format and to use the previewer for direct and inverse search, so that the DVI format becomes really necessary only in very special and rare occasions. In the future it's very likely that the choice among such PDF previewers is much greater than today: there are certainly the multi\-platform shell editors \textsf{TeXworks}, \textsf{TeXstudio}, and \textsf{Texmaker} that incorporate a PDF previewer capable of direct and inverse search; for modern Windows platforms there is the \textsf{SumatraPDF} previewer that may be configured to work with various shell editors in order to perform in the same way. For Mac platforms, besides the default shell editor and previewer \textsf{TeXShop}, and the multi-platform program \textsf{TeXworks}, the Mac specific \textsf{TeXnicle} and \textsf{Texpad}, the user can proceed with \textsf{Aquamacs} as a shell editor and \textsf{Skim} as PDF previewer that work together so as to allow direct and inverse search. \section{\TeX\ font metric files} -The package \texttt{teubner} requires the updated \TeX\ font metric files \texttt{.tfm} for all sizes and series of the Lipsian fonts. With your file system explorer go to the folder \texttt{\$TEXMFDIST/fonts/tfm/public/cbfonts/} and read the date of, say, \texttt{grml1000.tfm}; if this date precedes the year 2010, then this \texttt{.tfm} file is ``old'' and must be replaced, and you should update your Greek CB font collection (may be you should update your whole \TeX\ system installation). +The \texttt{teubner} package requires the updated \TeX\ font metric files \texttt{.tfm} for all sizes and series of the Lipsian fonts. With your file system explorer go to the folder \texttt{\$TEXMFDIST/fonts/tfm/public/cbfonts/} and read the date of, say, \texttt{grml1000.tfm}; if this date precedes the year 2010, then this \texttt{.tfm} file is “old” and must be replaced, and you should update your Greek CB font collection (may be you should update your whole \TeX\ system installation). -The updated \texttt{.tfm} files add some ligature and kerning information that is missing from the ``old'' ones. The Type~1 \texttt{pfb} font files have not been modified at all. +The updated \texttt{.tfm} files add some ligature and kerning information that is missing from the “old” ones. The Type~1 \texttt{pfb} font files have not been modified at all. \section{Greek text and Latin keys} @@ -290,11 +265,11 @@ letters}\label{t:corrispondenza} Notice that there is the possibility of inputting \texttt{c} in order to get the final sigma \textDidot{c}, but the CB fonts are -conceived with the non-Greek typist in mind, so that it is even +conceived with the non-Greek user in mind, so that it is even possible to input \texttt{s} at the end of words, because the whole software is smart enough to detect the word boundary and to use the correct shape of the letter sigma within or at the word -end. This mechanism is so ``sticky'' that it becomes difficult to +end. This mechanism is so “sticky” that it becomes difficult to type an isolated initial or middle sigma; the CB fonts contain an invisible character, \texttt{v}, that may be used for several purposes, one of which is to hide the word @@ -307,12 +282,12 @@ be used; if you type \verb"\M{v}" you get \enspace\textDidot{\M{v}}\enspace, while if you omit the invisible \texttt{v} you get \enspace\textDidot{\M{}}\enspace. -In LICR (\LaTeX\ Internal Character Representation), that is being used by the modern (2013) Greek support for \babel, the \texttt{v} character is represented by the macro \comando\textcompwordmark\ whose name recalls a compound word separator; actually it may perform also in this way; but it is a special character, not simply an invisible strut; it has the same category code as the other alphabetic characters, it has a very small width but its height is equal to the other lower case letters without ascenders; it's a real character even if in practice it is invisible; in particular it does not impeach hyphenation as an equally sized normal strut would do. But its usefulness is $(a)$ to hide the word boundary; $(b)$ to support an accent that would drop to the base line if this character was absent; $(c)$ to break ligatures in those rare cases where it's necessary to do so. +In LICR (\LaTeX\ Internal Character Representation), that is being used by the modern (2013) Greek support for \babel, the \texttt{v} character is represented by the macro \comando\textcompwordmark\ whose name recalls a compound word separator; actually it may play also this role; but it is a special character, not simply an invisible strut; it has the same category code as the other alphabetic characters, it has a very small width but its height is equal to the other lower case letters without ascenders; it's a real character even if in practice it is invisible; in particular it does not impeach hyphenation as an equally sized normal strut would do. But its usefulness is $(a)$ to hide the word boundary; $(b)$ to support an accent that would drop to the base line if this character was absent; $(c)$ to break ligatures in those rare cases where it's necessary to do so. Accents, spirits and dieresis may be input \emph{before} each letter (prefix notation) without using any particular control sequence, that is resorting to the ligature mechanism that is part of the font characteristics; but since with certain fonts this mechanism may break kernings, it's better to use the proper accent macros; the correspondence between the Latin symbols and the Greek -diacritical marks is shown in table~\ref{t:accenti}; all ``upper'' +diacritical marks is shown in table~\ref{t:accenti}; all “upper” diacritical marks must be prefixed (in any order), while the iota subscript must be postfixed. Therefore if you input \verb">'a|", you get~\textDidot{>'a|}. @@ -327,24 +302,22 @@ extended accent macros &\t\string\>&\t\string\<&\t\string\"&\t\string\'&\t\string\`&\t\string\~& \end{tabular} \caption{Correspondence between the Latin keyboard symbols and -Greek diacritical marks; extended accent macros are also shown; notice that a couple of ``high'' diacritical marks may be joined in one macro (in any order) to produce the same result as with two separate macros; in other words, \texttt{\string\>\string\'}, \texttt{\string\'\string\>}, \texttt{\string\>'} and \texttt{\string\'>} are equivalent with one another. For what concerns \texttt{\string\~}, see remarks below table~\ref{t:accentmacros}}\label{t:accenti} +Greek diacritical marks; extended accent macros are also shown; notice that a couple of “high” diacritical marks may be joined in one macro (in any order) to produce the same result as with two separate macros; in other words, \texttt{\string\>\string\'}, \texttt{\string\'\string\>}, \texttt{\string\>'} and \texttt{\string\'>} are equivalent with one another. For what concerns \texttt{\string\~}, see remarks below table~\ref{t:accentmacros}}\label{t:accenti} \bhrule \end{table} -Macrons and breves are just single glyphs and do not appear in combination with -any letter, due to the limitation of 256 glyphs per font; but they may be input -by means of commands \verb|\M| and \verb|\B| respectively when typesetting in Greek -in order to use them as single diacritics; for more than one diacritic superimposed to one another, when macrons and breves are involved, some other commands are available as shown in table~\ref{t:accentmacros}. +Macrons and breves are just single glyphs and do not appear in combination with any letter, due to the limitation of 256 glyphs per font; but they may be input by means of commands \verb|\M| and \verb|\B| respectively when typesetting in Greek in order to use them as single diacritics; for more than one diacritic superimposed to one another, when macrons and breves are involved, some other commands are available as shown in table~\ref{t:accentmacros}. The new (2013) Greek support for \babel\ contains now the LICR encoded accent macros that allow to use any encoding input method, including direct input of Greek characters. The internal representation of accent macros resorts to the same symbols shown in table~\ref{t:accenti}; simply they are prefixed by a backslash and/or the accent sequence is prefixed with one backslash; therefore \textDidot{>'a|} may be obtained with \verb+>'a|+, or \verb+\>\'a|+, or \verb+\>'a|+. The last form is to be preferred with some shapes as discussed in the following paragraphs. But the LICR (\LaTeX\ Internal Character Representation) is much more than this; it separates the input encoding from the output font encoding, so that direct literal greek input is possible (of course with the \opt{utf8} encoding) and the output is useful for both LGR encoded 8-bit fonts and the UNICODE encoded OpentType fonts; this way \pack{babel} and the Greek support for \babel, provided by the new \file{greek.ldf}, may be used also with \XeLaTeX\ and \LuaLaTeX. Moreover now (October 2014) file \file{greek.ldf} can select the ancient Greek hyphenation when typesetting with \pdfLaTeX\footnote{This is why with this release of the \pack{teubner} package, the default language attribute is set to \texttt{ancient}.}; with \pack{polyglossia} this possibility was available from the very beginning of the Greek support by this package. +The 2020 version of the \file{greek.ldf} file introduces some new coding incompatible with the extension provided by this module (up to version~48) to get Greek Milesian and Attic numerals. From \pack{teubner} version~5.0, the LICR codes used by the new \file{greek.ldf} file are extended in oder to get Greek numerals that use the ancient glyphs, and therefore some macros are redefined. On the occasion of this update, the necessary macros for the Greek numerals have been redefined by means of the \LaTeX\,3 language through the interface macros previously defined by the \pack{xparse} package and now (2020) integral part of the \LaTeX\ kernel; see below for further details. Together with the macros for inserting such symbols, a complete set is available for inserting any combination of diacritical marks over or under any letter, not only vowels: see table~\ref{t:accentmacros}. Of course the results may not be comparable with the ones one can obtain with the regular ligature mechanism or by using the LICR macros; the advantage of the redefined accent macros is twofold: (a) it is connected to the possibility of inserting macrons and breves and/or to set the various combinations over or under \emph{any} letter, even if it is a consonant; (b) for all accent vowel combinations that have a specific glyph in the font, the actual accented symbol is used so that kernings and ligatures are maintained; this result is achieved also by using the extended accent macros shown in the third line of table~\ref{t:accenti}; as shown elsewhere there is a noticeable difference between {\Lipsiakostext a>ut'os} and \textLipsias{a\s{u}t\'os} or \textLipsias{a\>ut\'os} or \textLipsias{a\>ut'os}. In this example the first word is typed in as \verb+a>ut'os+, while the other words may be typed in as \verb+a\s{u}t\'os+, or \verb*+a\us t\oa s+, or \verb+a\>ut'os+, or even in mixed form \verb*+a\us t'os+, thanks to the fact that there is no kerning between `tau' and `omicron with or without acute'. -The attentive reader might have noticed that some accent macros use the control symbols that are available for other standard \LaTeX\ environments or even defined in the \LaTeX\ kernel. Accent macros \cs{`}, \cs{'} and \cs{=} are already taken care by the \LaTeX\ kernel that uses a particular trick to use them as control macros in the \amb{tabbing} environment; therefore there should not be any conflict. +The attentive readers might have noticed that some accent macros use the control symbols that are available for other standard \LaTeX\ environments or even defined in the \LaTeX\ kernel. Accent macros \cs{`}, \cs{'} and \cs{=} are already taken care by the \LaTeX\ kernel that uses a particular trick to use them as control macros in the \amb{tabbing} environment; therefore there should not be any conflict. -On the opposite some conflicts may arise with \cs{<} and \cs{>}, as reported by David Kastrup. We have examined these conflict occurrences and we noticed that actually \cs{>} is defined as a `math wide space' command; an alias \cs{:} is defined immediately after the definition, and the \LaTeX\ handbook by Leslie Lamport does not even mention \cs{>}; therefore \cs{>} may be considered a leftover from the beginnings of \LaTeX, and it would be surprising if anybody used it; nevertheless\dots\ The control symbol \cs{<} has been reported as being used as a macro with a delimited argument \cs{<}\meta{arg}\texttt{>} in the documentation of package \pack{calc}. We immagine that it is very unlikely that this \pack{teubner} package might be used in another package documentation, but\dots +On the opposite some conflicts may arise with \cs{<} and \cs{>}, as reported by David Kastrup. We have examined these conflict occurrences and we noticed that actually \cs{>} is defined as a `math wide space' command; an alias \cs{:} is defined immediately after the definition, and the \LaTeX\ handbook by Leslie Lamport does not even mention \cs{>}; therefore \cs{>} may be considered a leftover from the beginnings of \LaTeX, and it would be surprising if anybody used it; nevertheless\dots\ The control symbol \cs{<} has been reported as being used as a macro with a delimited argument \cs{<}\meta{arg}\texttt{>} in the documentation of package \pack{calc}. We immagine that it is very unlikely that this \pack{teubner} module functionalities might be used in another package documentation, but\dots These conflicts are avoided if Günter Milde package \pack{textalpha} is loaded; we did not find out any conflict in any testing run we made, but such conflicts may arise; therefore we decided to have \pack{teubner} load the \pack{textalpha} package at \verb|\begin{document}| execution time, so as to avoid any possible conflicts. @@ -394,41 +367,33 @@ fall on the very first vowel of a word. Suggestion; never use the \texttt{tabbin \end{table} \section{Ligatures} -It should be clear from the previous section that the ligature mechanism is the -one that offers good results with most accented vowels, while speeding up the keying-in of the text to be typeset; nevertheless there are situations where you might be unsatisfied. +It should be clear from the previous section that the ligature mechanism is the one that offers good results with most accented vowels, while speeding up the keying-in of the text to be typeset; nevertheless there are situations where you might be unsatisfied. For example compare \textLipsias{a>ut'os} with \textLipsias{a\>ut\'os}. The small spacing difference, if any, between tau and the accented omicron is not noticeable, but the spacing difference between alpha and the marked upsilon is remarkable. Where does that difference come from? It comes from the fact that the smooth spirit marker inhibits kerning between the previous alpha and the resulting ligature from the spirit marker and the upsilon\footnote{The CB fonts may be used also with monotoniko spelling; in this case \textLipsias{A"ULOS} comes out well even with ligatures \texttt{A"ULOS}, because a special kludge has been devised; with the extended accent macros it would not be too boring to typeset \texttt{A\string\"ULOS} and do away with that kludge; without it and without such extended macros that word would be set as \textLipsias{Av"ULOS} with a much larger space between the capital alpha and the marked capital upsilon.}. -In other words, by inputting \verb"a>ut'os", as it is suggested in the previous -section, the spirit marker and the acute accent inhibit the kerning mechanism with the previous letter. In most instances the lack of such kerning is hardly noticeable, but in others it strikes your attention. +In other words, by inputting \verb"a>ut'os", as it is suggested in the previous section, the spirit marker and the acute accent inhibit the kerning mechanism with the previous letter. In most instances the lack of such kerning is hardly noticeable, but in others it strikes your attention. -For this reason two mechanisms are implemented in this package: +For this reason two mechanisms are implemented in this package. \begin{enumerate}\itemsep=0pt\parsep=0pt -\item the extended accent macros created by Günter Milde are now the default setting in the Greek support for \babel, and -\item the character names have been defined with macros that access directly their own glyphs. +\item The extended accent macros created by Günter Milde are now the default setting in the Greek support for \babel, and +\item The character names have been defined with macros that access directly their own glyphs. \end{enumerate} -The first solution has been described in the previous section and the extended accent macros are shown in table~\ref{t:accenti}. At the expense of one slash, these macros create a chain of commands that deeply exploit the \LaTeXe\ kernel commands and allow to fetch directly each accented character; notice that there is no need to treat the \verb+|+ sign this way, because its postfixed position does not break the kerning/ligature mechanism. The spirit macros \verb+\>+ and \verb+\<+ work also with the consonant `r' to produce \textLipsias{\>r, \<r}. The extended accent macros work correctly also with capital letters (where, in all caps, accents should not be typeset, except the dieresis, while in normal initial capitalising the upper diacritics must be written at the left of the initial letter); for example\footnote{In the capitalised word the spirit and accent at the left of A imply a hiatus between the A and the \textDidot{u}; in the all caps word this hiatus is marked with the ``dialytika'' (dieresis) over the \textDidot{U}. This is an unusual example, but it shows also why the \texttt{\string\uppercase} and the \texttt{\string\MakeUppercase} require some attention in polytonic Greek.} \textDidot{\>'Aulos, A\"ULOS} was typeset with \verb+\>'Aulos, A\"ULOS+. Notice also that the initial capital vowel has a spirit and possibly an accent, or is not preceded by anything, since the possible spirit with or without accent falls on the second element of a descending diphthong: \textDidot{a\>ut'os}, \textDidot{A\>ut'os}, and \textDidot{AUTOS}; \textDidot{e\>'inai}, \textDidot{E\>'inai}, \textDidot{EINAI}. If you really want to show an example of how accents should \emph{not} be used in all caps words, you can type \textDidot{A\>UT\A{O}S} but you have to use the macros of +The first solution has been described in the previous section and the extended accent macros are shown in table~\ref{t:accenti}. At the expense of one slash, these macros create a chain of commands that deeply exploit the \LaTeXe\ kernel commands and allow to fetch directly each accented character; notice that there is no need to treat the \verb+|+ sign this way, because its postfixed position does not break the kerning/ligature mechanism. The spirit macros \verb+\>+ and \verb+\<+ work also with the consonant `r' to produce \textLipsias{\>r, \<r}. The extended accent macros work correctly also with capital letters (where, in all caps, accents should not be typeset, except the dieresis, while in normal initial capitalising the upper diacritics must be written at the left of the initial letter); for example\footnote{In the capitalised word the spirit and accent at the left of A imply a hiatus between the A and the \textDidot{u}; in the all caps word this hiatus is marked with the “dialytika” (dieresis) over the \textDidot{U}. This is an unusual example, but it shows also why the \texttt{\string\uppercase} and the \texttt{\string\MakeUppercase} require some attention in polytonic and ancient Greek.} \textDidot{\>'Aulos, A\"ULOS} was typeset with \verb+\>'Aulos, A\"ULOS+. Notice also that the initial capital vowel has a spirit and possibly an accent, or is not preceded by anything, since the possible spirit with or without accent falls on the second element of a descending diphthong: \textDidot{a\>ut'os}, \textDidot{A\>ut'os}, and \textDidot{AUTOS}; \textDidot{e\>'inai}, \textDidot{E\>'inai}, \textDidot{EINAI}. If you really want to show an example of how accents should \emph{not} be used in all caps words, you can type \textDidot{A\>UT\A{O}S} but you have to use the macros of table~\ref{t:accentmacros} as such: \verb+A\>UT\A{O}S+. -Another solution is available if the \emph{GlyphNames} option is specified to the \texttt{teubner} package: a set of macros has been defined such that it is -possible to input the accented characters directly, without -resorting to the ligature mechanism. Such macros have a common -structure; they are formed with the letters that make up the -complex glyph in a certain order, precisely every macro is made -up as such: +Another solution is available if the \emph{GlyphNames} option is specified to the \texttt{teubner} package: a set of macros has been defined such that it is possible to input the accented characters directly, without resorting to the ligature mechanism. Such macros have a common structure; they are formed with the letters that make up the complex glyph in a certain order, precisely every macro is made +up as follows \begin{enumerate}\itemsep=0pt\parsep=0pt -\item the first character, obviously, is the backslash character \texttt{\char92}; -\item the next character is the name of the base character, one of the vowels a, e, h, i, o, u, w, or the consonant r, or one of the capitalised vowels I~or~U; -\item the next optional character is the code for dieresis, or smooth, or rough spirit, with one of the letters d, s, r; -\item the next character is the code for the circumflex, acute, or grave accent with one of the letters c, a, or g; -\item the last optional character indicates iota subscript with the presence of an i; -\item there are no glyph names for upper case letters, since they should never be marked with diacritics, except for the diaeresis over \textDidot{I} and~\textDidot{U} and for these glyphs adequate names are provided. +\item the first character, obviously, is the backslash character \texttt{\char92}. +\item The next character is the name of the base character, one of the vowels a, e, h, i, o, u, w, or the consonant r, or one of the capitalised vowels I~or~U. +\item The next optional character is the code for dieresis, or smooth, or rough spirit, with one of the letters d, s, r. +\item The next character is the code for the circumflex, acute, or grave accent with one of the letters c, a, or g. +\item The last optional character indicates iota subscript with the presence of an i. +\item There are no glyph names for upper case letters, since they should never be marked with diacritics, except for the diaeresis over \textDidot{I} and~\textDidot{U} and for these glyphs adequate names are provided. \end{enumerate} -This means that, for instance, \comando\asai\ stands for \textDidot{\asai}. For -your convenience such macros are collected in table~\ref{t:compoundvowels}. -Of course one can always resort to the accent--vowel -combination as exemplified at the end of the previous section; the above -example \textDidot{\asai} may be obtained also with \verb+\>'a|+ or \verb+\As{a}|+.% +This means that, for instance, \comando\asai\ stands for \textDidot{\asai}. For your convenience such macros are collected in table~\ref{t:compoundvowels}. +Of course one can always resort to the accent--vowel combination as exemplified at the end of the previous section; the above example \textDidot{\asai} may be obtained also with \verb+\>'a|+ or +\verb+\As{a}|+.% \footnote{Postfixed markings do not pose any problem with kernings and ligatures; this is why the postfixed ligature for the iota subscript may still be used also when the accent--vowel combinations are used.} @@ -491,12 +456,11 @@ As we have seen in the previous sections the ligature and kerning mechanisms are The remarks concern the use of capital letters and, to a certain extent also the caps and small caps font shape. As mentioned before in Greek typography words with capital initials starting with a vowel require their diacritics in front and at the left of the initial capital vowel (for example:\textLipsias{>Aristot'elhs}) provided the vowel is not the first element of a Greek diphthong; in the latter case the diacritics go on top of the diphthong lower case second element (for example: \textLipsias{A>isq'ulos}). On the opposite, all-caps words, such as in book titles or, with certain \LaTeX\ classes, in the headings, are typeset without any diacritic, except the diaeresis. - I have already shown the unusual example of the word \textLipsias{>'aulos} where the first two vowels do not form a diphthong, but a hiatus; and this is why the diacritics fall on top of the alpha, not on the second element of the diphthong, for the very reason that there is no diphthong. In order to stress this unusual situation the word is most often spelled as \textLipsias{>'a\"ulos}, where the dieresis is sort of redundant, because the diacritics over the alpha already denote the hiatus. Similarly \textLipsias{>a\"upn'ia} is spelled with the redundant dieresis, although the soft spirit on the alpha already marks the hiatus. When these words require a capital initial, they become \textLipsias{>'A\"ulos} and \textLipsias{>A\"upn'ia}. -Notice that an initial single vowel may receive only a spirit marker with or without an accompanying accent, never a dieresis or a single accent\footnote{Of course we are talking of the polytonic spelling, since this package \texttt{teubner} sets this spelling as the default one; nobody forbids to spell in monotonic even when the polytonic spelling is assumed, but in some rare instances there might be some inconsistencies.}. I tried hard to set up all the ligature and extended accent macros so as to do the right things when capitalising or uppercasing, and if you follow the suggestions given in this section you should not meet any particular inconvenience. +Notice that an initial single vowel may receive only a spirit marker with or without an accompanying accent, never a dieresis or a single accent\footnote{Of course we are talking of the ancient spelling, since this package \texttt{teubner} sets this spelling as the default one; nobody forbids to spell in monotonic even when the ancient spelling is assumed, but in some rare instances there might be some inconsistencies.}. I tried hard to set up all the ligatures and extended accent macros so as to do the right things when capitalising or uppercasing, and if you follow the suggestions given in this section you should not meet any particular inconvenience. -Assume these words have to go in an all-caps header that is made up (behind the scenes) by making use of the \verb|\MakeUppercase| command; they have to be spelled \textLipsias{A\"ULOS} and \textLipsias{A\"UPNIA}, even if in the sectioning command argument they were spelled in lowercase with all the necessary diacritics. %>>>>> +Assume these words have to go in an all-caps header that is made up (behind the scenes) by making use of the \verb|\MakeUppercase| command; they have to be spelled \textLipsias{A\"ULOS} and \textLipsias{A\"UPNIA}, even if in the sectioning command argument they were spelled in lowercase with all the necessary diacritics. This is where the ligature and/or the extended accent macros may show their different behaviour. With the \texttt{teubner} generated secondary \texttt{LGRaccents-glyphs\discretionary{}{.}{.}def} file, that contains all the extended accent macros, such macros do not disappear in uppercasing, i.e.\ in transforming the mixed case argument of the \verb|\MakeUppercase| command into an all-caps letter string. On the opposite the ligature sequences completely loose any reference to diacritics. @@ -516,12 +480,11 @@ In other words we have: 10) \verb|\MakeUppercase{e>uzw\"ia}| yields \textLipsias{\MakeUppercase{e>uzw\"ia}}.%\\ \end{flushleft} % -and it's easily seen that: 1) corresponds to a non redundant lowercase correct spelling but misses the required dieresis in upper case; 2) is correct but it relies on a special kludge on which it's better not to rely on, because in future releases of the fonts it may be eliminated; meanwhile it is usable; 3) is correct; 4) is correct because \verb|\MakeUppercase| does not act on macros, but \verb|\>'| \emph{is} a macro, precisely an accent macro, that acts on the following letter before uppercasing, and the uppercase of an alpha with diacritics si simply the capital alpha; 5) is corret, but relies in the same kludge as case 2, so the same warnings apply; case 6) displays the result of using the accented glyph names which are not subject to capitalisation since they are given by means of macros; therefore they can never be used for words that are possibly subject to all-caps transformation. +and it's easily seen that: 1) corresponds to a non redundant lowercase correct spelling but misses the required dieresis in upper case; 2) is correct but it relies on a special kludge on which it's better not to rely on, because in future releases of the fonts it may be eliminated; meanwhile it is usable; 3) is correct; 4) is correct because \verb|\MakeUppercase| does not act on macros, but \verb|\>'| \emph{is} a macro, precisely an accent macro, that acts on the following letter before uppercasing, and the uppercase of an alpha with diacritics si simply the capital alpha; 5) is correct, but relies in the same kludge as case 2, so the same warnings apply; case 6) displays the result of using the accented glyph names which are not subject to capitalisation since they are given by means of macros; therefore they can never be used for words that are possibly subject to all-caps transformation. -Let's examine another case where the lower case word has both the dieresis and an accent over the same vowel: \textLipsias{e>uzw"'ia}. Case 7) shows the effect of uppercasing when using ligatures, and the result is not correct because the dieresis does not fall over the capital iota, but between the capital omega end th capital iota; 8) by simply inverting the sequence of the dieresis and the acute accent a correct result is obtained, but kerning problems might take place because of the invisible presence of the lower cased acute accent; notice that the same result would be obtained if instead of the dieresis-vowel ligature the extended dieresis macro had been used; case 9) displays the situation when both extended accent macros are used so that the result does not suffer of any kerning problem; finally, case 10) displays a correct upper case result but the lower case counterpart would miss the acute accent. +Let's examine another case where the lower case word has both the dieresis and an accent over the same vowel: \textLipsias{e>uzw"'ia}. Case 7) shows the effect of uppercasing when using ligatures, and the result is not correct because the dieresis does not fall over the capital iota, but between the capital omega end the capital iota; 8) by simply inverting the sequence of the dieresis and the acute accent a correct result is obtained, but kerning problems might take place because of the invisible presence of the lower cased acute accent; notice that the same result would be obtained if instead of the dieresis-vowel ligature the extended dieresis macro had been used; case 9) displays the situation when both extended accent macros are used so that the result does not suffer of any kerning problem; finally, case 10) displays a correct upper case result but the lower case counterpart would miss the acute accent. -When using small caps or caps and small caps, in other words, when using the -\verb|\scshape| declaration or the \verb|\textsc| command you should pay attention to other details; for example: +When using small caps or caps and small caps, in other words, when using the \verb|\scshape| declaration or the \verb|\textsc| command you should pay attention to other details; for example: \begin{flushleft} 11) \verb|\textDidot{\scshape >Arqim'hdhs}| yields \textDidot{\scshape>Arqim'hdhs}\\ 12) \verb|\textDidot{\scshape \>Arqim'hdhs}| yields \textDidot{\scshape\>Arqim'hdhs}\\ @@ -531,7 +494,9 @@ When using small caps or caps and small caps, in other words, when using the 16) \verb|\textDidot{\scshape \>{v}Arqim\'hdhs}| yields \textDidot{\scshape\>{v}Arqim\'hdhs}\\ \end{flushleft} -With caps and small caps a spirit, or a spirit-accent combination prefixed to a capital letter does not produce any mark; this is the usual modern Greek habit of avoiding accents with capital letters and the \verb|\scshape| specification to Greek fonts excludes all the ligatures and kernings with such signs; the same holds true also with small caps. The extended accent macros explicitly avoid any mark over capital letters, but even in front they are ``silenced'' by the very characteristics of the specific font shape. With small caps there is a similar situation, and the extended accent macros produce the expected result. But accents are apparently used in French also when proper names are typeset in caps and small caps, contrary to Greek, so that in French the spelling of case 16 is correct; for the initial spirit, therefore it is necessary to resort to the invisible character obtained with the Latin letter `v', that is uppercased to itself and is suitable for supporting any diacritic mark at the proper height. Julien Browaeys pointed out this specific typesetting French tradition; I thank him very much for his feedback on this point. +%>>>>>>>>> + +With caps and small caps a spirit, or a spirit-accent combination prefixed to a capital letter does not produce any mark; this is the usual modern Greek habit of avoiding accents with capital letters and the \verb|\scshape| specification to Greek fonts excludes all the ligatures and kernings with such signs; the same holds true also with small caps. The extended accent macros explicitly avoid any mark over capital letters, but even in front they are “silenced” by the very characteristics of the specific font shape. With small caps there is a similar situation, and the extended accent macros produce the expected result. But accents are apparently used in French also when proper names are typeset in caps and small caps, contrary to Greek, so that in French the spelling of case 16 is correct; for the initial spirit, therefore it is necessary to resort to the invisible character obtained with the Latin letter `v', that is uppercased to itself and is suitable for supporting any diacritic mark at the proper height. Julien Browaeys pointed out this specific typesetting French tradition; I thank him very much for his feedback on this point. Conclusion: when writing the input code for a sectioning command, the argument of which has to be transformed to upper case, use \verb|\"| (in the proper sequence with other accents) for the internal diereses, as in cases 3), 4), 8), and 9) above. With the extended accent macros there are really few problems; the remaining ones take place in complete uppercasing remain with French traditions in caps and small caps that can be easily handled through the use of the \texttt{v} special invisible glyph. If you want to avoid also this possibility, then either avoid classes that typeset their headings in all-caps, or use any external package that defines sectioning commands with two optional arguments, one for the heading contents and the other for the table of contents; or use equivalent tricks: for example the \texttt{memoir} class has a specific command \verb|\nouppercaseheads| that eliminates any heading uppercasing. @@ -539,12 +504,12 @@ Conclusion: when writing the input code for a sectioning command, the argument o Other Greek symbols may be obtained with ligatures or explicit commands; table~\ref{t:gsymbols} contains such ligatures and symbols; notice that some of these are specific additions -introduced with this extension package. +introduced with this module. \begin{table}\thrule\let\c\comando\let\l\textDidot \makebox[\textwidth]{% \begin{tabular}{lclclc} -\c{''} &\l{''} &\c{((} &\l{((} &\c{))} &\l{))} \\ +\c{'{}'} &\l{''} &\c{((} &\l{((} &\c{))} &\l{))} \\ \c\GEodq &\l\GEodq &\c\GEcdq &\l\GEcdq &\c: &\l: \\ \c\GEoq &\l\GEoq &\c\GEcq &\l\GEcq &\c? &\l? \\ \c\ENodq &\l\ENodq &\c\ENcdq &\l\ENcdq &\c; &\l; \\ @@ -559,56 +524,44 @@ introduced with this extension package. \bhrule \end{table} -I draw your attention on the necessity of using the ligature -\comando{''} for producing the simple apostrophe, which, by the -way, in Greek typography must always be followed by a space. The -single tick mark \comando'\ produces an acute accent, not an -apostrophe, this is why it is necessary to use the double tick -mark ligature. Actually also a double quote mark \verb+"+ followed by a space produces an apostrophe followed by a space. +Please notice the necessity of using the ligature \comando{'{}'} for producing the simple apostrophe, which, by the way, in Greek typography must always be followed by a space. The single tick mark \comando'\ produces an acute accent, not an apostrophe, this is why it is necessary to use the double tick mark ligature. Actually also a double quote mark \verb+"+ followed by a space produces an apostrophe followed by a space. \section{Milesian and Attic numerals} The Milesian numerals should not worry anybody, because they are seldom used as -isolated symbols; the \textsf{greek} or \textsf{polutonikogreek} language option or the \textsf{polutoniko} attribute of the Greek language with the \babel\ package offer the commands \comando\greeknumeral\ and -\comando\Greeknumeral, that convert common arabic positive numbers in the -Milesian counterparts within a Greek section of your document; the -corresponding commands followed by an asterisk change the digamma glyph with -the stigma one\footnote{The stigma version is the standard one with the -\babel\ language support for Greek; with this package we -adopted the digamma as the ``regular'' sign with the value of~6, and attributed -stigma to the ``variant'', archaic representation of Milesian numbers. Here the archaic qoppa sign is used for the value 90; compare the archaic sign \textDidot{\coppa} with the modern one \textDidot{\koppa}.}: -\begin{quote}\obeylines -if you type \verb"\greeknumeral{1996}" you get \textLipsias{\greeknumeral{1996}} -if you type \verb"\Greeknumeral{1996}" you get \textLipsias{\Greeknumeral{1996}} -if you type \verb"\greeknumeral*{1996}" you get \textLipsias{\greeknumeral*{1996}} -if you type \verb"\Greeknumeral*{1996}" you get \textLipsias{\Greeknumeral*{1996}} -if you type \verb+\greeknumeral{123456}+ you get \textLipsias{\greeknumeral{123456}} -if you type \verb+\greeknumeral{234567}+ you get \textLipsias{\greeknumeral{234567}} -This was typeset on \begin{otherlanguage}{greek}\grtoday, \end{otherlanguage} which is \today. +isolated symbols; the \textsf{greek} or \textsf{greek.ancient} language option or the \textsf{ancient} attribute of the Greek language with the \babel\ package offer the commands \comando\greeknumeral\ and +\comando\Greeknumeral, that convert common Arabic positive numbers in the +Milesian counterparts within a Greek section of the document; but the 2020 version of the \file{greek.ldf} file has been modified in such a way that it performs very well with modern Greek, but is missing some features when the real ancient Greek has to be typeset. Since its first version \pack{teubner} had to redefine the above macros so as to use the ancient Milesian symbols \textqoppa, \textvarstigma, \textsampi, with the possibility of using \textdigamma\ in place of \textqoppa. + +Therefore version~5.0 of \pack{teubner} redefines those two \comando\greeknumeral\ and \comando\Greeknumeral\ in order to restore the ancient features for the philologist benefit.\footnote{Notice, though, that this document is typeset with the \texttt{txfonts} and the Greek \texttt{txfontsb} fonts; the latter have only the raised digamma glyph which is not suited for “ancient” Greek numerals; in this display example we switched to the usual Latin Modern fonts.} +\begin{quote}\fontfamily{lmr}\selectfont\obeylines +if you type \texttt{\comando\greeknumeral\{1996\}} you get % +\greeknumeral{1996} +if you type \texttt{\comando\Greeknumeral\{1996\}} you get % +\Greeknumeral{1996} +if you type \texttt{\comando\greeknumeral*{1996}} you get % +\greeknumeral*{1996} +if you type \texttt{\comando\Greeknumeral*{1996}} you get % +\Greeknumeral*{1996} +if you type \texttt{\comando\greeknumeral\{123456\}} you get % +\greeknumeral{123456} +This was typeset on \begin{otherlanguage}{greek}\grtoday, \end{otherlanguage} i.e. \the\day\ \ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or + December\fi\ \the\year. \end{quote} The \textsf{teubner} package offers also the possibility of typesetting the Attic numerals, without the need of loading Apostolos Syropoulos' \textsf{athnum} package; the functionality is the same, although the code is different; in order to avoid clashes, the \textsf{teubner} command for transforming Arabic numerals into Attic ones is \comando\AtticNumeral. As for the original macro, the maximum value that can be transformed is 99\,999, while, of course, no vanishing or negative numbers can be transformed: \begin{quote}\obeylines -if you type \verb|\AtticNumeral{2015}| you get \textLipsias{\AtticNumeral{2015}} -if you type \verb|\AtticNumeral{1999}| you get \textLipsias{\AtticNumeral{1999}} -if you type \verb|\AtticNumeral{55555}| you get \textLipsias{\AtticNumeral{55555}} +if you type \texttt{\comando\AtticNumeral\{2015\}} you get \textLipsias{\AtticNumeral{2015}} +if you type \texttt{\comando\AtticNumeral\{1999\}} you get \textLipsias{\AtticNumeral{1999}} +if you type \texttt{\comando\AtticNumeral\{55555\}} you get \textLipsias{\AtticNumeral{55555}} \end{quote} \section{New commands} -This extension package introduces many new commands for -typesetting Greek in a philological way. Most such commands are collected in table~\ref{t:extcomandi}. - -A short remark on the command \comando\ap: this useful command inserts -\emph{anything} as a superscript of anything else; it works both in text mode -and in math mode\footnote{Numerical superscripts or apices do not require math -mode; numerical footnote labels are automatically inserted by \LaTeX's -\comando\footnote\ command; non numerical footnote labels are easily inserted -with \LaTeX's \comando\footnotemark\ and \comando\footnotetext\ commands with -their optional arguments.}. In particular while typesetting a philological text -in different languages and with different alphabets, \comando\ap\ typesets the -superscript with the current language and alphabet; if any change is required, -the \comando\ap's argument can contain any language or alphabet specific -declaration. You can typeset something such as \textLipsias{Baq\'ulides\,\ap{\textlatin{a}}} by switching language and alphabet as required; the specific declarations and the commands contained in table~\ref{t:extcomandi} come handy also in these cases. +This package introduces many new commands for typesetting Greek in a philological way. Most such commands are collected in table~\ref{t:extcomandi}. + +A short remark on the command \comando\ap: this useful command inserts \emph{anything} as a superscript of anything else; it works both in text mode and in math mode\footnote{Numerical superscripts or apices do not require math mode; numerical footnote labels are automatically inserted by \LaTeX's \comando\footnote\ command; non numerical footnote labels are easily inserted with \LaTeX's \comando\footnotemark\ and \comando\footnotetext\ commands with their optional arguments.}. In particular while typesetting a philological text in different languages and with different alphabets, \comando\ap\ typesets the superscript with the current language and alphabet; if any change is required, the \comando\ap's argument can contain any language or alphabet specific declaration. You can typeset something such as \textLipsias{Baq\'ulides\,\ap{\textlatin{a}}} by switching language and alphabet as required; the specific declarations and the commands contained in table~\ref{t:extcomandi} come handy also in these cases. \begin{table}[!p]\thrule%\centering @@ -680,7 +633,7 @@ The metric glyph names are collected in table~\ref{t:metrics}, while the declaration command is described hereafter. The syntax for that definition command is similar to that of -{\comando\newcommand}; +\comando{\newcommand}; \[ \hbox{\comando\newmetrics\ARG{name}\ARG{definition}} \] @@ -737,7 +690,7 @@ visible result as \c\hiatus, except for the fact that it does not occupy horizontal space; it is useful in the definitions of full verse metrics where a hiatus needs to be inserted between two consecutive metric symbols; for example: \longa\Hiatus\longa\,.\\ -\ap{2}\quad This extension package predefines some examples +\ap{2}\quad This module predefines some examples of metric feet and complete verses.\\ \ap{3}\quad Sometimes it might be convenient to use a shortcut for inserting the Aeolic bases @@ -770,7 +723,7 @@ the composition of verses. In order to set poetry it is always possible to use the standard \LaTeX\ \texttt{verse} environment; nevertheless such simple environment is not suited for philological purposes, except -perhaps for very short citations. This extension package contains +perhaps for very short citations. This module contains three new environments with various levels of complexity. Due to their relative complexity an example will be given for each one with both the input code and the corresponding result. All three @@ -975,10 +928,10 @@ j\rbrk 'arsos;\Dots[4] \end{VERSI}%} \NoLipsiakostext -\item[\texttt{bracedmetrics}] This is an environment different +\item[\texttt{bracedmetrics}] This environment is different from the preceding ones, although it always deals with verses. Its purpose is to set the verse metric lines grouped with a right -brace, so as to show the variants of a certain metric scheme. +brace, so as to show the variants of a certain metric scheme. In order to align the metric variants and in order to place the right brace in the proper place it is necessary to fix specific @@ -1051,7 +1004,7 @@ which produces: \end{description} \section*{Acknowledgements} -This project was initially carried on with the help of Mr Paolo Ciacchi when he was writing his ancient Greek philology ``master thesis''. After he got his ``master's'' degree at the University of Trieste, I continued by myself, but I remain really indebted to Mr~Ciacchi. +This project was initially carried on with the help of Mr Paolo Ciacchi when he was writing his ancient Greek philology master thesis. After he got his master's degree at the University of Trieste, I continued by myself, but I remain really indebted to Mr~Ciacchi. \end{document} diff --git a/macros/latex/contrib/teubner/teubner.dtx b/macros/latex/contrib/teubner/teubner.dtx index f7b457ada7..fc126c7554 100644 --- a/macros/latex/contrib/teubner/teubner.dtx +++ b/macros/latex/contrib/teubner/teubner.dtx @@ -4,7 +4,7 @@ \input docstrip.tex \keepsilent \preamble -Copyright 2001--2015 Claudio Beccari All rights reserved. +Copyright 2001--2020 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 @@ -15,21 +15,10 @@ dated 2008-05-04 or later as it appears in CTAN/macros/latex/base/lppl.tex. See the end of the file. -IMPORTANT NOTICE: - -You are allowed to distribute this file under the conditions that are -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. \endpreamble \postamble It may be distributed and/or modified under the - conditions of the LaTeX Project Public License, either version 1.3 + conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt @@ -47,14 +36,14 @@ charge for copying, etc. % % \iffalse %^^A The following trick uses the same date for every file header. -%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\NeedsTeXFormat{LaTeX2e}[2020-01-01] %<*driver> \ProvidesFile{teubner.dtx}[% %</driver> %<package>\ProvidesPackage{teubner}[% %<tbtx>\ProvidesPackage{teubnertx}[% %<*driver,package,tbtx> -2016/03/31 v.4.8 +2020/11/17 v.5.0 %<package>Extensions for Greek philology] %<tbtx>Access to the LGR encoded Greek fonts that match the TX fonts] %</driver,package,tbtx> @@ -78,6 +67,13 @@ charge for copying, etc. \renewcommand*\meta[1]{{\normalfont\textlangle\textit{#1}\textrangle}} \newcommand*\pack[1]{\textsf{#1}} \newcommand*\acro[1]{\expandafter\textsc\expandafter{\MakeLowercase{#1}}} + \providecommand\cs{} + \renewcommand\cs[1]{\textnormal{\texttt{\bslash#1}}} + \providecommand\marg{} + \renewcommand\marg[1]{\textnormal{\ttfamily\{\meta{#1}\}}} + \newcommand\Marg[1]{\textnormal{\ttfamily\{#1\}}} + \renewcommand\oarg[1]{\textnormal{\ttfamily[\meta{#1}]}} + \newcommand\Oarg[1]{\textnormal{\ttfamilt[#1]}} \usepackage{multicol} \usepackage[T1]{fontenc} \usepackage{lmodern,textcomp} @@ -88,7 +84,7 @@ charge for copying, etc. %</driver> % \fi % -% \CheckSum{4368} +% \CheckSum{4130} % \begin{multicols}{2}\tableofcontents\end{multicols} % % @@ -97,8 +93,8 @@ charge for copying, etc. % package so as to enable the use of the Lipsian\footnote{What here % are called Lipsian fonts are a family of fonts that in Greece are % called ``Lipsiakos''; they are similar to the ones that were being -% used in the Teubner Printing Company of Lipsia from mid XIX century on.} -% fonts and to use several macros for inserting special annotations +% used in the Teubner Printing Company of Lipsia from mid XIX century +% on.} fonts and to use several macros for inserting special annotations % in the written text, as well as to typeset verses with special % layout. Metric sequences may be defined and typeset by means of a % companion font \texttt{gmtr????} that follows the same conventions @@ -107,15 +103,16 @@ charge for copying, etc. % % Examples and lists of commands are available in the file % \texttt{teubner-doc.pdf} which, as a regular pdf file, embeds all -% the necessary fonts and may be read on screen as well as printed on paper; -% beware, though, that the PostScript fonts that are being used +% the necessary fonts and may be read on screen as well as printed on +% paper; beware, though, that the PostScript fonts that are being used % in \texttt{teubner-doc.pdf} are not installed by default if a basic % installation is sought. % -% This version 4.0 tries to adapt to the new handling of the Greek language -% by \babel, since now this language script is based on the -% LICR (\LaTeX\ Internal Character Representation), and source files now can -% include Greek glyphs, besides the usual transliteration with Latin letters. +% This version 4.0 tries to adapt to the new handling of the Greek +% language by \babel, since now this language script is based on the +% LICR (\LaTeX\ Internal Character Representation), and source files +% now can include Greek glyphs, besides the usual transliteration with +% Latin letters. % \end{abstract} % % \section{Introduction} @@ -143,11 +140,11 @@ charge for copying, etc. % 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 -% 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 +% 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 % package is in honour of that printing company. % % This package documentation does not contain any example written in @@ -162,9 +159,9 @@ charge for copying, etc. % package; should he forget, this package will complain. But once the % |greek| option is properly declared, this package verifies that the % |polutonikogreek| dialect (deprecated) is selected, or that the -% |polutoniko| attribute or modifier is set; if no attribute is set this package -% will set |polutoniko| or |ancient| depending on the presence of an -% updated Greek support to the \babel\ package. This choice depends on +% |polutoniko| attribute or modifier is set; if no attribute is set this +% package will set |polutoniko| or |ancient| depending on the presence of +% an updated Greek support to the \babel\ package. This choice depends on % the particular version of the \babel\ package, but should not concern % the user; switching back and forth between classical Greek and some % modern western language is performed in a transparent way; possibly @@ -180,74 +177,79 @@ charge for copying, etc. % \acro{ctan} in the directory \texttt{/fonts/greek/cb} have % 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. -% All fonts are available also as Type~1 scalable fonts. In general, recent -% distributions of the \TeX\ system already contain the necessary -% configuration to use the Type~1 font in one size, 10\,pt, but, thanks to -% scaling, these can be used at any size; this version of \textsf{teubner} -% is compatible with this reduced set. If optical sizes are desired for -% a more professional typesetting, the \acro{ctan} archives contain also -% the \textsf{cbgreek-full} package, which includes also all the Type~1 -% fonts at the various standard (EC) sizes, plus other facilities that allow -% to use the CB fonts also in conjunction with the Latin Modern ones. Complete -% installations of the \TeX\ system include the full CB fonts installation. +% definition file, because the necessary definitions are included in this +% package. All fonts are available also as Type~1 scalable fonts. In +% general, recent distributions of the \TeX\ system already contain the +% necessary configuration to use the Type~1 font in one size, 10\,pt, but, +% thanks to scaling, these can be used at any size; this version of +% \textsf{teubner} is compatible with this reduced set. If optical sizes +% are desired for a more professional typesetting, the \acro{ctan} archives +% contain also the \textsf{cbgreek-full} package, which includes also all +% the Type~1 fonts at the various standard (EC) sizes, plus other +% facilities that allow to use the CB fonts also in conjunction with the +% Latin Modern ones. Complete installations of the \TeX\ system include the +% full CB fonts installation. % % The CB Greek fonts allow to input Greek text with a Latin keyboard and % by employing the prefix notation; with a Greek keyboard and file -% \texttt{iso-8859-7.def} it is possible to directly input Greek text with the -% monotonic spelling; if polytonic spelling is required I fear that the above -% file is of little help and that a Latin keyboard does the job without -% an excessive burden. The recent modifications to the \babel\ package and of the -% Greek language description file allow to enter also polytonic Greek text, -% keyboard permitting, with no effort; it is necessary to use the |utf8| -% input encoding. It's important to notice the Apple computers have available -% a virtual keyboard (called keyboard viewer) that is operable with the mouse -% and, just by selecting the \emph{Greek Polytonic} keyboard driver, the -% author can enter Greek text directly in the source file. Computer with a -% touch screen virtual keyboard allow to switch from the national to -% the Greek keyboard just by a single sweep of the finger. Some platforms -% have the possibility of switching keyboard but they don't show the new -% keyboard layout on the screen, but the user can generally build a personal -% table that describes the correspondence between the key board and the -% physical keyboard layout. Windows operating system Win8 has available -% a virtual keyboard similar to the Mac's. +% \texttt{iso-8859-7.def} it is possible to directly input Greek text with +% the monotonic spelling; if polytonic spelling is required I fear that the +% above file is of little help and that a Latin keyboard does the job +% without an excessive burden. The recent modifications to the \babel\ +% package and of the Greek language description file allow to enter also +% polytonic Greek text, keyboard permitting, with no effort; it is +% necessary to use the |utf8| input encoding. It's important to notice the +% Apple computers have available a virtual keyboard (called keyboard +% viewer) that is susable with the mouse and, just by selecting the +% \emph{Greek Polytonic} keyboard driver, the author can enter Greek text +% directly in the source file. Computers with a touch screen virtual +% keyboard allow to switch from the national to the Greek keyboard just by +% a single sweep of the finger. Some platforms have the possibility of +% switching keyboard but they don't show the new keyboard layout on the +% screen, but the user can generally build a personal table that describes +% the correspondence between the keyboard and the physical keyboard layout. +% Windows operating system Win8 and later has available a virtual keyboard +% similar to the Mac's. % % Nevertheless there is a little point to observe; Lipsian fonts are very % nice but show some kerning errors with more evidence than the traditional -% Didot Greek fonts. With the prefix notation in force, kerning programs may -% result disabled and some diphthongs and some consonant-vowel combinations -% appear poorly matched when the second letter caries any diacritical mark. In -% order to avoid this ``feature'', the accented vowels may be input by means of -% macros, that directly translate to the accented glyph, rather than invoking the -% ligature programs that are implied by the prefix notation; reading a Greek text -% on the screen while editing the input \texttt{.tex} file when a Latin -% keyboard and such macros are used may be very strange, but authors get -% used to it, and agree that the effort is worth the result. The direct input -% of Greek glyphs, evidently is the real solution, even if it may be difficult -% to enter Greek glyphs without a suitable virtual keyboard or a suitable -% keyboard map. +% Didot Greek fonts. With the prefix notation in force, kerning programs +% may result disabled and some diphthongs and some consonant-vowel +% combinations appear poorly matched when the second letter caries any +% diacritical mark. In order to avoid this ``feature'', the accented vowels +% may be input by means of macros, that directly translate to the accented +% glyph, rather than invoking the ligature programs that are implied by the +% prefix notation; reading a Greek text on the screen while editing the +% input \texttt{.tex} file when a Latin keyboard and such macros are used +% may be very strange, but authors get used to it, and agree that the +% effort is worth the result. The direct input of Greek glyphs, evidently +% is the real solution, even if it may be difficult to enter Greek glyphs +% without a suitable virtual keyboard or a suitable keyboard map. % % \section{Environments} -% I apologise 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 recognisable; 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. +% I apologise 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 recognisable; 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 -% this string width; the syntax is the following +% 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 this string width; the syntax is the following % \begin{sintassi} -% \bslash begin\lbr versi\rbr\lbr\meta{string}\rbr{} -% \meta{verse}\bslash verso[\meta{starting number}]\meta{verse}\bslash verso -% \meta{verse}\bslash verso\meta{verse}\dots{} -% \bslash end\lbr versi\rbr +% \cs{begin}\Marg{versi}\marg{string} +% \meta{verse}\cs{verso}\oarg{starting number}\marg{verse} +% \cs{verso} \marg{verse} +% \cs{verso}\marg{verse} +% \dots{} +% \cs{end}\Marg{versi} % \end{sintassi} % where, of course, \meta{starting number} is required only for the first % instance of |\verso| or when numbering must be restarted, for example @@ -255,37 +257,38 @@ charge for copying, etc. % % \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. +% 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. % \begin{sintassi} -% \bslash begin\lbr Versi\rbr[\meta{starting number}] -% \meta{verse}\bslash\bslash{}\meta{*}[\meta{vertical space}] -% \meta{verse}\bslash\bslash{} +% \cs{begin}\Marg{Versi}\oarg{starting number} +% \meta{verse}\cs{\bslash*}\oarg{vertical space} +% \meta{verse}\cs{\bslash} % \dots{} -% \bslash end\lbr Versi\rbr -%\end{sintassi} +% \cs{end}\Marg{Versi} +% \end{sintassi} % % \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 -% that it can be turned on and off; the verses that lack the secondary -% enumeration are indented by moving them to the right. +% 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 typeset with smaller digits and normally numbers +% consecutive verses, except that it can be turned on and off; the verses +% that have the secondary enumeration are indented by moving them to the +% right. % \begin{sintassi} -% \bslash begin\lbr VERSI\rbr[\meta{starting principal number}] -% \meta{verse}\bslash\bslash\meta{*}[\meta{vertical space}] -% \bslash SubVerso[\meta{starting secondary number}] -% \meta{verse}\bslash\bslash\meta{*}[\meta{vertical space}] +% \cs{begin}\Marg{VERSI}\oarg{starting principal number} +% \meta{verse}\cs{\bslash*}\oarg{vertical space} +% \cs{SubVerso}\oarg{starting secondary number} +% \meta{verse}\cs{\bslash*}\oarg{vertical space} +% \dots{} +% \cs{NoSubVerso} +% \meta{verse}\cs{\bslash*}\oarg{vertical space} % \dots{} -% \bslash NoSubVerso -% \meta{verse}\bslash\bslash\meta{*}[\meta{vertical space}] -% \dots -% \bslash end\lbr VERSI\rbr +% \cs{end}\Marg{VERSI} % \end{sintassi} % where if \meta{starting principal number} is missing, 1 is assumed, % while if \meta{starting secondary number} is missing, the enumeration @@ -294,107 +297,138 @@ charge for copying, etc. % enumeration must be restarted; there are no means to restart the % principal enumeration. % -% \DescribeEnv{bracedmetrics} The previous environments accept \meta{verses} -% in any language and in any alphabet, the one that is in force before opening -% the environment; the language and, even less, the alphabet cannot be -% globally changed within the above environments; if such a change is performed, -% it is valid only for one verse, or for the remaining fraction of the verse -% after the language or font change. This means, among the other things, that -% if the default ``alphabet'' is the one that shows the metric symbols, -% 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 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 -% block so as to align properly all the symbols even in nested environments. +% \DescribeEnv{bracedmetrics} +% The previous environments accept \meta{verses} in any language and in +% any alphabet, the one that is in force before opening the environment; +% the language and, even less, the alphabet cannot be globally changed +% within the above environments; if such a change is performed, it is +% valid only for one verse, or for the remaining fraction of the verse +% after the language or font change. This means, among the other things, +% that if the default ``alphabet'' is the one that shows the metric +% symbols, 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 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 +% block so as to properly align all the symbols even in nested +% environments. % \begin{sintassi} -% \bslash begin\lbr bracedmetrics\rbr\lbr\meta{length}\rbr{} -% \meta{metric pattern}\bslash\bslash -% \meta{metric pattern}\bslash\bslash +% \cs{begin}{bracedmetrics}\marg{length} +% \meta{metric pattern}\cs{\bslash} +% \meta{metric pattern}\cs{\bslash} % \dots{} -% \bslash end\lbr bracedmetrics\rbr +% \cs{end}{bracedmetrics} % \end{sintassi} -% \DescribeMacro{\verseskip}\DescribeMacro{\Hfill} Within the \meta{metric -% pattern} it is possible to flush right the symbols -% by prefixing the whole string with a |\Hfill| command; the \meta{length} may -% be specified as an integer multiple of a ``long'' symbol by means of +% +% \DescribeMacro{\verseskip}\DescribeMacro{\Hfill} +% Within the \meta{metric pattern} it is possible to flush right the +% symbols by prefixing the whole string with a |\Hfill| command; the +% \meta{length} may be specified as an integer multiple of a ``long'' +% symbol by means of %\begin{sintassi} -% \bslash verseskip\lbr\meta{number}\rbr +% \cs{verseskip}\marg{number} %\end{sintassi} % The macro |\verseskip| can be used also within \meta{metric pattern} % in order to space out metric symbols. % % \section{Commands and symbols} -% This package defines a lot of commands for inserting special signs in the middle -% of regular text, for marking zeugmas and synizeses, for putting unusual accents -% on any symbol, for inserting special ``parentheses'' that are used by -% philologists for marking blocks of letters or blocks of text. I suggest that the -% user reads the documentation file \texttt{teubner-doc.pdf} for a complete -% list of commands and symbols. -% -% \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 -% 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: +% This package defines a lot of commands for inserting special signs +% in the middle of regular text, for marking zeugmas and synizeses, +% for putting unusual accents on any symbol, for inserting special +% ``parentheses'' that are used by philologists for marking blocks of +% letters or blocks of text. I suggest that the user reads the +% documentation file \texttt{teubner-doc.pdf} for a complete list +% of commands and symbols. +% +% \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 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 +% \cs{newmetrics}l\marg{control sequence}\marg{definition} % \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 -% kind 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 were saved into the definition file |LGRaccent-glyph.def|, so -% that it could be used also without the |teubner| package, for example for -% typesetting without setting the \emph{polutoniko} language attribute. But -% since he became the maintainer of the Greek language support for the \babel\ -% package, he extended this support to the point that the extended macros are +% extension file in order to help him typeset his master thesis of +% philological kind 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; +% he kindly gave me permission to use his macros, that I adapted to the +% conventions used within this file. These macros were saved into the +% definition file |LGRaccent-glyph.def|, so that it could be used also +% without the |teubner| package, for example for typesetting without +% setting the \emph{polutoniko} language attribute. But since he became +% the maintainer of the Greek language support for the \babel\ package, +% he extended this support to the point that the extended macros are % already part of the new Greek support files. % -% 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. -% -% Now the new Greek support for the \babel\ package, thanks to G\"unter Milde, -% includes also the support for Unicode input in the source file, in spite of -% using LGR encoded output fonts. The actual support is partially useful also -% with XeLaTeX and LuaLaTeX. +% I thank also Werner Lemberg who wrote a paper 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; I got some ideas also +% from that paper in order to get around some of his critical +% observations; I could get around all points he commented, and some +% progress was achieved. +% +% Now the new Greek support for the \babel\ package, thanks to G\"unter +% Milde, includes also the support for Unicode input in the source file, +% in spite of using LGR encoded output fonts. The actual support is +% partially useful also with XeLaTeX and LuaLaTeX. +% +% This package is far from perfect, but it allows to do a loto of things +% that is difficult to find elsewhere. I did my best, but I had to cope +% with the limitations of the Type~1 256 glyph fonts; with XeLaTeX or +% LuaLaTeX it might be possible to have more functionalities, but, as +% Werner Lemberg described, in order to type accented Greek letters, +% these programs deal with two different approaches: one directly +% accesses the Unicode page containing such glyphs, and the other +% relies on self combining diacritics; the latter approach appears +% to be more flexible in order to get the multitude of diacritics the +% philology sometimes requires over or under the same letter, but this +% forbids proper kerning; the former approach takes care of the correct +% kerning, but has a limited number of diacritic combinations. These +% approaches are mutually exclusive, therefore the philologist must +% get to compromises; at the same time any program must follow either +% approach, possibly choosing which one with suitable options, but it +% cannot switch back and forth continually and automatically. % % \StopEventually{} % % \section{Code} % \subsection{Preliminaries} -% 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 at least since 2007 the \TeX\ engine is \textsf{pdftex} even when DVI -% output is sought; the package \pack{iftex} creates three |\if|s that allow to -% diagnose if the typesetting engine is \textsf{pdftex} in PDF mode, -% \textsf{XeTeX} or \textsf{Luatex}; since at the moment this package -% \pack{teubner} is compatible only with \textsf{pdftex} in PDF mode, we equate -% the |\ifPDF| switch (defined in previous versions of \pack{teubner}) with the -% switch defined by package \pack{iftex}: +% In order to use the PostScript pfb fonts (CM, CM-Super, 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 and 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, at least since 2007, the \TeX\ engine is +% \textsf{pdftex} even when DVI output is sought; the package +% \pack{iftex} creates three |\if|s that allow to diagnose if the +% typesetting engine is \textsf{pdftex} in PDF mode, \textsf{XeTeX} +% or \textsf{Luatex}; since at the moment this package \pack{teubner} +% is usable only with \textsf{pdftex} in PDF mode, we equate the +% |\ifPDF| switch (defined in previous versions of \pack{teubner}) with +% the switch defined by package \pack{iftex}: %\iffalse %<*package> %\fi @@ -402,8 +436,9 @@ charge for copying, etc. \RequirePackage{iftex} \let\ifPDF\ifPDFTeX % \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 @@ -413,6 +448,7 @@ Use the babel package greek option.\MessageBreak Type X <return> to exit.}% {Type X <return> 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. @@ -553,58 +589,58 @@ Type X <return> to exit.}% \RequirePackage{ifthen} % \end{macrocode} % -% \begin{macro}{\metricsfont} Similarly the metric symbol font is declared -% together with a command for selecting it: +% \begin{macro}{\metricsfont} Similarly the metric symbol font +% is declared together with a command for selecting it: % \begin{macrocode} \DeclareFontFamily{U}{mtr}{\hyphenchar\font\m@ne} \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}{}% + <-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} -% Next we require the package for extensible math fonts; it might be strange to -% use extensible math fonts in Greek philology, but a certain glyph must be picked -% up from such fonts, with the assurance that it changes size together with the -% current font size. +% \end{macro} Next we require the package for extensible math fonts; +% it might be strange to use extensible math fonts in Greek philology, +% but a certain glyph must be picked up from such fonts, with the +% assurance that it changes size together with the current font size. % \begin{macrocode} \RequirePackage{exscale} % \end{macrocode} % -% 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, 3.7, 3.8, or~3.9; in the former the concept of ``language attribute'' is -% unknown, while the latter recognises varieties of the same language by the -% attribute setting. +% 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, 3.7, 3.8, or~3.9; in the former the concept +% of ``language attribute'' is unknown, while the latter recognises +% varieties of the same language by the attribute setting. % With \babel\ version 3.9g things have further changed; the attribute -% to a language may be appended to the language name with an interposed dot; -% for example for Greek it might be |greek.polutoniko|. +% to a language may be appended to the language name with an interposed +% dot; for example for Greek it might be |greek.polutoniko|. % 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 variant or the main language whose attribute -% gets set and, evidently, becomes effective when the main language |greek| -% is in force. Notice that if the |greek.ldf| has a date previous to 2014/09/18, -% the attribute |ancient| may not be defined; in this case the |polutoniko| -% attribute is set, else the |ancient| attribute is selected. The difference -% is that the attribute |polutoniko| selects the polytonic spelling and the -% modern Greek hyphenation, while |ancient| selects the polytonic spelling and -% the classical Greek hyphenation. It is assumed that this |teubner| package -% gets used for philological purposes only for ancient Greek. Nevertheless, -% if some work on modern polytonic Greek philological document is being -% typeset, the |ancient| attribute may work satisfactorily, but with some -% possible ``ancient'' line breaks. +% gets set and, evidently, becomes effective when the main language +% |greek| +% is in force. Notice that if the |greek.ldf| has a date previous to +% 2014/09/18, the attribute |ancient| may not be defined; in this case +% the |polutoniko| attribute is set, else the |ancient| attribute is +% selected. The difference is that the attribute |polutoniko| selects +% the polytonic spelling and the modern Greek hyphenation, while +% |ancient| selects the polytonic spelling and the classical Greek +% hyphenation. It is assumed that this |teubner| package +% gets used for philological purposes only for ancient Greek. +% Nevertheless, if some work on modern polytonic Greek philological +% document is being typeset, the |ancient| attribute may work +% satisfactorily, but with some possible ``ancient'' line breaks. % \begin{macrocode} \ifx\languageattribute\undefined \def\GreekName{polutonikogreek}% @@ -629,13 +665,13 @@ Type X <return> to exit.}% %\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. 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. +% ``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} % @@ -910,21 +946,22 @@ Type X <return> to exit.}% %\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 but maintaining the current -% font familY, 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 simply making it an active character. +% 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 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 simply 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}% - \fontencoding{\previousencoding}\selectfont - \bbl@activate{~}#1}% - \expandafter\fontencoding\expandafter{\externalencoding}} - + \def\itdefault{it}\def\@tempA{li}\ifx\@tempA\f@shape\def\f@shape{it}\fi + \expandafter\select@language\expandafter{\previouslanguage}% + \fontencoding{\previousencoding}% + \fontfamily{\rmdefault}\selectfont + \bbl@activate{~}#1}% + \expandafter\fontencoding\expandafter{\externalencoding}\rmfamily} + % \end{macrocode} %\end{macro} % @@ -1555,22 +1592,22 @@ Type X <return> to exit.}% %\begin{macro}{\Sampi} %\begin{macro}{\Euro} %\begin{macro}{\permill} S -% These macros, too, are defined by the \texttt{lgrenc.def} file and subsidiaries, -% but with different names; therefore we make some aliases: -% \begin{macrocode} -\let\stigma\textstigma +% These macros, too, are defined by the \texttt{lgrenc.def} file and +% subsidiaries, but with different names; therefore we make some aliases. +% We exclude to use the modern koppa sign (zig-zag koppa) so we let its +% commands equal to the old koppa.; at the same time, for backwards +% compatibility, we let also the variant name |\varkoppa| to address +% the ancient glyph. For the digit~6 in the `units' position, we foresee +% to use either the true stigma glyph or the digamma one. +% \begin{macrocode} +\let\stigma\textstigma \let\Stigma\textStigma \let\varstigma\textvarstigma -\let\koppa\textkoppa +\let\koppa\textkoppa \let\Koppa\textQoppa \let\qoppa\textqoppa -\let\coppa\textqoppa -\let\Koppa\textQoppa -\let\Coppa\textQoppa \let\varkoppa\textqoppa -\let\sampi\textsampi -\let\Stigma\textStigma -\let\Sampi\textsampi -\let\f\textdigamma -\let\F\textDigamma\let\Digamma\F +\let\coppa\textqoppa \let\Coppa\textQoppa +\let\sampi\textsampi \let\Sampi\textSampi +\let\f\textdigamma \let\F\textDigamma \let\Digamma\F \let\Euro\texteuro \let\permill\textperthousand \let\schwa\textschwa @@ -1842,8 +1879,8 @@ Type X <return> to exit.}% %\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 +% 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}% @@ -1864,21 +1901,19 @@ Type X <return> to exit.}% %\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 -% one defined in the |greek| option 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. -% \begin{macrocode} -\AtBeginDocument{\unless\ifcsname digamma\endcsname\let\digamma\textdigamma\fi} -% \end{macrocode} +% 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 |greek| option 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 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. Actually, since the introduction of the LICR macros, this is +% irrelevant and I deleted it. %\end{macro} %\end{macro} %\end{macro} @@ -1886,19 +1921,20 @@ Type X <return> 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 user can chose +% the version s/he likes best. % \begin{macrocode} \DeclareRobustCommand{\fLow}% {{\setbox\z@\hbox{\f}\dimen@\ht\z@ - \advance\dimen@-1ex\raise-\dimen@\hbox{\box\z@}}} + \advance\dimen@-1ex\raisebox{-\dimen@}{\f}}} \DeclareRobustCommand{\fHigh}% - {{\setbox\z@\hbox{\f}\dimen@\dp\z@\raise\dimen@\hbox{\box\z@}}} + {{\setbox\z@\hbox{\f}\dimen@\dp\z@\raisebox{\dimen@}{\f}}} % \end{macrocode} %\end{macro} @@ -1911,13 +1947,14 @@ Type X <return> to exit.}% % 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|. +% 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(}} @@ -1932,8 +1969,8 @@ Type X <return> to exit.}% % %\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|. +% \LaTeX\ macro |\textsuperscript|, the only difference being the italic +% correction that precedes |\textsuperscript|. % \begin{macrocode} \DeclareRobustCommand{\ap}[1]{\/\textsuperscript{#1}} @@ -2730,7 +2767,8 @@ Type X <return> to exit.}% \multiply\count255by5\relax \advance\count255-\value{verso}% \ifnum\count255=\z@ - {\fontseries{m}\small\expandafter\oldstylenums\expandafter{\the\c@verso}}% + {\fontseries{m}\small + \expandafter\oldstylenums\expandafter{\the\c@verso}}% \else \empty \fi}% @@ -2933,62 +2971,49 @@ Type X <return> to exit.}% % \begin{macrocode} \\% \egroup\endlist} -\let\VERSUS\VERSI \let\endVERSUS\endVERSUS +\let\VERSUS\VERSI \let\endVERSUS\endVERSI % \end{macrocode} %\end{environment} % -% \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. +% \subsection{Metrics symbols, macros and environments} +% 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. +% +% Previous versions of this package defined the metric sign using both +% Italian and Latin names; then a user\footnote{Thank you Heinrich +% Fleck!} discovered a conflict with the |amsmath| package, especially +% due to the macro |\breve|, the Italian version of |\brevis|. It is +% unusual to use |teubner| with the advanced mathematics functionalities +% of |amsmath|, and package |teubner| has been in use for so many years, +% that such conflicts were never experienced. But Heinrich is a fond +% admirer of Archimedes and wrote several critical papers on Archimedes' +% works, some of which required advanced mathematics. +% +% We therefore decided that the Italian metric symbol names could be done +% without, and we eliminated all or most such ‘Italian’ macros. Those +% now available are the following. % -%\begin{macro}{\lunga} %\begin{macro}{\longa} -%\begin{macro}{\breve} %\begin{macro}{\brevis} -%\begin{macro}{\bbreve} %\begin{macro}{\bbrevis} -%\begin{macro}{\barbreve} %\begin{macro}{\barbrevis} -%\begin{macro}{\barbbrev} %\begin{macro}{\barbbrevis} -%\begin{macro}{\ubarbreve} %\begin{macro}{\ubarbrevis} -%\begin{macro}{\ubarbbreve} %\begin{macro}{\ubarbbrevis} -%\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{macrocode} -\DeclareRobustCommand\lunga{{\metricsfont l}} -\let\longa\lunga -\let\br@ve\breve -\DeclareRobustCommand\breve{\textormath{{{\metricsfont b}}}{\br@ve}} -\let\brevis\breve -\DeclareRobustCommand\bbreve{{\metricsfont c}} -\let\bbrevis\bbreve -\DeclareRobustCommand\barbreve{{\metricsfont i}} -\let\barbrevis\barbreve -\DeclareRobustCommand\barbbreve{{\metricsfont j}} -\let\barbbrevis\barbbreve -\DeclareRobustCommand\ubarbreve{{\metricsfont d}} -\let\ubarbrevis\ubarbreve -\DeclareRobustCommand\ubarbbreve{{\metricsfont e}} -\let\ubarbbrevis\ubarbbreve -\DeclareRobustCommand\ubarsbreve{{\metricsfont f}} -\let\ubarsbrevis\ubarsbreve -\DeclareRobustCommand{\ubrevelunga}{{\metricsfont\char107}} -\let\ubrevislonga\ubrevelunga +\DeclareRobustCommand\longa{{\metricsfont l}} +\DeclareRobustCommand\brevis{\textormath{{{\metricsfont b}}}{\br@ve}} +\DeclareRobustCommand\bbrevis{{\metricsfont c}} +\DeclareRobustCommand\barbrevis{{\metricsfont i}} +\DeclareRobustCommand\barbbrevis{{\metricsfont j}} +\DeclareRobustCommand\ubarbrevis{{\metricsfont d}} +\DeclareRobustCommand\ubarbbrevis{{\metricsfont e}} +\DeclareRobustCommand\ubarsbrevis{{\metricsfont f}} +\DeclareRobustCommand{\ubrevislonga}{{\metricsfont\char107}} % \end{macrocode} %\end{macro} @@ -3000,15 +3025,6 @@ Type X <return> to exit.}% %\end{macro} %\end{macro} %\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} % %\begin {macro}{\corona} %\begin {macro}{\ElemInd} @@ -3024,19 +3040,22 @@ Type X <return> to exit.}% %\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 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|. +% Similarly the following symbols have straightforward definitions. +% Only |\hiatus| and |\Hiatus| require a small explanation; |\hiatus| +% inserts a small capital `H' in superscript position; initially 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 font is a Greek one 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 @@ -3073,20 +3092,25 @@ Type X <return> to exit.}% %\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. -% 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\"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. +% 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\"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} @@ -3100,10 +3124,10 @@ Type X <return> to exit.}% %\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. +% 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}% @@ -3120,27 +3144,28 @@ Type X <return> to exit.}% %\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'. +% 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} -\newmetrics\enopl{\breve\lunga\breve\breve\lunga\breve\breve\lunga} -\newmetrics{\4MACRO}{\lunga\lunga\lunga\lunga} -\newmetrics{\aeolchorsor}{\lunga\zeugma{\breve\breve}\breve - \breve\zeugma{\breve\breve}} -\newmetrics{\hexam}{\lunga\breve\breve\lunga\breve\breve - \lunga\breve\breve\lunga\breve\breve\lunga\breve\breve - \lunga\lunga} -\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\ } +\newmetrics\iam{\barbrevis\longa\brevis\longa} +\newmetrics\chor{\longa\brevis\brevis\longa} +\newmetrics\enopl{\brevis\longa\brevis\brevis\longa\brevis\brevis\longa} +\newmetrics{\4MACRO}{\longa\longa\longa\longa} +\newmetrics{\aeolchorsor}{\longa\zeugma{\brevis\brevis}\brevis + \brevis\zeugma{\brevis\brevis}} +\newmetrics{\hexam}{\longa\brevis\brevis\longa\brevis\brevis + \longa\brevis\brevis\longa\brevis\brevis\longa\brevis\brevis + \longa\longa} +\newmetrics{\pentam}{\longa\barbbrevis\longa\barbbrevis\longa\dBar + \longa\brevis\brevis\longa\brevis\brevis\longa} +\newmetrics{\2tr}{\longa\brevis\longa\X\ \longa\brevis\longa\X\ } % \end{macrocode} -% 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. +% 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} %\end{macro} %\end{macro} @@ -3151,12 +3176,13 @@ Type X <return> to exit.}% %\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 +% |\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]% @@ -3168,16 +3194,17 @@ Type X <return> to exit.}% % %\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. +% |\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 +% \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]{% @@ -3192,15 +3219,17 @@ Type X <return> to exit.}% % %\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. +% 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]{{% @@ -3224,30 +3253,37 @@ $\displaystyle\left.% %\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 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. +% 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 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 realise 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@} @@ -3264,202 +3300,124 @@ $\displaystyle\left.% %\end{macro} % % \subsection{Classical Greek numerals} -% When typesetting Greek it may occur to specify numbers written out as Milesian -% numerals; the |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. +% When typesetting Greek it may occur to specify numbers written +% out as Milesian numerals; the |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 |\greeknumeral| 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 - \bbl@afterfi\@tempB\fi} - -\DeclareRobustCommand*{\Greeknumeral}{% - \let\n@vanta\textQoppa\let\n@vecento\textSampi - \@ifStar{\Gr@@kn@meral}{\Gr@@knum@ral}} - -\DeclareRobustCommand*{\greeknumeral}{% - \let\n@vanta\textqoppa\let\n@vecento\textsampi - \@ifStar{\let\s@i\textstigma\gr@@numeral}{\let\s@i\fLow\gr@@numeral}} - -\def\Gr@@kn@meral#1{\let\s@i\textStigma - \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} - -\def\Gr@@knum@ral#1{\let\s@i\textDigamma - \expandafter\MakeUppercase\expandafter{\gr@@numeral{#1}}} - -\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 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. -% The double opening and closing braces are necessary to avoid a space vanishing -% after using the |\gr@@numeral| macro; the six levels of digit reprentation are -% corrected with the LICR macoros. -% \begin{macrocode} -\def\gr@@numeral#1{{% - \ifnum#1<\@ne\space\gr@ill@value{#1}% - \else - \ifnum#1<10\relax\expandafter\gr@num@i\number#1% - \else - \ifnum#1<100\relax\expandafter\gr@num@ii\number#1% - \else - \ifnum#1<\@m\relax\expandafter\gr@num@iii\number#1% - \else - \ifnum#1<\@M\relax\expandafter\gr@num@iv\number#1% - \else - \ifnum#1<100000\relax\expandafter\gr@num@v\number#1% - \else - \ifnum#1<1000000\relax\expandafter\gr@num@vi\number#1% - \else - \space\gr@ill@value{#1}% - \fi - \fi - \fi - \fi - \fi - \fi - \fi -}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\gr@num@i} -%\begin{macro}{\gr@num@ii} -%\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 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} -\def\gr@num@i#1{% - \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or - \textdelta\or \textepsilon - \or \s@i\or \textzeta\or \texteta\or \texttheta\fi - \ifnum#1=\z@\else\anw@true\fi\anw@print} -\def\gr@num@ii#1{% - \ifcase#1\or \textiota\or \textkappa\or \textlambda\or \textmu\or \textnu% - \or \textxi\or \textomicron\or \textpi\or \n@vanta\fi - \ifnum#1=\z@\else\anw@true\fi\gr@num@i} -\def\gr@num@iii#1{% - \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon - \or \textphi\or \textchi\or \textpsi\or \textomega\or \n@vecento\fi - \ifnum#1=\z@\anw@false\else\anw@true\fi\gr@num@ii} -\def\gr@num@iv#1{% - \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or \textalpha\or \textbeta\or \textgamma\or \textdelta - \or \textepsilon\or \s@i\or \textzeta\or \texteta\or \texttheta\fi - \gr@num@iii} -\def\gr@num@v#1{% - \ifnum#1=\z@\else\katwtonos\fi - \ifcase#1\or \textiota\or \textkappa\or \textlambda\or - \textmu\or \textnu\or \textxi\or \textomicron\or \textpi\or \n@vanta\fi - \gr@num@iv} -\def\gr@num@vi#1{% - \katwtonos - \ifcase#1\or \textrho\or \textsigma\or \texttau\or \textupsilon - \or \textphi\or \textchi\or \textpsi\or \textomega\or \n@vecento\fi - \gr@num@v} - +% Both |\greeknumeral| and |\Greeknumeral|, the latter producing +% upper case Greek numerals, while the former produces lower case +% ones, resort to robust internal macros if the |greek.ldf| language +% description style; they are renamed versions of the original macros +% that ar perfect for modern Greek usage; therefore we simply let the +% glyph placeholders for the vales 6, 90, and 900, originally indicated +% with the place hoders |\textstigma| and |\textkoppa|, (together with +% their capital glyph counterparts) the the place holders for +% |\textdigamma| and |\textqoppa|; with the value~6, we decided to use +% either the stigma or the digamma sign by using the usual asterisk +% added to the macro names; the \LaTeX\,3 language greatly simplifies +% this task. +% +% Therefore |\Greeknumeral| and% |\greeknumeral| macros are redefined +% by means of |\RenewDocumentCommand| that assures solidity and by +% resorting to the internal |greek.ldf| macros, we avoid all the tests +% that the previous version had to make in order to handle the +% |\anwtonos|; furthermore the code is much simpler to maintain. +% Notice that the glyph for ‘90’ is the old styled ‘qoppa’ and +% for ‘900’ it is the 'sampi’; if the asterisk is specified, the +% glyph for ‘6’ is the lowered digamma, wile without the asterisk +% it is the ‘stigma’, the other Milesian numerals are the other +% 26 Greek letters. +% the Greek date in capital letters is already provided by the +% |greek.ldf| file; we define the |\grtoday| date in lower case +% letters that differs from the |\today| one, because the numerals +% for the day and the year are composed with the Greek numeral macros +% just defined, The optional asterisk ti |\grtoday| is passed directly to the |\greeknumeral| macros, although in a complicated way in order to avoid messing the |\expandafter| workings +% \begin{macrocode} +% + +\RenewDocumentCommand\Greeknumeral{s m}{\bgroup% + \let\textkoppa\textqoppa \let\textKoppa\textQoppa + \IfBooleanTF{#1}% + {\let\textstigmagreek\textstigma \let\textStigmagreek\textStigma}% + {\let\textstigmagreek\textdigamma \let\textStigmagreek\textDigamma}% + \bbl@greek@GreekNum\@secondoftwo{#2}\egroup} + +\RenewDocumentCommand\greeknumeral{s m}{\bgroup% + \let\textkoppa\textqoppa \let\textKoppa\textQoppa + \IfBooleanTF{#1}% + {\let\textstigmagreek\textstigma \let\textStigmagreek\textStigma}% + {\let\textstigmagreek\textdigamma \let\textStigmagreek\textDigamma}% + \bbl@greek@GreekNum\@firstoftwo{#2}\egroup} + +\NewDocumentCommand\grtoday{ s }% +{\bgroup\IfBooleanTF{#1}% +{\greeknumeral*{\the\day}\space\gr@c@month\space\greeknumeral*{\the\year}}% +{\greeknumeral{\the\day}\space\gr@c@month\space\greeknumeral{\the\year}}% +\egroup} + % \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} +% %\end{macro} %\end{macro} %\end{macro} % %\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. +% 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 strictly +% positive integers was similar in a way to the Roman notation, +% based on a biquinary\footnote{The word \emph{biquinary} +% does not appear in the Oxford dictionary, but its etymology +% is pretty clear: couples of quintets. After all we have two +% hands with five fingers each, and we started counting on our +% hands since we were little children.} 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\to\mathrm{VIIII}$ different from the subtractive one +% $9\to\mathrm{IX}$), 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 +% Therefore another conversion macro was devised that receives +% the value to be converted as its argument: first it checks +% that such argument falls in the allowed range; actually the lower +% boundary is zero, while the upper boundary was chosen to be +% 99\,999, for no other reason than the lack of further symbols +% beyond the value 50\,000, that 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: +% The user command |\AtticNumeral| must be preceded by the +% definitions of the biquinary 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 encoding: % \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: +% The we need a command to issue 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}} @@ -3474,40 +3432,60 @@ Illegal value (\number#1) for \string\ActicNumeral\space}} \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 +% The real transformation algorithm is transferred 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 biquinary value +% and the remaining units up to~4; the the cycle is repeated +% until 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| must 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\relax\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\relax\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\relax\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\relax\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} + \bgroup + \countdef\valore=252\countdef\cifra=250\relax + \valore=#1\relax + \@whilenum\valore>0\do{% + \ifnum\valore>9999\relax + \cifra=\valore\divide\cifra10000\relax + \valore=\numexpr\valore-\cifra*10000\relax + \ifnum\cifra>4\relax\Vmiria \advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{M\advance\cifra\m@ne}% + \else + \ifnum\valore>999\relax + \cifra=\valore\divide\cifra1000\relax + \valore=\numexpr\valore-\cifra*1000\relax + \ifnum\cifra>4\relax\Vkilo \advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{Q\advance\cifra\m@ne}% + \else + \ifnum\valore>99\relax + \cifra=\valore\divide\cifra100\relax + \valore=\numexpr\valore-\cifra*100\relax + \ifnum\cifra>4\relax\Vetto \advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{H\advance\cifra\m@ne}% + \else + \ifnum\valore>9\relax + \cifra=\valore\divide\cifra10\relax + \valore=\numexpr\valore-\cifra*10\relax + \ifnum\cifra>4\relax\Vdeka \advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{D\advance\cifra\m@ne}% + \else + \ifnum\valore>0\relax + \cifra=\valore + \ifnum\cifra>4\relax P\advance\cifra-5\relax\fi + \@whilenum\cifra>\z@\do{I\advance\cifra\m@ne}% + \valore=\cifra + \fi + \fi + \fi + \fi + \fi + }% + \egroup} % \end{macrocode} %\end{macro} @@ -3520,12 +3498,13 @@ Illegal value (\number#1) for \string\ActicNumeral\space}} %<*tbtx> %\fi %\section{Accessing the CBgreek fonts when the TX fonts are selected} -% During the year 2010 this package \textsf{teubner.sty} was upgraded in order to allow -% using the CBgreek fonts even when other Latin fonts, different from the ``standard'' CM -% and LM ones are selected for typesetting text with the Latin script. +% During the year 2010 this package \textsf{teubner.sty} was upgraded +% in order to allow using the CBgreek fonts even when other Latin +% fonts, different from the ``standard'' CM and LM ones are selected +% for typesetting text with the Latin script. -% At the same time Antonis Tsolomitis uploaded a new package in order to let -% Greek users use some Greek fonts that match the Times eXtended +% At the same time Antonis Tsolomitis uploaded a new package in order +% to let Greek users use some Greek fonts that match the Times eXtended % ones\footnote{Probably Antonis Tsolomitis' Greek fonts match also the % newer Times eXtended fonts produced by Michael Sharpe. The newer fonts % have different font family names than the previous TX fonts; in order @@ -3536,23 +3515,25 @@ Illegal value (\number#1) for \string\ActicNumeral\space}} % |lgrtxss.fd|, |lgrtxtt.fd|, font definition files that allow the font % switching implied by the |greek| option to the \textsf{babel} package. % These files take precedence over the mechanism outlined in -% section~\ref{ssec:LatinFontComp}, because command |\substitutefontfamily| -% first tests the existence of |lgrtxr.fd|, and, if this is not available, -% it may generate a specific one suitable for working smoothly with +% section~\ref{ssec:LatinFontComp}, because command +% |\substitutefontfamily| first tests the existence of |lgrtxr.fd|, +% and, if this is not available, it may generate a specific one +% suitable for working smoothly with % \textsf{teubner.sty}. % % Now if Tsolomitis' files are available on the main system tree, these % take precedence and the \textsf{teubner} compatible files are not % generated. Unfortunately Tsolomitis' fonts, although better suited to -% match the TX fonts, are well matched to modern Greek typesettin, +% match the TX fonts, are well matched to modern Greek typesetting, % but they are incomplete for philological typesetting. % -% We therefore avoid this clash by creating a \textsf{teubnertx.sty} file. -% This extension defines the families and shapes available with the -% familiar fond definition files, but the information gets input by +% We therefore avoid this clash by creating a \textsf{teubnertx.sty} +% file. This extension defines the families and shapes available with +% the familiar font definition files, but the information gets input by % \textsf{teubner.sty} at the ``begin document'' time, without resorting -% to any |.fd| file. May be more information is loaded than is strictly -% necessary, but it better to do this way than to clash with other packages. +% to any |.fd| file. Maybe more information is loaded than is strictly +% necessary, but it is better to do this way than to clash with other +% packages. % \begin{macrocode} \DeclareFontFamily{LGR}{txr}{} \DeclareFontShape{LGR}{txr}{m}{n}{<->ssub * cmr/m/n}{} diff --git a/macros/latex/contrib/teubner/teubner.pdf b/macros/latex/contrib/teubner/teubner.pdf Binary files differindex 90735cb33b..aeba0adac1 100644 --- a/macros/latex/contrib/teubner/teubner.pdf +++ b/macros/latex/contrib/teubner/teubner.pdf diff --git a/macros/latex/contrib/teubner/teubner.txt b/macros/latex/contrib/teubner/teubner.txt index 6594a1ecc5..d46ad3eb24 100644 --- a/macros/latex/contrib/teubner/teubner.txt +++ b/macros/latex/contrib/teubner/teubner.txt @@ -1,15 +1,15 @@ - THE TEUBNER PACKAGE VERSION 4.x OF MARCH 2016 + THE TEUBNER PACKAGE VERSION 5/0 OF NOVEMBER 2020 EXTENSION FOR PHILOLOGICAL TYPESETTING -Copyright 2001-2004-2016 Claudio Beccari +Copyright 2001-2004-2020 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. + CTAN/macros/latex/base/lppl.tex. This bundle contains the following files @@ -26,35 +26,41 @@ generated; teubner-doc.pdf must be generated by running pdflatex on the source file teubner-doc.tex file. These two .pdf files are already contained in the bundle. -The previous versions 3.x of this packages used a LGRaccents-glyphs.def -file, that now is not necessary, and is not contained in this bundle any -more. - File teubner-doc.pdf is the documentation file that shows what can be done with this extension package and displays several examples. -Version 4.x of the teubner package contains many new enhancements, among -which it's worth noting the compliance with the new Greek language -support to babel, that makes use of the encoding independent LICR (LaTeX -Internal Character Representation) of the Greek characters & diacritics; -it contains also the macros that allow using the LGR encoded CBfonts -together with other PostScript scalable fonts; the compatibility with -the Times and the Palatino eXtended fonts, 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 this package. - -While this package was upgraded and uploaded to CTAN, Antonis Tsolomitis -uploaded the package txfontsb which adds the possibility of using nice -TX compatible Greek fonts when using the TX latin fonts so as to let the -users typeset their documents in mixed script. -The upright shape resembles the traditional Didot one, and the italic -shape resembles the Lipsian one; they come in both the medium and the -bold series and match the TX latin fonts pretty well. They probably match -also the newer newtxtext fonts by Michael Sharpe, but since the latter -have different font family names, the automatically produced .fd files -for adapting the LGR encoded fonts to the TX fonts are not suited any -more; in order to have matching .fd files it is necessary to proceed as -with any other font collection different from the TX one +Version 5.0 of the teubner package is compliant with the Greek language +support to babel version 3.9g, that makes use of the encoding independent +LICR (LaTeX Internal Character Representation) of the Greek characters & +diacritics; it contains also the macros that allow using the LGR encoded +CBfonts together with other PostScript scalable fonts; the compatibility +with the Times and the Palatino eXtended fonts, 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 this package. +With the upgrade of the Greek support to babel through file greek.ldf +version 1.10, teubner package versions previous to 5.0 became unable to +transform Arabic numerals into the classical Milesian and Attic number +representations. From version 5.0 the teubner package has been patched +in order to re-establish the above number transformations; some other +improvements have been added that are transparent to the end user, since +deal with the package internal workings. But these improvements require +a recent installation of the TeX system, because they use interfaces to +the new LaTeX 3 language; the minimum date of the LaTeX kernel should +not be earlier than January 2019. + +Some time ago Antonis Tsolomitis uploaded the package txfontsb which +adds the possibility of using nice TX compatible Greek fonts when using +the TX latin fonts so as to let the users typeset their documents in +mixed script. The upright shape resembles the traditional Didot one, +and the italic shape resembles the Lipsian one; they come in both the +medium and the bold series and match the TX latin fonts pretty well. +They probably match also the newer newtxtext fonts by Michael Sharpe, +but since the latter have different font family names, the automatically +produced .fd files for adapting the LGR encoded fonts to the TX fonts +are not suited for the newtxtext fonts; in order to have matching .fd +files it is necessary to proceed in the same way as with any other font +collection different from the TX one; the procedure is described in the +teubner-doc.pdf document. Although Tsolomitis' fonts satisfy very well the everyday typesetting necessities of the Greek users and blend well also with the TX math @@ -78,21 +84,22 @@ file; 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 TDS (standard TeX Directory Structure) and has a multiplicity of different TeX directory trees, you probably -have a \localtexmf rooted TDS, or a /texmmf one in your Home directory +have a \localtexmf rooted TDS, or a /texmf one in your Home directory containing a tex directory tree which on turn contains a latex directory. Under the latter one create a new directory named, say, teubner, and -move there teubner.sty, and teubnertx.sty. +move to this folder the teubner.sty, and teubnertx.sty files. -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 the -teubner.pdf file that you get by running pdflatex directly on teubner.dtx. +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 +the teubner.pdf file 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 basic TeX system installation loads only the PostScript fonts in size 10pt; all -other sizes are are obtained by reducing or enlarging that single size. +other sizes are obtained by reducing or enlarging that single size. A complete TeX system installation does not exhibit this limitation. There are also non standard scalable Type 1 fonts, such for example, the Fourier ones, that come only in one size, the 10pt one; for these @@ -113,7 +120,7 @@ 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, and partially upgraded in 2010; the reduced collection is a subset of the full one. Earlier distributions, dated at least 2002, -might be compatible; if you notice something strange with the CBfonts, +might be compatible, but if you notice something strange with the CBfonts, verify if your fonts are up to date. Another question you might ask yourself: is my TeX system complete and @@ -131,7 +138,7 @@ CBfonts. 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 +documentation file teubner-doc.pdf and that you have a hard copy close to you. Remember, though, that most commands are Latin names or abbreviations @@ -160,11 +167,11 @@ you use LaTeX, you know what are its pros and cons. Happy philological LaTeXing! -Claudio Beccari Turin, March 2016 +Claudio Beccari November 2020 Professor Emeritus Politecnico di Torino, Italy claudio dot beccari at gmail dot com -PS: I underline my former professorship in electronics, in order to -stress the point that I am not a philologist, therefore beware: this -work might simply be "trash" to the eyes of a real philologist! +PS: My former professorship is in electronics, just to stress the +point that I am not a philologist, therefore beware: this work might +simply be "trash" to the eyes of a real philologist! diff --git a/macros/latex/contrib/teubner/teubnertx.sty b/macros/latex/contrib/teubner/teubnertx.sty deleted file mode 100644 index b37e8e8d9b..0000000000 --- a/macros/latex/contrib/teubner/teubnertx.sty +++ /dev/null @@ -1,91 +0,0 @@ -%% -%% This is file `teubnertx.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% teubner.dtx (with options: `tbtx') -%% Copyright 2001--2015 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. -%% See the end of the file. -%% -%% IMPORTANT NOTICE: -%% -%% You are allowed to distribute this file under the conditions that are -%% 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. -\ProvidesPackage{teubnertx}[% -2016/03/31 v.4.8 -Access to the LGR encoded Greek fonts that match the TX fonts] - - \DeclareFontFamily{LGR}{txr}{} - \DeclareFontShape{LGR}{txr}{m}{n}{<->ssub * cmr/m/n}{} - \DeclareFontShape{LGR}{txr}{m}{it}{<->ssub * cmr/m/it}{} - \DeclareFontShape{LGR}{txr}{m}{sl}{<->ssub * cmr/m/sl}{} - \DeclareFontShape{LGR}{txr}{m}{sc}{<->ssub * cmr/m/sc}{} - \DeclareFontShape{LGR}{txr}{b}{n}{<->ssub * cmr/bx/n}{} - \DeclareFontShape{LGR}{txr}{b}{it}{<->ssub * cmr/bx/it}{} - \DeclareFontShape{LGR}{txr}{b}{sl}{<->ssub * cmr/bx/sl}{} - \DeclareFontShape{LGR}{txr}{b}{sc}{<->ssub * cmr/bx/sc}{} - \DeclareFontShape{LGR}{txr}{bx}{n}{<->ssub * cmr/bx/n}{} - \DeclareFontShape{LGR}{txr}{bx}{it}{<->ssub * cmr/bx/it}{} - \DeclareFontShape{LGR}{txr}{bx}{sl}{<->ssub * cmr/bx/sl}{} - \DeclareFontShape{LGR}{txr}{bx}{sc}{<->ssub * cmr/bx/sc}{} - - \DeclareFontShape{LGR}{txr}{m}{li}{<->ssub * cmr/m/li}{} - \DeclareFontShape{LGR}{txr}{b}{li}{<->ssub * cmr/b/li}{} - \DeclareFontShape{LGR}{txr}{bx}{li}{<->ssub * cmr/bx/li}{} - \DeclareFontShape{LGR}{txr}{m}{ui}{<->ssub * cmr/m/ui}{} - \DeclareFontShape{LGR}{txr}{b}{ui}{<->ssub * cmr/m/ui}{} - \DeclareFontShape{LGR}{txr}{bx}{ui}{<->ssub * cmr/bx/ui}{} - \DeclareFontShape{LGR}{txr}{m}{rs}{<->ssub * cmr/m/rs}{} - \DeclareFontShape{LGR}{txr}{b}{rs}{<->ssub * cmr/m/rs}{} - \DeclareFontShape{LGR}{txr}{bx}{rs}{<->ssub * cmr/bx/rs}{} - - \DeclareFontFamily{LGR}{txss}{} - \DeclareFontShape{LGR}{txss}{m}{n}{<->ssub * cmss/m/n}{} - \DeclareFontShape{LGR}{txss}{m}{it}{<->ssub * cmss/m/it}{} - \DeclareFontShape{LGR}{txss}{m}{sl}{<->ssub * cmss/m/sl}{} - \DeclareFontShape{LGR}{txss}{m}{sc}{<->ssub * cmss/m/sc}{} - \DeclareFontShape{LGR}{txss}{b}{n}{<->ssub * cmss/bx/n}{} - \DeclareFontShape{LGR}{txss}{b}{it}{<->ssub * cmss/bx/it}{} - \DeclareFontShape{LGR}{txss}{b}{sl}{<->ssub * cmss/bx/sl}{} - \DeclareFontShape{LGR}{txss}{b}{sc}{<->ssub * cmss/bx/sc}{} - \DeclareFontShape{LGR}{txss}{bx}{n}{<->ssub * cmss/bx/n}{} - \DeclareFontShape{LGR}{txss}{bx}{it}{<->ssub * cmss/bx/it}{} - \DeclareFontShape{LGR}{txss}{bx}{sl}{<->ssub * cmss/bx/sl}{} - \DeclareFontShape{LGR}{txss}{bx}{sc}{<->ssub * cmss/bx/sc}{} - - \DeclareFontFamily{LGR}{txtt}{\hyphenchar=-1} - \DeclareFontShape{LGR}{txtt}{m}{n}{<->ssub * cmtt/m/n}{} - \DeclareFontShape{LGR}{txtt}{m}{it}{<->ssub * cmtt/m/it}{} - \DeclareFontShape{LGR}{txtt}{m}{sl}{<->ssub * cmtt/m/sl}{} - \DeclareFontShape{LGR}{txtt}{m}{sc}{<->ssub * cmtt/m/sc}{} - \DeclareFontShape{LGR}{txtt}{b}{n}{<->ssub * cmtt/bx/n}{} - \DeclareFontShape{LGR}{txtt}{b}{it}{<->ssub * cmtt/bx/it}{} - \DeclareFontShape{LGR}{txtt}{b}{sl}{<->ssub * cmtt/bx/sl}{} - \DeclareFontShape{LGR}{txtt}{b}{sc}{<->ssub * cmtt/bx/sc}{} - \DeclareFontShape{LGR}{txtt}{bx}{n}{<->ssub * cmtt/bx/n}{} - \DeclareFontShape{LGR}{txtt}{bx}{it}{<->ssub * cmtt/bx/it}{} - \DeclareFontShape{LGR}{txtt}{bx}{sl}{<->ssub * cmtt/bx/sl}{} - \DeclareFontShape{LGR}{txtt}{bx}{sc}{<->ssub * cmtt/bx/sc}{} -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% End of file `teubnertx.sty'. |