diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-20 22:03:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-20 22:03:38 +0000 |
commit | f78323b8060c819726a015d8b6cfa051bb94ddda (patch) | |
tree | bdb0e4820ff719889b6ddbdb97e3030d7ac6aa7f | |
parent | f7a55a4aadc98501bb86c486d52022177d1f5d18 (diff) |
polyglossia (20may13)
git-svn-id: svn://tug.org/texlive/trunk@30596 c570f23f-e606-0410-a88d-b1316a301751
31 files changed, 652 insertions, 47 deletions
diff --git a/Master/texmf-dist/doc/latex/polyglossia/README b/Master/texmf-dist/doc/latex/polyglossia/README index 6d8e1f4b7d4..6282d0b25b5 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/README +++ b/Master/texmf-dist/doc/latex/polyglossia/README @@ -1,7 +1,7 @@ ¦----------------------------------------------¦ ¦ ¦ - ¦ THE POLYGLOSSIA PACKAGE v1.32.0 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.33.0 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -54,6 +54,11 @@ http://github.com/reutenauer/polyglossia/issues CHANGES +1.33.0 (20-05-2013) + * Added support for N’Ko. + * Bugfixes for LuaTeX + * More work in progress on Bidi in LuaTeX. + 1.32.0 (15-05-2013) Transitional version to support right-to-left languages with LuaTeX. diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf Binary files differindex dfbaa561af1..22039ddf68a 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf Binary files differindex df484bd2bdf..f58867b31f1 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf Binary files differindex 0298fca1b3a..93f570d252a 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf Binary files differindex c7077de7ec0..c8f85f50b20 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf diff --git a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx index c6f6f4bf5a1..4800ec29d70 100644 --- a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx +++ b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx @@ -11,7 +11,7 @@ ¦----------------------------------------------¦ ¦ ¦ - ¦ THE POLYGLOSSIA PACKAGE v1.32.0 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.33.0 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -64,6 +64,11 @@ http://github.com/reutenauer/polyglossia/issues CHANGES +1.33.0 (20-05-2013) + * Added support for N’Ko. + * Bugfixes for LuaTeX + * More work in progress on Bidi in LuaTeX. + 1.32.0 (15-05-2013) Transitional version to support right-to-left languages with LuaTeX. @@ -318,6 +323,7 @@ CHANGES \generate{\file{gloss-magyar.ldf}{\from{polyglossia.dtx}{gloss-magyar.ldf}}} \generate{\file{gloss-malayalam.ldf}{\from{polyglossia.dtx}{gloss-malayalam.ldf}}} \generate{\file{gloss-marathi.ldf}{\from{polyglossia.dtx}{gloss-marathi.ldf}}} +\generate{\file{gloss-nko.ldf}{\from{polyglossia.dtx}{gloss-nko.ldf}}} \generate{\file{gloss-norsk.ldf}{\from{polyglossia.dtx}{gloss-norsk.ldf}}} \generate{\file{gloss-nynorsk.ldf}{\from{polyglossia.dtx}{gloss-nynorsk.ldf}}} \generate{\file{gloss-occitan.ldf}{\from{polyglossia.dtx}{gloss-occitan.ldf}}} @@ -354,6 +360,7 @@ CHANGES \generate{\file{thaidigits.map}{\from{polyglossia.dtx}{thaidigits.map}}} \def\MetaPrefix{-- } \generate{\file{polyglossia-frpt.lua}{\from{polyglossia.dtx}{polyglossia-frpt.lua}}} +\generate{\file{polyglossia-tibt.lua}{\from{polyglossia.dtx}{polyglossia-tibt.lua}}} \generate{\file{polyglossia.lua}{\from{polyglossia.dtx}{polyglossia.lua}}} \let\MetaPrefix\DoubleperCent %</batchfile> @@ -1423,6 +1430,12 @@ CHANGES % \subsection{gloss-arabic.ldf} % \begin{macrocode} \ProvidesFile{gloss-arabic.ldf}[polyglossia: module for arabic] +\ifluatex + \xpg@warning{Arabic is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{hijrical} @@ -1918,6 +1931,12 @@ CHANGES % TODO implement Bengali calendar \ProvidesFile{gloss-bengali.ldf}[polyglossia: module for bengali] +\ifluatex + \xpg@warning{Bengali is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{bengali}{ @@ -2574,6 +2593,12 @@ CHANGES % \subsection{gloss-divehi.ldf} % \begin{macrocode} \ProvidesFile{gloss-divehi.ldf}[polyglossia: module for divehi] +\ifluatex + \xpg@warning{Divehi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \PolyglossiaSetup{divehi}{ script=Thaana, @@ -2954,6 +2979,12 @@ CHANGES % \subsection{gloss-farsi.ldf} % \begin{macrocode} \ProvidesFile{gloss-farsi.ldf}[polyglossia: module for farsi] +\ifluatex + \xpg@warning{Farsi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{farsical} @@ -3148,7 +3179,6 @@ CHANGES \ifluatex \newluatexattribute\xpg@frpt % \directlua{polyglossia.load_frpt()}% - \global\newcount\xpg@interchartokenstate % \else \newXeTeXintercharclass\french@punctthin % ! ? ; et autres \newXeTeXintercharclass\french@punctthick % : @@ -3567,7 +3597,9 @@ CHANGES % LuaTeX % \let\pattname{\if@german@oldspelling\else n\fi german\ifgerman@latesthyphen -x-latest\fi} % \xpg@set@language@luatex@ii{\pattname}} - \if@german@oldspelling\xpg@set@language@luatex@ii{german}\else\xpg@set@language@luatex@ii{ngerman}\fi} + \ifgerman@latesthyphen + \if@german@oldspelling\xpg@set@language@luatex@ii{german-x-latest}\else\xpg@set@language@luatex@ii{ngerman-x-latest}\fi + \else\if@german@oldspelling\xpg@set@language@luatex@ii{german}\else\xpg@set@language@luatex@ii{ngerman}\fi\fi} \def\noextras@german{% \nogerman@shorthands% @@ -3944,6 +3976,12 @@ CHANGES % \subsection{gloss-hebrew.ldf} % \begin{macrocode} \ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for hebrew] +\ifluatex + \xpg@warning{Hebrew is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{hebrewcal} @@ -4090,6 +4128,12 @@ CHANGES % Velthuis Devanagari project: http://devnag.sarovar.org. \ProvidesFile{gloss-hindi.ldf}[polyglossia: module for hindi] +\ifluatex + \xpg@warning{Hindi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{hindi}{ script=Devanagari, @@ -4497,6 +4541,12 @@ CHANGES % % This work consists of the file gloss-kannada.ldf \ProvidesFile{gloss-kannada.ldf}[polyglossia: module for kannada] +\ifluatex + \xpg@warning{Kannada is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{kannada}{ script=Kannada, scripttag=knda, @@ -4590,6 +4640,12 @@ CHANGES % \subsection{gloss-lao.ldf} % \begin{macrocode} \ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao] +\ifluatex + \xpg@warning{Lao is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{lao}{ script=Lao, scripttag=lao, @@ -4977,6 +5033,12 @@ CHANGES % \subsection{gloss-malayalam.ldf} % \begin{macrocode} \ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for malayalam] +\ifluatex + \xpg@warning{Malayalam is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Kevin & Siji, 01-11-2009 \PolyglossiaSetup{malayalam}{ @@ -5041,6 +5103,12 @@ CHANGES % TODO implement Hindu calendar (not used in day-to-day practice) \ProvidesFile{gloss-marathi.ldf}[polyglossia: module for marathi] +\ifluatex + \xpg@warning{Marathi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{marathi}{ @@ -5117,6 +5185,72 @@ CHANGES % \end{macrocode} % \iffalse %</gloss-marathi.ldf> +%<*gloss-nko.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-nko.ldf} +% \begin{macrocode} +\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko v0.1 2013/05/19] +\PolyglossiaSetup{nko}{% + script=N'ko, + scripttag=nko~, + fontsetup=true, + hyphennames={nohyphenation}, + direction=RL +} +\RequirePackage{nkonumbers}% + +\def\captionsnko{% + \def\prefacename{ߢߍߛߓߍ}% + \def\refname{ߞߐߡߊߛߙߋ}% + \def\abstractname{ߓߊߕߐߡߐ߲}% + \def\bibname{ߟߍߙߊߥߙߍߟߐ߲߲}% + \def\chaptername{ߛߌ߰ߘߊ}% + \def\appendixname{ߘߋ߬ߙߋ}% + \def\contentsname{ߞߣߐߘߐ}% + \def\listfigurename{ߢߊ ߟߎ߬ ߛߙߍߘߍ}% + \def\listtablename{ߦߌ߬ߘߊ߬ߥߟߊ ߟߎ߬ ߛߙߍߘߍ}% + \def\indexname{ߛߙߍߘߍ}% + \def\figurename{ߢߊ}% + \def\tablename{ߦߌ߬ߘߊ߬ߥߟߊ}% + \def\partname{ߛߌ߰ߘߊ߬ߙߋ߲}% + \def\enclname{ߝߍ߬ߕߊ}% + \def\ccname{ߓߊ ߘߏ߫ ߘߌ߫}% + \def\headtoname{ߞߊߕߙߍ߬}% + \def\pagename{ߞߐߜߍ}% + \def\seename{ߡߊߝߟߍ߫}% + \def\alsoname{ߝߟߍߡߊߛߊ߬ߦߌ߬}% + \def\proofname{ߦߌ߬ߘߊ߬ߞߏ}% + \def\glossaryname{ߞߘߐߝߐߟߊ߲}% +}% + +% In n'ko, this is an example of date : +% ߂߀߁߃ ߞߏ߲ߞߏߜߍ ߕߟߋ߬ ߁߈ (RTL) +% ( 18 February 2013 ) +% The word "ߕߟߋ߬" is mandatory between month name and day number. + +\def\datenko{% + \def\today{\nkonumber{\day}\space ߕߟߋ߬\space\ifcase\month\or +ߓߌ߲ߠߊߥߎߟߋ߲\or +ߞߏ߲ߞߏߜߍ\or +ߕߙߊߓߊ\or +ߞߏ߲ߞߏߘߌ߬ߓߌ\or +ߘߓߊ߬ߕߊ\or +ߥߊ߬ߛߌߥߊ߬ߙߊ\or +ߞߊ߬ߙߌߝߐ߭\or +ߘߓߊ߬ߓߌߟߊ\or +ߕߎߟߊߝߌ߲\or +ߞߏ߲ߓߌߕߌ߮\or +ߣߍߣߍߓߊ\or +ߞߏ߬ߟߌ߲߬ߞߏߟߌ߲\fi +\space\nkonumber{\year} + }% +}% + +% \end{macrocode} +% \iffalse +%</gloss-nko.ldf> %<*gloss-norsk.ldf> % \fi % \clearpage @@ -6382,7 +6516,7 @@ CHANGES januari\or februari\or mars\or april\or maj\or juni\or juli\or augusti\or september\or oktober\or november\or december\fi - \space\number\year} + \space\number\year}% \def\datesymd{% \def\today{\number\year-\two@digits\month-\two@digits\day}}% \def\datesdmy{% @@ -6399,6 +6533,12 @@ CHANGES % \subsection{gloss-syriac.ldf} % \begin{macrocode} \ProvidesFile{gloss-syriac.ldf}[polyglossia: module for syriac] +\ifluatex + \xpg@warning{Syriac is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} @@ -6565,6 +6705,12 @@ CHANGES % \subsection{gloss-tamil.ldf} % \begin{macrocode} \ProvidesFile{gloss-tamil.ldf}[polyglossia: module for tamil] +\ifluatex + \xpg@warning{Tamil is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Kevin & Siji, 01-11-2009 \PolyglossiaSetup{tamil}{ @@ -6626,6 +6772,12 @@ CHANGES % \subsection{gloss-telugu.ldf} % \begin{macrocode} \ProvidesFile{gloss-telugu.ldf}[polyglossia: module for telugu] +\ifluatex + \xpg@warning{Telugu is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Anmol Sharma <unmole.in@gmail.com> \PolyglossiaSetup{telugu}{ @@ -6699,6 +6851,12 @@ CHANGES %%%% Thai Linux Working Group %%%% http://linux.thai.net/ %%%% +\ifluatex + \xpg@warning{Thai is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{thai}{ script=Thai, scripttag=thai, @@ -6856,6 +7014,31 @@ CHANGES \@tibetan@numeralsfalse\fi } +\ifluatex + \newluatexattribute\xpg@tibteol % + \directlua{polyglossia.load_tibt_eol()}% +\fi + +\def\tibetan@eol{% + \ifluatex % + \xpg@tibteol=1\relax % + \directlua{polyglossia.activate_tibt_eol()}% + \else % + \XeTeXlinebreaklocale "bo"% + \XeTeXlinebreakskip=0pt plus 0.1em% doesn't do much, but doesn't harm I guess... + \fi % +} + +\def\notibetan@eol{% + \ifluatex % + \xpg@tibteol=0\relax % + %\directlua{polyglossia.activate_tibt_eol()}% + \else % + \XeTeXlinebreaklocale "en"% en? really? + \XeTeXlinebreakskip=0pt plus 0pt% + \fi % +} + \setkeys{tibetan}{numerals} % some are known, but very few @@ -6954,18 +7137,38 @@ CHANGES \let\@arabic\tibetannumber% \renewcommand{\thefootnote}{\protect\tibetannumber{\c@footnote}}% } + \def\notibetan@globalnumbers{% \let\@arabic\orig@arabic% \renewcommand\thefootnote{\protect\number{\c@footnote}}% } -% copied from Thai, not tested +\def\noextras@tibetan{% + \notibetan@eol% + \let\baselinestrech\orig@baselinestretch% + } \def\blockextras@tibetan{% + % copied from Thai, not tested \let\orig@baselinestrech\baselinestretch% \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% + } + +\def\inlineextras@tibetan{% + \let\orig@baselinestrech\baselinestretch% + \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% + } + +\def\blockextras@tibetan{% + \let\orig@baselinestrech\baselinestretch% + \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% } + \def\noblockextras@tibetan{% + \notibetan@eol% \let\baselinestrech\orig@baselinestretch% } @@ -7208,6 +7411,12 @@ CHANGES % \begin{macrocode} %%% Adapted from a file contributed by Kamal Abdali \ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu] +\ifluatex + \xpg@warning{Urdu is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{hijrical} @@ -7640,6 +7849,8 @@ local add_to_callback = luatexbase.add_to_callback local remove_from_callback = luatexbase.remove_from_callback local priority_in_callback = luatexbase.priority_in_callback +local get_quad = luaotfload.aux.get_quad -- needs luaotfload > 20130516 + local next, type = next, type local nodes, fonts, node = nodes, fonts, node @@ -7649,6 +7860,7 @@ local insert_node_after = node.insert_after local remove_node = nodes.remove local end_of_math = node.end_of_math local has_attribute = node.has_attribute +local node_copy = node.copy -- node types as of April 2013 local glue_code = 10 @@ -7662,22 +7874,21 @@ local penalty_node = node.new(penalty_code) penalty_node.penalty = 10000 local function get_penalty_node() - return node.copy(penalty_node) + return node_copy(penalty_node) end -- same for glue node -local glue_node = node.new(glue_code) -glue_node.spec = node.new(glue_spec_code) +local kern_node = node.new(kern_code) -local function get_glue_node(dim) - local n = node.copy(glue_node) - n.spec.width = dim +local function get_kern_node(dim) + local n = node_copy(kern_node) + n.kern = dim return n end -- we have here all possible space characters, referenced by their -- unicode slot number, taken from char-def.lua -local space_chars = {[20]=1, [160]=1, [5760]=1, [6158]=1, [8192]=1, [8193]=1, [8194]=1, [8195]=1, +local space_chars = {[32]=1, [160]=1, [5760]=1, [6158]=1, [8192]=1, [8193]=1, [8194]=1, [8195]=1, [8196]=1, [8197]=1, [8198]=1, [8199]=1, [8200]=1, [8201]=1, [8202]=1, [8239]=1, [8287]=1, [12288]=1} -- from nodes-tst.lua, adapted @@ -7765,14 +7976,14 @@ local function process(head) -- penalty followed by glue while start do local id = start.id - if id == glyph_code then -- 37 is glyph as of 2013/04 + if id == glyph_code then local attr = has_attribute(start, xpgfrptattr) if attr and attr > 0 then local char = start.char local map = mappings[char] --node.unset_attribute(start, xpgfrptattr) -- needed? if map then - local quad = font.fonts[start.font].parameters.quad -- might be optimized + local quad = get_quad(start.font) -- might be optimized local prev = start.prev if map[1] == left and prev then local prevprev = prev.prev @@ -7788,13 +7999,12 @@ local function process(head) end end insert_node_before(head,start,get_penalty_node()) - insert_node_before(head,start,get_glue_node(map[2]*quad)) + insert_node_before(head,start,get_kern_node(map[2]*quad)) done = true end local next = start.next if map[1] == right and next then local nextnext = next.next - local somepenalty = somepenalty(next,10000) if somepenalty then local somespace = somespace(nextnext,true) @@ -7808,7 +8018,7 @@ local function process(head) head = remove_node(head,next,true) end end - insert_node_after(head,start,get_glue_node(right*quad)) + insert_node_after(head,start,get_kern_node(map[2]*quad)) insert_node_after(head,start,get_penalty_node()) done = true end @@ -7828,14 +8038,14 @@ end local callback_name = "pre_linebreak_filter" local function activate() - if not priority_in_callback (callback_name, "xpg-frpt.process") then - add_to_callback(callback_name, process, "xpg-frpt.process", 1) + if not priority_in_callback (callback_name, "polyglossia-frpt.process") then + add_to_callback(callback_name, process, "polyglossia-frpt.process", 1) end end local function desactivate() - if priority_in_callback (callback_name, "xpg-frpt.process") then - remove_from_callback(callback_name, "xpg-frpt.process") + if priority_in_callback (callback_name, "polyglossia-frpt.process") then + remove_from_callback(callback_name, "polyglossia-frpt.process") end end @@ -7847,6 +8057,94 @@ polyglossia.thickspace = thickpace % \end{macrocode} % \iffalse %</polyglossia-frpt.lua> +%<*polyglossia-tibt.lua> +% \fi +% \clearpage +% +% \subsection{polyglossia-tibt.lua} +% \begin{macrocode} +require('polyglossia') -- just in case... + +local add_to_callback = luatexbase.add_to_callback +local remove_from_callback = luatexbase.remove_from_callback +local priority_in_callback = luatexbase.priority_in_callback + +local next, type = next, type + +local nodes, fonts, node = nodes, fonts, node + +local insert_node_before = node.insert_before +local insert_node_after = node.insert_after +local remove_node = nodes.remove +local copy_node = node.copy +local end_of_math = node.end_of_math +local has_attribute = node.has_attribute + +local nodecodes = nodes.nodecodes --- <= preloaded node.types() + +-- node types as of April 2013 +local glyph_code = nodecodes.glyph +local penalty_code = nodecodes.penalty +local kern_code = nodecodes.kern + +-- we make a new node, so that we can copy it later on +local penalty_node = node.new(penalty_code) +penalty_node.penalty = -2000 -- rather arbitrary... if someone has a better idea...? + +local function get_penalty_node() + return copy_node(penalty_node) +end + +local xpgtibtattr = luatexbase.attributes['xpg@tibteol'] + +local tsheg = unicode.utf8.byte('་') + +-- from typo-spa.lua +local function process(head) + local start = head + -- head is always begin of par (whatsit), so we have at least two prev nodes + -- penalty followed by glue + while start do + local id = start.id + if id == glyph_code then + local attr = has_attribute(start, xpgtibtattr) + if attr and attr > 0 then + if start.char == tsheg then + if start.next then + insert_node_after(head,start,get_penalty_node()) + end + end + end + elseif id == math_code then + -- warning: this is a feature of luatex > 0.76 + start = end_of_math(start) -- weird, can return nil .. no math end? + end + if start then + start = start.next + end + end + return head +end + +local callback_name = "pre_linebreak_filter" + +local function activate() + if not priority_in_callback (callback_name, "polyglossia-tibt.process") then + add_to_callback(callback_name, process, "polyglossia-tibt.process", 1) + end +end + +local function desactivate() + if priority_in_callback (callback_name, "polyglossia-tibt.process") then + remove_from_callback(callback_name, "polyglossia-tibt.process") + end +end + +polyglossia.activate_tibt_eol = activate +polyglossia.desactivate_tibt_eol = desactivate +% \end{macrocode} +% \iffalse +%</polyglossia-tibt.lua> %<*polyglossia.lua> % \fi % \clearpage @@ -7923,6 +8221,10 @@ local function load_frpt() require('polyglossia-frpt') end +local function load_tibt_eol() + require('polyglossia-tibt') +end + polyglossia.loadlang = loadlang polyglossia.select_language = select_language polyglossia.set_default_language = set_default_language @@ -7930,6 +8232,7 @@ polyglossia.current_language = current_language -- doesn't seem to be working we polyglossia.default_language = default_language polyglossia.check_char = check_char polyglossia.load_frpt = load_frpt +polyglossia.load_tibt_eol = load_tibt_eol % \end{macrocode} % \iffalse %</polyglossia.lua> @@ -7943,7 +8246,7 @@ polyglossia.load_frpt = load_frpt ¦----------------------------------------------¦ ¦ ¦ - ¦ THE POLYGLOSSIA PACKAGE v1.32.0 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.33.0 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -7996,6 +8299,11 @@ http://github.com/reutenauer/polyglossia/issues CHANGES +1.33.0 (20-05-2013) + * Added support for N’Ko. + * Bugfixes for LuaTeX + * More work in progress on Bidi in LuaTeX. + 1.32.0 (15-05-2013) Transitional version to support right-to-left languages with LuaTeX. diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf index 9ffc71b16ef..2d5e2441502 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-arabic.ldf}[polyglossia: module for arabic] +\ifluatex + \xpg@warning{Arabic is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{hijrical} diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf index c27a65ba8f4..3934111a355 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf @@ -2,6 +2,12 @@ % TODO implement Bengali calendar \ProvidesFile{gloss-bengali.ldf}[polyglossia: module for bengali] +\ifluatex + \xpg@warning{Bengali is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{bengali}{ diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf index bbf0bb50a2a..19f539f521b 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-divehi.ldf}[polyglossia: module for divehi] +\ifluatex + \xpg@warning{Divehi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \PolyglossiaSetup{divehi}{ script=Thaana, diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf index d3aeeb2922d..d74ade2a03a 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-farsi.ldf}[polyglossia: module for farsi] +\ifluatex + \xpg@warning{Farsi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{farsical} diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf index 47476760ae0..3de602cf241 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf @@ -12,7 +12,6 @@ \ifluatex \newluatexattribute\xpg@frpt % \directlua{polyglossia.load_frpt()}% - \global\newcount\xpg@interchartokenstate % \else \newXeTeXintercharclass\french@punctthin % ! ? ; et autres \newXeTeXintercharclass\french@punctthick % : diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf index ea0c2100969..dc29c14f254 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf @@ -163,7 +163,9 @@ % LuaTeX % \let\pattname{\if@german@oldspelling\else n\fi german\ifgerman@latesthyphen -x-latest\fi} % \xpg@set@language@luatex@ii{\pattname}} - \if@german@oldspelling\xpg@set@language@luatex@ii{german}\else\xpg@set@language@luatex@ii{ngerman}\fi} + \ifgerman@latesthyphen + \if@german@oldspelling\xpg@set@language@luatex@ii{german-x-latest}\else\xpg@set@language@luatex@ii{ngerman-x-latest}\fi + \else\if@german@oldspelling\xpg@set@language@luatex@ii{german}\else\xpg@set@language@luatex@ii{ngerman}\fi\fi} \def\noextras@german{% \nogerman@shorthands% diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf index 5167833d833..73163d1b5a6 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for hebrew] +\ifluatex + \xpg@warning{Hebrew is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{hebrewcal} diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf index 6223a494987..93f5c8e5986 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf @@ -3,6 +3,12 @@ % Velthuis Devanagari project: http://devnag.sarovar.org. \ProvidesFile{gloss-hindi.ldf}[polyglossia: module for hindi] +\ifluatex + \xpg@warning{Hindi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{hindi}{ script=Devanagari, diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf index cca3488e646..6362de74d99 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf @@ -17,6 +17,12 @@ % % This work consists of the file gloss-kannada.ldf \ProvidesFile{gloss-kannada.ldf}[polyglossia: module for kannada] +\ifluatex + \xpg@warning{Kannada is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{kannada}{ script=Kannada, scripttag=knda, diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf index 16e58fc5fa2..9f8cc83df3e 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao] +\ifluatex + \xpg@warning{Lao is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{lao}{ script=Lao, scripttag=lao, diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf index 1630b3c78bf..bb5dcffbdec 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for malayalam] +\ifluatex + \xpg@warning{Malayalam is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Kevin & Siji, 01-11-2009 \PolyglossiaSetup{malayalam}{ diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf index a7fd12c7df3..495fa2897c2 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf @@ -2,6 +2,12 @@ % TODO implement Hindu calendar (not used in day-to-day practice) \ProvidesFile{gloss-marathi.ldf}[polyglossia: module for marathi] +\ifluatex + \xpg@warning{Marathi is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{devanagaridigits} \PolyglossiaSetup{marathi}{ diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf new file mode 100644 index 00000000000..b64b367776e --- /dev/null +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf @@ -0,0 +1,58 @@ +\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko v0.1 2013/05/19] +\PolyglossiaSetup{nko}{% + script=N'ko, + scripttag=nko~, + fontsetup=true, + hyphennames={nohyphenation}, + direction=RL +} +\RequirePackage{nkonumbers}% + +\def\captionsnko{% + \def\prefacename{ߢߍߛߓߍ}% + \def\refname{ߞߐߡߊߛߙߋ}% + \def\abstractname{ߓߊߕߐߡߐ߲}% + \def\bibname{ߟߍߙߊߥߙߍߟߐ߲߲}% + \def\chaptername{ߛߌ߰ߘߊ}% + \def\appendixname{ߘߋ߬ߙߋ}% + \def\contentsname{ߞߣߐߘߐ}% + \def\listfigurename{ߢߊ ߟߎ߬ ߛߙߍߘߍ}% + \def\listtablename{ߦߌ߬ߘߊ߬ߥߟߊ ߟߎ߬ ߛߙߍߘߍ}% + \def\indexname{ߛߙߍߘߍ}% + \def\figurename{ߢߊ}% + \def\tablename{ߦߌ߬ߘߊ߬ߥߟߊ}% + \def\partname{ߛߌ߰ߘߊ߬ߙߋ߲}% + \def\enclname{ߝߍ߬ߕߊ}% + \def\ccname{ߓߊ ߘߏ߫ ߘߌ߫}% + \def\headtoname{ߞߊߕߙߍ߬}% + \def\pagename{ߞߐߜߍ}% + \def\seename{ߡߊߝߟߍ߫}% + \def\alsoname{ߝߟߍߡߊߛߊ߬ߦߌ߬}% + \def\proofname{ߦߌ߬ߘߊ߬ߞߏ}% + \def\glossaryname{ߞߘߐߝߐߟߊ߲}% +}% + +% In n'ko, this is an example of date : +% ߂߀߁߃ ߞߏ߲ߞߏߜߍ ߕߟߋ߬ ߁߈ (RTL) +% ( 18 February 2013 ) +% The word "ߕߟߋ߬" is mandatory between month name and day number. + +\def\datenko{% + \def\today{\nkonumber{\day}\space ߕߟߋ߬\space\ifcase\month\or +ߓߌ߲ߠߊߥߎߟߋ߲\or +ߞߏ߲ߞߏߜߍ\or +ߕߙߊߓߊ\or +ߞߏ߲ߞߏߘߌ߬ߓߌ\or +ߘߓߊ߬ߕߊ\or +ߥߊ߬ߛߌߥߊ߬ߙߊ\or +ߞߊ߬ߙߌߝߐ߭\or +ߘߓߊ߬ߓߌߟߊ\or +ߕߎߟߊߝߌ߲\or +ߞߏ߲ߓߌߕߌ߮\or +ߣߍߣߍߓߊ\or +ߞߏ߬ߟߌ߲߬ߞߏߟߌ߲\fi +\space\nkonumber{\year} + }% +}% + +\endinput diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf index 748353488bf..ac1d7160694 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf @@ -38,7 +38,7 @@ januari\or februari\or mars\or april\or maj\or juni\or juli\or augusti\or september\or oktober\or november\or december\fi - \space\number\year} + \space\number\year}% \def\datesymd{% \def\today{\number\year-\two@digits\month-\two@digits\day}}% \def\datesdmy{% diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf index 75e5ce0731d..0cda3fd0e0a 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-syriac.ldf}[polyglossia: module for syriac] +\ifluatex + \xpg@warning{Syriac is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf index c3ef7110ba6..779d27f773a 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-tamil.ldf}[polyglossia: module for tamil] +\ifluatex + \xpg@warning{Tamil is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Kevin & Siji, 01-11-2009 \PolyglossiaSetup{tamil}{ diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf index f7f6a63dc5f..ec7975da48f 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf @@ -1,4 +1,10 @@ \ProvidesFile{gloss-telugu.ldf}[polyglossia: module for telugu] +\ifluatex + \xpg@warning{Telugu is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi % Translations provided by Anmol Sharma <unmole.in@gmail.com> \PolyglossiaSetup{telugu}{ diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf index 16e90ea7dc1..21cea5c8b17 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf @@ -8,6 +8,12 @@ %%%% Thai Linux Working Group %%%% http://linux.thai.net/ %%%% +\ifluatex + \xpg@warning{Thai is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \PolyglossiaSetup{thai}{ script=Thai, scripttag=thai, diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf index 759bc8c08e9..3ca18cf0c96 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf @@ -22,6 +22,31 @@ \@tibetan@numeralsfalse\fi } +\ifluatex + \newluatexattribute\xpg@tibteol % + \directlua{polyglossia.load_tibt_eol()}% +\fi + +\def\tibetan@eol{% + \ifluatex % + \xpg@tibteol=1\relax % + \directlua{polyglossia.activate_tibt_eol()}% + \else % + \XeTeXlinebreaklocale "bo"% + \XeTeXlinebreakskip=0pt plus 0.1em% doesn't do much, but doesn't harm I guess... + \fi % +} + +\def\notibetan@eol{% + \ifluatex % + \xpg@tibteol=0\relax % + %\directlua{polyglossia.activate_tibt_eol()}% + \else % + \XeTeXlinebreaklocale "en"% en? really? + \XeTeXlinebreakskip=0pt plus 0pt% + \fi % +} + \setkeys{tibetan}{numerals} % some are known, but very few @@ -120,18 +145,38 @@ \let\@arabic\tibetannumber% \renewcommand{\thefootnote}{\protect\tibetannumber{\c@footnote}}% } + \def\notibetan@globalnumbers{% \let\@arabic\orig@arabic% \renewcommand\thefootnote{\protect\number{\c@footnote}}% } -% copied from Thai, not tested +\def\noextras@tibetan{% + \notibetan@eol% + \let\baselinestrech\orig@baselinestretch% + } \def\blockextras@tibetan{% + % copied from Thai, not tested \let\orig@baselinestrech\baselinestretch% \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% + } + +\def\inlineextras@tibetan{% + \let\orig@baselinestrech\baselinestretch% + \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% + } + +\def\blockextras@tibetan{% + \let\orig@baselinestrech\baselinestretch% + \renewcommand{\baselinestretch}{1.2}% + \tibetan@eol% } + \def\noblockextras@tibetan{% + \notibetan@eol% \let\baselinestrech\orig@baselinestretch% } diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf index 028f0cdd885..e092125e2ff 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf +++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf @@ -1,5 +1,11 @@ %%% Adapted from a file contributed by Kamal Abdali \ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu] +\ifluatex + \xpg@warning{Urdu is not supported with LuaTeX.\MessageBreak +I will proceed with the compilation, but\MessageBreak +the output is not guaranteed to be correct\MessageBreak +and may look very wrong.} +\fi \RequirePackage{bidi} \RequirePackage{arabicnumbers} \RequirePackage{hijrical} diff --git a/Master/texmf-dist/tex/latex/polyglossia/nkonumbers.sty b/Master/texmf-dist/tex/latex/polyglossia/nkonumbers.sty new file mode 100644 index 00000000000..ceb8b89911e --- /dev/null +++ b/Master/texmf-dist/tex/latex/polyglossia/nkonumbers.sty @@ -0,0 +1,13 @@ +\ProvidesPackage{nkonumbers} + [2013/05/19 v0.1% + Formatting of N’Ko numbers] + +\def\nkodigits#1{\expandafter\@nko@digits #1@} +\def\@nko@digits#1{% + \ifx @#1% + \else + \ifx0#1߀\else\ifx1#1߁\else\ifx2#1߂\else\ifx3#1߃\else\ifx4#1߄\else\ifx5#1߅\else\ifx6#1߆\else\ifx7#1߇\else\ifx8#1߈\else\ifx9#1߉\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \expandafter\@nko@digits + \fi} +\def\nkonumber#1{\nkodigits{\number#1}} +\endinput diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-frpt.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-frpt.lua index 1fc02137cb0..b858c1b3458 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-frpt.lua +++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-frpt.lua @@ -4,6 +4,8 @@ local add_to_callback = luatexbase.add_to_callback local remove_from_callback = luatexbase.remove_from_callback local priority_in_callback = luatexbase.priority_in_callback +local get_quad = luaotfload.aux.get_quad -- needs luaotfload > 20130516 + local next, type = next, type local nodes, fonts, node = nodes, fonts, node @@ -13,6 +15,7 @@ local insert_node_after = node.insert_after local remove_node = nodes.remove local end_of_math = node.end_of_math local has_attribute = node.has_attribute +local node_copy = node.copy -- node types as of April 2013 local glue_code = 10 @@ -26,22 +29,21 @@ local penalty_node = node.new(penalty_code) penalty_node.penalty = 10000 local function get_penalty_node() - return node.copy(penalty_node) + return node_copy(penalty_node) end -- same for glue node -local glue_node = node.new(glue_code) -glue_node.spec = node.new(glue_spec_code) +local kern_node = node.new(kern_code) -local function get_glue_node(dim) - local n = node.copy(glue_node) - n.spec.width = dim +local function get_kern_node(dim) + local n = node_copy(kern_node) + n.kern = dim return n end -- we have here all possible space characters, referenced by their -- unicode slot number, taken from char-def.lua -local space_chars = {[20]=1, [160]=1, [5760]=1, [6158]=1, [8192]=1, [8193]=1, [8194]=1, [8195]=1, +local space_chars = {[32]=1, [160]=1, [5760]=1, [6158]=1, [8192]=1, [8193]=1, [8194]=1, [8195]=1, [8196]=1, [8197]=1, [8198]=1, [8199]=1, [8200]=1, [8201]=1, [8202]=1, [8239]=1, [8287]=1, [12288]=1} -- from nodes-tst.lua, adapted @@ -129,14 +131,14 @@ local function process(head) -- penalty followed by glue while start do local id = start.id - if id == glyph_code then -- 37 is glyph as of 2013/04 + if id == glyph_code then local attr = has_attribute(start, xpgfrptattr) if attr and attr > 0 then local char = start.char local map = mappings[char] --node.unset_attribute(start, xpgfrptattr) -- needed? if map then - local quad = font.fonts[start.font].parameters.quad -- might be optimized + local quad = get_quad(start.font) -- might be optimized local prev = start.prev if map[1] == left and prev then local prevprev = prev.prev @@ -152,13 +154,12 @@ local function process(head) end end insert_node_before(head,start,get_penalty_node()) - insert_node_before(head,start,get_glue_node(map[2]*quad)) + insert_node_before(head,start,get_kern_node(map[2]*quad)) done = true end local next = start.next if map[1] == right and next then local nextnext = next.next - local somepenalty = somepenalty(next,10000) if somepenalty then local somespace = somespace(nextnext,true) @@ -172,7 +173,7 @@ local function process(head) head = remove_node(head,next,true) end end - insert_node_after(head,start,get_glue_node(right*quad)) + insert_node_after(head,start,get_kern_node(map[2]*quad)) insert_node_after(head,start,get_penalty_node()) done = true end @@ -192,14 +193,14 @@ end local callback_name = "pre_linebreak_filter" local function activate() - if not priority_in_callback (callback_name, "xpg-frpt.process") then - add_to_callback(callback_name, process, "xpg-frpt.process", 1) + if not priority_in_callback (callback_name, "polyglossia-frpt.process") then + add_to_callback(callback_name, process, "polyglossia-frpt.process", 1) end end local function desactivate() - if priority_in_callback (callback_name, "xpg-frpt.process") then - remove_from_callback(callback_name, "xpg-frpt.process") + if priority_in_callback (callback_name, "polyglossia-frpt.process") then + remove_from_callback(callback_name, "polyglossia-frpt.process") end end diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua new file mode 100644 index 00000000000..04355384029 --- /dev/null +++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua @@ -0,0 +1,79 @@ +require('polyglossia') -- just in case... + +local add_to_callback = luatexbase.add_to_callback +local remove_from_callback = luatexbase.remove_from_callback +local priority_in_callback = luatexbase.priority_in_callback + +local next, type = next, type + +local nodes, fonts, node = nodes, fonts, node + +local insert_node_before = node.insert_before +local insert_node_after = node.insert_after +local remove_node = nodes.remove +local copy_node = node.copy +local end_of_math = node.end_of_math +local has_attribute = node.has_attribute + +local nodecodes = nodes.nodecodes --- <= preloaded node.types() + +-- node types as of April 2013 +local glyph_code = nodecodes.glyph +local penalty_code = nodecodes.penalty +local kern_code = nodecodes.kern + +-- we make a new node, so that we can copy it later on +local penalty_node = node.new(penalty_code) +penalty_node.penalty = -2000 -- rather arbitrary... if someone has a better idea...? + +local function get_penalty_node() + return copy_node(penalty_node) +end + +local xpgtibtattr = luatexbase.attributes['xpg@tibteol'] + +local tsheg = unicode.utf8.byte('་') + +-- from typo-spa.lua +local function process(head) + local start = head + -- head is always begin of par (whatsit), so we have at least two prev nodes + -- penalty followed by glue + while start do + local id = start.id + if id == glyph_code then + local attr = has_attribute(start, xpgtibtattr) + if attr and attr > 0 then + if start.char == tsheg then + if start.next then + insert_node_after(head,start,get_penalty_node()) + end + end + end + elseif id == math_code then + -- warning: this is a feature of luatex > 0.76 + start = end_of_math(start) -- weird, can return nil .. no math end? + end + if start then + start = start.next + end + end + return head +end + +local callback_name = "pre_linebreak_filter" + +local function activate() + if not priority_in_callback (callback_name, "polyglossia-tibt.process") then + add_to_callback(callback_name, process, "polyglossia-tibt.process", 1) + end +end + +local function desactivate() + if priority_in_callback (callback_name, "polyglossia-tibt.process") then + remove_from_callback(callback_name, "polyglossia-tibt.process") + end +end + +polyglossia.activate_tibt_eol = activate +polyglossia.desactivate_tibt_eol = desactivate diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua index 96f2341519a..2a344720ec6 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua +++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua @@ -68,6 +68,10 @@ local function load_frpt() require('polyglossia-frpt') end +local function load_tibt_eol() + require('polyglossia-tibt') +end + polyglossia.loadlang = loadlang polyglossia.select_language = select_language polyglossia.set_default_language = set_default_language @@ -75,3 +79,4 @@ polyglossia.current_language = current_language -- doesn't seem to be working we polyglossia.default_language = default_language polyglossia.check_char = check_char polyglossia.load_frpt = load_frpt +polyglossia.load_tibt_eol = load_tibt_eol diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty index 092b76781c1..a2f3bfd6fcd 100644 --- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty +++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty @@ -1,5 +1,5 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{polyglossia}[2013/05/15 v1.32.0 +\ProvidesPackage{polyglossia}[2013/05/20 v1.33.0 Babel replacement for XeLaTeX and LuaTeX] \RequirePackage{etoolbox} \RequirePackage{makecmds} @@ -215,7 +215,7 @@ \ifcsundef{l@#1}% {\xpg@nopatterns{\csname xpg@langname@#1\endcsname}% \expandafter\adddialect\csname l@#1\endcsname\l@nohyphenation\relax}{}% - \csdef{#1@language}{\language=\csname l@#1\endcsname\ifluatex\directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', '\the\csname l@#1\endcsname')}\fi}% + \csdef{#1@language}{\language=\csname l@#1\endcsname\ifluatex\directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', \the\csname l@#1\endcsname)}\fi}% }% \define@choicekey+[xpg@setup]{#1}{direction}[\val\nr]{LR,RL}[LR]% {\ifcase\nr\relax @@ -693,7 +693,7 @@ % here we use lu@texhyphen@loaded@\the\language, the same as in babel \expandafter\ifcsname lu@texhyphen@loaded@\the\csname l@#1\endcsname\endcsname \else % \global\@namedef{lu@texhyphen@loaded@\the\language}{}% - \directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', '\the\csname l@#1\endcsname')}% + \directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', \the\csname l@#1\endcsname)}% \fi % \fi % } @@ -702,7 +702,7 @@ \ifluatex % \ifcsname lu@texhyphen@loaded@\the\language\endcsname \else % \global\@namedef{lu@texhyphen@loaded@\the\language}{}% - \directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', '\the\csname l@#1\endcsname')}% + \directlua{polyglossia.select_language('\luatexluaescapestring{\string#1}', \the\csname l@#1\endcsname)}% \fi % \fi % \xpg@initial@setup% |