From f78323b8060c819726a015d8b6cfa051bb94ddda Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 20 May 2013 22:03:38 +0000 Subject: polyglossia (20may13) git-svn-id: svn://tug.org/texlive/trunk@30596 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/polyglossia/polyglossia.dtx | 352 +++++++++++++++++++-- 1 file changed, 330 insertions(+), 22 deletions(-) (limited to 'Master/texmf-dist/source/latex/polyglossia') 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 % @@ -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-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-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 \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-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.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 % @@ -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. -- cgit v1.2.3