diff options
author | Karl Berry <karl@freefriends.org> | 2014-06-24 22:40:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-06-24 22:40:16 +0000 |
commit | 22323d7c130b0ac0d9f2cc5609b38908e4928ae1 (patch) | |
tree | 53e1d4fa3a7bdf901afc58c5f70518a66e598cf2 /Master/texmf-dist/source | |
parent | 30899a0b2f9c153b100471780c2e536fd9653835 (diff) |
babel-latin (3jun14)
git-svn-id: svn://tug.org/texlive/trunk@34389 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/generic/babel-latin/latin.dtx | 522 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/babel-latin/latin.ins | 93 |
2 files changed, 337 insertions, 278 deletions
diff --git a/Master/texmf-dist/source/generic/babel-latin/latin.dtx b/Master/texmf-dist/source/generic/babel-latin/latin.dtx index 138c6771271..9486fb74fb7 100644 --- a/Master/texmf-dist/source/generic/babel-latin/latin.dtx +++ b/Master/texmf-dist/source/generic/babel-latin/latin.dtx @@ -1,42 +1,14 @@ -% \iffalse meta-comment -% -% Copyright 1989-2008 Johannes L. Braams and any individual authors -% listed elsewhere in this file. All rights reserved. -% -% This file is part of the Babel system. -% -------------------------------------- -% -% 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 -% and version 1.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Johannes Braams. -% -% The list of all files belonging to the Babel system is -% given in the file `manifest.bbl. See also `legal.bbl' for additional -% information. -% -% The list of derived (unpacked) files belonging to the distribution -% and covered by LPPL is defined by the unpacking scripts (with -% extension .ins) which are part of the distribution. -% \fi -% \CheckSum{454} +% \CheckSum{511} % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the % transcript. %<*dtx> -\ProvidesFile{latin.dtx} +\ProvidesFile{latincla.dtx} %</dtx> %<code>\ProvidesFile{latin.ldf} %\fi %\ProvidesFile{latin.dtx}% - [2008/07/06 v2.0l Latin support from the babel system] + [2014/06/01 v.3.0 Latin support from the babel system] %\iffalse %% File `latin.dtx' %% Babel package for LaTeX version 2e @@ -51,7 +23,7 @@ % This file is part of the babel system, it provides the source % code for the Latin language definition file. % The original version of this file was written by -% Claudio Beccari, (claudio.beccari@polito.it) and includes contributions +% Claudio Beccari, (claudio.beccari at gmail.com) and includes contributions % by Krzysztof Konrad \.Zelechowski, (\texttt{kkz@alfa.mimuw.edu.pl}). %<*filedriver> \documentclass{ltxdoc} @@ -70,120 +42,198 @@ % \GetFileInfo{latin.dtx} % % \changes{latin-0.99}{1999/12/06}{First version, from italian.dtx (CB)} -% \changes{latin-0.99}{1999/12/06}{Added shortcuts for breve, macron, +% \changes{latin-0.99}{1999/12/06}{Added shorthands for breve, macron, % and etymological hyphenation (CB)} % \changes{latin-1.2}{2000/01/31}{Added suggestions from Krzysztof % Konrad \.Zelechowski (CB)} % \changes{latin-2.0}{2000/02/10}{Completely new etymological % hyphenation (CB)} % \changes{latin-2.0a}{2000/10/15}{Revised by JB} -% \changes{latin-2.0b}{2000/12/13}{Simplified shortcuts for -% etymological hyphenation; modified breve and macro shortcuts; +% \changes{latin-2.0b}{2000/12/13}{Simplified shorthands for +% etymological hyphenation; modified breve and macro shorthands; % language attribute medieval declared} % \changes{latin-2.0c}{2001/06/04}{Restored caret and equals sign % category codes before exiting} % \changes{latin-2.0d}{2001/06/04}{Restored caret and equals sign % category codes before exiting} % \changes{latin-2.0e}{2003/04/11}{Introduced the language attribute -% `withprosodicmarks'; modified use of breve and macron shortcuts +% `withprosodicmarks'; modified use of breve and macron shorthands % in order to avoid possible conflicts with other packages} -% \changes{latin-2.0i}{2008/02/17}{Corrected the \cs{@clubpenalty} -% problem} -% \changes{latin-2.0j}{2008/03/17}{Added a missing comment char and a -% missing closing brace} -% \changes{latin-2.0l}{2008/07/06}{Added two missing \cs{end} macro's} +% \changes{latin-2.0i}{2008/02/17}{Corrected the \cs{@clubpenalty} problem} +% \changes{latin-2.0j}{2010/01/03}{Corrected sectioning} +% \changes{latin-2.0k}{2014/02/18}{subsections turned into subsections*} +%^^A -------------------------------- +% \changes{latin-3.0}{2014/06/01}{Added modifier for classical spelling and hyphenation} +% \changes{latin-3.0}{2014/06/01}{Restored the subsection numbering} % % \section{The Latin language} % % The file \file{\filename}\footnote{The file described in this % section has version number \fileversion\ and was last revised on -% \filedate. The original author is Claudio Beccari with -% contributions by Krzysztof Konrad \.Zelechowski, -% (\texttt{kkz@alfa.mimuw.edu.pl})} defines all the -% language-specific macros for the Latin language both in modern -% and medieval spelling. -% -% For this language the |\clubpenalty|, |\widowpenalty| are set to -% rather high values and |\finalhyphendemerits| is set to such a -% high value that hyphenation is prohibited between the last two -% lines of a paragraph. -% -% For this language two ``styles'' of typesetting are implemented: -% ``regular'' or modern-spelling Latin, and medieval Latin. -% The medieval Latin specific commands can be activated by means of -% the language attribute |medieval|; the medieval spelling differs -% from the modern one by the systematic use of the lower case `u' -% also where in modern spelling the letter `v' is used; when -% typesetting with capital letters, on the opposite, the letter 'V' -% is used also in place of 'U'. -% Medieval spelling also includes the ligatures |\ae| (\ae), |\oe| -% (\oe), |\AE| (\AE), and |\OE| (\OE) that are not used in modern -% spelling, nor were used in the classical times. -% -% Furthermore a third typesetting style |withprosodicmarks| is -% defined in order to use special shortcuts for inserting breves +% \filedate. The original author is Claudio Beccari.}; defines all the +% language-specific macros for the Latin language including the classical +% spelling and hyphenation. +% +% Without modifiers or attributes, this file describes the modern usage +% of Latin; with this we mean the kind of Latin that is used as an official +% language in the State of Vatican City, and in the teaching of Latin in +% modern schools. This file description language accepts three modifiers, +% in order to be adapted to other situations: +%\begin{enumerate}\csname c@enumi\endcsname=-1 +%\item Modern spelling and hypheenation; this is the default setting; +%\item Modern spelling with prosodic marks: this is to be used mainly +% in modern grammars and dictionaries; +%\item Medieval spelling and hyphenation: in this spelling the lower and +% upper case alphabets become the following:\\ +%\makebox[\linewidth]{\tabcolsep=2pt +%\begin{tabular}{*{26}c} +% a&\ae&b&c&d&e&f&g&h&i&k&l&m&n&o&\oe&p&q&r&s&t&u&x&y&z \\ +% A&\AE&B&C&D&E&F&G&H&I&K&L&M&N&O&\OE&P&Q&R&S&T&V&X&Y&Z +%\end{tabular}} +% It must be noted that this file description language does not make +% any spelling correction in order tu use only `u' in lower case and only +% `V' in upper case: if the input text is wrongly typed in, it remains as +% such; this means it's the typesetter's responsibility to correctly input +% the source text to be typeset; in spite of this, when the transformation +% from lower to upper case is performed (such as, for example, while +% typesetting headers with some classes) the correct capitalization is +% performed and `u' is capitalized to `V'; the reverse takes place when +% transforming to lowercase. +%\item Classical Latin and classical hyphenation; the spelling is similar +% to the medieval one, except for the ligatures \ae, \AE, \oe\ and \OE\ +% that are missing; again it is the typesetter's responsibility to input the +% text to be typeset in a correct way; while the hyphenation patterns for +% modern and medieval Latin form a non contrasting set of patterns, this +% is impossible with classical Latin and a different pattern set has been +% prepared as explained below. +% \item Ecclesiastic Latin is a spelling variety of modern Latin; at the +% moment of writing this documentation, it is taken care by an external +% module |ecclesiastic.sty|, but it is under study the extension of this +% language description file in order to include also the ecclesiastic +% variety. This special spelling of modern Latin is used in liturgical +% and devotional books of the Roman Catholic clergy where ligatures \ae\ +% and \oe\ are widely used and where acute accents are used in order to +% mark the tonic vowel of those words where the penultimate syllable is not +% tonic; this allows clergy with different backgrounds and mother +% languages to recite the prayers with the same rhythmic scheme. +%\end{enumerate} +% +% |babel| is not directly concerned with hyphenation; nevertheless in +% this case it is necessary to switch the hyphenation rules to those +% of another language, |classiclatin|, that must be available +% while creating the format files so that this language description +% file can chose between the modern and medieval hyphenation rules or +% the classical ones. +% +% In summary modern and medieval Latin hyphenation rules are similar +% to those of current Italian, except that the patterns must include +% also some consonant groups that do not exist in Italian; furthermore +% with medieval spelling there are many more vocalic groups than in +% Italian, because of the widespread use of the letter `u' that often +% actually plays the r\^ole of a consonant. +% +% The rules for classical Latin are taken form Raffaello Farina and Nino +% Marinone's guide \emph{Metodologia} published by Societ\`a Editrice +% Internazionale, Torino, 1979. +% In spite of the publication date of this guide the +% hyphenation rules did not change in the meanwhile, since the Classical +% Latin Language is sort of frozen during the past, say, twenty +% centuries. Yes, it is true that the original writings in Classical +% Latin were not hyphenated, and the hyphenation rules were established +% at the beginning of the Renaissance, when mechanical typography +% required suitable justification. Therefore such rules are sort of a +% compromise between the procedures used by the various proto-typographers +% and the scholars' of these disciplines. Nevertheless the rules given +% by Farina and Marinone are generally shared among modern +% scholars and are sort of official at both universities of Torino +% and Vercelli; in the latter University they are adopted by the working group that +% founded the DigilibLT laboratory; I acknowledge their +% contribution in letting me become aware of the problem, and therefore +% to create this update by adding the classical Latin support for the |babel| +% package, with its special hyphenation rules. +% +% In order to implement the above described four styles of typesetting +% three modifiers/attributes have to be defined: |medieval|, |withprosodicmarks| +% and |classic|. They can be used in any order so that many combinations +% are possible, although, generally speaking, just the four described ones +% have a real meaning. +% +% Among these modifiers only |withprosodicmarks| can be turned on and off; +% the others are sort of global; for example, once |classic| is specified, +% there is no easy way to revert to modern spelling and hypehenation; the +% same holds true for the other modifiers, except |withprosodicmarks|. +% +% The typesetting style |withprosodicmarks| is +% defined in order to use special shorthands for inserting breves % and macrons when typesetting grammars, dictionaries, teaching % texts, and the like, where prosodic marks are important for the -% complete information on the words or the verses. The shortcuts, +% complete information on the words or the verses. The shorthands, % listed in table~\ref{t:lashrtct} and described in -% section~\ref{s:shrtcts}, may interfere with other packages; -% therefore by default this third style is off and no interference -% is introduced. If this third style is used and interference is +% subsection~\ref{s:shrtcts}, may interfere with other packages; +% therefore by default this style is turned off and no interference +% is introduced. If this style is used and interference is % experienced, there are special commands for turning on and off -% the specific short hand commands of this style. +% its specific shorthand commands. % -% For what concerns \textsf{babel} and typesetting with \LaTeX, the -% differences between the two styles of spelling reveal themselves -% in the strings used to name for example the ``Preface'' that +% For what concerns |babel| and typesetting with \LaTeX, the +% differences between the three spelling styles reveal themselves +% in the strings used to name, for example, the ``Preface'' that % becomes ``Praefatio'' or ``Pr\ae fatio'' respectively. % Hyphenation rules are also different, but the hyphenation pattern -% file \file{lahyph.tex} takes care of both versions of the -% language. Needless to say that such patterns must be loaded in -% the \LaTeX\ format by running |initex| (or whatever the name -% if the initializer) on |latex.ltx|. -% -% The name strings for chapters, figures, tables, etcetera, are -% suggested by prof. Raffaella Tabacco, a classicist of the -% University of Turin, Italy, to whom we address our warmest +% file \file{hyph-la.tex} takes care of the modern and medieval versions +% of the language, while \file{hyph-llac.tex} takes care of the classical +% hyphenation. The user should not attempt to modify these files, because +% they are not dealt with by |babel|; they are used only during the +% creation of format files. If some errors or modifications are required +% or suggested, it is necessary to ask their maintainer. +% +% The name strings for chapters, figures, tables, et cetera, have been +% suggested by prof. Raffaella Tabacco, a latinist of the +% University of Vercelli, Italy, to whom we address our warmest % thanks. The names suggested by Krzysztof Konrad \.Zelechowski, % when different, are used as the names for the medieval variety, % since he made a word and spelling choice more suited for this % variety. % -% For this language some shortcuts are defined according to +% For this language some shorthands are defined according to % table~\ref{t:lashrtct}; all of them are supposed to work with -% both spelling styles, except where the opposite is explicitly +% all spelling styles, except where the opposite is explicitly % stated. % \begin{table}[htb]\centering % \begin{tabular}{cp{80mm}} % |^i| & inserts the breve accent as \u{\i}; valid also for the % other lowercase vowels, but it does not operate on the -% medieval ligatures \ae\ and \oe.\\ +% medieval ligatures \ae\ and \oe\ because they are long wowels.\\ % |=a| & inserts the macron accent as \=a; valid also for the % other lowercase vowels, but it does not operate on the -% medieval ligatures \ae\ and \oe.\\ +% medieval ligatures \ae\ and \oe\ because they are naturally long.\\ % |"| & inserts a compound word mark where hyphenation is legal; -% the next character must not be a medieval ligature \ae\ -% or \oe, nor an accented letter (foreign names).\\ +% the next character must not be either a non-letter token +% or an accented letter (for foreign names).\\ % \texttt{\string"\string|} -% & same as above, but operates also when the next character -% is a medieval ligature or an accented letter. +% & same as above, but operates also when the next token +% is not a letter or it is an accented character. % \end{tabular} -% \caption[]{Shortcuts defined for the Latin language. The +% \caption[]{Shorthands defined for the Latin language. The % characters \texttt{\string^} and \texttt{\string=} are % active only when the language attribute % \texttt{withprosodicmarks} has been declared, % otherwise they are disabled; see -% section~\ref{s:shrtcts} for more details.}% +% subsection~\ref{s:shrtcts} at page~\pageref{s:shrtcts} +% for more details.}% % \label{t:lashrtct} % \end{table} % \StopEventually{} % +% \section{The code} +% % The macro |\LdfInit| takes care of preventing that this file is % loaded more than once, checking the category code of the % \texttt{@} sign, etc. -% \begin{macrocode} +%\iffalse %<*code> +%\fi +% \begin{macrocode} \LdfInit{latin}{captionslatin} % \end{macrocode} % @@ -203,23 +253,48 @@ % \begin{macrocode} \bbl@declare@ttribute{latin}{medieval}{% \addto\captionslatin{\def\prefacename{Pr{\ae}fatio}}% - \def\november{Nouembris}% \expandafter\addto\expandafter\extraslatin \expandafter{\extrasmedievallatin}% } % \end{macrocode} % -% The third typesetting style |withprosodicmarks| is defined here +% The typesetting style |withprosodicmarks| is defined here: % \begin{macrocode} \bbl@declare@ttribute{latin}{withprosodicmarks}{% \expandafter\addto\expandafter\extraslatin \expandafter{\extraswithprosodicmarks}% } % \end{macrocode} +% +% The `classic' typesetting style is described here: notice that the general +% typesetting rules are identical with those of modern Latin, the default +% one, but the hyphenation rules are different; therefore we just change +% the meaning of counter |\l@latin| so that it points to the language +% counter of classical Latin. In order to avoid a fatal error we test if +% language |classiclatin| has its patterns already loaded, otherwise we issue +% a warning and keep going with the default modern hyphenation +% \begin{macrocode} +\bbl@declare@ttribute{latin}{classic}{% + \expandafter\addto\expandafter\extraslatin + \expandafter{\extrasclassic}% + } +\ifx\l@classiclatin\undefined + \let\l@classiclatin\l@latin + \PackageWarningNoLine{babel}{% + Attention: hyphenation patterns for language\MessageBreak + classiclatin have not been loaded\MessageBreak + I go on using the modern Latin hyphenation patterns.\MessageBreak + Please, load the suitable patterns or upgrade your TeX distribution} +\fi +\addto\extrasclassic{\let\l@latin\l@classiclatin} +% \end{macrocode} % It must be remembered that the |medieval| and the |withprosodicmarks| -% styles may be used together. +% styles may be used together. They are also compatible with +% the |classic| attribute, but it would be unusual to typeset classical +% Latin with some medieval features and/or with the prosodic marks that were +% unknown twenty centuries ago. % -% The next step consists of defining commands to switch to (and +% The next step consists in defining commands to switch to (and % from) the Latin language\footnote{Most of these names were % kindly suggested by Raffaella Tabacco.}. % @@ -269,7 +344,7 @@ % following space; in practice the typesetter should use the % dative of the recipient's name; since nowadays not all such % names can be translated into Latin, they might result -% indeclinable. The clever use of an appellative by the +% indeclinable. The clever use of a dative appellative by the % typesetter such as ``Domino'' or ``Dominae'' might solve the % problem, but the header might get too impressive. The typesetter % must make a decision on his own. @@ -280,15 +355,20 @@ % \begin{macro}{\datelatin} % The macro |\datelatin| redefines the command |\today| to produce % Latin dates; the choice of faked small caps Latin numerals is -% arbitrary and may be changed in the future. For medieval latin +% arbitrary and may be changed in the future. For medieval and classic Latin % the spelling of `Novembris' should be \textit{Nouembris}. This is % taken care of by using a control sequence which can be redefined -% when the attribute `medieval' is selected. +% when the attribute `medieval' and/or `classic' is selected. % \changes{latin-2.0f}{2005/03/30}{Added a comment character to -% prevent unwanted space} +% prevent unwanted space} +% \changes{latin-2.0k}{2011/02/06}{Inserted the various `November' Latin +% spellings to the proper `extras' macros} % \begin{macrocode} +\addto\extraslatin{\def\november{Novembris}} +\addto\extrasmedievallatin{\def\november{Nouembris}} +\addto\extrasclassiclatin{\def\november{Nouembris}} +% \def\datelatin{% - \def\november{Novembris}% \def\today{% {\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont \uppercase\expandafter{\romannumeral\day}}~\ifcase\month\or @@ -299,18 +379,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\romandate} -% Thomas Martin Widmann (\texttt{viralbus@daimi.au.dk}) developed a -% macro originally named |\latindate| (but to be renamed -% |\romandate| so as not to conflict with the standard \babel\ -% conventions) that should compute and translate the current date -% into a date \textit{ab urbe condita} with days numbered according -% to the kalendae and idus; for the moment this is a placeholder -% for Thomas' macro, waiting for a self standing one that keeps -% local all the intermediate data, counters, etc. If he succeeds, -% here is the place to add his macro. -% \end{macro} -% % \begin{macro}{\latinhyphenmins} % The Latin hyphenation patterns can be used with both % |\lefthyphenmin| and |\righthyphenmin| set to~2. @@ -323,7 +391,11 @@ % % \begin{macro}{\extraslatin} % \begin{macro}{\noextraslatin} -% Lower the chance that clubs or widows occur. +% For Latin the |\clubpenalty|, |\widowpenalty| are set to +% rather high values and |\finalhyphendemerits| is set to such a +% high value that hyphenation is almost prohibited between the last two +% lines of a paragraph. +% % \begin{macrocode} \addto\extraslatin{% \babel@savevariable\clubpenalty @@ -331,8 +403,8 @@ \babel@savevariable\widowpenalty \clubpenalty3000\@clubpenalty3000\widowpenalty3000} % \end{macrocode} -% Never ever break a word between the last two lines of a paragraph -% in latin texts. +% Hopefully never ever break a word between the last two lines of +% a paragraph in latin texts. % \begin{macrocode} \addto\extraslatin{% \babel@savevariable\finalhyphendemerits @@ -341,15 +413,19 @@ % \end{macro} % \end{macro} % -% With medieval Latin we need the suitable correspondence between +% With medieval and classic Latin we need the suitable correspondence between % upper case V and lower case u, since in that spelling there is % only one sign, and the u shape is the (uncial) version of the % capital V. Everything else is identical with Latin. % \begin{macrocode} \addto\extrasmedievallatin{% - \babel@savevariable{\lccode`\V}% - \babel@savevariable{\uccode`\u}% - \lccode`\V=`\u \uccode`\u=`\V} +\babel@savevariable{\lccode`\V}% +\babel@savevariable{\uccode`\u}% +\lccode`\V=`\u \uccode`\u=`\V} +\addto\extrasclassiclatin{% +\babel@savevariable{\lccode`\V}% +\babel@savevariable{\uccode`\u}% +\lccode`\V=`\u \uccode`\u=`\V} % \end{macrocode} % % \begin{macro}{\SetLatinLigatures} @@ -371,9 +447,11 @@ % `u' shape of the lower case `v' and the above ligatures were % fancy styles of the copyists who were able to write faster with % those rounded glyphs; with typesetting there is no question of -% handling a quill penn\dots Since my (CB) opinion may be wrong, I -% managed to set up the instruments and it is up to the typesetter -% to use them or not. +% handling a quill penn\dots Moreover in medieval times it was very +% frequent to close such ligatures to the corresponding sound, +% therefore instead of writing \ae\ or \oe\ they would often simply +% write `e'. Since my (CB) opinion may be wrong, I managed to set +% up the instruments and it is up to the typesetter to use them or not. % % \begin{macrocode} \addto\extrasmedievallatin{% @@ -390,6 +468,7 @@ \babel@savevariable{\uccode`\^^1b}% OT1 \OE \babel@savevariable{\lccode`\^^1e}% OT1 \OE \SetLatinLigatures} + \providecommand\SetLatinLigatures{% \def\@tempA{T1}\ifx\@tempA\f@encoding \catcode`\^^e6=11 \lccode`\^^e6=`\^^e6 \uccode`\^^e6=`\^^c6 % \ae @@ -398,25 +477,26 @@ \catcode`\^^d7=11 \lccode`\^^d7=`\^^f7 % \OE \else \catcode`\^^1a=11 \lccode`\^^1a=`\^^1a \uccode`\^^1a=`\^^1d % \ae - \catcode`\^^1d=11 \lccode`\^^1d=`\^^1a % \AE (^^]) + \catcode`\^^1d=11 \lccode`\^^1d=`\^^1a % \AE \catcode`\^^1b=11 \lccode`\^^1b=`\^^1b \uccode`\^^1b=`\^^1e % \oe - \catcode`\^^1e=11 \lccode`\^^1e=`\^^1b % \OE (^^^) + \catcode`\^^1e=11 \lccode`\^^1e=`\^^1b % \OE \fi \let\@tempA\@undefined } % \end{macrocode} % With the above definitions we are sure that |\MakeUppercase| -% works properly and |\MakeUppercase{C{\ae}sar}| correctly `yields -% `C{\AE}SAR''; correspondingly |\MakeUppercase{Heluetia}| +% works properly and |\MakeUppercase{C{\ae}sar}| correctly yields +% ``C{\AE}SAR''; correspondingly |\MakeUppercase{Heluetia}| % correctly yields ``HELVETIA''. % \end{macro} % -% \section{Latin shortcuts}\label{s:shrtcts} -% For writing dictionaries or didactic texts (in modern spelling -% only) we defined a third language attribute, or a third -% typesetting style, a couple of other active characters are +% \changes{latin-2.0j}{20104/02/18}{Renamed this section to subsection} +% \subsection{Latin shorthands}\label{s:shrtcts} +% For writing dictionaries or school texts (in modern spelling +% only) we defined a language attribute or +% typesetting style, such that a couple of other active characters are % defined: |^| for marking a vowel with the breve sign, and |=| for -% marking a vowel with the macro sign. Please take notice that +% marking a vowel with the macron sign. Please take notice that % neither the OT1 font encoding, nor the T1 one for most vowels, % contain directly the marked vowels, therefore hyphenation of % words containing these ``accents'' may become problematic; for @@ -426,15 +506,15 @@ % breaks in the rest of the word. % % It must be remarked that the active characters |^| and |=| may -% have other meanings in other contexts. For example the equals -% sign is used by the graphic extensions for specifying keyword -% options for handling the graphic elements to be included in the -% document. At the same time, as mentioned in the previous +% have other meanings in other contexts. For example, besides math, +% the equals sign is used by the graphic extensions for specifying +% keyword options for handling the graphic elements to be included +% in the document. At the same time, as mentioned in the previous % paragraph, diacritical marking in Latin is used only for -% typesetting certain kind of documents, such as grammars and +% typesetting certain kinds of document, such as grammars and % dictionaries. It is reasonable that the breve and macron active -% characters are switched on and off at will, and in particular -% that they are off by default if the attribute |withprosodicmarks| +% characters are turned on and off at will; by default +% they are off if the attribute |withprosodicmarks| % has not been set. % % \begin{macro}{\ProsodicMarksOn} @@ -442,10 +522,10 @@ % We begin by adding to the normal typesetting style the % definitions of the new commands |\ProsodicMarksOn| and % |\ProsodicMarksOff| that should produce error messages when the -% third style is not declared: +% this style is not declared: % \begin{macrocode} \addto\extraslatin{\def\ProsodicMarksOn{% - \GenericError{(latin)\@spaces\@spaces\@spaces\@spaces}% +\GenericError{(latin)\@spaces\@spaces\@spaces\@spaces}% {Latin language error: \string\ProsodicMarksOn\space is defined by setting the\MessageBreak language attribute to `withprosodicmarks'\MessageBreak @@ -456,18 +536,13 @@ \addto\extraslatin{\let\ProsodicMarksOff\relax} % \end{macrocode} % -% Then we temporarily set the caret and the equals sign to active -% characters so that they can receive their definitions. But first -% we store their current category codes to restore them later on. -% \changes{latin-2.0k}{2008/03/21}{Save current category codes of -% equals sign and caret in order to restore them later} +% Next we temporarily set the caret and the equals sign to active +% characters so that they can receive their definitions: % \begin{macrocode} -\@tempcnta=\catcode`\= -\@tempcntb=\catcode`\^ \catcode`\= \active \catcode`\^ \active % \end{macrocode} -% Now we can add the necessary declarations to the macros that are +% and we add the necessary declarations to the macros that are % being activated when the Latin language and its typesetting % styles are declared: % \begin{macrocode} @@ -478,20 +553,18 @@ \addto\noextraswithprosodicmarks{\bbl@deactivate{=}}% \addto\extraswithprosodicmarks{\ProsodicMarks} % \end{macrocode} -% \end{macro} -% \end{macro} % % \begin{macro}{\ProsodicMarks} -% Next we define the defining macro for the active characters -% \changes{latin-2.0k}{2008/03/21}{Use \cs{active} instead of 13} +% Next we define the macros for the active characters % \begin{macrocode} \def\ProsodicMarks{% - \def\ProsodicMarksOn{\catcode`\^ \active\catcode`\= \active}% - \def\ProsodicMarksOff{\catcode`\^ 7\catcode`\= 12\relax}% +\def\ProsodicMarksOn{\catcode`\^ 13\catcode`\= 13\relax}% +\def\ProsodicMarksOff{\catcode`\^ 7\catcode`\= 12\relax}% +} % \end{macrocode} % Notice that with the above redefinitions of the commands % |\ProsodicMarksOn| and |\ProsodicMarksOff|, the operation of the -% newly defined shortcuts may be switched on and off at will, so +% newly defined shorthands may be switched on and off at will, so % that even if a picture has to be inserted in the document by % means of the commands and keyword options of the |graphicx| % package, it suffices to switch them off before invoking the @@ -503,35 +576,34 @@ % \changes{latin-2.0g}{2005/11/17}{changed \cs{allowhyphens} to % \cs{bbl@allowhyphens}} % \begin{macrocode} - \initiate@active@char{^}% - \initiate@active@char{=}% - \declare@shorthand{latin}{^a}{% +\initiate@active@char{^}% +\initiate@active@char{=}% +\declare@shorthand{latin}{^a}{% \textormath{\u{a}\bbl@allowhyphens}{\hat{a}}}% - \declare@shorthand{latin}{^e}{% +\declare@shorthand{latin}{^e}{% \textormath{\u{e}\bbl@allowhyphens}{\hat{e}}}% - \declare@shorthand{latin}{^i}{% +\declare@shorthand{latin}{^i}{% \textormath{\u{\i}\bbl@allowhyphens}{\hat{\imath}}}% - \declare@shorthand{latin}{^o}{% +\declare@shorthand{latin}{^o}{% \textormath{\u{o}\bbl@allowhyphens}{\hat{o}}}% - \declare@shorthand{latin}{^u}{% +\declare@shorthand{latin}{^u}{% \textormath{\u{u}\bbl@allowhyphens}{\hat{u}}}% % - \declare@shorthand{latin}{=a}{% +\declare@shorthand{latin}{=a}{% \textormath{\={a}\bbl@allowhyphens}{\bar{a}}}% - \declare@shorthand{latin}{=e}{% +\declare@shorthand{latin}{=e}{% \textormath{\={e}\bbl@allowhyphens}{\bar{e}}}% - \declare@shorthand{latin}{=i}{% +\declare@shorthand{latin}{=i}{% \textormath{\={\i}\bbl@allowhyphens}{\bar{\imath}}}% - \declare@shorthand{latin}{=o}{% +\declare@shorthand{latin}{=o}{% \textormath{\={o}\bbl@allowhyphens}{\bar{o}}}% - \declare@shorthand{latin}{=u}{% +\declare@shorthand{latin}{=u}{% \textormath{\={u}\bbl@allowhyphens}{\bar{u}}}% -} % \end{macrocode} % Notice that the short hand definitions are given only for lower % case letters; it would not be difficult to extend the set of % definitions to upper case letters, but it appears of very little -% use in view of the kind of documents where prosodic marks are +% use in view of the kinds of document where prosodic marks are % supposed to be used. Nevertheless in those rare cases when it's % required to set some uppercase letters with their prosodic % marks, it is always possible to use the standard \LaTeX\ commands @@ -539,31 +611,29 @@ % typesetting~\=A. % % Finally we restore the caret and equals sign initial default -% category codes. -% \changes{latin-2.0k}{2008/03/21}{Restore category codes rather then -% return them to their \TeX\ default values. \emph{And} do that -% outside of the command definition} +% category codes % \begin{macrocode} -\catcode`\= \@tempcnta -\catcode`\^ \@tempcntb +\catcode`\= 12\relax +\catcode`\^ 7\relax % \end{macrocode} % so as to avoid conflicts with other packages or other \babel\ % options. % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\LatinMarksOn} % \begin{macro}{\LatinMarksOff} % \changes{latin-2.0g}{2005/11/17}{Added two commands} % \changes{latin-2.0h}{2007/10/19}{Added missing backslash} -% We define two new commands so as to switch on and off the breve -% and macron shortcuts. +% The following commands remain defined for backwards compatibility, +% but hey are obsolete and should not be used. % \changes{latin-2.0h}{2007/10/20}{Removed the setting of % \cs{LatinMarksOff} from \cs{extraslatin}} -% \changes{latin-2.0k}{2008/03/21}{Set the \cs{LatinMarks...} commands -% equal to the \cs{ProsodicMarks..} commands for compatibility} % \begin{macrocode} -\addto\extraswithprosodicmarks{\let\LatinMarksOn\ProsodicMarksOn} -\addto\extraswithprosodicmarks{\let\LatinMarksOff\ProsodicMarksOff} +\addto\extraslatin{\def\LatinMarksOn{\shorthandon{^}\shorthandon{=}}} +\addto\extraslatin{\def\LatinMarksOff{\shorthandoff{^}\shorthandoff{=}}} +%\addto\extraslatin{\LatinMarksOff} % \end{macrocode} % \end{macro} % \end{macro} @@ -574,11 +644,37 @@ % (only in school textbooks), this shouldn't be of any importance % for what concerns the quality of typesetting. % -% \section{Etymological hyphenation} +% \changes{latin-2.0j}{2014/02/18}{Renamed this section to subsection} +% \subsection{Etymological hyphenation} % In order to deal in a clean way with prefixes and compound words % to be divided etymologically, the active character |"| is given % a special definition so as to behave as a discretionary break -% with hyphenation allowed after it. +% with hyphenation allowed after it. You may see this sign as a +% substitute for a ``compound word mark''. +% +% This is particularly useful with classical Latin because this +% language requires etymological hyphenation; patterns were created +% with etymological hyphenation in mind, but even if for certain +% prefixes or suffixes it works pretty well, it does not for certain +% other ones. For example the word `redire' should be hyphenated as +% `red-i-re'; but there are plenty of other words starting with the +% string `red' that does not play the r\^ole of a prefix; therefore +% it should be necessary to extract all the Latin words where `red' +% is a prefix, and enter the suitable patterns to hyphenate correctly +% only those words; in the simple case of the verb `redire' it would +% be necessary to enter all the words that belong to the conjugation +% of this verb and the declination of the present, future and past +% participles in masculine, feminine and neutral forms; the same problem +% takes place with prefix `trans' where sometimes is a real prefix, +% such as in `transire' (hyphenation trans-i-re), and sometimes is +% modified with the absorption of an initial `s' of the suffix, such +% as in `transubstantialis' (classical hyphenation: tran-subs-tan-tia-lis). + +% Obviously this task would render the pattern file enormous, and mostly +% useless. The active character |"| solves the problem for isolated instances, +% while the hyphenations exception lists of the only forms actually used +% in a specific document, would do the rest. +% % Most of the code for dealing with the active |"| is already % contained in the core of \babel, but we are going to use it as a % single character shorthand for Latin. @@ -602,7 +698,7 @@ \lt@@next }% % \end{macrocode} -% In text mode the \cs{lt@next} control sequence is such that upon +% In text mode the \cs{lt@@next} control sequence is such that upon % its execution a temporary variable \cs{lt@temp} is made % equivalent to the next token in the input list without actually % removing it. Such temporary token is then tested by the macro @@ -610,35 +706,48 @@ % introduces a compound word separator control sequence % \cs{lt@allowhyphens} whose expansion introduces a discretionary % hyphen and an unbreakable space; in case the token is not a -% letter, the token is tested again to find if it is the character -% \texttt{\string|}, in which case it is gobbled and a -% discretionary break is introduced. +% letter, it is tested against the definitions of |\ae| and |\oe|, +% and if the test is true than such definitions are treated as +% letters (as they actually are), otherwise the token is tested +% again to find if it is the character \texttt{\string|}, in which +% case it is gobbled and a discretionary break is introduced. % \changes{latin-2.0g}{2005/11/17}{Added a \cs{nobreak}} +% \changes{latin-3.0}{2014/06/01}{\cs{lt@allowhyphens} rewritten so as +% to use the babel core command \cs{bbl@allowhyphens}} +% \changes{latin-3.0}{2014/06/01}{Introduced the tests for the ligatures +% \cs{ae} and \cs{oe}} % \begin{macrocode} -\def\lt@allowhyphens{\nobreak\discretionary{-}{}{}\nobreak\hskip\z@skip} +\def\lt@allowhyphens{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens} \newcommand*{\lt@cwm}{\let\lt@n@xt\relax \ifcat\noexpand\lt@temp a% \let\lt@n@xt\lt@allowhyphens \else - \if\noexpand\lt@temp\string|% - \def\lt@n@xt{\lt@allowhyphens\@gobble}% + \ifx\lt@temp\ae + \let\lt@n@xt\lt@allowhyphens + \else + \ifx\lt@temp\oe + \let\lt@n@xt\lt@allowhyphens + \else + \if\noexpand\lt@temp\string|% + \def\lt@n@xt{\lt@allowhyphens\@gobble}% + \fi + \fi \fi \fi \lt@n@xt}% % \end{macrocode} % -% Attention: the category code comparison does not work if the -% temporary control sequence \cs{lt@temp} has been let equal to an -% implicit character, such as |\ae|; therefore this etymological -% hyphenation facility does not work with medieval Latin spelling -% when |"| immediately precedes a ligature. In order to overcome -% this drawback the shorthand \verb!"|! may be used in such cases; -% it behaves exactly as |"|, but it does not test the implicit -% character control sequence. An input such as -% \verb!super"|{\ae}quitas!\footnote{This word does not exist in -% ``regular'' Latin, and it is used just as an example.} gets -% hyphenated as \texttt{su-per-{\ae}qui-tas} instead of -% \texttt{su-pe-r\ae-qui-tas}. +% Attention: the ligature commands |\ae| and |\oe| are detected correctly +% if they are not included within a group. In facts an input such as +% |super"{\ae}quitas|\footnote{This word does not exist in +% ``regular'' Latin, and it is used just as an example.} gets wrongly +% hyphenated as \texttt{su-pe-r\ae-qui-tas} while |super"\ae{}quitas|, +% that uses an empty group to terminate the |\ae| control sequence, gets +% correctly hyphenated as \texttt{su-per-\ae-qui-tas}. If one prefers to +% close the |\ae| or |\oe| ligature commands within a group, then it is +% necessary to use the alternate etymological hyphenation command \verb+"|+ +% as in \verb!super"|{\ae}quitas! in order to get \texttt{su-per-{\ae}-qui-tas}. +% . % % The macro |\ldf@finish| takes care of looking for a % configuration file, setting the main language to be switched on @@ -646,8 +755,10 @@ % \texttt{@} to its original value. % \begin{macrocode} \ldf@finish{latin} -%</code> % \end{macrocode} +%\iffalse +%</code> +%\fi % % \Finale %% @@ -668,3 +779,4 @@ %% Right brace \} Tilde \~} %% \endinput + diff --git a/Master/texmf-dist/source/generic/babel-latin/latin.ins b/Master/texmf-dist/source/generic/babel-latin/latin.ins index 763ed018ff2..1d6d6bc2ef6 100644 --- a/Master/texmf-dist/source/generic/babel-latin/latin.ins +++ b/Master/texmf-dist/source/generic/babel-latin/latin.ins @@ -3,35 +3,19 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1989-2008 Johannes L. Braams and any individual authors +%% Copyright 1989-2000 Johannes L. Braams and any individual authors %% listed elsewhere in this file. All rights reserved. %% -%% This file is part of the Babel system. -%% -------------------------------------- +%% This file is part of the Babel system, release 3.7. +%% --------------------------------------------------- %% -%% 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 -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% The Current Maintainer of this work is Johannes Braams. -%% -%% The list of all files belonging to the LaTeX base distribution is -%% given in the file `manifest.bbl. See also `legal.bbl' for additional -%% information. -%% -%% The list of derived (unpacked) files belonging to the distribution -%% and covered by LPPL is defined by the unpacking scripts (with -%% extension .ins) which are part of the distribution. +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. %% %% --------------- start of docstrip commands ------------------ %% -\def\filedate{1999/04/11} +\def\filedate{2014/05/27} \def\batchfile{latin.ins} \input docstrip.tex @@ -51,69 +35,32 @@ \fi} \declarepreamble\mainpreamble + This is a generated file. -Copyright 1989-2008 Johannes L. Braams and any individual authors +Copyright 1989-2000 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. -This file was generated from file(s) of the Babel system. ---------------------------------------------------------- - -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 -and version 1.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. - -This work has the LPPL maintenance status "maintained". - -The Current Maintainer of this work is Johannes Braams. +This file is part of the Babel system release 3.7. +-------------------------------------------------- -This file may only be distributed together with a copy of the Babel -system. You may however distribute the Babel system without -such generated files. - -The list of all files belonging to the Babel distribution is -given in the file `manifest.bbl'. See also `legal.bbl for additional -information. - -The list of derived (unpacked) files belonging to the distribution -and covered by LPPL is defined by the unpacking scripts (with -extension .ins) which are part of the distribution. - -Copyright 1999-2007 Claudio Beccari All rights reserved. +It may be distributed under the terms of the LaTeX Project Public +License, as described in lppl.txt in the base LaTeX distribution. +Either version 1.1 or, at your option, any later version. \endpreamble \declarepreamble\fdpreamble This is a generated file. -Copyright 1989-2008 Johannes L. Braams and any individual authors +Copyright 2000 Johannes L. Braams and any individual authors listed elsewhere in this file. All rights reserved. -This file was generated from file(s) of the Babel system. ---------------------------------------------------------- - -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 -and version 1.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. - -This work has the LPPL maintenance status "maintained". - -The Current Maintainer of this work is Johannes Braams. - -This file may only be distributed together with a copy of the Babel -system. You may however distribute the Babel system without -such generated files. +This file is part of the Babel system, release 3.7. +--------------------------------------------------- -The list of all files belonging to the Babel distribution is -given in the file `manifest.bbl'. See also `legal.bbl for additional -information. +It may be distributed under the terms of the LaTeX Project Public +License, as described in lppl.txt in the base LaTeX distribution. +Either version 1.1 or, at your option, any later version. In particular, permission is granted to customize the declarations in this file to serve the needs of your installation. |