summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-02-03 23:23:04 +0000
committerKarl Berry <karl@freefriends.org>2016-02-03 23:23:04 +0000
commitcf96ca13c66cc873f51f3f580dc438d013b31241 (patch)
tree5e10bdf65b841bbcf04fcc73bccf57fed8aa7fea /Master/texmf-dist
parent5bde818d4507934bd514e3a8a2cba02b718928c3 (diff)
babel (2feb16)
git-svn-id: svn://tug.org/texlive/trunk@39571 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/babel/README26
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel.pdfbin391903 -> 394269 bytes
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx46
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.ins24
-rw-r--r--Master/texmf-dist/source/latex/babel/bbunicode.dtx130
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def11
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty6
-rw-r--r--Master/texmf-dist/tex/generic/babel/blplain.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/bplain.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg10
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def115
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf4
-rw-r--r--Master/texmf-dist/tex/generic/babel/plain.def2
-rw-r--r--Master/texmf-dist/tex/generic/babel/switch.def8
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def2
15 files changed, 267 insertions, 121 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README b/Master/texmf-dist/doc/latex/babel/README
index 023cc5e0e88..4c66f660335 100644
--- a/Master/texmf-dist/doc/latex/babel/README
+++ b/Master/texmf-dist/doc/latex/babel/README
@@ -1,7 +1,10 @@
-Babel 3.9n
+Babel 3.9o
----------
-This is Babel 3.9n.
+This is Babel 3.9o.
+
+**** If you are upgrading to 3.9o and want to use luatex, ****
+**** you must rebuild the formats ****
Version 3.9a fixed lots of bugs and added some new features, intended
mainly to make it compatible somehow with Unicode engines. Some bugs
@@ -18,11 +21,11 @@ about contributing a language.
To install it, just tex babel.ins and move the generated files to the
corresponding place in your TeX distribution. Unlike former releases,
formats must not be recreated, but it is recommended, at least the
-first time Babel is updated from 3.8 (or previous versions).
+first time Babel is updated from 3.8 (or previous versions).
Changes are described in babel.pdf with the label "New 3.9". The
-manual has been expanded to include tips and tricks, but it will be
-improved in next releases.
+manual has been expanded to include some tips and tricks, but it will
+be improved in next releases.
Please, report bugs and suggestions to:
@@ -30,7 +33,7 @@ http://latex-project.org/bugs-upload.html
You may also report them to the author more informally on:
-http://www.tex-tipografia.com/contact.html
+http://www.texnia.com/contact.html
Bugs related to specific languages are best reported to their
respective authors.
@@ -91,10 +94,10 @@ New
Now, babel sets it if fontspec is loaded.
- New package options 'nocase' (\SetCase is ignored) and 'silent'
- Improved compatibility (hopefully) with babelbib.
-3.9m - Fixed melayu name (from meyalu)
- - A few lines for \babelpatterns (only luatex, see below)
+3.9m - Fixed melayu name (from meyalu).
+ - A few lines for \babelpatterns (only luatex, see below).
3.9n - Just fixes a couple of minor bugs (related to 2.09 and ifthen).
-
+3.9o - Adapted to the forthcoming Unicode encoding.
* bbunicode.dtx
1.0b - Improvements by Elie Roux for LuaTeX.
@@ -102,9 +105,10 @@ New
1.0e - \babelpatterns, which adds patterns to a language.
- Use [[]] instead of \luaescapestring (the latter is not always
available).
-1.0f - Code for luatex assigned mistakenly to xetex
+1.0f - Code for luatex assigned mistakenly to xetex.
+1.1a - Revamped hyphenation loader for luatex.
------------
Javier Bezos
-2016-01-08
+2016-02-01
diff --git a/Master/texmf-dist/doc/latex/babel/babel.pdf b/Master/texmf-dist/doc/latex/babel/babel.pdf
index 208141d56d5..653e85c26d5 100644
--- a/Master/texmf-dist/doc/latex/babel/babel.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx
index 4d8444ab9fe..bc8980420e8 100644
--- a/Master/texmf-dist/source/latex/babel/babel.dtx
+++ b/Master/texmf-dist/source/latex/babel/babel.dtx
@@ -36,7 +36,7 @@
%\iffalse
%% File 'babel.dtx'
%\fi
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%\iffalse
%
% Babel DOCUMENT-STYLE option for LaTeX version 2.09 or plain TeX;
@@ -196,8 +196,8 @@
\vspace{2cm}\hspace{1.5cm}
\begin{minipage}{5cm}
\Large
-Version 3.9n\newline
-2016/01/08
+Version 3.9o\newline
+2016/02/01
\vspace{1cm}
\textit{Original author}\newline
@@ -1313,6 +1313,7 @@ far from complete):
some languages (kerning and spacing). Ligatures can be disabled.
\item[substitutefont] Combines fonts in several encodings.
\item[mkpattern] Generates hyphenation patterns.
+\item[tracklang] Tracks which languages have been requested.
\end{description}
\subsection{Future work}
@@ -1366,17 +1367,30 @@ Note you can set any feature required for the language -- not only
|Language|, but also |Script| or a local |.fea|. This makes those macros
a bit more verbose, but also more powerful.
-\section{Preloading languages with \file{language.dat}}
+\section{Loading languages with \file{language.dat}}
\TeX{} and most engines based on it (pdf\TeX, \xetex, $\epsilon$-\TeX,
the main exception being \luatex) require hyphenation patterns to be
-loaded when a format is created (eg, \LaTeX, Xe\LaTeX,
+preloaded when a format is created (eg, \LaTeX, Xe\LaTeX,
pdf\LaTeX). \babel{} provides a tool which has become standand in many
distributions and based on a ``configuration file'' named
\file{language.dat}. The exact way this file is used depends on the
distribution, so please, read the documentation for the latter (note
also some distributions generate the file with some tool).
+\New{3.9o} With \luatex, however, patterns are loaded on the fly when
+requested by the language (except the ``0th'' language,
+\textsf{english}, which is preloaded always). Until 3.9n, this task
+was delegated to the package \textsf{luatex-hyphen}, by Khaled Hosny,
+\'Elie Roux, and Manuel P\'egouri\'e-Gonnard, and required an extra
+file named |language.dat.lua|, but now a new mechanism has been
+devised based solely on |language.dat|. \textbf{You must rebuild the
+formats} if upgrading from a previous version. You may want to have a
+local |language.dat| for a particular project (for example, a book on
+Chemistry).
+
+\subsection{Format}
+
In that file the person who maintains a \TeX\ environment has to record
for which languages he has hyphenation patterns \emph{and} in which
files these are stored\footnote{This is because different operating
@@ -1622,7 +1636,7 @@ explained in in sec. \ref{s:strings} (\babel{} 3.9 and later).
\begin{verbatim}
\ProvidesLanguage{<language>}
- [2016/01/08 v0.0 <Language> support from the babel system]
+ [2016/02/01 v0.0 <Language> support from the babel system]
\LdfInit{<language>}{captions<language>}
\ifx\undefined\l@<language>
@@ -2405,8 +2419,8 @@ help from Bernd Raichle, for which I am grateful.
% little bit of literate programming.
%
% \begin{macrocode}
-%<<version=3.9n>>
-%<<date=2016/01/08>>
+%<<version=3.9o>>
+%<<date=2016/02/01>>
% \end{macrocode}
%
% We define some basic macros which just make the code cleaner.
@@ -6625,11 +6639,17 @@ help from Bernd Raichle, for which I am grateful.
% \changes{babel~3.6u}{1999/04/20}{Moved this code to
% \file{babel.def}}
% \changes{babel~3.9l}{2014/08/02}{fontspec used to set
-% \cs{latinencoding} to EUx, but now it doesn't. So, it's done here.}
+% \cs{latinencoding} to EUx, but now it doesn't. So, it's done
+% here.}
+% \changes{babel~3.9o}{2016/01/27}{With fontspec, first check if
+% \cs{UTFencname} exists.}
% \begin{macrocode}
\AtBeginDocument{%
\@ifpackageloaded{fontspec}%
- {\xdef\latinencoding{EU\ifcase\bbl@engine\or2\or1\fi}}%
+ {\xdef\latinencoding{%
+ \@ifundefined{UTFencname}%
+ {EU\ifcase\bbl@engine\or2\or1\fi}%
+ {\UTFencname}}}%
{\gdef\latinencoding{OT1}%
\ifx\cf@encoding\bbl@t@one
\xdef\latinencoding{\bbl@t@one}%
@@ -8270,11 +8290,14 @@ help from Bernd Raichle, for which I am grateful.
% \changes{babel~3.9g}{2013/07/28}{In non-LaTeX formats the number of
% languages were not printed. Moved from \cs{dump} and cleaned up:
% now \cs{toks}8 is expanded here.}
+% \changes{babel~3.9o}{2016/01/25}{The number of languages loaded was
+% off by 1.}
% \begin{macrocode}
\if/\the\toks@/\else
\errhelp{language.dat loads no language, only synonyms}
\errmessage{Orphan language synonym}
\fi
+\advance\last@language\@ne
\edef\bbl@tempa{%
\everyjob{%
\the\everyjob
@@ -8283,7 +8306,8 @@ help from Bernd Raichle, for which I am grateful.
\else
\noexpand\typeout
\fi
- {\the\toks8 \the\last@language\space languages loaded.}}}
+ {\the\toks8 \the\last@language\space language(s) loaded.}}}
+\advance\last@language\m@ne
\bbl@tempa
% \end{macrocode}
% Also remove some macros from memory and raise an error
diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins
index ad476a6fa26..bcf3855f0d4 100644
--- a/Master/texmf-dist/source/latex/babel/babel.ins
+++ b/Master/texmf-dist/source/latex/babel/babel.ins
@@ -42,7 +42,7 @@
%%
%% You are not allowed to modify its contents.
%%
-\def\filedate{2014/03/24}
+\def\filedate{2016/02/01}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -62,16 +62,15 @@
\fi}
% Modify docstrip. A pseudo-guard is defined to set variables:
-% <<name=value>>. These variables are used with <@name@>
-% Two further pseudo-guards define "block" variables: <<*name>> and
-% <</name>> delimite the lines to be retrived with <@name@>. Note
-% the verbatim guard is overriden, which it's not used here.
-% It's done in two passes: 1) with saving true, blocks are always
-% read and saved; 2) with saving false, blocks are always ignored,
-% but replacing <@name@>.
-% While <@name@> can be used freely outside <<>>, it is only
-% allowed inside <<>> if previouly defined. Deeper nesting is
-% not allowed.
+% <<name=value>>. These variables are used with <@name@> Two further
+% pseudo-guards define "block" variables: <<*name>> and <</name>>
+% delimite the lines to be retrived with <@name@>. Note the verbatim
+% guard is overriden, but it's not used here. This is done in two
+% passes: 1) with saving true, there is a dummy pass, generating
+% nothing, but blocks are read and saved; 2) with saving false, blocks
+% are always ignored, but replacing <@name@>. While <@name@> can be
+% used freely outside <<>>, it's only allowed inside <<>> if
+% previouly defined. Deeper nesting is not allowed.
\def\replaceVar#1<@#2{%
#1%
@@ -191,8 +190,6 @@ This file is a style file for the MakeIndex program
\usedir{tex/generic/babel}
-\askforoverwritefalse
-
\usepreamble\mainpreamble
% Dummy, it just read "modules" to be used when generating
@@ -228,7 +225,6 @@ This file is a style file for the MakeIndex program
}
% compatibility files
-
\def\compatfile#1{\file{#1.sty}{\from{bbcompat.dtx}{#1}}}
\generate{%
diff --git a/Master/texmf-dist/source/latex/babel/bbunicode.dtx b/Master/texmf-dist/source/latex/babel/bbunicode.dtx
index 02265c3108e..e4365b9c1e6 100644
--- a/Master/texmf-dist/source/latex/babel/bbunicode.dtx
+++ b/Master/texmf-dist/source/latex/babel/bbunicode.dtx
@@ -31,12 +31,12 @@
% \iffalse
%<*dtx>
\ProvidesFile{bbunicode.dtx}
- [2016/01/05 v1.0f Babel hooks for Unicode engines]
+ [2016/02/01 v1.1a Babel hooks for Unicode engines]
%</dtx>
%
%% File `bbunicode.dtx'
%% Babel package for LaTeX version 2e
-%% Copyright (C) 2103-2014
+%% Copyright (C) 2103-2016
%% by Javier Bezos
%
%<*filedriver>
@@ -179,9 +179,15 @@
% \end{macrocode}
% \subsection{LuaTeX}
%
-% This part relies on the |lua| stripts in \pkg{luatex-hyphen} by Khaled
-% Hosny, \'{E}lie Roux, and Manuel
-% P\'{e}gouri\'{e}-Gonnard. \'{E}lie also improved the code below.
+% The new loader for luatex is based solely on |language.dat|, which is
+% read on the fly. The code shouldn't be executed when the format is
+% build, so we check if |\bbl@get@enc| is defined. Then comes a
+% simplified version of the loader in |hyphen.cfg| (without the
+% hyphenmins stuff, which is under the direct control of \babel). A
+% language has been loaded if |bbl@hyphendata@<num>| exists. The names
+% |\l@<language>| are defined and take some value from the beginning
+% because all ldf files assume this for the corresponding language to be
+% considered valid. Of course, there is room for improvements.
% \changes{bbunicode~1.0b}{2013/04/22}{luatex-hyphen is loaded
% with require. Changes supplied by \'{E}lie Roux.}
% \changes{bbunicode~1.0c}{2014/03/10}{Defined hook for
@@ -193,16 +199,81 @@
% \cs{luaescapestring}}
% \changes{bbunicode~1.0e}{2015/07/26}{Added function addpatterns and
% modified the patterns hook.}
+% \changes{bbunicode~1.1a}{2016/01/26}{New hyphenation loader for luatex.}
%
% \begin{macrocode}
%<*luatex>
+\ifx\bbl@get@enc\@undefined
+ \def\bbl@process@line#1#2 #3 #4 {%
+ \ifx=#1%
+ \bbl@process@synonym{#2}%
+ \else
+ \bbl@process@language{#1#2}{#3}{#4}%
+ \fi
+ \ignorespaces}
+ \def\bbl@process@language#1#2#3{%
+ \@ifundefined{l@#1}%
+ {\expandafter\addlanguage\csname l@#1\endcsname
+ \expandafter\language\csname l@#1\endcsname
+ \let\bbl@elt\relax
+ \edef\bbl@languages{%
+ \bbl@languages\bbl@elt{#1}{\the\language}{#2}{#3}}}%
+ {}}
+ \def\bbl@process@synonym#1{%
+ \@ifundefined{l@#1}%
+ {\expandafter\chardef\csname l@#1\endcsname\last@language
+ \let\bbl@elt\relax
+ \edef\bbl@languages{%
+ \bbl@languages\bbl@elt{#1}{\the\last@language}{}{}}}%
+ {}}
+ \ifnum\last@language>\z@
+ \bbl@warning{Wrong or old hyphenation setup. Please, rebuild\\%
+ the format. I'll try to fix it for this run.\\%
+ Reported}%
+ \def\bbl@elt#1#2#3#4{%
+ \ifnum#2>\z@\else
+ \noexpand\bbl@elt{#1}{#2}{#3}{#4}%
+ \fi}%
+ \edef\bbl@languages{\bbl@languages}%
+ \fi
+ \ifnum\l@english=\z@\else
+ \bbl@warning{Wrong hyphenation setup. The 0th language must\\%
+ be `english'. Reported}%
+ \fi
+ \@namedef{bbl@hyphendata@0}{{hyphen.tex}{}}%
+ \openin1=language.dat
+ \ifeof1
+ \bbl@warning{I couldn't find language.dat. No additional\\%
+ patterns loaded. Reported}%
+ \else
+ \loop
+ \endlinechar\m@ne
+ \read1 to \bbl@line
+ \endlinechar`\^^M
+ \if T\ifeof1F\fi T\relax
+ \ifx\bbl@line\@empty\else
+ \edef\bbl@line{\bbl@line\space\space\space}%
+ \expandafter\bbl@process@line\bbl@line\relax
+ \fi
+ \repeat
+ \fi
+ \def\bbl@get@enc#1:#2:#3\@@@{\def\bbl@hyph@enc{#2}}
+ \def\bbl@luapatterns#1#2{%
+ \bbl@get@enc#1::\@@@
+ \begingroup
+ \input #1\relax
+ \endgroup
+ \def\bbl@tempa{#2}%
+ \ifx\bbl@tempa\@empty\else
+ \input #2\relax
+ \fi}%
+\fi
\begingroup
\catcode`\%=12
\catcode`\'=12
\catcode`\"=12
\catcode`\:=12
\directlua{
- require("luatex-hyphen")
Babel = {}
function Babel.bytes(line)
return line:gsub("(.)",
@@ -264,12 +335,23 @@
\luabbl@stop
\let\luabbl@stop\relax}
\AddBabelHook{luatex}{patterns}{%
- \ifcsname lu@texhyphen@loaded@\the\language\endcsname \else
- \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
- \directlua{
- luatexhyphen.loadlanguage([[\string#1]],
- '\the\language')}%
- \fi
+ \@ifundefined{bbl@hyphendata@\the\language}%
+ {\def\bbl@elt##1##2##3##4{%
+ \def\bbl@tempa{##1}%
+ \def\bbl@tempb{##3}%
+ \ifx\bbl@tempb\@empty\else % if not synonymous
+ \def\bbl@tempc{{##3}{##4}}%
+ \fi
+ \def\bbl@tempb{#2}% eg, spanish, dutch:OT1, etc.
+ \ifx\bbl@tempa\bbl@tempb
+ \bbl@csarg\edef{hyphendata@##2}{\bbl@tempc}%
+ \fi}%
+ \bbl@languages
+ \@ifundefined{bbl@hyphendata@\the\language}%
+ {\bbl@info{No hyphenation patterns were set for\\%
+ language ‘#2’. Reported}}%
+ {\expandafter\expandafter\expandafter\bbl@luapatterns
+ \csname bbl@hyphendata@\the\language\endcsname}}{}%
\@ifundefined{bbl@patterns@}{}{%
\begingroup
\@expandtwoargs\in@{,\number\language,}{,\bbl@pttnlist}%
@@ -286,29 +368,9 @@
\xdef\bbl@pttnlist{\bbl@pttnlist\number\language,}%
\fi
\endgroup}}
-\AddBabelHook{luatex}{adddialect}{%
- \ifx\directlua\relax\else
- \directlua{
- luatexhyphen.adddialect([[\string#1]],
- [[\string#2]])
- }%
- \fi}
\AddBabelHook{luatex}{everylanguage}{%
- \directlua{
- processnow = (tex.language == 0) or
- (luatexhyphen.lookupname([[\string#1]]) == nil)}%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
- \fi}
-\AddBabelHook{luatex}{loadpatterns}{%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \input #1\relax
- \fi}
-\AddBabelHook{luatex}{loadexceptions}{%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \input #1\relax
- \fi
- \directlua{processnow = nil}}
+ \def\process@language##1##2##3{%
+ \def\process@line####1####2 ####3 ####4 {}}}
% \end{macrocode}
%
% \begin{macro}{\babelpatterns}
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 2841b87e0aa..318457015d2 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -56,7 +56,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2016/01/08 3.9n Babel common definitions]
+\ProvidesFile{babel.def}[2016/02/01 3.9o Babel common definitions]
\ifx\AtBeginDocument\@undefined
\input plain.def\relax
\fi
@@ -67,7 +67,7 @@
\let\bbl@afterlang\relax
\let\bbl@language@opts\@empty
\fi
-\def\bbl@tempa{3.9n}%
+\def\bbl@tempa{3.9o}%
\ifx\bbl@version\bbl@tempa\else
\input switch.def\relax
\fi
@@ -1422,7 +1422,10 @@
\AtEndOfPackage{\edef\latinencoding{\cf@encoding}}
\AtBeginDocument{%
\@ifpackageloaded{fontspec}%
- {\xdef\latinencoding{EU\ifcase\bbl@engine\or2\or1\fi}}%
+ {\xdef\latinencoding{%
+ \@ifundefined{UTFencname}%
+ {EU\ifcase\bbl@engine\or2\or1\fi}%
+ {\UTFencname}}}%
{\gdef\latinencoding{OT1}%
\ifx\cf@encoding\bbl@t@one
\xdef\latinencoding{\bbl@t@one}%
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index 56092628c2a..7c02823b036 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.sty
+++ b/Master/texmf-dist/tex/generic/babel/babel.sty
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -48,10 +48,10 @@
%% by Javier Bezos
%% all rights reserved.
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2016/01/08 3.9n The Babel package]
+\ProvidesPackage{babel}[2016/02/01 3.9o The Babel package]
\@ifpackagewith{babel}{debug}
{\input switch.def\relax}
- {\def\bbl@tempa{3.9n}%
+ {\def\bbl@tempa{3.9o}%
\ifx\bbl@version\bbl@tempa\else
\input switch.def\relax
\fi}
diff --git a/Master/texmf-dist/tex/generic/babel/blplain.tex b/Master/texmf-dist/tex/generic/babel/blplain.tex
index 7e5c1506863..c45e48d9886 100644
--- a/Master/texmf-dist/tex/generic/babel/blplain.tex
+++ b/Master/texmf-dist/tex/generic/babel/blplain.tex
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
diff --git a/Master/texmf-dist/tex/generic/babel/bplain.tex b/Master/texmf-dist/tex/generic/babel/bplain.tex
index e36555f07ef..b31c656e590 100644
--- a/Master/texmf-dist/tex/generic/babel/bplain.tex
+++ b/Master/texmf-dist/tex/generic/babel/bplain.tex
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index 3b11277b823..2da740373e9 100644
--- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg
+++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -52,7 +52,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2016/01/08 3.9n Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2016/02/01 3.9o Babel hyphens]
\xdef\bbl@format{\jobname}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
@@ -83,7 +83,7 @@
\countdef\last@language=19
\def\addlanguage{\alloc@9\language\chardef\@cclvi}
\fi
-\toks8{Babel <3.9n> and hyphenation patterns for }%
+\toks8{Babel <3.9o> and hyphenation patterns for }%
\def\process@line#1#2 #3 #4 {%
\ifx=#1%
\process@synonym{#2}%
@@ -196,6 +196,7 @@
\errhelp{language.dat loads no language, only synonyms}
\errmessage{Orphan language synonym}
\fi
+\advance\last@language\@ne
\edef\bbl@tempa{%
\everyjob{%
\the\everyjob
@@ -204,7 +205,8 @@
\else
\noexpand\typeout
\fi
- {\the\toks8 \the\last@language\space languages loaded.}}}
+ {\the\toks8 \the\last@language\space language(s) loaded.}}}
+\advance\last@language\m@ne
\bbl@tempa
\let\bbl@line\@undefined
\let\process@line\@undefined
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index 3a3519c1989..7829e7cd41c 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -39,15 +39,79 @@
%% extension .ins) which are part of the distribution.
%% File `bbunicode.dtx'
%% Babel package for LaTeX version 2e
-%% Copyright (C) 2103-2014
+%% Copyright (C) 2103-2016
%% by Javier Bezos
+\ifx\bbl@get@enc\@undefined
+ \def\bbl@process@line#1#2 #3 #4 {%
+ \ifx=#1%
+ \bbl@process@synonym{#2}%
+ \else
+ \bbl@process@language{#1#2}{#3}{#4}%
+ \fi
+ \ignorespaces}
+ \def\bbl@process@language#1#2#3{%
+ \@ifundefined{l@#1}%
+ {\expandafter\addlanguage\csname l@#1\endcsname
+ \expandafter\language\csname l@#1\endcsname
+ \let\bbl@elt\relax
+ \edef\bbl@languages{%
+ \bbl@languages\bbl@elt{#1}{\the\language}{#2}{#3}}}%
+ {}}
+ \def\bbl@process@synonym#1{%
+ \@ifundefined{l@#1}%
+ {\expandafter\chardef\csname l@#1\endcsname\last@language
+ \let\bbl@elt\relax
+ \edef\bbl@languages{%
+ \bbl@languages\bbl@elt{#1}{\the\last@language}{}{}}}%
+ {}}
+ \ifnum\last@language>\z@
+ \bbl@warning{Wrong or old hyphenation setup. Please, rebuild\\%
+ the format. I'll try to fix it for this run.\\%
+ Reported}%
+ \def\bbl@elt#1#2#3#4{%
+ \ifnum#2>\z@\else
+ \noexpand\bbl@elt{#1}{#2}{#3}{#4}%
+ \fi}%
+ \edef\bbl@languages{\bbl@languages}%
+ \fi
+ \ifnum\l@english=\z@\else
+ \bbl@warning{Wrong hyphenation setup. The 0th language must\\%
+ be `english'. Reported}%
+ \fi
+ \@namedef{bbl@hyphendata@0}{{hyphen.tex}{}}%
+ \openin1=language.dat
+ \ifeof1
+ \bbl@warning{I couldn't find language.dat. No additional\\%
+ patterns loaded. Reported}%
+ \else
+ \loop
+ \endlinechar\m@ne
+ \read1 to \bbl@line
+ \endlinechar`\^^M
+ \if T\ifeof1F\fi T\relax
+ \ifx\bbl@line\@empty\else
+ \edef\bbl@line{\bbl@line\space\space\space}%
+ \expandafter\bbl@process@line\bbl@line\relax
+ \fi
+ \repeat
+ \fi
+ \def\bbl@get@enc#1:#2:#3\@@@{\def\bbl@hyph@enc{#2}}
+ \def\bbl@luapatterns#1#2{%
+ \bbl@get@enc#1::\@@@
+ \begingroup
+ \input #1\relax
+ \endgroup
+ \def\bbl@tempa{#2}%
+ \ifx\bbl@tempa\@empty\else
+ \input #2\relax
+ \fi}%
+\fi
\begingroup
\catcode`\%=12
\catcode`\'=12
\catcode`\"=12
\catcode`\:=12
\directlua{
- require("luatex-hyphen")
Babel = {}
function Babel.bytes(line)
return line:gsub("(.)",
@@ -109,12 +173,23 @@
\luabbl@stop
\let\luabbl@stop\relax}
\AddBabelHook{luatex}{patterns}{%
- \ifcsname lu@texhyphen@loaded@\the\language\endcsname \else
- \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
- \directlua{
- luatexhyphen.loadlanguage([[\string#1]],
- '\the\language')}%
- \fi
+ \@ifundefined{bbl@hyphendata@\the\language}%
+ {\def\bbl@elt##1##2##3##4{%
+ \def\bbl@tempa{##1}%
+ \def\bbl@tempb{##3}%
+ \ifx\bbl@tempb\@empty\else % if not synonymous
+ \def\bbl@tempc{{##3}{##4}}%
+ \fi
+ \def\bbl@tempb{#2}% eg, spanish, dutch:OT1, etc.
+ \ifx\bbl@tempa\bbl@tempb
+ \bbl@csarg\edef{hyphendata@##2}{\bbl@tempc}%
+ \fi}%
+ \bbl@languages
+ \@ifundefined{bbl@hyphendata@\the\language}%
+ {\bbl@info{No hyphenation patterns were set for\\%
+ language ‘#2’. Reported}}%
+ {\expandafter\expandafter\expandafter\bbl@luapatterns
+ \csname bbl@hyphendata@\the\language\endcsname}}{}%
\@ifundefined{bbl@patterns@}{}{%
\begingroup
\@expandtwoargs\in@{,\number\language,}{,\bbl@pttnlist}%
@@ -131,29 +206,9 @@
\xdef\bbl@pttnlist{\bbl@pttnlist\number\language,}%
\fi
\endgroup}}
-\AddBabelHook{luatex}{adddialect}{%
- \ifx\directlua\relax\else
- \directlua{
- luatexhyphen.adddialect([[\string#1]],
- [[\string#2]])
- }%
- \fi}
\AddBabelHook{luatex}{everylanguage}{%
- \directlua{
- processnow = (tex.language == 0) or
- (luatexhyphen.lookupname([[\string#1]]) == nil)}%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
- \fi}
-\AddBabelHook{luatex}{loadpatterns}{%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \input #1\relax
- \fi}
-\AddBabelHook{luatex}{loadexceptions}{%
- \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
- \input #1\relax
- \fi
- \directlua{processnow = nil}}
+ \def\process@language##1##2##3{%
+ \def\process@line####1####2 ####3 ####4 {}}}
\@onlypreamble\babelpatterns
\AtEndOfPackage{%
\newcommand\babelpatterns[2][\@empty]{%
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index cf3bd82b178..910a0595c45 100644
--- a/Master/texmf-dist/tex/generic/babel/nil.ldf
+++ b/Master/texmf-dist/tex/generic/babel/nil.ldf
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -47,7 +47,7 @@
%% TeXniek
%% by Javier Bezos
%% all rights reserved.
-\ProvidesLanguage{nil}[2016/01/08 3.9n Nil language]
+\ProvidesLanguage{nil}[2016/02/01 3.9o Nil language]
\LdfInit{nil}{datenil}
\ifx\l@nohyphenation\@undefined
\@nopatterns{nil}
diff --git a/Master/texmf-dist/tex/generic/babel/plain.def b/Master/texmf-dist/tex/generic/babel/plain.def
index 7c98fade2c3..5ec8ed03339 100644
--- a/Master/texmf-dist/tex/generic/babel/plain.def
+++ b/Master/texmf-dist/tex/generic/babel/plain.def
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
diff --git a/Master/texmf-dist/tex/generic/babel/switch.def b/Master/texmf-dist/tex/generic/babel/switch.def
index 3f1af9a714a..025bb0c5a7e 100644
--- a/Master/texmf-dist/tex/generic/babel/switch.def
+++ b/Master/texmf-dist/tex/generic/babel/switch.def
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2016/01/08 v3.9n The Babel package]
+%%\ProvidesFile{babel.dtx}[2016/02/01 v3.9o The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -52,7 +52,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{switch.def}[2016/01/08 3.9n Babel switching mechanism]
+\ProvidesFile{switch.def}[2016/02/01 3.9o Babel switching mechanism]
\ifx\AtBeginDocument\@undefined
\input plain.def\relax
\fi
@@ -73,8 +73,8 @@
\countdef\last@language=19
\def\addlanguage{\alloc@9\language\chardef\@cclvi}
\fi
-\def\bbl@version{3.9n}
-\def\bbl@date{2016/01/08}
+\def\bbl@version{3.9o}
+\def\bbl@date{2016/02/01}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl@usehooks{adddialect}{{#1}{#2}}%
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index e15e701ac6d..747f5f90a2b 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -39,7 +39,7 @@
%% extension .ins) which are part of the distribution.
%% File `bbunicode.dtx'
%% Babel package for LaTeX version 2e
-%% Copyright (C) 2103-2014
+%% Copyright (C) 2103-2016
%% by Javier Bezos
\def\BabelStringsDefault{unicode}
\let\xebbl@stop\relax