summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-07 20:58:18 +0000
committerKarl Berry <karl@freefriends.org>2018-04-07 20:58:18 +0000
commit9e5940c56dfe63fab26f34250ac55e37ece2c560 (patch)
tree7d958a87f96e76f7e99de545fa4c13828224127b /Master/texmf-dist/tex/latex
parent861b4de389db24dd94535880edb8de1ea4386cf6 (diff)
polyglossia (7apr18)
git-svn-id: svn://tug.org/texlive/trunk@47358 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-churchslavonic.ldf244
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-classiclatin.ldf157
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf52
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf54
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf216
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf484
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf371
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf11
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-liturgicallatin.ldf185
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf10
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf26
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf5
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf112
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf4
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua26
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty24
19 files changed, 1639 insertions, 348 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-churchslavonic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-churchslavonic.ldf
new file mode 100644
index 00000000000..1d19cadcc98
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-churchslavonic.ldf
@@ -0,0 +1,244 @@
+\ProvidesFile{gloss-churchslavonic.ldf}[polyglossia: module for Church Slavonic]
+\PolyglossiaSetup{churchslavonic}{
+ script=Cyrillic,
+ scripttag=cyrl,
+ langtag=CHU,
+ hyphennames={churchslavonic},
+ hyphenmins={1,2},
+ frenchspacing=true,
+ fontsetup=true
+}
+
+% if spelling is set to modern, Russian date and caption
+% as well as ASCII digits are used.
+\define@key{churchslavonic}{spelling}[modern]{%
+ \ifstrequal{#1}{traditional}%
+ {\def\captionschurchslavonic{\captionschurchslavonic@traditional}%
+ \def\datechurchslavonic{\datechurchslavonic@traditional}}%
+ {\def\captionschurchslavonic{\captionschurchslavonic@modern}%
+ \def\datechurchslavonic{\datechurchslavonic@modern}}%
+}
+
+\newif\ifcyrillic@numerals
+\define@key{churchslavonic}{numerals}[latin]{%
+ \ifstrequal{#1}{cyrillic}%
+ {\cyrillic@numeralstrue}
+ {\cyrillic@numeralsfalse}%
+}
+
+\define@boolkey{churchslavonic}[churchslavonic@]{babelshorthands}[false]{}
+
+\setkeys{churchslavonic}{spelling,numerals}
+
+\ifsystem@babelshorthands
+ \setkeys{churchslavonic}{babelshorthands=true}
+\else
+ \setkeys{churchslavonic}{babelshorthands=false}
+\fi
+
+\ifcsundef{initiate@active@char}{%
+ \input{babelsh.def}%
+ \initiate@active@char{"}%
+}{}
+
+\def\churchslavonic@shorthands{%
+ \bbl@activate{"}%
+ \def\language@group{churchslavonic}%
+% \declare@shorthand{russian}{"`}{„}%
+% \declare@shorthand{russian}{"'}{“}%
+% \declare@shorthand{russian}{"<}{«}%
+% \declare@shorthand{russian}{">}{»}%
+ \declare@shorthand{churchslavonic}{""}{\hskip\z@skip}%
+ \declare@shorthand{churchslavonic}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
+ \declare@shorthand{churchslavonic}{"=}{\nobreak-\hskip\z@skip}%
+ \declare@shorthand{churchslavonic}{"|}{\textormath{\nobreak\discretionary{-}{}{\kern.03em}\allowhyphens}{}}%
+ \declare@shorthand{churchslavonic}{"-}{%
+ \def\churchslavonic@sh@tmp{%
+ \if\churchslavonic@sh@next-\expandafter\churchslavonic@sh@emdash
+ \else\expandafter\churchslavonic@sh@hyphen\fi
+ }%
+ \futurelet\churchslavonic@sh@next\churchslavonic@sh@tmp}%
+ \def\churchslavonic@sh@hyphen{%
+ \nobreak\-\bbl@allowhyphens}%
+ \def\churchslavonic@sh@emdash##1##2{\cdash-##1##2}%
+ \def\cdash##1##2##3{\def\tempx@{##3}%
+ \def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}%
+ \def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+ \cyrdash\hskip.2em\ignorespaces}%
+ \def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+ \def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+ \ifx\cyrdash\undefined
+ \def\cyrdash{\hbox to.8em{--\hss--}}
+ \fi
+ \declare@shorthand{churchslavonic}{",}{\nobreak\hskip.2em\ignorespaces}%
+}
+
+\def\nochurchslavonic@shorthands{%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+}
+
+
+\def\captionschurchslavonic@modern{%
+ \def\prefacename{Предисловие}%
+ \def\refname{Список литературы}%
+ \def\abstractname{Аннотация}%
+ \def\bibname{Литература}%
+\def\chaptername{Глава}%
+ \def\appendixname{Приложение}%
+ \ifcsundef{thechapter}%
+ {\def\contentsname{Содержание}}%
+ {\def\contentsname{Оглавление}}%
+ \def\listfigurename{Список иллюстраций}%
+ \def\listtablename{Список таблиц}%
+ \def\indexname{Предметный указатель}%
+ \def\authorname{Именной указатель}%
+ \def\figurename{Рис.}%
+ \def\tablename{Таблица}%
+ \def\partname{Часть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}%
+ \def\seename{см.}%
+ \def\alsoname{см.~также}%
+ \def\proofname{Доказательство}%
+}
+\def\datechurchslavonic@modern{%
+ \def\today{\number\day%
+ \space\ifcase\month\or%
+ января\or
+ февраля\or
+ марта\or
+ апреля\or
+ мая\or
+ июня\or
+ июля\or
+ августа\or
+ сентября\or
+ октября\or
+ ноября\or
+ декабря\fi%
+ \space \number\year\space г.}}
+
+\def\captionschurchslavonic@traditional{%
+ \def\prefacename{Предисло́вїе}%
+ \def\refname{Примѣча̑нїѧ}%
+ \def\abstractname{А҆ннота́цїѧ}%
+ \def\bibname{Вивлїогра́фїѧ}%
+ \def\chaptername{Глава̀}%
+ \def\appendixname{Приложе́нїе}%
+ \ifcsundef{thechapter}%
+ {\def\contentsname{Содержа́нїе}}%
+ {\def\contentsname{Ѡ҆главле́нїе}}%
+ \def\listfigurename{Надписа́нїе и҆з̾ѡбраже́нїй}%
+ \def\listtablename{Надписа́нїе табли́цъ}%
+ \def\indexname{Предмѣ́тный ᲂу҆каза́тель}%
+ \def\authorname{И҆менно́й ᲂу҆каза́тель}%
+ \def\figurename{И҆з̾ѡбраже́нїе}%
+ \def\tablename{Табли́ца}%
+ \def\partname{Ча́сть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}%
+ \def\seename{зрѝ}%
+ \def\alsoname{зрѝ~та́кожде}%
+ \def\proofname{Доказа́тельство}%
+}
+\def\datechurchslavonic@traditional{%
+ \def\today{\number\day%
+ \space\ifcase\month\or%
+ і҆аннꙋа́рїа\or
+ феврꙋа́рїа\or
+ ма́рта\or
+ а҆прі́ллїа\or
+ ма́їа\or
+ і҆ꙋ́нїа\or
+ і҆ꙋ́лїа\or
+ а҆́ѵгꙋста\or
+ септе́мврїа\or
+ ѻ҆ктѡ́врїа\or
+ ное́мврїа\or
+ деке́мврїа\fi%
+ \space л.\space\number\year\space}}
+
+% The following is based on some ideas from ruscor.sty
+\def\churchslavonic@capsformat{%
+ \def\@seccntformat##1{\csname pre##1\endcsname%
+ \csname the##1\endcsname%
+ \csname post##1\endcsname}%
+ \def\@aftersepkern{\hspace{0.5em}}%
+ \def\postchapter{.\@aftersepkern}%
+ \def\postsection{.\@aftersepkern}%
+ \def\postsubsection{.\@aftersepkern}%
+ \def\postsubsubsection{.\@aftersepkern}%
+ \def\postparagraph{.\@aftersepkern}%
+ \def\postsubparagraph{.\@aftersepkern}%
+ \def\prechapter{}%
+ \def\presection{}%
+ \def\presubsection{}%
+ \def\presubsubsection{}%
+ \def\preparagraph{}%
+ \def\presubparagraph{}}
+
+\def\Azbuk#1{\expandafter\churchslavonic@Alph\csname c@#1\endcsname}
+\def\churchslavonic@Alph#1{\ifcase#1\or
+ А\or Б\or В\or Г\or Д\or Є\or Ж\or Ѕ\or
+ З\or И\or І\or К\or Л\or М\or Н\or О\or
+ П\or Р\or С\or Т\or Ꙋ\or Ф\or Х\or Ѿ\or
+ Ц\or Ч\or Ш\or Щ\or Ъ\or Ы\or Ь\or Ѣ\or
+ Ю\or Ѫ\or Ѧ\or Ѯ\or Ѱ\or Ѳ\or Ѵ\else\xpg@ill@value{#1}{churchslavonic@Alph}\fi}
+
+\def\azbuk#1{\expandafter\churchslavonic@alph\csname c@#1\endcsname}
+\def\churchslavonic@alph#1{\ifcase#1\or
+ а\or б\or в\or г\or д\or е\or ж\or ѕ\or
+ з\or и\or ї\or к\or л\or м\or н\or о\or
+ п\or р\or с\or т\or ꙋ\or ф\or х\or ѿ\or
+ ц\or ч\or ш\or щ\or ъ\or ы\or ь\or ѣ\or
+ ю\or ѫ\or ѧ\or ѯ\or ѱ\or ѳ\or ѵ\else\xpg@ill@value{#1}{churchslavonic@alph}\fi}
+
+%% Deleting stuff for Cyrillic numerals
+%% TODO: link with cu-num package
+\def\noextras@churchslavonic{%
+ \def\@seccntformat##1{\csname the##1\endcsname\quad}% = LaTeX kernel
+ \ifcyrillic@numerals\nochurchslavonic@numbers\fi
+ \nochurchslavonic@shorthands%
+}
+
+\def\blockextras@churchslavonic{%
+ \churchslavonic@capsformat%
+ \ifcyrillic@numerals\churchslavonic@numbers\fi
+ \ifchurchslavonic@babelshorthands\churchslavonic@shorthands\fi
+}
+
+\def\inlineextras@churchslavonic{%
+ \ifchurchslavonic@babelshorthands\churchslavonic@shorthands\fi%
+}
+
+%%% These lines taken from russianb.ldf, part of babel package.
+% make it optional?
+\def\sh {\mathop{\operator@font sh}\nolimits}
+\def\ch {\mathop{\operator@font ch}\nolimits}
+\def\tg {\mathop{\operator@font tg}\nolimits}
+\def\arctg {\mathop{\operator@font arctg}\nolimits}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+\def\th {\mathop{\operator@font th}\nolimits}
+\def\ctg {\mathop{\operator@font ctg}\nolimits}
+\def\cth {\mathop{\operator@font cth}\nolimits}
+\def\cosec {\mathop{\operator@font cosec}\nolimits}
+\def\Prob {\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\def\nod {\mathop{\mathrm{н.о.д.}}\nolimits}
+\def\nok {\mathop{\mathrm{н.о.к.}}\nolimits}
+\def\NOD {\mathop{\mathrm{НОД}}\nolimits}
+\def\NOK {\mathop{\mathrm{НОК}}\nolimits}
+\def\Proj {\mathop{\mathrm{Пр}}\nolimits}
+%\DeclareRobustCommand{\No}{№}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-classiclatin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-classiclatin.ldf
new file mode 100644
index 00000000000..016646a3db2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-classiclatin.ldf
@@ -0,0 +1,157 @@
+%%
+%% This is file `gloss-classiclatin.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gloss-latin.dtx (with options: `laclassic')
+%% ------------------------------------------------------------------
+%% Latin module for polyglossia
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%% This work is distributed under the MIT License.
+%%
+%% See the postamble.
+%% ------------------------------------------------------------------
+\ProvidesFile{gloss-classiclatin.ldf}
+ [2016/09/10 v.1.03 Latin support from polyglossia]
+%%
+
+
+\PolyglossiaSetup{classiclatin}{%
+ hyphennames={classiclatin},
+ hyphenmins={2,2},
+ frenchspacing=true,
+ fontsetup=true,
+}
+\def\classicuclccodes{\lccode`\V=`\u \uccode`\u=`\V}
+\def\noclassicuclccodes{\lccode`\V=`\v \uccode`\u=`\U}
+\def\classiclatincaptions{%
+ \def\prefacename{Praefatio}%
+ \def\refname{Conspectus librorum}%
+ \def\abstractname{Summarium}%
+ \def\bibname{Conspectus librorum}%
+ \def\chaptername{Caput}%
+ \def\appendixname{Additamentum}%
+ \def\contentsname{Index}%
+ \def\listfigurename{Conspectus descriptionum}%
+ \def\listtablename{Conspectus tabularum}%
+ \def\indexname{Index rerum notabilium}%
+ \def\figurename{Descriptio}%
+ \def\tablename{Tabula}%
+ \def\partname{Pars}%
+ \def\enclname{Additur}%
+ \def\ccname{Exemplar}%
+ \def\headtoname{\ignorespaces}%
+ \def\pagename{charta}%
+ \def\seename{cfr.}%
+ \def\alsoname{cfr.}%
+ \def\proofname{Demonstratio}%
+ \def\glossaryname{Glossarium}%
+ }
+
+\def\classiclatindate{%
+ \def\today{\uppercase\expandafter{\romannumeral\day}%
+ \space \ifcase\month
+ \or Januarii\or Februarii\or Martii\or Aprilis\or Maii\or Junii\or
+ Julii\or Augusti\or Septembris\or Octobris\or Nouembris\or
+ Decembris\fi
+ \space \uppercase\expandafter{\romannumeral\year}}}
+
+\define@boolkey{classiclatin}[classiclatin@]{babelshorthands}[true]{}
+
+\ifsystem@babelshorthands
+ \setkeys{classiclatin}{babelshorthands=true}
+\else
+ \setkeys{classiclatin}{babelshorthands=false}
+\fi
+
+\ifcsundef{initiate@active@char}{%
+ \input{babelsh.def}\initiate@active@char{"}}{}
+
+\def\classiclatin@shorthands{%
+ \def\language@group{classiclatin}%
+ \bbl@activate{"}%
+ \declare@shorthand{classiclatin}{"}{\relax
+ \ifmmode
+ \def\xpgcla@next{''}%
+ \else
+ \def\xpgcla@nextdq{\futurelet\xpgla@temp\xpgla@cwm}%
+ \fi
+ \xpgcla@nextdq}%
+}
+
+\def\xpgcla@allowhyphens{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}
+\newcommand*{\xpgcla@cwm}{\let\xpgcla@@nextdq\relax
+ \ifcat\noexpand\xpgcla@temp a%
+ \let\xpgcla@@nextdq\xpgcla@allowhyphens
+ \else
+ \ifx\xpgcla@temp\ae
+ \let\xpgcla@@nextdq\xpgcla@allowhyphens
+ \else
+ \ifx\xpgcla@temp\oe
+ \let\xpgcla@@nextdq\xpgcla@allowhyphens
+ \else
+ \if\noexpand\xpgla@temp\string|%
+ \def\xpgcla@@nextdq{\xpgcla@allowhyphens\@gobble}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \xpgla@@nextdq}%
+\def\noclassiclatin@shorthands{%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+}
+
+\let\xpgcla@savedvalues\empty
+\AtEndPreamble{%
+ \edef\xpgcla@savedvalues{%
+ \clubpenalty=\the\clubpenalty\space
+ \@clubpenalty=\the\@clubpenalty\space
+ \widowpenalty=\the\widowpenalty\space
+ \finalhyphendemerits=\the\finalhyphendemerits}%
+}
+
+\def\noextras@classiclatin{%
+ \lccode\string"2019=\z@
+ \noclassiclatin@shorthands
+ \noclassicuclccodes
+ \xpgcla@savedvalues
+}
+
+\def\blockextras@classiclatin{%
+ \lccode\string"2019=\string"2019
+ \clubpenalty=3000 \@clubpenalty=3000 \widowpenalty=3000
+ \finalhyphendemerits=50000000
+ \classicuclccodes
+ \ifclassiclatin@babelshorthands\classiclatin@shorthands\fi
+}
+
+\def\inlineextras@classiclatin{%
+ \lccode\string"2019=\string"2019
+ \classicuclccodes
+ \ifclassiclatin@babelshorthands\classiclatin@shorthands\fi
+}
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining
+%% a copy of this software and associated documentation files
+%% (the "Software"), to deal in the Software without restriction, including
+%% without limitation the rights to use, copy, modify, merge, publish,
+%% distribute, sublicense, and/or sell copies of the Software, and to permit
+%% persons to whom the Software is furnished to do so, subject to the following
+%% conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in
+%% all copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+%% THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+%% IN THE SOFTWARE.
+%%
+%% End of file `gloss-classiclatin.ldf'.
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
index c76ae47160c..923fc2bb22a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
@@ -1,36 +1,36 @@
\ProvidesFile{gloss-croatian.ldf}[polyglossia: module for croatian]
\PolyglossiaSetup{croatian}{
hyphennames={croatian},
- hyphenmins={2,2},
- indentfirst=true,
- fontsetup=true,
+ hyphenmins={2,2}, % aligned with https://ctan.org/pkg/hrhyph patterns and http://lebesgue.math.hr/~nenad/Diplomski/Maja_Ribaric_2011.pdf
+ indentfirst=false, % recommendation from Damir Bralić
+ fontsetup=true
}
\def\captionscroatian{%
- \def\refname{Literatura}%
- \def\abstractname{Sažetak}%
- \def\bibname{Bibliografija}%
- \def\prefacename{Predgovor}%
- \def\chaptername{Poglavlje}%
- \def\appendixname{Dodatak}%
- \def\contentsname{Sadržaj}%
- \def\listfigurename{Popis slika}%
- \def\listtablename{Popis tablica}%
- \def\indexname{Kazalo}%
- \def\figurename{Slika}%
- \def\tablename{Tablica}%
- \def\partname{Dio}%
- \def\pagename{Stranica}%
- \def\seename{Vidjeti}%
- \def\alsoname{Također vidjeti}%
- \def\enclname{Prilozi}%
- \def\ccname{Kopija}%
- \def\headtoname{Prima}%
- \def\proofname{Dokaz}%
- \def\glossaryname{Pojmovnik}%
- }
+ \def\prefacename{Predgovor}%
+ \def\refname{Literatura}%
+ \def\abstractname{Sažetak}%
+ \def\bibname{Bibliografija}%
+ \def\chaptername{Poglavlje}%
+ \def\appendixname{Dodatak}%
+ \def\contentsname{Sadržaj}%
+ \def\listfigurename{Popis slika}%
+ \def\listtablename{Popis tablica}%
+ \def\indexname{Kazalo}%
+ \def\figurename{Slika}%
+ \def\tablename{Tablica}%
+ \def\partname{Dio}%
+ \def\enclname{Prilozi}%
+ \def\ccname{Kopija}%
+ \def\headtoname{Prima}%
+ \def\pagename{Stranica}%
+ \def\seename{Vidjeti}%
+ \def\alsoname{Također vidjeti}%
+ \def\proofname{Dokaz}%
+ \def\glossaryname{Pojmovnik}%
+}
\def\datecroatian{%
- \def\today{\number\day.~\ifcase\month\or
+ \def\today{\number\day.~\ifcase\month\or
siječnja\or veljače\or ožujka\or travnja\or svibnja\or
lipnja\or srpnja\or kolovoza\or rujna\or listopada\or studenoga\or
prosinca\fi \space \number\year.}}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
index 291afeb01cf..b0699f716d1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
@@ -104,7 +104,7 @@
\if@british@locale
\english@day\space\english@month\space\number\year
\else
- \english@month\space\english@day, \number\year
+ \english@month\space\english@day,\space\number\year
\fi}%
}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
index 3dbdd18414c..fdffd36cf9d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
@@ -13,6 +13,8 @@
\newluatexattribute\xpg@frpt %
\directlua{polyglossia.load_frpt()}%
\else
+ \newXeTeXintercharclass\french@openbrackets % ( ] {
+ \newXeTeXintercharclass\french@closebrackets % ( ] {
\newXeTeXintercharclass\french@punctthin % ! ? ; et autres
\newXeTeXintercharclass\french@punctthick % :
\newXeTeXintercharclass\french@punctguillstart % « ‹
@@ -22,6 +24,30 @@
\def\xpg@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi}
\def\xpg@nospace#1{#1}
+\ifx\@makefntext\undefined\else
+ \let\nofrench@makefntext\@makefntext
+ \long\def\french@makefntext#1{\parindent1em \noindent\quad\ifx\@thefnmark\empty\else\@thefnmark.\space\fi #1}
+ \let\@makefntext\french@makefntext
+ \define@boolkey{french}[french@]{frenchfootnote}[true]{%
+ \def\@tmpa{#1}
+ \def\@tmptrue{true}
+ \ifx\@tmpa\@tmptrue
+ \let\@makefntext\french@makefntext
+ \else
+ \let\@makefntext\nofrench@makefntext
+ \fi
+ }
+\fi
+
+
+\newif\iffrench@automaticspacesaroundguillemets
+\define@boolkey{french}[french@]{automaticspacesaroundguillemets}[true]{%
+ %\def\tmp@true{true}%
+ %\def\@tmpa{#1}%
+ %\ifx\@tmpa\tmp@true
+}
+\french@automaticspacesaroundguillemetstrue
+
\def\french@punctuation{%
\lccode"2019="2019
\ifluatex
@@ -41,19 +67,31 @@
\XeTeXcharclass `\» \french@punctguillend
\XeTeXcharclass `\‹ \french@punctguillstart
\XeTeXcharclass `\› \french@punctguillend
+ \XeTeXcharclass `\( \french@openbrackets
+ \XeTeXcharclass `\) \french@closebrackets
+ \XeTeXcharclass `\] \french@openbrackets
+ \XeTeXcharclass `\[ \french@closebrackets
+ \XeTeXcharclass `\{ \french@openbrackets
+ \XeTeXcharclass `\} \french@closebrackets
\XeTeXinterchartoks \z@ \french@punctthin = {\nobreak\thinspace}%
\XeTeXinterchartoks \z@ \french@punctthick = {\nobreakspace}%
- \XeTeXinterchartoks 255 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
- \XeTeXinterchartoks 255 \french@punctthick = {\xpg@unskip\nobreakspace}%
+ \XeTeXinterchartoks \xpg@boundaryclass \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
+ \XeTeXinterchartoks \xpg@boundaryclass \french@punctthick = {\xpg@unskip\nobreakspace}%
\XeTeXinterchartoks \french@punctguillstart \z@ = {\nobreakspace}% "«a" -> "« a"
% \XeTeXinterchartoks \z@ \french@punctguillstart = {\nobreakspace}% "a«" unchanged?
% \XeTeXinterchartoks \french@punctguillend \z@ = {\nobreakspace}% "»a" unchanged?
\XeTeXinterchartoks \z@ \french@punctguillend = {\nobreakspace}% "a»" -> "a »"
- % \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
- % \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
+ \iffrench@automaticspacesaroundguillemets
+ \XeTeXinterchartoks \french@punctguillstart \xpg@boundaryclass = {\nobreakspace\xpg@nospace\relax}% "« " -> "«~"
+ \XeTeXinterchartoks \xpg@boundaryclass \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
+ \fi
\XeTeXinterchartoks \french@punctguillend \french@punctthin = {\nobreak\thinspace}% "»;" -> "» ;"
\XeTeXinterchartoks \french@punctguillend \french@punctthick = {\nobreakspace}% "»:" -> "» :"
\XeTeXinterchartoks \french@punctthin \french@punctguillend = {\nobreakspace}% "?»" -> "? »"
+ \XeTeXinterchartoks \french@openbrackets \french@punctthin = {\xpg@unskip}% "(?" -> "(?" and not "( ?"
+ \XeTeXinterchartoks \french@punctthin \french@closebrackets = {\xpg@unskip}% "?)" -> "?)" (code not need, just for symetry with previous one)
+ \XeTeXinterchartoks \french@closebrackets \french@punctthin = {\nobreak\thinspace}% ")?" -> ") ?"
+ \XeTeXinterchartoks \french@closebrackets \french@punctthick = {\nobreakspace}% "):" -> ") :"
\fi
}
@@ -104,8 +142,8 @@
Douzième\or Treizième\or Quatorzième\or Quinzième\or
Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or
Vingtième\fi\space}%
- \def\thepart{}%
- \def\partname{\protect\@Fpt partie}%
+ \def\thepart{\@Fpt partie}%
+ \def\partname{}%
\def\pagename{page}%
\def\seename{\emph{voir}}%
\def\alsoname{\emph{voir aussi}}%
@@ -154,8 +192,4 @@
\def\mr{M.\space}
\def\mrs{MM.\space}
-\ifx\@makefntext\undefined\else
-\renewcommand\@makefntext[1]{\quad\ifx\@thefnmark\empty\else\@thefnmark.\space\fi #1}
-\fi
-
\endinput
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
index edc3cb21cf6..8cbdeac2157 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
@@ -113,6 +113,8 @@
\declare@shorthand{german}{""}{\hskip\z@skip}%
\declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
\declare@shorthand{german}{"=}{\penalty\@M-\hskip\z@skip}%
+ \declare@shorthand{german}{"/}{\textormath
+ {\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
new file mode 100644
index 00000000000..6c36af9f15e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
@@ -0,0 +1,216 @@
+\ProvidesFile{gloss-japanese.ldf}[polyglossia: module for japanese]
+\PolyglossiaSetup{japanese}{
+ script=CJK,
+ language=Japanese,
+ langtag=JAN,
+ hyphennames={nohyphenation},
+ frenchspacing=false,
+ fontsetup=true
+}
+
+\def\japanese@capsformat{%
+ \def\@seccntformat##1{%
+ \csname pre##1\endcsname%
+ \csname the##1\endcsname%
+ \csname post##1\endcsname%
+ }
+ \def\postsection{節\space}%
+ \def\postsubsection{節\space}%
+ \def\postsubsubsection{節\space}%
+ \def\presection{第}%
+ \def\presubsection{第}%
+ \def\presubsubsection{第}%
+}
+
+\def\captionsjapanese{%
+ \def\refname{参考文献}%
+ \def\abstractname{概要}%
+ \def\bibname{文献目録}%
+ \def\prefacename{端書き}%
+ \def\chaptername##1##2{第##1##2 章}%
+ \def\appendixname{付録}%
+ \def\contentsname{目次}%
+ \def\listfigurename{図目次}%
+ \def\listtablename{表目次}%
+ \def\indexname{索引}%
+ \def\figurename{図}%
+ \def\tablename{表}%
+ \def\partname##1##2{第##1##2 部}%
+ \def\pagename##1##2{第##1##2 頁}%
+ \def\seename{参照}%
+ \def\alsoname{参照}%
+ \def\enclname{添付}%
+ \def\ccname{同報}%
+ \def\headtoname{宛先}%
+ \def\proofname{証明}%
+ \def\glossaryname{用語集}%
+ }
+
+\newif\if@WameiReki \@WameiRekifalse%
+\newif\if@WameiTosi \@WameiTosifalse%
+\newif\if@WameiTuki \@WameiTukifalse%
+\newif\if@WameiHi \@WameiHifalse%
+\newif\if@IzumoTuki \@IzumoTukifalse%
+\newcount\c@TempJNum%
+
+\def\@JapaneseDigit#1{
+ \ifcase#1\or 一\or 二\or 三\or 四\or 五\or
+ 六\or 七\or 八\or 九\or 十\or
+ 十一\or 十二\or 十三\or 十四\or 十五\or
+ 十六\or 十七\or 十八\or 十九\or 廿\or
+ 廿一\or 廿二\or 廿三\or 廿四\or 廿五\or
+ 廿六\or 廿七\or 廿八\or 廿九\or 丗\or
+ 丗一\or 丗二\or 丗三\or 丗四\or 丗五\or
+ 丗六\or 丗七\or 丗八\or 丗九\or 四十\or
+ 四十一\or 四十二\or 四十三\or 四十四\or 四十五\or
+ 四十六\or 四十七\or 四十八\or 四十九\or 五十\or
+ 五十一\or 五十二\or 五十三\or 五十四\or 五十五\or
+ 五十六\or 五十七\or 五十八\or 五十九\or 六十\or
+ 六十一\or 六十二\or 六十三\or 六十四\or 六十五\or
+ 六十六\or 六十七\or 六十八\or 六十九\or 七十\or
+ 七十一\or 七十二\or 七十三\or 七十四\or 七十五\or
+ 七十六\or 七十七\or 七十八\or 七十九\or 八十\or
+ 八十一\or 八十二\or 八十三\or 八十四\or 八十五\or
+ 八十六\or 八十七\or 八十八\or 八十九\or 九十\or
+ 九十一\or 九十二\or 九十三\or 九十四\or 九十五\or
+ 九十六\or 九十七\or 九十八\or 九十九
+ \else
+ \@ctrerr
+ \fi\relax
+}
+
+\def\@JapaneseNum#1{
+ \c@TempJNum=#1\divide\c@TempJNum by 1000\relax%
+ \ifnum\c@TempJNum=\z@\c@TempJNum=#1%
+ \divide\c@TempJNum by 100\relax%
+ \ifnum\c@TempJNum=\z@\@JapaneseDigit{#1}\relax%
+ \else
+ \ifcase\c@TempJNum\or 百\or 二百\or 三百\or 四百\or 五百\or
+ 六百\or 七百\or 八百\or 九百%
+ \fi
+ \c@TempJNum=#1\divide\c@TempJNum by 100\multiply\c@TempJNum by -100\advance\c@TempJNum#1\@JapaneseDigit\c@TempJNum\relax%
+ \fi
+ \else
+ \ifcase\c@TempJNum\or 千\or 二千\or 三千\or 四千\or 五千\or
+ 六千\or 七千\or 八千\or 九千%
+ \fi
+ \c@TempJNum=#1\divide\c@TempJNum by 1000\multiply\c@TempJNum by -1000\advance\c@TempJNum#1\divide\c@TempJNum by 100\relax%
+ \ifnum\c@TempJNum=\z@\c@TempJNum=#1%
+ \divide\c@TempJNum by 100\multiply\c@TempJNum by -100\advance\c@TempJNum#1\@JapaneseDigit\c@TempJNum\relax%
+ \else
+ \ifcase\c@TempJNum\or 百\or 二百\or 三百\or 四百\or 五百\or
+ 六百\or 七百\or 八百\or 九百%
+ \fi
+ \c@TempJNum=#1\divide\c@TempJNum by 100\multiply\c@TempJNum by -100\advance\c@TempJNum#1\@JapaneseDigit\c@TempJNum\relax%
+ \fi
+ \fi
+}
+
+\def\@japanesenumber#1{
+ \@tempcnta=#1%
+ \ifnum\@tempcnta=\z@{〇}%
+ \else
+ \ifnum\@tempcnta<\z@{負}%
+ \multiply\@tempcnta by -1%
+ \fi
+ \@tempcntb=\@tempcnta\divide\@tempcntb by 10000\relax%
+ \ifnum\@tempcntb=\z@\@JapaneseNum%
+ \@tempcnta%
+ \else
+ \@tempcntb=\@tempcnta\divide\@tempcntb by 100000000\relax%
+ \ifnum\@tempcntb=\z@\@tempcntb=\@tempcnta%
+ \divide\@tempcntb by 10000%
+ \@JapaneseNum\@tempcntb{万}\@tempcntb=\@tempcnta%
+ \divide\@tempcntb by 10000\multiply\@tempcntb by -10000%
+ \advance\@tempcntb\@tempcnta\relax\@JapaneseNum\@tempcntb%
+ \else
+ \@JapaneseNum\@tempcntb{億}\@tempcntb=\@tempcnta%
+ \divide\@tempcntb by 100000000\multiply\@tempcntb by -100000000%
+ \advance\@tempcntb\@tempcnta\divide\@tempcntb by 10000\relax%
+ \ifnum\@tempcntb=\z@%
+ \else
+ \@JapaneseNum\@tempcntb{万}%
+ \fi
+ \@tempcntb=\@tempcnta\divide\@tempcntb by 10000%
+ \multiply\@tempcntb by -10000\advance\@tempcntb\@tempcnta%
+ \@JapaneseNum\@tempcntb%
+ \fi
+ \fi
+ \fi
+}
+
+\def\japanesenumber#1{
+ \expandafter\@japanesenumber\csname c@#1\endcsname%
+}
+
+\def\datejapanese{
+ {
+ \ifnum\year<1868%
+ \xdef\the@WarekiCur{}%
+ \else
+ \ifnum\year<1912%
+ \xdef\the@WarekiCur{明治}\advance\year-1867\relax%
+ \else
+ \ifnum\year<1926%
+ \xdef\the@WarekiCur{大正}\advance\year-1911\relax%
+ \else
+ \ifnum\year<1989%
+ \xdef\the@WarekiCur{昭和}\advance\year-1925\relax%
+ \else
+ \xdef\the@WarekiCur{平成}\advance\year-1988\relax%
+ \fi
+ \fi
+ \fi
+ \fi
+ \xdef\the@WameiTosi{\the\year}%
+ }
+ \def\西暦{\@WameiRekifalse \@WameiTukifalse \@WameiHifalse}%
+ \def\和暦{\@WameiRekitrue \@WameiTosifalse \@WameiTukifalse \@WameiHifalse}%
+ \def\和名暦{\@WameiTositrue \@WameiTukitrue \@WameiHitrue}%
+ \def\数字暦{\@WameiTosifalse \@WameiTukifalse \@WameiHifalse}%
+ \def\出雲月{\@IzumoTukitrue}%
+ \def\大和月{\@IzumoTukifalse}%
+ \def\today{
+ \if@WameiReki%
+ \the@WarekiCur%
+ \if@WameiTosi%
+ \@JapaneseNum\the@WameiTosi%
+ \else
+ \,\the@WameiTosi%
+ \fi
+ \else
+ \number\year\,%
+ \fi
+ {年}%
+ \if@WameiTuki%
+ \ifcase\month\or 睦月\or 如月\or 弥生\or 卯月\or 皐月\or
+ 水無月\or 文月\or 葉月\or 長月\or
+ \if@IzumoTuki 神在月\else 神無月\fi
+ \or 霜月\or 師走%
+ \fi
+ \else
+ \,\number\month\,%
+ {月}%
+ \fi
+ \if@WameiHi%
+ \@JapaneseNum\day%
+ \else
+ \,\number\day\,%
+ \fi
+ {日}
+ }
+}
+
+\def\noextras@japanese{%
+ \japanese@capsformat%
+}
+
+\def\blockextras@japanese{%
+ \japanese@capsformat%
+}
+
+\def\inlineextras@japanese{%
+ \japanese@capsformat%
+}
+% Based on contributions of Toru Inagaki, Norio Iwase, François Charette
+
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
index 6efc21a154c..13a4807c5d4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
@@ -123,7 +123,7 @@
\XeTeXinterchartokenstate\@ne
\XeTeXlinebreakpenalty 50
\fi
- \XeTeXlinebreakskip 0pt plus.1em minus .01em
+ \XeTeXlinebreakskip 0pt plus.05em minus .01em
\XeTeXlinebreaklocale "ko"
}
\def\noextras@korean{%
@@ -186,9 +186,16 @@
\protected\def\으{\xpg@make@josa \empty 으}
\protected\def\로{\으 로}
\protected\def\라{\xpg@make@josa 라{이라}}
+\def\xpg@make@josa@II{\xpg@make@josa\relax 이}
\def\xpg@make@josa@I{%
- \ifx\@let@token 라%
- \expandafter\xpg@make@josa\expandafter\relax\expandafter 이%
+ \ifcat\@let@token\xpg@catcode@letter
+ \expandafter\expandafter\expandafter\count@\expandafter
+ \xpg@letter@to@num\meaning\@let@token\relax
+ \ifnum 0\ifnum\count@>"ABFF \ifnum\count@<"D7A4 1\fi\fi>\z@
+ \expandafter\expandafter\expandafter\xpg@make@josa@II
+ \else
+ \expandafter\expandafter\expandafter\가
+ \fi
\else
\expandafter\가
\fi
@@ -277,8 +284,13 @@
% user macro to force zero skip
\let\inhibitglue\relax
% initialize interchartoks and classes
-\let\XeTeXcharclassIgnore \@cclvi
-\let\XeTeXcharclassBoundary\@cclv
+\ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
+ \let\XeTeXcharclassIgnore \@cclvi
+ \let\XeTeXcharclassBoundary\@cclv
+\else
+ \chardef\XeTeXcharclassIgnore =4096
+ \chardef\XeTeXcharclassBoundary=4095
+\fi
\ifdefined\XeTeXcharclassID\else
\ifdefined\xtxHanGlue
\let\XeTeXcharclassID\@ne
@@ -288,6 +300,7 @@
\newXeTeXintercharclass\XeTeXcharclassID
\newXeTeXintercharclass\XeTeXcharclassOP
\newXeTeXintercharclass\XeTeXcharclassCL
+ \global\let\XeTeXcharclassCJ\XeTeXcharclassID
\global\let\XeTeXcharclassEX\XeTeXcharclassCL
\global\let\XeTeXcharclassIS\XeTeXcharclassCL
\global\let\XeTeXcharclassNS\XeTeXcharclassCL
@@ -364,10 +377,10 @@
\advance\count@\@ne
\repeat
%
- \XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassID{\XPGKOstartID}%
- \XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassOP{\XPGKOstopAA\XPGKOstartOP}%
+ \XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassID{\XPGKOstopAA\XPGKOlatincjk\XPGKOstartID}%
+ \XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassOP{\XPGKOstopAA\XPGKOhalfhalf\XPGKOstartOP}%
\XeTeXinterchartoks\XPGKOcharclassAA\XeTeXcharclassCL{\XPGKOstopAA\XPGKOstartCL}%
- \XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassMD{\XPGKOstopAA\XPGKOstartMD}%
+ \XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassMD{\XPGKOstopAA\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
\XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassFS{\XPGKOstopAA\XPGKOstartFS}%
\XeTeXinterchartoks\XPGKOcharclassAA\XPGKOcharclassAA{\XPGKOstartAA}%
%
@@ -377,7 +390,7 @@
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassMD{\XPGKOstopID\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassFS{\XPGKOstopID\XPGKOstartFS}%
\XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassAO{\XPGKOstopID\XPGKOlatincjk}%
- \XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassAA{\XPGKOstartAA}%
+ \XeTeXinterchartoks\XeTeXcharclassID\XPGKOcharclassAA{\XPGKOstopID\XPGKOlatincjk\XPGKOstartAA}%
%
\XeTeXinterchartoks\XeTeXcharclassOP\XeTeXcharclassID{\XPGKOstopOP\XPGKOstartID}%
\XeTeXinterchartoks\XeTeXcharclassOP\XeTeXcharclassOP{\XPGKOstopOP\XPGKOstartOP}%
@@ -395,7 +408,7 @@
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassEX{\XPGKOstopCL\XPGKOnobreak\XPGKOhalfhalf}%
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAO{\XPGKOstopCL\XPGKOhalfhalf}%
\XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAC{\XPGKOstopCL\XPGKOnobreak\XPGKOhalfhalf}%
- \XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAA{\XPGKOstopCL\XPGKOstartAA}%
+ \XeTeXinterchartoks\XeTeXcharclassCL\XPGKOcharclassAA{\XPGKOstopCL\XPGKOhalfhalf\XPGKOstartAA}%
%
\XeTeXinterchartoks\XPGKOcharclassMD\XeTeXcharclassID{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartID}%
\XeTeXinterchartoks\XPGKOcharclassMD\XeTeXcharclassOP{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartOP}%
@@ -406,7 +419,7 @@
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassEX{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter}%
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAO{\XPGKOstopMD\XPGKOquarterquarter}%
\XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAC{\XPGKOstopMD\XPGKOnobreak\XPGKOquarterquarter}%
- \XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAA{\XPGKOstopMD\XPGKOstartAA}%
+ \XeTeXinterchartoks\XPGKOcharclassMD\XPGKOcharclassAA{\XPGKOstopMD\XPGKOquarterquarter\XPGKOstartAA}%
%
\XeTeXinterchartoks\XPGKOcharclassFS\XeTeXcharclassID{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartID}%
\XeTeXinterchartoks\XPGKOcharclassFS\XeTeXcharclassOP{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartOP}%
@@ -417,7 +430,7 @@
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassEX{\XPGKOstopFS\XPGKOnobreak\XPGKOhalfzero}%
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAO{\XPGKOstopFS\XPGKOhalfzero}%
\XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAC{\XPGKOstopFS\XPGKOnobreak\XPGKOhalfzero}%
- \XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAA{\XPGKOstopFS\XPGKOstartAA}%
+ \XeTeXinterchartoks\XPGKOcharclassFS\XPGKOcharclassAA{\XPGKOstopFS\XPGKOhalfzero\XPGKOstartAA}%
%
\XeTeXinterchartoks\XPGKOcharclassLD\XeTeXcharclassOP{\XPGKOhalfhalf\XPGKOstartOP}%
\XeTeXinterchartoks\XPGKOcharclassLD\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
@@ -427,6 +440,7 @@
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAO{\XPGKOhalfhalf}%
\XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAC{\XPGKOnobreak\XPGKOhalfhalf}%
+ \XeTeXinterchartoks\XPGKOcharclassEX\XPGKOcharclassAA{\XPGKOhalfhalf\XPGKOstartAA}%
%
\XeTeXinterchartoks\XPGKOcharclassAO\XeTeXcharclassOP{\XPGKOnobreak\XPGKOhalfhalf\XPGKOstartOP}%
\XeTeXinterchartoks\XPGKOcharclassAO\XPGKOcharclassMD{\XPGKOnobreak\XPGKOquarterquarter\XPGKOstartMD}%
@@ -480,63 +494,66 @@
\@tmpa "FE13=\XeTeXcharclassID % ︓ PRESENTATION FORM FOR VERTICAL COLON
\@tmpa "FE14=\XeTeXcharclassID % ︔ PRESENTATION FORM FOR VERTICAL SEMICOLON
% CJ
-\@tmpa "3041=\XeTeXcharclassID
-\@tmpa "3043=\XeTeXcharclassID
-\@tmpa "3045=\XeTeXcharclassID
-\@tmpa "3047=\XeTeXcharclassID
-\@tmpa "3049=\XeTeXcharclassID
-\@tmpa "3063=\XeTeXcharclassID
-\@tmpa "3083=\XeTeXcharclassID
-\@tmpa "3085=\XeTeXcharclassID
-\@tmpa "3087=\XeTeXcharclassID
-\@tmpa "308E=\XeTeXcharclassID
-\@tmpa "3095=\XeTeXcharclassID
-\@tmpa "3096=\XeTeXcharclassID
-\@tmpa "30A1=\XeTeXcharclassID
-\@tmpa "30A3=\XeTeXcharclassID
-\@tmpa "30A5=\XeTeXcharclassID
-\@tmpa "30A7=\XeTeXcharclassID
-\@tmpa "30A9=\XeTeXcharclassID
-\@tmpa "30C3=\XeTeXcharclassID
-\@tmpa "30E3=\XeTeXcharclassID
-\@tmpa "30E5=\XeTeXcharclassID
-\@tmpa "30E7=\XeTeXcharclassID
-\@tmpa "30EE=\XeTeXcharclassID
-\@tmpa "30F5=\XeTeXcharclassID
-\@tmpa "30F6=\XeTeXcharclassID
-\@tmpa "30FC=\XeTeXcharclassID
-\count@"31F0 \loop
- \expandafter\@tmpa\the\count@=\XeTeXcharclassID
- \ifnum\count@<"31FF
- \advance\count@\@ne
- \repeat
-\count@"FF67 \loop
- \expandafter\@tmpa\the\count@=\XeTeXcharclassID
- \ifnum\count@<"FF70
- \advance\count@\@ne
- \repeat
+\ifnum\the\XeTeXcharclass"3041=\XeTeXcharclassID \else
+ \@tmpa "3041=\XeTeXcharclassID % ぁ HIRAGANA LETTER SMALL A
+ \@tmpa "3043=\XeTeXcharclassID % ぃ HIRAGANA LETTER SMALL I
+ \@tmpa "3045=\XeTeXcharclassID % ぅ HIRAGANA LETTER SMALL U
+ \@tmpa "3047=\XeTeXcharclassID % ぇ HIRAGANA LETTER SMALL E
+ \@tmpa "3049=\XeTeXcharclassID % ぉ HIRAGANA LETTER SMALL O
+ \@tmpa "3063=\XeTeXcharclassID % っ HIRAGANA LETTER SMALL TU
+ \@tmpa "3083=\XeTeXcharclassID % ゃ HIRAGANA LETTER SMALL YA
+ \@tmpa "3085=\XeTeXcharclassID % ゅ HIRAGANA LETTER SMALL YU
+ \@tmpa "3087=\XeTeXcharclassID % ょ HIRAGANA LETTER SMALL YO
+ \@tmpa "308E=\XeTeXcharclassID % ゎ HIRAGANA LETTER SMALL WA
+ \@tmpa "3095=\XeTeXcharclassID % ゕ HIRAGANA LETTER SMALL KA
+ \@tmpa "3096=\XeTeXcharclassID % ゖ HIRAGANA LETTER SMALL KE
+ \@tmpa "30A1=\XeTeXcharclassID % ァ KATAKANA LETTER SMALL A
+ \@tmpa "30A3=\XeTeXcharclassID % ィ KATAKANA LETTER SMALL I
+ \@tmpa "30A5=\XeTeXcharclassID % ゥ KATAKANA LETTER SMALL U
+ \@tmpa "30A7=\XeTeXcharclassID % ェ KATAKANA LETTER SMALL E
+ \@tmpa "30A9=\XeTeXcharclassID % ォ KATAKANA LETTER SMALL O
+ \@tmpa "30C3=\XeTeXcharclassID % ッ KATAKANA LETTER SMALL TU
+ \@tmpa "30E3=\XeTeXcharclassID % ャ KATAKANA LETTER SMALL YA
+ \@tmpa "30E5=\XeTeXcharclassID % ュ KATAKANA LETTER SMALL YU
+ \@tmpa "30E7=\XeTeXcharclassID % ョ KATAKANA LETTER SMALL YO
+ \@tmpa "30EE=\XeTeXcharclassID % ヮ KATAKANA LETTER SMALL WA
+ \@tmpa "30F5=\XeTeXcharclassID % ヵ KATAKANA LETTER SMALL KA
+ \@tmpa "30F6=\XeTeXcharclassID % ヶ KATAKANA LETTER SMALL KE
+ \@tmpa "30FC=\XeTeXcharclassID % ー KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ \count@"31F0 \loop
+ \expandafter\@tmpa\the\count@=\XeTeXcharclassID
+ \ifnum\count@<"31FF
+ \advance\count@\@ne
+ \repeat
+ \count@"FF67 \loop
+ \expandafter\@tmpa\the\count@=\XeTeXcharclassID
+ \ifnum\count@<"FF70
+ \advance\count@\@ne
+ \repeat
+\fi
%
-\@tmpa "28=\XPGKOcharclassAO % (
-\@tmpa "5B=\XPGKOcharclassAO % [
-\@tmpa "60=\XPGKOcharclassAO % `
-\@tmpa "7B=\XPGKOcharclassAO % {
+\@tmpa "28=\XPGKOcharclassAO % ( LEFT PARENTHESIS
+\@tmpa "5B=\XPGKOcharclassAO % [ LEFT SQUARE BRACKET
+\@tmpa "60=\XPGKOcharclassAO % ` GRAVE ACCENT
+\@tmpa "7B=\XPGKOcharclassAO % { LEFT CURLY BRACKET
+\@tmpa "AB=\XPGKOcharclassAO % « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
%
-\@tmpa "21=\XPGKOcharclassAC % !
-\@tmpa "27=\XPGKOcharclassAC % '
-\@tmpa "29=\XPGKOcharclassAC % )
-\@tmpa "2C=\XPGKOcharclassAC % ,
-\@tmpa "2E=\XPGKOcharclassAC % .
-\@tmpa "3B=\XPGKOcharclassAC % ;
-\@tmpa "3F=\XPGKOcharclassAC % ?
-\@tmpa "5D=\XPGKOcharclassAC % ]
-\@tmpa "7D=\XPGKOcharclassAC % }
+\@tmpa "21=\XPGKOcharclassAC % ! EXCLAMATION MARK
+\@tmpa "27=\XPGKOcharclassAC % ' APOSTROPHE
+\@tmpa "29=\XPGKOcharclassAC % ) RIGHT PARENTHESIS
+\@tmpa "2C=\XPGKOcharclassAC % , COMMA
+\@tmpa "2E=\XPGKOcharclassAC % . FULL STOP
+\@tmpa "3B=\XPGKOcharclassAC % ; SEMICOLON
+\@tmpa "3F=\XPGKOcharclassAC % ? QUESTION MARK
+\@tmpa "5D=\XPGKOcharclassAC % ] RIGHT SQUARE BRACKET
+\@tmpa "7D=\XPGKOcharclassAC % } RIGHT CURLY BRACKET
+\@tmpa "BB=\XPGKOcharclassAC % » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
%
\@tmpa "2018=\XeTeXcharclassOP % ‘ LEFT SINGLE QUOTATION MARK
\@tmpa "201C=\XeTeXcharclassOP % “ LEFT DOUBLE QUOTATION MARK
%
\@tmpa "2019=\XeTeXcharclassCL % ’ RIGHT SINGLE QUOTATION MARK
\@tmpa "201D=\XeTeXcharclassCL % ” RIGHT DOUBLE QUOTATION MARK
-\@tmpa "FE10=\XeTeXcharclassCL % ︐ PRESENTATION FORM FOR VERTICAL COMMA
% NS
\@tmpa "00B7=\XPGKOcharclassMD % · MIDDLE DOT
\@tmpa "30FB=\XPGKOcharclassMD % ・ KATAKANA MIDDLE DOT
@@ -593,76 +610,208 @@
local glyph_id = node.id("glyph")
local hbox_id = node.id("hlist")
local vbox_id = node.id("vlist")
+local glue_id = node.id("glue")
+local penalty_id = node.id("penalty")
+local disc_id = node.id("disc")
local attr_korean = luatexbase.attributes["xpg@attr@korean"]
local attr_josa = luatexbase.attributes["xpg@attr@autojosa"]
local nobr_after = {
- [0x28] = 1, [0x2D] = 1, [0x2F] = 1, [0x3C] = 1, [0x5B] = 1,
- [0x5C] = 1, [0x60] = 1, [0x7B] = 1, [0x7E] = 1, [0x2013] = 1,
- [0x2018] = 1, [0x201C] = 1, [0x2329] = 1, [0x3008] = 1,
- [0x300A] = 1, [0x300C] = 1, [0x300E] = 1, [0x3010] = 1,
- [0x3014] = 1, [0x3016] = 1, [0x3018] = 1, [0x301A] = 1,
- [0x301D] = 1, [0xFF08] = 1, [0xFF1C] = 1, [0xFF3B] = 1,
- [0xFF5B] = 1, [0xFF5F] = 1, [0xFF62] = 1,
+ [0x28] = 1, % ( LEFT PARENTHESIS
+ [0x3C] = 1, % < LESS-THAN SIGN
+ [0x5B] = 1, % [ LEFT SQUARE BRACKET
+ [0x60] = 1, % ` GRAVE ACCENT
+ [0x7B] = 1, % { LEFT CURLY BRACKET
+ [0xAB] = 1, % « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ [0x2018] = 1, % ‘ LEFT SINGLE QUOTATION MARK
+ [0x201C] = 1, % “ LEFT DOUBLE QUOTATION MARK
+ [0x2329] = 1, % 〈 LEFT-POINTING ANGLE BRACKET
+ [0x3008] = 1, % 〈 LEFT ANGLE BRACKET
+ [0x300A] = 1, % 《 LEFT DOUBLE ANGLE BRACKET
+ [0x300C] = 1, % 「 LEFT CORNER BRACKET
+ [0x300E] = 1, % 『 LEFT WHITE CORNER BRACKET
+ [0x3010] = 1, % 【 LEFT BLACK LENTICULAR BRACKET
+ [0x3014] = 1, % 〔 LEFT TORTOISE SHELL BRACKET
+ [0x3016] = 1, % 〖 LEFT WHITE LENTICULAR BRACKET
+ [0x3018] = 1, % 〘 LEFT WHITE TORTOISE SHELL BRACKET
+ [0x301A] = 1, % 〚 LEFT WHITE SQUARE BRACKET
+ [0x301D] = 1, % 〝 REVERSED DOUBLE PRIME QUOTATION MARK
+ [0xFE17] = 1, % ︗ PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+ [0xFE35] = 1, % ︵ PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+ [0xFE37] = 1, % ︷ PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+ [0xFE39] = 1, % ︹ PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+ [0xFE3B] = 1, % ︻ PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+ [0xFE3D] = 1, % ︽ PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+ [0xFE3F] = 1, % ︿ PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+ [0xFE41] = 1, % ﹁ PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+ [0xFE43] = 1, % ﹃ PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+ [0xFE47] = 1, % ﹇ PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+ [0xFE59] = 1, % ﹙ SMALL LEFT PARENTHESIS
+ [0xFE5B] = 1, % ﹛ SMALL LEFT CURLY BRACKET
+ [0xFE5D] = 1, % ﹝ SMALL LEFT TORTOISE SHELL BRACKET
+ [0xFF08] = 1, % ( FULLWIDTH LEFT PARENTHESIS
+ [0xFF3B] = 1, % [ FULLWIDTH LEFT SQUARE BRACKET
+ [0xFF5B] = 1, % { FULLWIDTH LEFT CURLY BRACKET
+ [0xFF5F] = 1, % ⦅ FULLWIDTH LEFT WHITE PARENTHESIS
+ [0xFF62] = 1, % 「 HALFWIDTH LEFT CORNER BRACKET
}
-local nobr_before = {
- [0x21] = 1, [0x22] = 1, [0x27] = 1, [0x29] = 1, [0x2C] = 1,
- [0x2D] = 1, [0x2E] = 1, [0x2F] = 1, [0x3A] = 1, [0x3B] = 1,
- [0x3E] = 1, [0x3F] = 1, [0x5C] = 1, [0x5D] = 1, [0x7D] = 1,
- [0x7E] = 1, [0xB7] = 1, [0x2013] = 1, [0x2014] = 1, [0x2015] = 1,
- [0x2019] = 1, [0x201D] = 1, [0x2025] = 1, [0x2026] = 1,
- [0x232A] = 1, [0x3001] = 1, [0x3002] = 1, [0x3005] = 1,
- [0x3009] = 1, [0x300B] = 1, [0x300D] = 1, [0x300F] = 1,
- [0x3011] = 1, [0x3015] = 1, [0x3017] = 1, [0x3019] = 1,
- [0x301B] = 1, [0x301C] = 1, [0x301E] = 1, [0x301F] = 1,
- [0x3035] = 1, [0x303B] = 1, [0x303C] = 1, [0x3041] = 2,
- [0x3043] = 2, [0x3045] = 2, [0x3047] = 2, [0x3049] = 2,
- [0x3063] = 2, [0x3083] = 2, [0x3085] = 2, [0x3087] = 2,
- [0x308E] = 2, [0x3095] = 2, [0x3096] = 2, [0x3099] = 1,
- [0x309A] = 1, [0x309B] = 1, [0x309C] = 1, [0x309D] = 1,
- [0x309E] = 1, [0x30A0] = 1, [0x30A1] = 2, [0x30A3] = 2,
- [0x30A5] = 2, [0x30A7] = 2, [0x30A9] = 2, [0x30C3] = 2,
- [0x30E3] = 2, [0x30E5] = 2, [0x30E7] = 2, [0x30EE] = 2,
- [0x30F5] = 2, [0x30F6] = 2, [0x30FB] = 1, [0x30FC] = 1,
- [0x30FD] = 1, [0x30FE] = 1, [0x31F0] = 2, [0x31F1] = 2,
- [0x31F2] = 2, [0x31F3] = 2, [0x31F4] = 2, [0x31F5] = 2,
- [0x31F6] = 2, [0x31F7] = 2, [0x31F8] = 2, [0x31F9] = 2,
- [0x31FA] = 2, [0x31FB] = 1, [0x31FC] = 1, [0x31FD] = 1,
- [0x31FE] = 1, [0x31FF] = 1, [0xFF01] = 1, [0xFF09] = 1,
- [0xFF0C] = 1, [0xFF0E] = 1, [0xFF1A] = 1, [0xFF1B] = 1,
- [0xFF1F] = 1, [0xFF3D] = 1, [0xFF5D] = 1, [0xFF60] = 1,
- [0xFF61] = 1, [0xFF63] = 1, [0xFF64] = 1, [0xFF65] = 1,
- [0xFF9E] = 1, [0xFF9F] = 1,
-}
-for i=0x1160, 0x11FF do nobr_before[i] = 2 end
-for i=0xD7B0, 0xD7FB do nobr_before[i] = 2 end
-for i=0x302A, 0x302F do nobr_before[i] = 1 end
+local nobr_before = setmetatable({
+ [0x21] = 1, % ! EXCLAMATION MARK
+ [0x22] = 1, % " QUOTATION MARK
+ [0x27] = 1, % ' APOSTROPHE
+ [0x29] = 1, % ) RIGHT PARENTHESIS
+ [0x2C] = 1, % , COMMA
+ [0x2D] = 0, % - HYPHEN-MINUS
+ [0x2E] = 1, % . FULL STOP
+ [0x2F] = 0, % / SOLIDUS
+ [0x3A] = 0, % : COLON
+ [0x3B] = 1, % ; SEMICOLON
+ [0x3E] = 1, % > GREATER-THAN SIGN
+ [0x3F] = 1, % ? QUESTION MARK
+ [0x5C] = 0, % \ REVERSE SOLIDUS
+ [0x5D] = 1, % ] RIGHT SQUARE BRACKET
+ [0x7D] = 1, % } RIGHT CURLY BRACKET
+ [0x7E] = 0, % ~ TILDE
+ [0xB7] = 1, % · MIDDLE DOT
+ [0xBB] = 1, % » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ [0x2013] = 0, % – EN DASH
+ [0x2014] = 0, % — EM DASH
+ [0x2015] = 1, % ― HORIZONTAL BAR
+ [0x2019] = 1, % ’ RIGHT SINGLE QUOTATION MARK
+ [0x201D] = 1, % ” RIGHT DOUBLE QUOTATION MARK
+ [0x2025] = 1, % ‥ TWO DOT LEADER
+ [0x2026] = 1, % … HORIZONTAL ELLIPSIS
+ [0x232A] = 1, % 〉 RIGHT-POINTING ANGLE BRACKET
+ [0x3001] = 1, % 、 IDEOGRAPHIC COMMA
+ [0x3002] = 1, % 。 IDEOGRAPHIC FULL STOP
+ [0x3005] = 1, % 々 IDEOGRAPHIC ITERATION MARK
+ [0x3009] = 1, % 〉 RIGHT ANGLE BRACKET
+ [0x300B] = 1, % 》 RIGHT DOUBLE ANGLE BRACKET
+ [0x300D] = 1, % 」 RIGHT CORNER BRACKET
+ [0x300F] = 1, % 』 RIGHT WHITE CORNER BRACKET
+ [0x3011] = 1, % 】 RIGHT BLACK LENTICULAR BRACKET
+ [0x3015] = 1, % 〕 RIGHT TORTOISE SHELL BRACKET
+ [0x3017] = 1, % 〗 RIGHT WHITE LENTICULAR BRACKET
+ [0x3019] = 1, % 〙 RIGHT WHITE TORTOISE SHELL BRACKET
+ [0x301B] = 1, % 〛 RIGHT WHITE SQUARE BRACKET
+ [0x301C] = 1, % 〜 WAVE DASH
+ [0x301E] = 1, % 〞 DOUBLE PRIME QUOTATION MARK
+ [0x301F] = 1, % 〟 LOW DOUBLE PRIME QUOTATION MARK
+ [0x3035] = 1, % 〵 VERTICAL KANA REPEAT MARK LOWER HALF
+ [0x303B] = 1, % 〻 VERTICAL IDEOGRAPHIC ITERATION MARK
+ [0x303C] = 1, % 〼 MASU MARK
+ [0x3041] = 3, % ぁ HIRAGANA LETTER SMALL A
+ [0x3043] = 3, % ぃ HIRAGANA LETTER SMALL I
+ [0x3045] = 3, % ぅ HIRAGANA LETTER SMALL U
+ [0x3047] = 3, % ぇ HIRAGANA LETTER SMALL E
+ [0x3049] = 3, % ぉ HIRAGANA LETTER SMALL O
+ [0x3063] = 3, % っ HIRAGANA LETTER SMALL TU
+ [0x3083] = 3, % ゃ HIRAGANA LETTER SMALL YA
+ [0x3085] = 3, % ゅ HIRAGANA LETTER SMALL YU
+ [0x3087] = 3, % ょ HIRAGANA LETTER SMALL YO
+ [0x308E] = 3, % ゎ HIRAGANA LETTER SMALL WA
+ [0x3095] = 3, % ゕ HIRAGANA LETTER SMALL KA
+ [0x3096] = 3, % ゖ HIRAGANA LETTER SMALL KE
+ [0x3099] = 1, % COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+ [0x309A] = 1, % COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ [0x309B] = 1, % ゛ KATAKANA-HIRAGANA VOICED SOUND MARK
+ [0x309C] = 1, % ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ [0x309D] = 1, % ゝ HIRAGANA ITERATION MARK
+ [0x309E] = 1, % ゞ HIRAGANA VOICED ITERATION MARK
+ [0x30A0] = 1, % ゠ KATAKANA-HIRAGANA DOUBLE HYPHEN
+ [0x30A1] = 3, % ァ KATAKANA LETTER SMALL A
+ [0x30A3] = 3, % ィ KATAKANA LETTER SMALL I
+ [0x30A5] = 3, % ゥ KATAKANA LETTER SMALL U
+ [0x30A7] = 3, % ェ KATAKANA LETTER SMALL E
+ [0x30A9] = 3, % ォ KATAKANA LETTER SMALL O
+ [0x30C3] = 3, % ッ KATAKANA LETTER SMALL TU
+ [0x30E3] = 3, % ャ KATAKANA LETTER SMALL YA
+ [0x30E5] = 3, % ュ KATAKANA LETTER SMALL YU
+ [0x30E7] = 3, % ョ KATAKANA LETTER SMALL YO
+ [0x30EE] = 3, % ヮ KATAKANA LETTER SMALL WA
+ [0x30F5] = 3, % ヵ KATAKANA LETTER SMALL KA
+ [0x30F6] = 3, % ヶ KATAKANA LETTER SMALL KE
+ [0x30FB] = 1, % ・ KATAKANA MIDDLE DOT
+ [0x30FC] = 1, % ー KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ [0x30FD] = 1, % ヽ KATAKANA ITERATION MARK
+ [0x30FE] = 1, % ヾ KATAKANA VOICED ITERATION MARK
+ [0xFE30] = 1, % ︰ PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+ [0xFE31] = 1, % ︱ PRESENTATION FORM FOR VERTICAL EM DASH
+ [0xFE32] = 1, % ︲ PRESENTATION FORM FOR VERTICAL EN DASH
+ [0xFE36] = 1, % ︶ PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+ [0xFE38] = 1, % ︸ PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+ [0xFE3A] = 1, % ︺ PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+ [0xFE3C] = 1, % ︼ PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+ [0xFE3E] = 1, % ︾ PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+ [0xFE40] = 1, % ﹀ PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+ [0xFE42] = 1, % ﹂ PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+ [0xFE44] = 1, % ﹄ PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+ [0xFE48] = 1, % ﹈ PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+ [0xFE5A] = 1, % ﹚ SMALL RIGHT PARENTHESIS
+ [0xFE5C] = 1, % ﹜ SMALL RIGHT CURLY BRACKET
+ [0xFE5E] = 1, % ﹞ SMALL RIGHT TORTOISE SHELL BRACKET
+ [0xFF01] = 1, % ! FULLWIDTH EXCLAMATION MARK
+ [0xFF09] = 1, % ) FULLWIDTH RIGHT PARENTHESIS
+ [0xFF0C] = 1, % , FULLWIDTH COMMA
+ [0xFF0E] = 1, % . FULLWIDTH FULL STOP
+ [0xFF1A] = 1, % : FULLWIDTH COLON
+ [0xFF1B] = 1, % ; FULLWIDTH SEMICOLON
+ [0xFF1F] = 1, % ? FULLWIDTH QUESTION MARK
+ [0xFF3D] = 1, % ] FULLWIDTH RIGHT SQUARE BRACKET
+ [0xFF5D] = 1, % } FULLWIDTH RIGHT CURLY BRACKET
+ [0xFF60] = 1, % ⦆ FULLWIDTH RIGHT WHITE PARENTHESIS
+ [0xFF61] = 1, % 。 HALFWIDTH IDEOGRAPHIC FULL STOP
+ [0xFF63] = 1, % 」 HALFWIDTH RIGHT CORNER BRACKET
+ [0xFF64] = 1, % 、 HALFWIDTH IDEOGRAPHIC COMMA
+ [0xFF65] = 1, % ・ HALFWIDTH KATAKANA MIDDLE DOT
+ [0xFF9E] = 1, % ゙ HALFWIDTH KATAKANA VOICED SOUND MARK
+ [0xFF9F] = 1, % ゚ HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+}, { __index = function(_,c)
+ if c >= 0x1160 and c <= 0x11FF then return 2 end
+ if c >= 0xD7B0 and c <= 0xD7FF then return 2 end
+ if c >= 0x302A and c <= 0x302F then return 1 end
+ if c >= 0x31F0 and c <= 0x31FF then return 3 end
+ if c >= 0xFF67 and c <= 0xFF70 then return 3 end
+ if c >= 0xFE00 and c <= 0xFE0F then return 1 end
+ if c >= 0xFE10 and c <= 0xFE19 and not (c == 0xFE17) then return 1 end
+ if c >= 0xFE50 and c <= 0xFE58 then return 1 end
+ if c >= 0xE0100 and c <= 0xE01EF then return 1 end
+ end
+})
local function is_cjk (c)
- return (c >= 0xAC00 and c <= 0xD7A3)
- or (c >= 0x1100 and c <= 0x115F)
- or (c >= 0xA960 and c <= 0xA97C)
- or (c >= 0x3400 and c <= 0x9FFF)
+ return (c >= 0xAC00 and c <= 0xD7FF)
+ or (c >= 0x1100 and c <= 0x11FF)
+ or (c >= 0xA960 and c <= 0xA97F)
+ or (c >= 0x2E80 and c <= 0x9FFF)
or (c >= 0xF900 and c <= 0xFAFF)
- or (c >= 0x2E80 and c <= 0x2FFF)
- or (c >= 0x3040 and c <= 0x30FF)
- or (c >= 0x20000 and c <= 0x2CEAF)
- or (c >= 0x2F800 and c <= 0x2FA1F)
- or (nobr_after[c] and c > 0xFF)
- or (nobr_before[c] and c > 0xFF)
+ or (c >= 0xFE10 and c <= 0xFE1F)
+ or (c >= 0xFE30 and c <= 0xFE6F)
+ or (c >= 0xFF00 and c <= 0xFFEF)
+ or (c >= 0x1F100 and c <= 0x1F2FF)
+ or (c >= 0x20000 and c <= 0x2FA1F)
+ or (nobr_after[c] and c > 0x2014)
+ or (nobr_before[c] and c > 0x2014)
end
local charclass = setmetatable({
[0x2018] = 1, [0x201C] = 1, [0x2329] = 1, [0x3008] = 1,
[0x300A] = 1, [0x300C] = 1, [0x300E] = 1, [0x3010] = 1,
[0x3014] = 1, [0x3016] = 1, [0x3018] = 1, [0x301A] = 1,
- [0x301D] = 1, [0xFF08] = 1, [0xFF3B] = 1, [0xFF5B] = 1,
- [0xFF5F] = 1, [0xFF62] = 1, [0x2019] = 2, [0x201D] = 2,
- [0x232A] = 2, [0x3001] = 2, [0x3009] = 2, [0x300B] = 2,
- [0x300D] = 2, [0x300F] = 2, [0x3011] = 2, [0x3015] = 2,
- [0x3017] = 2, [0x3019] = 2, [0x301B] = 2, [0x301E] = 2,
- [0x301F] = 2, [0xFF09] = 2, [0xFF0C] = 2, [0xFF3D] = 2,
- [0xFF5D] = 2, [0xFF60] = 2, [0xFF63] = 2, [0xFF64] = 2,
- [0x00B7] = 3, [0x30FB] = 3, [0xFF1A] = 3, [0xFF1B] = 3,
- [0xFF65] = 3, [0x3002] = 4, [0xFF0E] = 4, [0xFF61] = 4,
- [0x2015] = 5, [0x2025] = 5, [0x2026] = 5, [0xFF01] = 6,
+ [0x301D] = 1, [0xFE17] = 1, [0xFE35] = 1, [0xFE37] = 1,
+ [0xFE39] = 1, [0xFE3B] = 1, [0xFE3D] = 1, [0xFE3F] = 1,
+ [0xFE41] = 1, [0xFE43] = 1, [0xFE47] = 1, [0xFF08] = 1,
+ [0xFF3B] = 1, [0xFF5B] = 1, [0xFF5F] = 1, [0xFF62] = 1,
+ [0x2019] = 2, [0x201D] = 2, [0x232A] = 2, [0x3001] = 2,
+ [0x3009] = 2, [0x300B] = 2, [0x300D] = 2, [0x300F] = 2,
+ [0x3011] = 2, [0x3015] = 2, [0x3017] = 2, [0x3019] = 2,
+ [0x301B] = 2, [0x301E] = 2, [0x301F] = 2, [0xFE10] = 2,
+ [0xFE11] = 2, [0xFE18] = 2, [0xFE36] = 2, [0xFE38] = 2,
+ [0xFE3A] = 2, [0xFE3C] = 2, [0xFE3E] = 2, [0xFE40] = 2,
+ [0xFE42] = 2, [0xFE44] = 2, [0xFE48] = 2, [0xFF09] = 2,
+ [0xFF0C] = 2, [0xFF3D] = 2, [0xFF5D] = 2, [0xFF60] = 2,
+ [0xFF63] = 2, [0xFF64] = 2, [0x00B7] = 3, [0x30FB] = 3,
+ [0xFF1A] = 3, [0xFF1B] = 3, [0xFF65] = 3, [0x3002] = 4,
+ [0xFE12] = 4, [0xFF0E] = 4, [0xFF61] = 4, [0x2015] = 5,
+ [0x2025] = 5, [0x2026] = 5, [0xFE19] = 5, [0xFE30] = 5,
+ [0xFE31] = 5, [0xFE15] = 6, [0xFE16] = 6, [0xFF01] = 6,
[0xFF1F] = 6,
}, { __index = function() return 0 end })
local intercharclass = { [0] =
@@ -679,13 +828,13 @@ local function get_new_penalty (p)
penalty.penalty = p
return penalty
end
-local function get_new_glue (wd, st, sh)
+local function get_new_glue (wd, st, sh, sto, sho)
local glue = node.new("glue")
- local spec = node.new("glue_spec")
- spec.width = wd
- spec.stretch = st
- spec.shrink = sh
- glue.spec = spec
+ glue.width = wd or 0
+ glue.stretch = st or 0
+ glue.shrink = sh or 0
+ glue.stretch_order = sto or 0
+ glue.shrink_order = sho or 0
return glue
end
local function get_font_size (fid, space)
@@ -703,9 +852,7 @@ local function glyph_to_box (head, curr, class)
local size = get_font_size(g.font)
head, curr = node.remove(head, curr)
g.next, g.prev = nil, nil
- local hss = get_new_glue(0, 65536, 65536)
- hss.spec.stretch_order = 2
- hss.spec.shrink_order = 2
+ local hss = get_new_glue(0, 65536, 65536, 2, 2)
if class == 1 then
h, hss.next, g.prev = hss, g, hss
elseif class == 2 or class == 4 then
@@ -714,6 +861,7 @@ local function glyph_to_box (head, curr, class)
local hss2 = node.copy(hss)
h, hss.next, g.prev, g.next, hss2.prev = hss, g, hss, hss2, g
end
+ h = nodes.simple_font_handler(h)
local box = node.hpack(h, size, "exactly")
head, curr = node.insert_before(head, curr, box)
return head, curr
@@ -739,35 +887,64 @@ local function insert_penalty_glue (head, curr, f, var, x)
if x then
glue = get_new_glue(size/2, size/4, size/8)
else
- glue = get_new_glue(0, size/5, size/50)
+ glue = get_new_glue(0, size/10, size/50)
end
head, curr = node.insert_after(head, curr, glue)
return head, curr
end
+local function avoid_widow_char (head)
+ local curr = node.tail(head)
+ while curr do
+ if curr.id == glyph_id then
+ local c = curr.char or 0
+ if not nobr_before[c] or nobr_before[c] == 3 then
+ local var = node.has_attribute(curr, attr_korean)
+ if var and is_cjk(c) then
+ curr = curr.prev
+ if curr and curr.id == glue_id then
+ curr = curr.prev
+ if curr then
+ local pv = var == 1 and 500 or 1000
+ if curr.id == penalty_id then
+ if curr.penalty < pv then curr.penalty = pv end
+ else
+ node.insert_after(head, curr, get_new_penalty(pv))
+ end
+ end
+ end
+ end
+ break
+ end
+ end
+ curr = curr.prev
+ end
+end
local function korean_break (head, lb)
local curr = head
while curr do
if curr.id == glyph_id then
local var = node.has_attribute(curr, attr_korean)
if var then
- local c, f = curr.char, curr.font
- local cc = charclass[c]
+ local c, f = curr.char or 0, curr.font or 0
+ local cc, cjkc = charclass[c], is_cjk(c)
if var > 0 and cc > 0 and cc < 5 then
head, curr = glyph_to_box(head, curr, cc)
end
local next = curr.next
if next and next.id == glyph_id then
- local n = next.char
+ local n = next.char or 0
local nc = charclass[n]
local nobr = nobr_before[n] or nobr_after[c]
if var > 0 and intercharclass[cc][nc] then
head, curr = insert_cjk_penalty_glue(head, curr, f, var, cc, nc, nobr)
elseif not nobr then
- local cjkc, cjkn = is_cjk(c), is_cjk(n)
- if var > 0 and (cjkc or cjkn) and not (cjkc and cjkn) then
- head, curr = insert_penalty_glue(head, curr, f, var, true)
- elseif lb and (cjkc or cjkn) then
- head, curr = insert_penalty_glue(head, curr, f, var)
+ local cjkn = is_cjk(n)
+ if cjkc or cjkn then
+ if var > 0 and not (cjkc and cjkn) and not (nobr_before[c] == 0) then
+ head, curr = insert_penalty_glue(head, curr, f, var, true)
+ elseif lb then
+ head, curr = insert_penalty_glue(head, curr, f, var)
+ end
end
end
end
@@ -775,6 +952,7 @@ local function korean_break (head, lb)
end
curr = curr.next
end
+ if lb then avoid_widow_char(head) end
return head
end
local josa_table = {
@@ -834,9 +1012,9 @@ local josa_code = setmetatable({
local function get_prev_char (p)
while p do
if p.id == glyph_id then
- local pc = p.char
+ local pc = p.char or 0
if not nobr_after[pc] then
- if not nobr_before[pc] or nobr_before[pc] == 2 then
+ if not nobr_before[pc] or nobr_before[pc] >= 2 then
return pc
end
end
@@ -853,13 +1031,13 @@ local function auto_josa (head)
if curr.id == glyph_id then
local josa = node.has_attribute(curr, attr_josa)
if josa then
- local cc = curr.char
+ local cc = curr.char or 0
if josa == 0 then
josa = josa_code[get_prev_char(curr.prev) or 0x30]
end
if cc == 0xC774 then
local n = curr.next
- if n and n.id == glyph_id and n.char == 0xB77C then
+ if n and n.char and n.char >= 0xAC00 and n.char <= 0xD7A3 then
else
cc = 0xAC00
end
@@ -886,8 +1064,8 @@ local function reorder_tm (head)
local curr, tone = node.tail(head)
while curr do
if curr.id == glyph_id and node.has_attribute(curr, attr_korean) then
- local c, wd = curr.char, curr.width
- if (c == 0x302E or c == 0x302F) and wd and wd > 0 then
+ local c, wd = curr.char or 0, curr.width or 0
+ if (c == 0x302E or c == 0x302F) and wd > 0 then
tone = curr
elseif tone and not nobr_before[c] then
head = node.remove(head, tone)
@@ -916,6 +1094,24 @@ else
luatexbase.add_to_callback(name, func, desc, 1)
end
end
+prepend_to_callback ("hyphenate",
+ function(head)
+ local in_callback = luatexbase.in_callback or luatexbase.priority_in_callback
+ if in_callback("hyphenate", "polyglossia.disable_hyphenation") then
+ return false
+ end
+ local curr = head
+ while curr do
+ if curr.id == glyph_id and node.has_attribute(curr, attr_korean) and is_cjk(curr.char or 0) then
+ if curr.subtype == 1 then
+ curr.subtype = 0
+ end
+ end
+ curr = curr.next
+ end
+ lang.hyphenate(head)
+ end,
+ "polyglossia.lang_korean")
prepend_to_callback ("pre_linebreak_filter",
function(head)
head = auto_josa(head)
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
index e1160c6782e..435c43d3f77 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
@@ -1,138 +1,150 @@
-% !TEX encoding = UTF-8 Unicode
-\ProvidesFile{gloss-latin.ldf}[polyglossia: module for latin]
-\PolyglossiaSetup{latin}{
-hyphennames={latin},
-% hyphenmins={2,2},
- frenchspacing=true,
- fontsetup=true,
-}
-
-
-\define@boolkey{latin}[latin@]{babelshorthands}[true]{}
-
-
-\ifsystem@babelshorthands
- \setkeys{latin}{babelshorthands=true}
-\else
- \setkeys{latin}{babelshorthands=false}
-\fi
-
-
-\ifcsundef{initiate@active@char}{%
-\input{babelsh.def}%
-}{}\initiate@active@char{"}%
+%%
+%% This is file `gloss-latin.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gloss-latin.dtx (with options: `lamodern')
+%% ------------------------------------------------------------------
+%% Latin module for polyglossia
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%% This work is distributed under the MIT License.
+%%
+%% See the postamble.
+%% ------------------------------------------------------------------
+\ProvidesFile{gloss-latin.ldf}
+ [2016/09/10 v.1.03 Latin support from polyglossia]
+%%
-
-\def\latin@shorthands{%
- \bbl@activate{"}%
- \def\language@group{latin}%
- \declare@shorthand{latin}{"}{%
- \relax\ifmmode
- \def\xpgla@next{''}%
- \else
- \def\xpgla@next{\futurelet\xpgla@temp\xpgla@cwm}%
- \fi
- \xpgla@next}%
-}
-
-
-\def\xpgla@allowhyphens{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}
-\newcommand*{\xpgla@cwm}{\let\xpgla@@next\relax
- \ifcat\noexpand\xpgla@temp a%
- \let\xpgla@@next\xpgla@allowhyphens
- \else
- \ifx\xpgla@temp\ae
- \let\xpgla@@next\xpgla@allowhyphens
- \else
- \ifx\xpgla@temp\oe
- \let\xpgla@@next\xpgla@allowhyphens
- \else
- \if\noexpand\xpgla@temp\string|%
- \def\xpgla@@next{\xpgla@allowhyphens\@gobble}%
- \fi
- \fi
- \fi
- \fi
- \xpgla@@next}%
-
-\def\nolatin@shorthands{%
- \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+\PolyglossiaSetup{latin}{%
+ hyphennames={latin},
+ hyphenmins={2,2},
+ frenchspacing=true,
+ fontsetup=true,
}
-
-
-% set modern as default
-\def\latin@variant{\l@latin}%
-\ifluatex\xpg@set@language@luatex@iv{latin}\fi
-\def\captionslatin{\modernlatincaptions}%
-\def\datelatin{\modernlatindate}%
\def\classicuclccodes{\lccode`\V=`\u \uccode`\u=`\V}
-
+\def\noclassicuclccodes{\lccode`\V=`\v \uccode`\u=`\U}
\def\tmp@modern{modern}
\def\tmp@medieval{medieval}
-\def\tmp@classic{classic}
+\unless\ifluatex
+ \def\tmp@classic{classic}
+ \def\tmp@liturgical{liturgical}
+\fi
+\newif\ifmedieval\medievalfalse
+\newif\ifclassic\classicfalse
+\define@boolkey{latin}[latin@]{ecclesiastic}[true]{}
+\let\latin@variant\l@latin
+\ifluatex
+ \ifcsname l@latin\endcsname\xpg@set@language@luatex@ii{latin}\fi
+\fi
+\def\captionslatin{\latincaptions}%
+\def\datelatin{\latindate}%
\define@key{latin}{variant}[modern]{%
\def\@tempa{#1}%
\ifx\@tempa\tmp@medieval
- \def\latin@variant{\l@latin}%
- \xpg@set@language@luatex@iv{latin}
- \def\captionslatin{\medievallatincaptions}%
- \def\datelatin{\classiclatindate}%
+ \ifluatex
+ \ifcsname l@latin\endcsname\xpg@set@language@luatex@ii{latin}\fi
+ \fi
+ \let\latin@variant\l@latin
+ \xpg@set@language@luatex@ii{latin}
+ \medievaltrue \classictrue
\classicuclccodes
\xpg@info{Option: Medieval Latin}%
\else
\ifx\@tempa\tmp@classic
- \xpg@ifdefined{classiclatin}{%
- \def\latin@variant{\l@classiclatin}%
- \xpg@set@language@luatex@iv{classiclatin}%
- }{%
- \xpg@nopatterns{Classic Latin}%
- \adddialect\l@classiclatin\l@latin
- \def\latin@variant{\l@latin}%
- }%
- \def\captionslatin{\modernlatincaptions}%
- \def\datelatin{\classiclatindate}%
- \classicuclccodes
+ \unless\ifluatex
+ \unless\ifcsname l@classiclatin\endcsname
+ \xpg@nopatterns{Classic Latin}%
+ \adddialect\l@classiclatin\l@latin
+ \let\latin@variant\l@latin
+ \else
+ \let\latin@variant\l@classiclatin
+ \fi
+ \fi
+ \medievalfalse\classictrue\classicuclccodes
\xpg@info{Option: Classic Latin}%
\else
- \def\latin@variant{\l@latin}%
- \xpg@set@language@luatex@iv{latin}
- \def\captionslatin{\modernlatincaptions}%
- \def\datelatin{\modernlatindate}%
- \xpg@info{Option: Modern Latin}%
+ \ifx\@tempa\tmp@liturgical\unless\ifluatex
+ \unless\ifcsname l@liturgicallatin\endcsname
+ \xpg@nopatterns{Liturgical Latin}%
+ \adddialect\l@liturgicallatin\l@latin
+ \def\latin@variant{\l@latin}%
+ \else
+ \let\latin@variant\l@liturgicallatin
+ \fi
+ \medievaltrue\classicfalse
+ \xpg@info{Option: Liturgical Latin}\fi
+ \else
+ \ifx\@tempa\tmp@modern
+ \let\latin@variant\l@latin
+ \ifluatex\xpg@set@language@luatex@ii{latin}\fi
+ \xpg@info{Option: Modern Latin}%
+ \else
+ \def\latin@variant{\l@nohyphenation}%
+ \PackageWarning{polyglossia}{%
+ *******************\MessageBreak
+ No hyphenation set for \@tempa
+ *******************\MessageBreak
+ }{}%
+ \fi
+ \fi
\fi
\fi
}
\def\latin@language{\language=\latin@variant}%
+\ifluatex
+ \PackageWarning{polyglossia}{\MessageBreak\MessageBreak
+ *****************\MessageBreak
+ The ecclesiastic option is not active\MessageBreak
+ when typesetting with LuaLaTeX\MessageBreak
+ *****************\MessageBreak
+ \MessageBreak}{}
+ \else
+ \def\ecclesiasticlatin@punctuation{%
+ \def\xpg@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi}
+ \lccode\string"2019=\string"2019
+ \newXeTeXintercharclass\ecclesiasticlatin@punctthin
+ \newXeTeXintercharclass\ecclesiasticlatin@punctguillstart
+ \newXeTeXintercharclass\ecclesiasticlatin@punctguillend
+ \XeTeXinterchartokenstate=1
+ \XeTeXcharclass `\! \ecclesiasticlatin@punctthin
+ \XeTeXcharclass `\? \ecclesiasticlatin@punctthin
+ \XeTeXcharclass `\; \ecclesiasticlatin@punctthin
+ \XeTeXcharclass `\: \ecclesiasticlatin@punctthin
+ \XeTeXcharclass `\« \ecclesiasticlatin@punctguillstart
+ \XeTeXcharclass `\» \ecclesiasticlatin@punctguillend
+ \XeTeXinterchartoks \z@ \ecclesiasticlatin@punctthin = {\penalty\@M
+ \hskip.2\fontdimen2\font \@plus\z@\@minus\z@}%
+ \XeTeXinterchartoks 255 \ecclesiasticlatin@punctthin = {\xpg@unskip}
+ \XeTeXinterchartoks \ecclesiasticlatin@punctguillstart \z@ = {\penalty\@M
+ \hskip.2\fontdimen2\font \@plus\z@\@minus\z@\ignorespaces}
+ \XeTeXinterchartoks \z@ \ecclesiasticlatin@punctguillend = {\xpg@unskip
+ \penalty\@M\hskip.2\fontdimen2\font \@plus\z@\@minus\z@}
+ }
-\def\modernlatincaptions{%
- \def\prefacename{Praefatio}%
- \def\refname{Conspectus librorum}%
- \def\abstractname{Summarium}%
- \def\bibname{Conspectus librorum}%
- \def\chaptername{Caput}%
- \def\appendixname{Additamentum}%
- \def\contentsname{Index}%
- \def\listfigurename{Conspectus descriptionum}%
- \def\listtablename{Conspectus tabularum}%
- \def\indexname{Index rerum notabilium}%
- \def\figurename{Descriptio}%
- \def\tablename{Tabula}%
- \def\partname{Pars}%
- \def\enclname{Additur}%
- \def\ccname{Exemplar}%
- \def\headtoname{\ignorespaces}%
- \def\pagename{charta}%
- \def\seename{cfr.}%
- \def\alsoname{cfr.}%
- \def\proofname{Demonstratio}%
- \def\glossaryname{Glossarium}%
- }
-
-\def\medievallatincaptions{%
- \def\prefacename{Præfatio}%
+ \def\noecclesiasticlatin@punctuation{%
+ \lccode\string"2019=\z@
+ \XeTeXcharclass `\! \z@
+ \XeTeXcharclass `\? \z@
+ \XeTeXcharclass `\; \z@
+ \XeTeXcharclass `\: \z@
+ \XeTeXcharclass `\« \z@
+ \XeTeXcharclass `\» \z@
+ \XeTeXinterchartokenstate=0
+ }
+ \let\latin@original@makefntext\@makefntext
+ \newcommand\latin@ecclesiastic@makefntext[1]{%
+ \parindent 1em \noindent
+ \latin@Makefnmark{\enspace #1}}
+ \newcommand\latin@Makefnmark{\hbox{\normalfont\@thefnmark.}}
+\fi
+\setkeys{latin}{variant,ecclesiastic=false}
+\def\latincaptions{%
+ \def\prefacename{\ifmedieval Præfatio\else Praefatio\fi}%
\def\refname{Conspectus librorum}%
\def\abstractname{Summarium}%
\def\bibname{Conspectus librorum}%
@@ -155,36 +167,107 @@ hyphennames={latin},
\def\glossaryname{Glossarium}%
}
-\def\modernlatindate{%
+\def\latindate{%
\def\today{\uppercase\expandafter{\romannumeral\day}%
\space \ifcase\month%
- \or Januarii\or Februarii\or Martii\or Aprilis\or Maji\or Junii\or%
- Julii\or Augusti\or Septembris\or Octobris\or Novembris\or%
- Decembris\fi%
+ \or Januarii\or Februarii\or Martii\or Aprilis\or Maji\or
+ Junii\or Julii\or Augusti\or Septembris\or Octobris\or
+ \ifclassic Nouembris\else Novembris\fi
+ \or Decembris\fi%
\space \uppercase\expandafter{\romannumeral\year}}}
+%%%%%%%%% Latin shorthands
+
+\define@boolkey{latin}[latin@]{babelshorthands}[true]{}
+
+\ifsystem@babelshorthands
+ \setkeys{latin}{babelshorthands=true}
+\else
+ \setkeys{latin}{babelshorthands=false}
+\fi
+\ifcsundef{initiate@active@char}{%
+\input{babelsh.def}%
+\initiate@active@char{"}%
+\initiate@active@char{'}%
+}{}
+\def\latin@shorthands{%
+ \def\language@group{latin}%
+ \bbl@activate{"}%
+ \declare@shorthand{latin}{"}{\relax
+ \ifmmode
+ \def\xpgla@nextdq{''}%
+ \else
+ \def\xpgla@nextdq{\futurelet\xpgla@temp\xpgla@cwm}%
+ \fi
+ \xpgla@nextdq}%
+ \bbl@activate{'}%
+ \declare@shorthand{latin}{'}{\relax
+ \ifmmode
+ \def\xpgla@nextsq{'}%
+ \else
+ \def\xpgla@nextsq{\futurelet\xpgla@temp@A\xpgla@putacute}%
+ \fi
+ \xpgla@nextsq}%
+}
+\def\xpgla@allowhyphens{\bbl@allowhyphens
+ \discretionary{-}{}{}\bbl@allowhyphens}
+\newcommand*{\xpgla@cwm}{\let\xpgla@@nextdq\relax
+ \ifcat\noexpand\xpgla@temp a%
+ \let\xpgla@@nextdq\xpgla@allowhyphens
+ \else
+ \ifx\xpgla@temp\ae
+ \let\xpgla@@nextdq\xpgla@allowhyphens
+ \else
+ \ifx\xpgla@temp\oe
+ \let\xpgla@@nextdq\xpgla@allowhyphens
+ \else
+ \if\noexpand\xpgla@temp\string|%
+ \def\xpgla@@nextdq{\xpgla@allowhyphens\@gobble}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \xpgla@@nextdq}%
+\def\xpgla@putacute#1{\let\xpgla@nextsq\relax%
+\if a\xpgla@temp@A
+ æ\kern-0.175em^^^^0301\kern0.175em\xpgla@allowhyphens
+\else
+\if o\xpgla@temp@A
+ œ\kern-0.175em^^^^0301\kern0.175em\xpgla@allowhyphens
+\else
+ \if æ\xpgla@temp@A
+ æ^^^^0301%
+ \else
+ \if œ\xpgla@temp@A
+ œ^^^^0301%
+ \else
+ \string'%
+ \fi
+ \fi
+\fi
+\fi}%
+
+\def\nolatin@shorthands{%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{'}}%
+}
-\def\classiclatindate{%
- \def\today{\uppercase\expandafter{\romannumeral\day}%
- \space \ifcase\month
- \or Januarii\or Februarii\or Martii\or Aprilis\or Maii\or Junii\or
- Julii\or Augusti\or Septembris\or Octobris\or Nouembris\or
- Decembris\fi
- \space \uppercase\expandafter{\romannumeral\year}}}
-
\let\xpgla@savedvalues\empty
-\AtEndPreamble{% the user or the class might define different values
+\AtEndPreamble{%
\edef\xpgla@savedvalues{%
\clubpenalty=\the\clubpenalty\space
\@clubpenalty=\the\@clubpenalty\space
\widowpenalty=\the\widowpenalty\space
\finalhyphendemerits=\the\finalhyphendemerits}
}
-
-
\def\noextras@latin{%
\lccode\string"2019=\z@
\nolatin@shorthands
\xpgla@savedvalues
+ \noclassicuclccodes
+ \iflatin@ecclesiastic
+ \unless\ifluatex\noecclesiasticlatin@punctuation
+ \let\@makefntext\latin@original@makefntext\fi
+ \fi
}
\def\blockextras@latin{%
@@ -192,11 +275,39 @@ hyphennames={latin},
\clubpenalty=3000 \@clubpenalty=3000 \widowpenalty=3000
\finalhyphendemerits=50000000
\iflatin@babelshorthands\latin@shorthands\fi
+ \iflatin@ecclesiastic\unless\ifluatex\ecclesiasticlatin@punctuation
+ \let\@makefntext\latin@ecclesiastic@makefntext\fi
+ \fi
}
\def\inlineextras@latin{%
\lccode\string"2019=\string"2019
\iflatin@babelshorthands\latin@shorthands\fi
+ \iflatin@ecclesiastic
+ \unless\ifluatex\ecclesiasticlatin@punctuation
+ \let\@makefntext\latin@ecclesiastic@makefntext\fi
+ \fi
}
-
-\endinput
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining
+%% a copy of this software and associated documentation files
+%% (the "Software"), to deal in the Software without restriction, including
+%% without limitation the rights to use, copy, modify, merge, publish,
+%% distribute, sublicense, and/or sell copies of the Software, and to permit
+%% persons to whom the Software is furnished to do so, subject to the following
+%% conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in
+%% all copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+%% THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+%% IN THE SOFTWARE.
+%%
+%% End of file `gloss-latin.ldf'.
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
index d7f37afdf86..db4c564ce6f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
@@ -1,11 +1,10 @@
% Translated by Paulius Sladkevičius <komsas@gmail.com>
-% See also http://github.com/fc7/polyglossia/issues#issue/6
\ProvidesFile{gloss-lithuanian.ldf}[polyglossia: module for lithuanian]
\PolyglossiaSetup{lithuanian}{
hyphennames={lithuanian},
hyphenmins={2,2},
- fontsetup=true,
+ fontsetup=true
}
\def\captionslithuanian{%
@@ -21,7 +20,6 @@
\def\indexname{Rodyklė}%
\def\figurename{pav.}%
\def\tablename{lentelė}%
- %\def\thepart{}% Roman numerals are fine
\def\partname{Dalis}%
\def\pagename{puslapis}%
\def\seename{žiūrėk}%
@@ -32,6 +30,7 @@
\def\proofname{Įrodymas}%
\def\glossaryname{Terminų žodynas}%
}
+
\def\datelithuanian{%
\def\lithuanianmonth{\ifcase\month\or
sausio\or
@@ -45,18 +44,18 @@
rugsėjo\or
spalio\or
lapkričio\or
- gruodžio\fi}
+ gruodžio\fi}%
\def\today{\number\year~m.~\lithuanianmonth~\number\day~d.}%
}
\def\blockextras@lithuanian{%
\let\fnum@figure@orig\fnum@figure
- \let\fnum@table@orig\fnum@table
\def\fnum@figure{\thefigure\nobreakspace\figurename}%
+ \let\fnum@table@orig\fnum@table
\def\fnum@table{\thetable\nobreakspace\tablename}%
}
-\def\noblockextras@lithuanian{%
+\def\noextras@lithuanian{%
\let\fnum@figure\fnum@figure@orig
\let\fnum@table\fnum@table@orig
}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-liturgicallatin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-liturgicallatin.ldf
new file mode 100644
index 00000000000..b38f23635dc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-liturgicallatin.ldf
@@ -0,0 +1,185 @@
+%%
+%% This is file `gloss-liturgicallatin.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gloss-latin.dtx (with options: `laliturgic')
+%% ------------------------------------------------------------------
+%% Latin module for polyglossia
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%% This work is distributed under the MIT License.
+%%
+%% See the postamble.
+%% ------------------------------------------------------------------
+\ProvidesFile{gloss-liturgiclatin.ldf}
+ [2016/09/10 v.1.03 Latin support from polyglossia]
+%%
+
+
+\PolyglossiaSetup{liturgicallatin}{%
+ hyphennames={liturgicallatin},
+ hyphenmins={2,2},
+ frenchspacing=true,
+ fontsetup=true,
+}
+\def\liturgicallatincaptions{%
+ \def\prefacename{Præfatio}%
+ \def\refname{Conspectus librorum}%
+ \def\abstractname{Summarium}%
+ \def\bibname{Conspectus librorum}%
+ \def\chaptername{Caput}%
+ \def\appendixname{Additamentum}%
+ \def\contentsname{Index}%
+ \def\listfigurename{Conspectus descriptionum}%
+ \def\listtablename{Conspectus tabularum}%
+ \def\indexname{Index rerum notabilium}%
+ \def\figurename{Descriptio}%
+ \def\tablename{Tabula}%
+ \def\partname{Pars}%
+ \def\enclname{Additur}%
+ \def\ccname{Exemplar}%
+ \def\headtoname{\ignorespaces}%
+ \def\pagename{charta}%
+ \def\seename{cfr.}%
+ \def\alsoname{cfr.}%
+ \def\proofname{Demonstratio}%
+ \def\glossaryname{Glossarium}%
+ }
+
+\def\liturgicallatindate{%
+ \def\today{\uppercase\expandafter{\romannumeral\day}%
+ \space \ifcase\month%
+ \or Januarii\or Februarii\or Martii\or Aprilis\or Maji\or Junii\or%
+ Julii\or Augusti\or Septembris\or Octobris\or Novembris\or%
+ Decembris\fi%
+ \space \uppercase\expandafter{\romannumeral\year}}}
+
+\define@boolkey{liturgicallatin}[liturgicallatin@]{babelshorthands}[true]{}
+
+\ifsystem@babelshorthands
+ \setkeys{liturgicallatin}{babelshorthands=true}
+\else
+ \setkeys{liturgicallatin}{babelshorthands=false}
+\fi
+
+\ifcsundef{initiate@active@char}{%
+ \input{babelsh.def}%
+ \initiate@active@char{"}%
+ \initiate@active@char{'}%
+}{}
+
+\def\liturgicallatin@shorthands{%
+ \def\language@group{liturgicallatin}%
+ \bbl@activate{"}%
+ \declare@shorthand{liturgicallatin}{"}{\relax
+ \ifmmode
+ \def\xpglla@next{''}%
+ \else
+ \def\xpglla@nextdq{\futurelet\xpglla@temp\xpglla@cwm}%
+ \fi
+ \xpglla@nextdq}%
+ \bbl@activate{'}%
+ \declare@shorthand{liturgicallatin}{'}{\relax
+ \ifmmode
+ \def\xpglla@nextsq{'}%
+ \else
+ \def\xpglla@nextsq{\futurelet\temp@A\xpglla@putacute}%
+ \fi
+ \xpgla@nextsq}%
+}
+
+\def\xpglla@allowhyphens{\bbl@allowhyphens
+ \discretionary{-}{}{}\bbl@allowhyphens}
+
+\newcommand*{\xpglla@cwm}{\let\xpglla@@nextdq\relax
+ \ifcat\noexpand\xpglla@temp a%
+ \let\xpglla@@nextdq\xpglla@allowhyphens
+ \else
+ \ifx\xpglla@temp\ae
+ \let\xpglla@@nextdq\xpglla@allowhyphens
+ \else
+ \ifx\xpglla@temp\oe
+ \let\xpglla@@nextdq\xpglla@allowhyphens
+ \else
+ \if\noexpand\xpglla@temp\string|%
+ \def\xpglla@@nextdq{\xpglla@allowhyphens\@gobble}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \xpglla@@nextdq}%
+
+\def\xpglla@putacute#1{\let\xpglla@nextsq\relax%
+\if a\xpglla@temp@A
+ æ\kern-0.175em^^^^0301\kern0.175em\xpglla@allowhyphens
+\else
+\if o\xpglla@temp@A
+ œ\kern-0.175em^^^^0301\kern0.175em\xpglla@allowhyphens
+\else
+ \if æ\xpglla@temp@A
+ æ^^^^0301%
+ \else
+ \if œ\xpglla@temp@A
+ œ^^^^0301%
+ \else
+ \string'%
+ \fi
+ \fi
+\fi
+\fi}%
+\def\noliturgicallatin@shorthands{%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{'}}%
+}
+
+\let\xpglla@savedvalues\empty
+\AtEndPreamble{%
+ \edef\xpglla@savedvalues{%
+ \clubpenalty=\the\clubpenalty\space
+ \@clubpenalty=\the\@clubpenalty\space
+ \widowpenalty=\the\widowpenalty\space
+ \finalhyphendemerits=\the\finalhyphendemerits}%
+}
+
+\def\noextras@liturgicallatin{%
+ \lccode\string"2019=\z@
+ \noliturgicallatin@shorthands
+ \xpglla@savedvalues
+}
+
+\def\blockextras@liturgicallatin{%
+ \lccode\string"2019=\string"2019
+ \clubpenalty=3000 \@clubpenalty=3000 \widowpenalty=3000
+ \finalhyphendemerits=50000000
+ \ifliturgicallatin@babelshorthands\liturgicallatin@shorthands\fi
+}
+
+\def\inlineextras@liturgicallatin{%
+ \lccode\string"2019=\string"2019
+ \ifliturgicallatin@babelshorthands\liturgicallatin@shorthands\fi
+}
+%% Copyright (C) Claudio Beccari 2013-2016
+%% Copyright (C) Élie Roux 2016
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining
+%% a copy of this software and associated documentation files
+%% (the "Software"), to deal in the Software without restriction, including
+%% without limitation the rights to use, copy, modify, merge, publish,
+%% distribute, sublicense, and/or sell copies of the Software, and to permit
+%% persons to whom the Software is furnished to do so, subject to the following
+%% conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in
+%% all copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+%% THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+%% IN THE SOFTWARE.
+%%
+%% End of file `gloss-liturgicallatin.ldf'.
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
index 3f6839a932f..ea5f534e7a8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
@@ -5,6 +5,16 @@
fontsetup=true,
}
+\frenchspacing
+
+% change 'táblázat x.x' to 'x.x. táblázat'
+\newcommand{\@magyar@fnum@table}{\thetable.~\tablename}
+\let\fnum@table\@magyar@fnum@table
+
+% change 'ábra x.x' to 'x.x. ábra'
+\newcommand{\@magyar@fnum@figure}{\thefigure.~\figurename}
+\let\fnum@figure\@magyar@fnum@figure
+
\def\captionsmagyar{%
\def\refname{Hivatkozások}%
\def\abstractname{Kivonat}%
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
index 59c94fd8296..dc1a429be09 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
@@ -11,7 +11,7 @@ and may look very wrong.}
\RequirePackage{devanagaridigits}
\PolyglossiaSetup{marathi}{
- script=Devaganari,
+ script=Devanagari,
scripttag=deva,
langtag=MAR,
hyphennames={marathi},
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
index 45563f50fc8..d2c86a33406 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
@@ -169,9 +169,18 @@
% The following is based on some ideas from ruscor.sty
\def\russian@capsformat{%
- \def\@seccntformat##1{\csname pre##1\endcsname%
- \csname the##1\endcsname%
- \csname post##1\endcsname}%
+ \ifdef{\KOMAScript}{%
+ \renewcommand{\chapterformat}{\prechapter\thechapter\postchapter}%
+ \renewcommand{\sectionformat}{\presection\thesection\postsection}%
+ \renewcommand{\subsectionformat}{\presubsection\thesubsection\postsubsection}%
+ \renewcommand{\subsubsectionformat}{\presubsubsection\thesubsubsection\postsubsubsection}%
+ \renewcommand{\paragraphformat}{\preparagraph\theparagraph\postparagraph}%
+ \renewcommand{\subparagraphformat}{\presubparagraph\thesubparagraph\postsubparagraph}%
+ }{%
+ \def\@seccntformat##1{\csname pre##1\endcsname%
+ \csname the##1\endcsname%
+ \csname post##1\endcsname}%
+ }%
\def\@aftersepkern{\hspace{0.5em}}%
\def\postchapter{.\@aftersepkern}%
\def\postsection{.\@aftersepkern}%
@@ -214,7 +223,16 @@
}
\def\noextras@russian{%
- \def\@seccntformat##1{\csname the##1\endcsname\quad}% = LaTeX kernel
+ \ifdef{\KOMAScript}{%
+ \renewcommand{\chapterformat}{\thechapter\autodot\enskip}%
+ \renewcommand{\sectionformat}{\thesection\autodot\enskip}%
+ \renewcommand{\subsectionformat}{\thesubsection\autodot\enskip}%
+ \renewcommand{\subsubsectionformat}{\thesubsubsection\autodot\enskip}%
+ \renewcommand{\paragraphformat}{\theparagraph\autodot\enskip}%
+ \renewcommand{\subparagraphformat}{\thesubparagraph\autodot\enskip}%
+ }{%
+ \def\@seccntformat##1{\csname the##1\endcsname\quad}% = LaTeX kernel
+ }%
\ifcyrillic@numerals\norussian@numbers\fi
\norussian@shorthands%
}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
index 287620615c4..3b102d09854 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
@@ -36,6 +36,11 @@
\def\fontsetup@sanskrit@Telugu{%
\def\xpg@scripttag@sanskrit{telu}%
\xpg@fontsetup@nonlatin{sanskrit}}
+%% DW
+\def\fontsetup@sanskrit@Latin{%
+ \def\xpg@scripttag@sanskrit{latn}%
+ \xpg@fontsetup@latin{sanskrit}}
+%% DW
\setkeys{sanskrit}{Script} %sets the default for Devanagari
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
index 45100d23e89..726225cad5c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
@@ -13,6 +13,70 @@
%TODO localalph
}
+\newif\ifcyrillic@numerals
+\define@key{ukrainian}{numerals}[latin]{%
+\ifstrequal{#1}{cyrillic}%
+{\cyrillic@numeralstrue}
+{\cyrillic@numeralsfalse}%
+}
+
+\define@boolkey{ukrainian}[ukrainian@]{babelshorthands}[false]{}
+
+\setkeys{ukrainian}{numerals}
+
+\ifsystem@babelshorthands
+\setkeys{ukrainian}{babelshorthands=true}
+\else
+\setkeys{ukrainian}{babelshorthands=false}
+\fi
+
+\ifcsundef{initiate@active@char}{%
+\input{babelsh.def}%
+\initiate@active@char{"}%
+}{}
+
+\def\ukrainian@shorthands{%
+\bbl@activate{"}%
+\def\language@group{ukrainian}%
+% \declare@shorthand{ukrainian}{"`}{„}%
+% \declare@shorthand{ukrainian}{"'}{“}%
+% \declare@shorthand{ukrainian}{"<}{«}%
+% \declare@shorthand{ukrainian}{">}{»}%
+\declare@shorthand{ukrainian}{""}{\hskip\z@skip}%
+\declare@shorthand{ukrainian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
+\declare@shorthand{ukrainian}{"=}{\nobreak-\hskip\z@skip}%
+\declare@shorthand{ukrainian}{"|}{\textormath{\nobreak\discretionary{-}{}{\kern.03em}\allowhyphens}{}}%
+\declare@shorthand{ukrainian}{"-}{%
+\def\ukrainian@sh@tmp{%
+\if\ukrainian@sh@next-\expandafter\ukrainian@sh@emdash
+\else\expandafter\ukrainian@sh@hyphen\fi
+}%
+\futurelet\ukrainian@sh@next\ukrainian@sh@tmp}%
+\def\ukrainian@sh@hyphen{%
+\nobreak\-\bbl@allowhyphens}%
+\def\ukrainian@sh@emdash##1##2{\cdash-##1##2}%
+\def\cdash##1##2##3{\def\tempx@{##3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+\ifx\tempx@\tempa@\@Acdash\else
+\ifx\tempx@\tempb@\@Bcdash\else
+\ifx\tempx@\tempc@\@Ccdash\else
+\errmessage{Wrong usage of cdash}\fi\fi\fi}%
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+\cyrdash\hskip.2em\ignorespaces}%
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+\nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+\def\@Ccdash{\leavevmode
+\nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+\ifx\cyrdash\undefined
+\def\cyrdash{\hbox to.8em{--\hss--}}
+\fi
+\declare@shorthand{ukrainian}{",}{\nobreak\hskip.2em\ignorespaces}%
+}
+
+\def\noukrainian@shorthands{%
+\@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+}
+
\def\captionsukrainian{%
\def\refname{Література}%
\def\abstractname{Анотація}%
@@ -54,6 +118,25 @@
грудня\fi%
\space\number\year~р.}}
+% The following is based on some ideas from ruscor.sty
+\def\ukrainian@capsformat{%
+\def\@seccntformat##1{\csname pre##1\endcsname%
+\csname the##1\endcsname%
+\csname post##1\endcsname}%
+\def\@aftersepkern{\hspace{0.5em}}%
+\def\postchapter{.\@aftersepkern}%
+\def\postsection{.\@aftersepkern}%
+\def\postsubsection{.\@aftersepkern}%
+\def\postsubsubsection{.\@aftersepkern}%
+\def\postparagraph{.\@aftersepkern}%
+\def\postsubparagraph{.\@aftersepkern}%
+\def\prechapter{}%
+\def\presection{}%
+\def\presubsection{}%
+\def\presubsubsection{}%
+\def\preparagraph{}%
+\def\presubparagraph{}}
+
\def\Asbuk#1{\expandafter\ukrainian@Alph\csname c@#1\endcsname}
\def\ukrainian@Alph#1{\ifcase#1\or
А\or Б\or В\or Г\or Д\or Е\or Є\or Ж\or
@@ -79,9 +162,24 @@
\let\@alph\latin@alph%
}
-\endinput
+\def\noextras@ukrainian{%
+\def\@seccntformat##1{\csname the##1\endcsname\quad}% = LaTeX kernel
+\ifcyrillic@numerals\noukrainian@numbers\fi
+\noukrainian@shorthands%
+}
+
+\def\blockextras@ukrainian{%
+\ukrainian@capsformat%
+\ifcyrillic@numerals\ukrainian@numbers\fi
+\ifukrainian@babelshorthands\ukrainian@shorthands\fi
+}
-%TODO? stuff from Babel
+\def\inlineextras@ukrainian{%
+\ifukrainian@babelshorthands\ukrainian@shorthands\fi%
+}
+
+%%% stuff from Babel
+% make it optional?
\def\sh{\mathop{\operator@font sh}\nolimits}
\def\ch{\mathop{\operator@font ch}\nolimits}
\def\tg{\mathop{\operator@font tg}\nolimits}
@@ -96,8 +194,10 @@
\def\nsk{\mathop{\mathrm{н.с.к.}}\nolimits}
\def\NSD{\mathop{\mathrm{НСД}}\nolimits}
\def\NSK{\mathop{\mathrm{НСК}}\nolimits}
-\def\nod{\mathop{\mathrm{н.о.д.}}\nolimits} % ??????
-\def\nok{\mathop{\mathrm{н.о.к.}}\nolimits} % ??????
-\def\NOD{\mathop{\mathrm{НОД}}\nolimits} % ??????
-\def\NOK{\mathop{\mathrm{НОК}}\nolimits} % ??????
+\def\nod{\mathop{\mathrm{н.о.д.}}\nolimits}
+\def\nok{\mathop{\mathrm{н.о.к.}}\nolimits}
+\def\NOD{\mathop{\mathrm{НОД}}\nolimits}
+\def\NOK{\mathop{\mathrm{НОК}}\nolimits}
\def\Proj{\mathop{\mathrm{пр}}\nolimits}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
index 96969508254..a0b6176fed2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
@@ -18,10 +18,10 @@
\def\appendixname{Phụ lục}%
\def\contentsname{Mục lục}%
\def\listfigurename{Danh sách hình vẽ}%
- \def\listtablename{Danh sách bẳng}%
+ \def\listtablename{Danh sách bảng}%
\def\indexname{Chỉ mục}%
\def\figurename{Hình}%
- \def\tablename{Bẳng}%
+ \def\tablename{Bảng}%
\def\partname{Phần}%
\def\pagename{Trang}%
\def\seename{Xem}%
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
index bd1afa5e912..463b3d2fe3b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
@@ -3,8 +3,9 @@ require('luatex-hyphen')
local luatexhyphen = luatexhyphen
local byte = unicode.utf8.byte
+local module_name = "polyglossia"
local polyglossia_module = {
- name = "polyglossia",
+ name = module_name,
version = 1.3,
date = "2013/05/11",
description = "Polyglossia",
@@ -13,8 +14,14 @@ local polyglossia_module = {
license = "CC0"
}
-local error, warning, info, log =
- luatexbase.provides_module(polyglossia_module)
+luatexbase.provides_module(polyglossia_module)
+
+local log_info = function(message)
+ luatexbase.module_info(module_name, message)
+end
+local log_warning = function(message)
+ luatexbase.module_warning(module_name, message)
+end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
@@ -103,7 +110,7 @@ end
local function newloader(langentry)
loaded_language = polyglossia.newloader_loaded_languages[langentry]
if loaded_language then
- texio.write_nl('term and log', 'Language ' .. langentry .. ' already loaded; id is ' .. lang.id(loaded_language))
+ log_info('Language ' .. langentry .. ' already loaded; id is ' .. lang.id(loaded_language))
-- texio.write_nl('term and log', 'Language ' .. langentry .. ' already loaded with patterns ' .. tostring(loaded_language) .. '; id is ' .. lang.id(loaded_language))
-- texio.write_nl('term and log', 'Language ' .. langentry .. ' already loaded with patterns ' .. loaded_language['patterns'] .. '; id is ' .. lang.id(loaded_language))
return lang.id(loaded_language)
@@ -112,15 +119,16 @@ local function newloader(langentry)
if langdata and langdata['special'] == 'language0' then return 0 end
if langdata then
- print("Language data for " .. langentry)
+ local s = "Language data for " .. langentry
for k, v in pairs(langdata) do
- print(k, tostring(v))
+ s = s .. "\n" .. k .. "\t" .. tostring(v)
end
polyglossia.newloader_max_langid = polyglossia.newloader_max_langid + 1
-- langobject = lang.new(newloader_max_langid)
lang.new(); lang.new(); lang.new()
langobject = lang.new()
- texio.write_nl('term and log', langdata.patterns)
+ s = s .. "\npatterns: " .. langdata.patterns
+ log_info(s)
if langdata.patterns and langdata.patterns ~= '' then
pattfilepath = kpse.find_file(langdata.patterns)
if pattfilepath then
@@ -139,10 +147,10 @@ local function newloader(langentry)
end
polyglossia.newloader_loaded_languages[langentry] = langobject
- texio.write_nl('term and log', 'Language ' .. langentry .. ' was not yet loaded; created with id ' .. lang.id(langobject))
+ log_info('Language ' .. langentry .. ' was not yet loaded; created with id ' .. lang.id(langobject))
return lang.id(langobject)
else
- texio.write_nl('term and log', 'Language ' .. langentry .. ' not found in language.dat.lua')
+ log_warning('Language ' .. langentry .. ' not found in language.dat.lua')
return 255
end
end
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
index ceece27c094..4fd15fd17ae 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}[2015/03/25 v1.42.4
+\ProvidesPackage{polyglossia}[2018/04/07 v1.43
Alternative to Babel for XeLaTeX and LuaLaTeX]
\RequirePackage{etoolbox}
\RequirePackage{makecmds}
@@ -26,6 +26,11 @@
\RequireLuaModule{polyglossia}
\fi
+% Which version of XeTeX do we use? What is the boudary class? 4095 or 255
+\@ifundefined{e@alloc@intercharclass@top}
+ {\chardef\xpg@boundaryclass=\@cclv}
+ {\let\xpg@boundaryclass=\e@alloc@intercharclass@top}
+
% Useful for getting list of loaded languages and variants. Like babel's bbl@loaded
\let\xpg@loaded\@empty
\let\xpg@vloaded\@empty
@@ -70,14 +75,15 @@
%% Used by the language definitions files for right-to-left languages
\def\RequireBidi{%
- \ifxetex
- \RequirePackage{bidi}
- \else\ifluatex
- \RequirePackage{luabidi}
- \else
- \xpg@warning{You’re running a TeX engine that is not LuaTeX or XeTeX.\MessageBreak
-That is almost guaranteed to cause problems.}
- \fi\fi}
+ \AtBeginDocument{%
+ \ifxetex
+ \RequirePackage{bidi}
+ \else\ifluatex
+ \RequirePackage{luabidi}
+ \else
+ \xpg@warning{You’re running a TeX engine that is not LuaTeX or XeTeX.\MessageBreak
+ That is almost guaranteed to cause problems.}
+ \fi\fi}}
%% compatibility with babel
\let\addto\gappto% gappto is defined in etoolbox