summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-27 20:46:33 +0000
committerKarl Berry <karl@freefriends.org>2013-05-27 20:46:33 +0000
commit16b92a961842471d20630e8073a88339eaffa123 (patch)
tree0531840fc16437adc6da811fdb7d8ebe550b11bc /Master/texmf-dist/tex/luatex
parent81c16301d465b13d51307af7735318440b8b2014 (diff)
hyph-utf8 (27may13)
git-svn-id: svn://tug.org/texlive/trunk@30725 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex')
-rw-r--r--Master/texmf-dist/tex/luatex/hyph-utf8/etex.src29
-rw-r--r--Master/texmf-dist/tex/luatex/hyph-utf8/hyphen.cfg443
-rw-r--r--Master/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua12
3 files changed, 464 insertions, 20 deletions
diff --git a/Master/texmf-dist/tex/luatex/hyph-utf8/etex.src b/Master/texmf-dist/tex/luatex/hyph-utf8/etex.src
index 09302cfcc04..3f9d18c8b8c 100644
--- a/Master/texmf-dist/tex/luatex/hyph-utf8/etex.src
+++ b/Master/texmf-dist/tex/luatex/hyph-utf8/etex.src
@@ -1,5 +1,5 @@
-%% e-TeX V2.1;0-luatex2
-%% Revision-date: 16-MAY-2013 18:33:45
+%% e-TeX V2.1;0-luatex
+%% Revision-date: 26-APR-2010 11:05:45
%% Revision-history: (at-end)
% The version number in the first line is compared with the corresponding
@@ -281,7 +281,9 @@
lu@texhyphen@loaded@\the\language\endcsname{}%
\directlua{
if not status.ini_version then
- require("luatex-hyphen")
+ if not luatexhyphen then
+ luatexhyphen = require("luatex-hyphen")
+ end
luatexhyphen.loadlanguage("\luatexluaescapestring{#1}",
\the\language)
end}%
@@ -307,7 +309,9 @@
\ifdefined\directlua % V2.1;0-luatex
\csname fi\endcsname
\csname if\directlua{% do we want to skip this language now?
- require("luatex-hyphen")
+ if not luatexhyphen then
+ luatexhyphen = require("luatex-hyphen")
+ end
if (luatexhyphen.lookupname("\luatexluaescapestring{#1}") == nil)
or (\number\csname lang@#1\endcsname == 0) then
tex.sprint("false") % no, load it (execute 'else' part)
@@ -800,16 +804,13 @@
%% Revision-history:
-16-MAY-2013: 2.1;0-luatex2 Minor changes for LuaTeX, adapting to new
- luatex-hyphen package.
-
-03-MAY-2010: 2.1;0-luatex With LuaTeX, don't embed hyphenation patterns and
- exceptions in the format, but on-demand at runtime, for faster
- format loading. Use the Lua interface for loading hyphenation
- rules from plain text files according to the new configuration
- file language.lua.dat. Make use of a supporting lua file,
- luatex-hyphen.lua. See also luatex-hyphen.pdf.
- (Manuel Pegourie-Gonnard, Elie Roux and Khaled Hosny)
+3-MAY-2010: 2.1;0-luatex With LuaTeX, don't embed hyphenation patterns and
+ exceptions in the format, but on-demand at runtime, for faster
+ format loading. Use the Lua interface for loading hyphenation
+ rules from plain text files according to the new configuration
+ file language.lua.dat. Make use of a supporting lua file,
+ luatex-hyphen.lua. See also luatex-hyphen.pdf.
+ (Manuel Pegourie-Gonnard, Elie Roux and Khaled Hosny)
01-FEB-1999: 2.1;0 Allow file to be used with e-TeX versions 2.0 and 2.1
diff --git a/Master/texmf-dist/tex/luatex/hyph-utf8/hyphen.cfg b/Master/texmf-dist/tex/luatex/hyph-utf8/hyphen.cfg
new file mode 100644
index 00000000000..93195fd653a
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/hyph-utf8/hyphen.cfg
@@ -0,0 +1,443 @@
+%%
+%% This is file `hyphen.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% luatex-hyphen.dtx (with options: `hyphen')
+%%
+%% This is a modified version of the hyphen.cfg file from the babel system,
+%% intended for use with LuaTeX, but compatible with other engines.
+%% The present file IS NOT part of the babel system.
+%%
+%% The modifications are Copyright 2012 Khaled Hosny, Elie Roux, and Manuel
+%% Pegourie-Gonnard, under LPPL version 1.3 or later.
+%%
+%% Here is the licence statement of the original hyphen.cfg file:
+%% |
+%% | Copyright 1989-2008 Johannes L. Braams and any individual authors
+%% | Listed elsewhere in this file. All rights reserved.
+%% |
+%% | 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.
+%% |
+%% `---=(licence statement of original hyphen.cfg)=---
+%%
+\ifx\ProvidesFile\@undefined
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \wlog{File: #1 #4 #3 <#2>}%
+ \ifx\directlua\@undefined
+ \toks8{Babel <#3> and hyphenation patterns for }%
+ \else
+ \toks8{LuaTeX adaptation of babel <#3>
+ and hyphenation patterns for }%
+ \fi
+ \let\ProvidesFile\@undefined
+ }
+ \def\ProvidesLanguage#1[#2 #3 #4]{%
+ \wlog{Language: #1 #4 #3 <#2>}%
+ }
+\else
+ \let\bbl@tempa\ProvidesFile
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \ifx\directlua\@undefined
+ \toks8{Babel <#3> and hyphenation patterns for }%
+ \else
+ \toks8{LuaTeX adaptation of babel <#3>
+ and hyphenation patterns for }%
+ \fi
+ \bbl@tempa#1[#2 #3 #4]%
+ \let\ProvidesFile\bbl@tempa}
+ \def\ProvidesLanguage#1{%
+ \begingroup
+ \catcode`\ 10 %
+ \@makeother\/%
+ \@ifnextchar[%]
+ {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}}
+ \def\@provideslanguage#1[#2]{%
+ \wlog{Language: #1 #2}%
+ \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}%
+ \endgroup}
+\fi
+
+\ProvidesFile{hyphen.cfg}
+ [2012/04/16 v3.8m-luatex-1.5 %
+ Language switching mechanism for LuaTeX, adapted from babel v3.8m]
+\ifx\AtBeginDocument\@undefined
+ \input plain.def\relax
+\fi
+\ifx\language\@undefined
+ \csname newcount\endcsname\language
+\fi
+\ifx\newlanguage\@undefined
+ \csname newcount\endcsname\last@language
+\else
+ \countdef\last@language=19
+\fi
+\ifx\newlanguage\@undefined
+ \def\addlanguage#1{%
+ \global\advance\last@language \@ne
+ \ifnum\last@language<\@cclvi
+ \else
+ \errmessage{No room for a new \string\language!}%
+ \fi
+ \global\chardef#1\last@language
+ \wlog{\string#1 = \string\language\the\last@language}}
+\else
+ \def\addlanguage{\alloc@9\language\chardef\@cclvi}
+\fi
+\def\adddialect#1#2{%
+ \global\chardef#1#2\relax
+ \ifx\directlua\@undefined\else
+ \ifx\directlua\relax\else
+ \directlua{
+ if not luatexhyphen then
+ luatexhyphen = require("luatex-hyphen")
+ end
+ luatexhyphen.adddialect("\string#1", "\string#2")
+ }%
+ \fi
+ \fi
+ \wlog{\string#1 = a dialect from \string\language#2}}
+\def\iflanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+ \bbl@afterfi{\ifnum\csname l@#1\endcsname=\language
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}%
+ \fi}
+\edef\selectlanguage{%
+ \noexpand\protect
+ \expandafter\noexpand\csname selectlanguage \endcsname
+ }
+\ifx\@undefined\protect\let\protect\relax\fi
+\ifx\documentclass\@undefined
+ \def\xstring{\string\string\string}
+\else
+ \let\xstring\string
+\fi
+\xdef\bbl@language@stack{}
+\def\bbl@push@language{%
+ \xdef\bbl@language@stack{\languagename+\bbl@language@stack}%
+ }
+\def\bbl@pop@lang#1+#2-#3{%
+ \def\languagename{#1}\xdef#3{#2}%
+ }
+\def\bbl@pop@language{%
+ \expandafter\bbl@pop@lang\bbl@language@stack-\bbl@language@stack
+ \expandafter\bbl@set@language\expandafter{\languagename}%
+ }
+\expandafter\def\csname selectlanguage \endcsname#1{%
+ \bbl@push@language
+ \aftergroup\bbl@pop@language
+ \bbl@set@language{#1}}
+\def\bbl@set@language#1{%
+ \edef\languagename{%
+ \ifnum\escapechar=\expandafter`\string#1\@empty
+ \else \string#1\@empty\fi}%
+ \select@language{\languagename}%
+ \if@filesw
+ \protected@write\@auxout{}{\string\select@language{\languagename}}%
+ \addtocontents{toc}{\xstring\select@language{\languagename}}%
+ \addtocontents{lof}{\xstring\select@language{\languagename}}%
+ \addtocontents{lot}{\xstring\select@language{\languagename}}%
+ \fi}
+\def\select@language#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+ \expandafter\ifx\csname date#1\endcsname\relax
+ \@noopterr{#1}%
+ \else
+ \bbl@patterns{\languagename}%
+ \originalTeX
+ \expandafter\def\expandafter\originalTeX
+ \expandafter{\csname noextras#1\endcsname
+ \let\originalTeX\@empty}%
+ \languageshorthands{none}%
+ \babel@beginsave
+ \csname captions#1\endcsname
+ \csname date#1\endcsname
+ \csname extras#1\endcsname\relax
+ \babel@savevariable\lefthyphenmin
+ \babel@savevariable\righthyphenmin
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname\relax
+ \fi
+ \fi
+ \fi}
+\long\def\otherlanguage#1{%
+ \csname selectlanguage \endcsname{#1}%
+ \ignorespaces
+ }
+\long\def\endotherlanguage{%
+ \originalTeX
+ \global\@ignoretrue\ignorespaces
+ }
+\expandafter\def\csname otherlanguage*\endcsname#1{%
+ \foreign@language{#1}%
+ }
+\expandafter\def\csname endotherlanguage*\endcsname{%
+ \csname noextras\languagename\endcsname
+ }
+\def\foreignlanguage{\protect\csname foreignlanguage \endcsname}
+\expandafter\def\csname foreignlanguage \endcsname#1#2{%
+ \begingroup
+ \originalTeX
+ \foreign@language{#1}%
+ #2%
+ \csname noextras#1\endcsname
+ \endgroup
+ }
+\def\foreign@language#1{%
+ \def\languagename{#1}%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+ \bbl@patterns{\languagename}%
+ \languageshorthands{none}%
+ \csname extras#1\endcsname
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname\relax
+ \fi
+ \fi
+ }
+\def\bbl@patterns#1{%
+ \language=\expandafter\ifx\csname l@#1:\f@encoding\endcsname\relax
+ \csname l@#1\endcsname
+ \else
+ \csname l@#1:\f@encoding\endcsname
+ \fi\relax
+ \ifx\directlua\@undefined\else
+ \ifx\directlua\relax\else
+ \ifcsname lu@texhyphen@loaded@\the\language\endcsname \else
+ \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
+ \directlua{
+ if not luatexhyphen then
+ luatexhyphen = require("luatex-hyphen")
+ end
+ luatexhyphen.loadlanguage("\luatexluaescapestring{#1}",
+ \the\language)}%
+ \fi
+ \fi
+ \fi
+}
+\def\hyphenrules#1{%
+ \expandafter\ifx\csname l@#1\endcsname\@undefined
+ \@nolanerr{#1}%
+ \else
+ \bbl@patterns{#1}%
+ \languageshorthands{none}%
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname\relax
+ \fi
+ \fi
+ }
+\def\endhyphenrules{}
+\def\providehyphenmins#1#2{%
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \@namedef{#1hyphenmins}{#2}%
+ \fi}
+\def\set@hyphenmins#1#2{\lefthyphenmin#1\righthyphenmin#2}
+\def\LdfInit{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \LdfInit}
+\ifx\originalTeX\@undefined\let\originalTeX\@empty\fi
+\ifx\babel@beginsave\@undefined\let\babel@beginsave\relax\fi
+\ifx\PackageError\@undefined
+ \def\@nolanerr#1{%
+ \errhelp{Your command will be ignored, type <return> to proceed}%
+ \errmessage{You haven't defined the language #1\space yet}}
+ \def\@nopatterns#1{%
+ \message{No hyphenation patterns were loaded for}%
+ \message{the language `#1'}%
+ \message{I will use the patterns loaded for \string\language=0
+ instead}}
+ \def\@noopterr#1{%
+ \errmessage{The option #1 was not specified in \string\usepackage}
+ \errhelp{You may continue, but expect unexpected results}}
+ \def\@activated#1{%
+ \wlog{Package babel Info: Making #1 an active character}}
+\else
+ \newcommand*{\@nolanerr}[1]{%
+ \PackageError{babel}%
+ {You haven't defined the language #1\space yet}%
+ {Your command will be ignored, type <return> to proceed}}
+ \newcommand*{\@nopatterns}[1]{%
+ \PackageWarningNoLine{babel}%
+ {No hyphenation patterns were loaded for\MessageBreak
+ the language `#1'\MessageBreak
+ I will use the patterns loaded for \string\language=0
+ instead}}
+ \newcommand*{\@noopterr}[1]{%
+ \PackageError{babel}%
+ {You haven't loaded the option #1\space yet}%
+ {You may proceed, but expect unexpected results}}
+ \newcommand*{\@activated}[1]{%
+ \PackageInfo{babel}{%
+ Making #1 an active character}}
+\fi
+\def\process@line#1#2 #3/{%
+ \ifx=#1
+ \process@synonym#2 /
+ \else
+ \process@language#1#2 #3/%
+ \fi
+ }
+\toks@{}
+\def\process@synonym#1 /{%
+ \ifnum\last@language=\m@ne
+ \expandafter\chardef\csname l@#1\endcsname0\relax
+ \wlog{\string\l@#1=\string\language0}
+ \toks@\expandafter{\the\toks@
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname}%
+ \else
+ \expandafter\chardef\csname l@#1\endcsname\last@language
+ \wlog{\string\l@#1=\string\language\the\last@language}
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname
+ \fi
+ }
+\def\process@language#1 #2 #3/{%
+ \expandafter\addlanguage\csname l@#1\endcsname
+ \expandafter\language\csname l@#1\endcsname
+ \def\languagename{#1}%
+ \ifx\directlua\@undefined
+ \global\toks8\expandafter{\the\toks8#1, }%
+ \else
+ \directlua{
+ if not luatexhyphen then
+ luatexhyphen = require("luatex-hyphen")
+ end
+ processnow = (tex.language == 0) or
+ (luatexhyphen.lookupname("\luatexluaescapestring{#1}") == nil)}%
+ \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
+ \global\toks8\expandafter{\the\toks8#1, }%
+ \global\@namedef{lu@texhyphen@loaded@\the\language}{}%
+ \fi
+ \fi
+ \begingroup
+ \bbl@get@enc#1:\@@@
+ \ifx\bbl@hyph@enc\@empty
+ \else
+ \fontencoding{\bbl@hyph@enc}\selectfont
+ \fi
+ \lefthyphenmin\m@ne
+ \ifx\directlua\@undefined
+ \input #2\relax
+ \else
+ \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
+ \input #2\relax
+ \fi
+ \fi
+ \ifnum\lefthyphenmin=\m@ne
+ \else
+ \expandafter\xdef\csname #1hyphenmins\endcsname{%
+ \the\lefthyphenmin\the\righthyphenmin}%
+ \fi
+ \endgroup
+ \ifnum\the\language=\z@
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname
+ \fi
+ \the\toks@
+ \fi
+ \toks@{}%
+ \def\bbl@tempa{#3}%
+ \ifx\bbl@tempa\@empty
+ \else
+ \ifx\bbl@tempa\space
+ \else
+ \ifx\directlua\@undefined
+ \input #3\relax
+ \else
+ \ifnum0=\directlua{tex.sprint(processnow and "0" or "1")}\relax
+ \input #3\relax
+ \fi
+ \directlua{processnow = nil}%
+ \fi
+ \fi
+ \fi
+ }
+\def\bbl@get@enc#1:#2\@@@{%
+ \def\bbl@tempa{#1}%
+ \def\bbl@tempb{#2}%
+ \ifx\bbl@tempb\@empty
+ \let\bbl@hyph@enc\@empty
+ \else
+ \bbl@get@enc#2\@@@
+ \edef\bbl@hyph@enc{\bbl@tempa}%
+ \fi}
+\openin1 = language.dat
+\ifeof1
+ \message{I couldn't find the file language.dat,\space
+ I will try the file hyphen.tex}
+ \input hyphen.tex\relax
+ \def\l@english{0}%
+ \def\languagename{english}%
+\else
+ \last@language\m@ne
+ \loop
+ \endlinechar\m@ne
+ \read1 to \bbl@line
+ \endlinechar`\^^M
+ \ifx\bbl@line\@empty
+ \else
+ \edef\bbl@line{\bbl@line\space/}%
+ \expandafter\process@line\bbl@line
+ \ifx\bbl@defaultlanguage\@undefined
+ \let\bbl@defaultlanguage\languagename
+ \fi
+ \fi
+ \iftrue \csname fi\endcsname
+ \csname if\ifeof1 false\else true\fi\endcsname
+ \repeat
+ \language=0
+ \let\languagename\bbl@defaultlanguage
+ \let\bbl@defaultlanguage\@undefined
+\fi
+\closein1
+\let\process@language\@undefined
+\let\process@synonym\@undefined
+\let\process@line\@undefined
+\let\bbl@tempa\@undefined
+\let\bbl@tempb\@undefined
+\let\bbl@eq@\@undefined
+\let\bbl@line\@undefined
+\let\bbl@get@enc\@undefined
+\ifx\addto@hook\@undefined
+\else
+ \expandafter\addto@hook\expandafter\everyjob\expandafter{%
+ \expandafter\typeout\expandafter{\the\toks8 loaded.}}
+\fi
+\endinput
+%%
+%% End of file `hyphen.cfg'.
diff --git a/Master/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua b/Master/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua
index 6b547fab7ac..fa7ed3851ca 100644
--- a/Master/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua
+++ b/Master/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua
@@ -12,8 +12,6 @@
--
-- This work is under the CC0 license.
--
-luatexhyphen = luatexhyphen or {}
-local luatexhyphen = luatexhyphen
local function wlog(msg, ...)
texio.write_nl('log', 'luatex-hyphen: '..msg:format(...))
end
@@ -22,7 +20,7 @@ local function err(msg, ...)
end
local dbname = "language.dat.lua"
local language_dat
-local dbfile = kpse.find_file(dbname, 'lua')
+local dbfile = kpse.find_file(dbname)
if not dbfile then
err("file not found: "..dbname)
else
@@ -42,7 +40,6 @@ local function lookupname(name)
end
end
end
-luatexhyphen.lookupname = lookupname
local function loadlanguage(lname, id)
if id == 0 then
return
@@ -79,7 +76,6 @@ local function loadlanguage(lname, id)
end
end
end
-luatexhyphen.loadlanguage = loadlanguage
local function adddialect(dialect, language)
if dialect ~= '0' then
dialect = dialect:gsub('l@', '')
@@ -90,6 +86,10 @@ local function adddialect(dialect, language)
end
end
end
-luatexhyphen.adddialect = adddialect
+return {
+ lookupname = lookupname,
+ loadlanguage = loadlanguage,
+ adddialect = adddialect,
+}
--
-- End of File `luatex-hyphen.lua'.