diff options
author | Karl Berry <karl@freefriends.org> | 2018-04-07 20:58:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-04-07 20:58:18 +0000 |
commit | 9e5940c56dfe63fab26f34250ac55e37ece2c560 (patch) | |
tree | 7d958a87f96e76f7e99de545fa4c13828224127b | |
parent | 861b4de389db24dd94535880edb8de1ea4386cf6 (diff) |
polyglossia (7apr18)
git-svn-id: svn://tug.org/texlive/trunk@47358 c570f23f-e606-0410-a88d-b1316a301751
31 files changed, 3124 insertions, 638 deletions
diff --git a/Master/texmf-dist/doc/latex/polyglossia/README b/Master/texmf-dist/doc/latex/polyglossia/README index c1ab13419de..d2857158059 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/README +++ b/Master/texmf-dist/doc/latex/polyglossia/README @@ -1,7 +1,7 @@ ¦----------------------------------------------¦ ¦ ¦ - ¦ THE POLYGLOSSIA PACKAGE v1.42.4 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.43 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -10,7 +10,7 @@ This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX (with a few languages incompletely supported for the latter). This version -includes support for 76 different languages. +includes support for 77 different languages. Polyglossia makes it possible to automate the following tasks: @@ -32,7 +32,7 @@ Polyglossia makes it possible to automate the following tasks: LICENSE -Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2016 Arthur Reutenauer +Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2018 Arthur Reutenauer Polyglossia is placed under the terms of the LaTeX Project Public Licence (LPPL), either version 1.3, or, at your option, any later version. See @@ -43,7 +43,9 @@ This work has the LPPL maintenance status ‘maintained’. The current maintai BUGS -Polyglossia has no bug, of course. - -Hum, sorry, wishful thinking. Please report any bugs, problems or requests on: +Polyglossia is full of bugs. If you run into one, or suspect you do, or you +have a request or comment, please use the GitHub issue tracker: http://github.com/reutenauer/polyglossia/issues + +This is more efficient than contacting me by email as it allows me to track the +issues and follow progress. diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf Binary files differindex 70f06d2e188..bfbbc72b104 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.tex b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.tex index 6d685b9ae8a..9d9baef475a 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.tex +++ b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.tex @@ -6,6 +6,8 @@ \newfontfamily\arabicfont[Script=Arabic]{Amiri}% \newfontfamily\arabicfonttt[Script=Arabic,Scale=.75]{DejaVu Sans Mono} \newfontfamily\farsifont[Script=Arabic,Scale=1.1,WordSpace=2]{IranNastaliq} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage[quiet,nolocalmarks]{polyglossia} \setdefaultlanguage[calendar=gregorian,hijricorrection=1,locale=mashriq]{arabic} \setotherlanguage[variant=british]{english} diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf Binary files differindex 2f582f59560..21c95e6a271 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-korean.tex b/Master/texmf-dist/doc/latex/polyglossia/example-korean.tex index 92828e2ef0c..7d16cdac03e 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-korean.tex +++ b/Master/texmf-dist/doc/latex/polyglossia/example-korean.tex @@ -4,6 +4,7 @@ \setdefaultlanguage{korean} \setotherlanguage{english} \setmainfont[Script=Hangul]{UnBatang} +\newfontfamily\hangulfont[Script=Hangul]{UnBatang} \begin{document} \begin{center} \abstractname diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf Binary files differindex 11ee9e78ed0..13fd943911c 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf Binary files differindex 5a91d825b89..42f120c43c3 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/examples.tex b/Master/texmf-dist/doc/latex/polyglossia/examples.tex index 31a756487c4..7e331b70d45 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/examples.tex +++ b/Master/texmf-dist/doc/latex/polyglossia/examples.tex @@ -1,6 +1,8 @@ \documentclass[a4paper]{article} \usepackage[no-math]{fontspec} \usepackage{xltxtra,url} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage{polyglossia} \usepackage{trace} \setdefaultlanguage{french} diff --git a/Master/texmf-dist/doc/latex/polyglossia/gloss-latin.pdf b/Master/texmf-dist/doc/latex/polyglossia/gloss-latin.pdf Binary files differnew file mode 100644 index 00000000000..0977a0de486 --- /dev/null +++ b/Master/texmf-dist/doc/latex/polyglossia/gloss-latin.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf Binary files differindex ebfc98a3cad..b7ccf2eff91 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf +++ b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf diff --git a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex index 804fadbd65a..05dcd93ab69 100644 --- a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex +++ b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex @@ -17,11 +17,13 @@ pdfauthor={F Charette, A Reutenauer}, pdfkeywords={xetex, xelatex, luatex, lualatex, multilingual, babel, hyphenation} ]{hyperref} +\usepackage{metalogo} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage[babelshorthands]{polyglossia} \usepackage{farsical} \setmainlanguage[variant=british,ordinalmonthday=false]{english} \setotherlanguages{arabic,hebrew,syriac,greek,russian,catalan} -\usepackage{metalogo} \usepackage[protrusion]{microtype} \newcommand*\Cmd[1]{\cmd{#1}\DescribeMacro{#1}\xspace} \newcommand*\pkg[1]{\textsf{\color{myblue}#1}} @@ -408,14 +410,12 @@ The default value of each option is given in italic. \item \Cmd\aemph (see section \ref{arabic}). \end{itemize} -%\subsection{french}\label{french} -%\textbf{Options}: -% \begin{itemize} -% \item \TB{espacedeuxpoints} = thick or half \new{v1.2.x} ??? -% \footnote{ % -% Can be customized by redefining \french@colonspace } -% \end{itemize} -% +\subsection{french}\label{french}\new{v1.5.0} +\textbf{Options}: + \begin{itemize} + \item \TB{automaticspacesaroundguillemets} = true or \textit{false} (default value = true. Adds space after the opening guillemets and before the closing guillemets. Such space is usually not typed in source code, and you should let polyglossia add it. However, if your source code contains such space, you can set this option to false.) + \item \TB{frenchfootnote} = true or \textit{false} (default value = true. Determines whether the footnote mark starting the footnote is normal script followed by a dot (default) or superscript without a dot.) + \end{itemize} \subsection{german}\label{german} \textbf{Options}: @@ -444,6 +444,7 @@ The default value of each option is given in italic. \item ¦"~¦ for a compound word mark without a breakpoint \item ¦"=¦ for a compound word mark with a breakpoint, allowing hyphenation in the composing words. + \item ¦"/¦ a slash that allows for a line break and maintains hyphenation points. \end{itemize} There are also four shorthands for quotation signs: @@ -558,9 +559,13 @@ enable hyphenation when writing English within Korean text. The value is passed to \pkg{fontspec} in cases where ¦\sanskritfont¦ or ¦\devanagarifont¦ are not defined. This can be useful if you typeset Sanskrit texts in scripts other than Devanagari. - %TODO \item Numerals <<<< + %TODO \item Numerals <<<< \end{itemize} - + \pkg{polyglossia} currently supports the typesetting of Sanskrit in the + following writing systems: Devanagari, Gujarati, Malayalam, Bengali, Kannada, + Telugu, and Latin. Use the ¦Script=¦ option to select the writing system + you want, and enter your input in that script. + \subsection{serbian}\label{serbian} \textbf{Options}: \begin{itemize} diff --git a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx index 2ef100d1e1f..1c7e718e89e 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.42.4 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.43 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -20,7 +20,7 @@ This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX (with a few languages incompletely supported for the latter). This version -includes support for 76 different languages. +includes support for 77 different languages. Polyglossia makes it possible to automate the following tasks: @@ -42,7 +42,7 @@ Polyglossia makes it possible to automate the following tasks: LICENSE -Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2016 Arthur Reutenauer +Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2018 Arthur Reutenauer Polyglossia is placed under the terms of the LaTeX Project Public Licence (LPPL), either version 1.3, or, at your option, any later version. See @@ -53,10 +53,12 @@ This work has the LPPL maintenance status ‘maintained’. The current maintai BUGS -Polyglossia has no bug, of course. - -Hum, sorry, wishful thinking. Please report any bugs, problems or requests on: +Polyglossia is full of bugs. If you run into one, or suspect you do, or you +have a request or comment, please use the GitHub issue tracker: http://github.com/reutenauer/polyglossia/issues + +This is more efficient than contacting me by email as it allows me to track the +issues and follow progress. %</README> %<*internal> \fi @@ -74,7 +76,7 @@ http://github.com/reutenauer/polyglossia/issues The polyglossia package (C) 2008–2010 François Charette - (C) 2011-2016 Arthur Reutenauer + (C) 2011-2018 Arthur Reutenauer (C) 2013 Elie Roux License information appended @@ -82,7 +84,7 @@ http://github.com/reutenauer/polyglossia/issues \endpreamble \postamble - Copyright (C) 2016 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org> + Copyright (C) 2018 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org> This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -113,6 +115,8 @@ http://github.com/reutenauer/polyglossia/issues \generate{\file{gloss-breton.ldf}{\from{polyglossia.dtx}{gloss-breton.ldf}}} \generate{\file{gloss-bulgarian.ldf}{\from{polyglossia.dtx}{gloss-bulgarian.ldf}}} \generate{\file{gloss-catalan.ldf}{\from{polyglossia.dtx}{gloss-catalan.ldf}}} +\generate{\file{gloss-churchslavonic.ldf}{\from{polyglossia.dtx}{gloss-churchslavonic.ldf}}} +\generate{\file{gloss-classiclatin.ldf}{\from{polyglossia.dtx}{gloss-classiclatin.ldf}}} \generate{\file{gloss-coptic.ldf}{\from{polyglossia.dtx}{gloss-coptic.ldf}}} \generate{\file{gloss-croatian.ldf}{\from{polyglossia.dtx}{gloss-croatian.ldf}}} \generate{\file{gloss-czech.ldf}{\from{polyglossia.dtx}{gloss-czech.ldf}}} @@ -135,6 +139,7 @@ http://github.com/reutenauer/polyglossia/issues \generate{\file{gloss-interlingua.ldf}{\from{polyglossia.dtx}{gloss-interlingua.ldf}}} \generate{\file{gloss-irish.ldf}{\from{polyglossia.dtx}{gloss-irish.ldf}}} \generate{\file{gloss-italian.ldf}{\from{polyglossia.dtx}{gloss-italian.ldf}}} +\generate{\file{gloss-japanese.ldf}{\from{polyglossia.dtx}{gloss-japanese.ldf}}} \generate{\file{gloss-kannada.ldf}{\from{polyglossia.dtx}{gloss-kannada.ldf}}} \generate{\file{gloss-khmer.ldf}{\from{polyglossia.dtx}{gloss-khmer.ldf}}} \generate{\file{gloss-korean.ldf}{\from{polyglossia.dtx}{gloss-korean.ldf}}} @@ -142,6 +147,7 @@ http://github.com/reutenauer/polyglossia/issues \generate{\file{gloss-latin.ldf}{\from{polyglossia.dtx}{gloss-latin.ldf}}} \generate{\file{gloss-latvian.ldf}{\from{polyglossia.dtx}{gloss-latvian.ldf}}} \generate{\file{gloss-lithuanian.ldf}{\from{polyglossia.dtx}{gloss-lithuanian.ldf}}} +\generate{\file{gloss-liturgicallatin.ldf}{\from{polyglossia.dtx}{gloss-liturgicallatin.ldf}}} \generate{\file{gloss-lsorbian.ldf}{\from{polyglossia.dtx}{gloss-lsorbian.ldf}}} \generate{\file{gloss-magyar.ldf}{\from{polyglossia.dtx}{gloss-magyar.ldf}}} \generate{\file{gloss-malayalam.ldf}{\from{polyglossia.dtx}{gloss-malayalam.ldf}}} @@ -219,11 +225,13 @@ http://github.com/reutenauer/polyglossia/issues pdfauthor={F Charette, A Reutenauer}, pdfkeywords={xetex, xelatex, luatex, lualatex, multilingual, babel, hyphenation} ]{hyperref} +\usepackage{metalogo} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage[babelshorthands]{polyglossia} \usepackage{farsical} \setmainlanguage[variant=british,ordinalmonthday=false]{english} \setotherlanguages{arabic,hebrew,syriac,greek,russian,catalan} -\usepackage{metalogo} \usepackage[protrusion]{microtype} \newcommand*\Cmd[1]{\cmd{#1}\DescribeMacro{#1}\xspace} \newcommand*\pkg[1]{\textsf{\color{myblue}#1}} @@ -621,14 +629,12 @@ http://github.com/reutenauer/polyglossia/issues % \item \Cmd\aemph (see section \ref{arabic}). % \end{itemize} % -% ^^A\subsection{french}\label{french} -% ^^A\textbf{Options}: -% ^^A \begin{itemize} -% ^^A \item \TB{espacedeuxpoints} = thick or half \new{v1.2.x} ??? -% ^^A \footnote{ % -% ^^A Can be customized by redefining \french@colonspace } -% ^^A \end{itemize} -% ^^A +% \subsection{french}\label{french}\new{v1.5.0} +% \textbf{Options}: +% \begin{itemize} +% \item \TB{automaticspacesaroundguillemets} = true or \textit{false} (default value = true. Adds space after the opening guillemets and before the closing guillemets. Such space is usually not typed in source code, and you should let polyglossia add it. However, if your source code contains such space, you can set this option to false.) +% \item \TB{frenchfootnote} = true or \textit{false} (default value = true. Determines whether the footnote mark starting the footnote is normal script followed by a dot (default) or superscript without a dot.) +% \end{itemize} % % \subsection{german}\label{german} % \textbf{Options}: @@ -657,6 +663,7 @@ http://github.com/reutenauer/polyglossia/issues % \item ¦"~¦ for a compound word mark without a breakpoint % \item ¦"=¦ for a compound word mark with a breakpoint, % allowing hyphenation in the composing words. +% \item ¦"/¦ a slash that allows for a line break and maintains hyphenation points. % \end{itemize} % % There are also four shorthands for quotation signs: @@ -773,7 +780,11 @@ http://github.com/reutenauer/polyglossia/issues % Sanskrit texts in scripts other than Devanagari. % ^^ATODO \item Numerals <<<< % \end{itemize} -% +% \pkg{polyglossia} currently supports the typesetting of Sanskrit in the +% following writing systems: Devanagari, Gujarati, Malayalam, Bengali, Kannada, +% Telugu, and Latin. Use the ¦Script=¦ option to select the writing system +% you want, and enter your input in that script. +% % \subsection{serbian}\label{serbian} % \textbf{Options}: % \begin{itemize} @@ -2284,6 +2295,424 @@ and may look very wrong.} % \end{macrocode} % \iffalse %</gloss-catalan.ldf> +%<*gloss-churchslavonic.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-churchslavonic.ldf} +% \begin{macrocode} +\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}{№} + +% \end{macrocode} +% \iffalse +%</gloss-churchslavonic.ldf> +%<*gloss-classiclatin.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-classiclatin.ldf} +% \begin{macrocode} +%% +%% 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'. +% \end{macrocode} +% \iffalse +%</gloss-classiclatin.ldf> %<*gloss-coptic.ldf> % \fi % \clearpage @@ -2340,36 +2769,36 @@ and may look very wrong.} \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.}} @@ -2728,7 +3157,7 @@ and may look very wrong.} \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}% } @@ -3063,6 +3492,8 @@ and may look very wrong.} \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 % « ‹ @@ -3072,6 +3503,30 @@ and may look very wrong.} \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 @@ -3091,19 +3546,31 @@ and may look very wrong.} \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 } @@ -3154,8 +3621,8 @@ and may look very wrong.} 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}}% @@ -3204,10 +3671,6 @@ and may look very wrong.} \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 - % \end{macrocode} % \iffalse %</gloss-french.ldf> @@ -3452,6 +3915,8 @@ and may look very wrong.} \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}% } @@ -4481,6 +4946,231 @@ and may look very wrong.} % \end{macrocode} % \iffalse %</gloss-italian.ldf> +%<*gloss-japanese.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-japanese.ldf} +% \begin{macrocode} +\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 + +% \end{macrocode} +% \iffalse +%</gloss-japanese.ldf> %<*gloss-kannada.ldf> % \fi % \clearpage @@ -4894,7 +5584,7 @@ and may look very wrong.} \XeTeXinterchartokenstate\@ne \XeTeXlinebreakpenalty 50 \fi - \XeTeXlinebreakskip 0pt plus.1em minus .01em + \XeTeXlinebreakskip 0pt plus.05em minus .01em \XeTeXlinebreaklocale "ko" } \def\noextras@korean{% @@ -4957,9 +5647,16 @@ and may look very wrong.} \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 @@ -5048,8 +5745,13 @@ and may look very wrong.} % 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 @@ -5059,6 +5761,7 @@ and may look very wrong.} \newXeTeXintercharclass\XeTeXcharclassID \newXeTeXintercharclass\XeTeXcharclassOP \newXeTeXintercharclass\XeTeXcharclassCL + \global\let\XeTeXcharclassCJ\XeTeXcharclassID \global\let\XeTeXcharclassEX\XeTeXcharclassCL \global\let\XeTeXcharclassIS\XeTeXcharclassCL \global\let\XeTeXcharclassNS\XeTeXcharclassCL @@ -5135,10 +5838,10 @@ and may look very wrong.} \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}% % @@ -5148,7 +5851,7 @@ and may look very wrong.} \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}% @@ -5166,7 +5869,7 @@ and may look very wrong.} \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}% @@ -5177,7 +5880,7 @@ and may look very wrong.} \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}% @@ -5188,7 +5891,7 @@ and may look very wrong.} \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}% @@ -5198,6 +5901,7 @@ and may look very wrong.} \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}% @@ -5251,63 +5955,66 @@ and may look very wrong.} \@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 @@ -5448,141 +6155,153 @@ and may look very wrong.} % % \subsection{gloss-latin.ldf} % \begin{macrocode} -% !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}% +\PolyglossiaSetup{latin}{% + hyphennames={latin}, + hyphenmins={2,2}, + frenchspacing=true, + fontsetup=true, } - - -\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{"}}% -} - - -% 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}% @@ -5605,36 +6324,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{% @@ -5642,13 +6432,42 @@ 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 } - +%% 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'. % \end{macrocode} % \iffalse %</gloss-latin.ldf> @@ -5707,13 +6526,12 @@ hyphennames={latin}, % \subsection{gloss-lithuanian.ldf} % \begin{macrocode} % 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{% @@ -5729,7 +6547,6 @@ hyphennames={latin}, \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}% @@ -5740,6 +6557,7 @@ hyphennames={latin}, \def\proofname{Įrodymas}% \def\glossaryname{Terminų žodynas}% } + \def\datelithuanian{% \def\lithuanianmonth{\ifcase\month\or sausio\or @@ -5753,18 +6571,18 @@ hyphennames={latin}, 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 } @@ -5772,6 +6590,200 @@ hyphennames={latin}, % \end{macrocode} % \iffalse %</gloss-lithuanian.ldf> +%<*gloss-liturgicallatin.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-liturgicallatin.ldf} +% \begin{macrocode} +%% +%% 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'. +% \end{macrocode} +% \iffalse +%</gloss-liturgicallatin.ldf> %<*gloss-lsorbian.ldf> % \fi % \clearpage @@ -5838,6 +6850,16 @@ hyphennames={latin}, 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}% @@ -5979,7 +7001,7 @@ and may look very wrong.} \RequirePackage{devanagaridigits} \PolyglossiaSetup{marathi}{ - script=Devaganari, + script=Devanagari, scripttag=deva, langtag=MAR, hyphennames={marathi}, @@ -6900,9 +7922,18 @@ and may look very wrong.} % 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}% @@ -6945,7 +7976,16 @@ and may look very wrong.} } \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% } @@ -7085,6 +8125,11 @@ and may look very wrong.} \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 @@ -8361,6 +9406,70 @@ and may look very wrong.} %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{Анотація}% @@ -8402,6 +9511,25 @@ and may look very wrong.} грудня\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 @@ -8427,6 +9555,44 @@ and may look very wrong.} \let\@alph\latin@alph% } +\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 +} + +\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} +\def\arctg{\mathop{\operator@font arctg}\nolimits} +\def\arcctg{\mathop{\operator@font arcctg}\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\nsd{\mathop{\mathrm{н.с.д.}}\nolimits} +\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\Proj{\mathop{\mathrm{пр}}\nolimits} + % \end{macrocode} % \iffalse %</gloss-ukrainian.ldf> @@ -8663,10 +9829,10 @@ and may look very wrong.} \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}% @@ -9238,8 +10404,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", @@ -9248,8 +10415,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 @@ -9338,7 +10511,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) @@ -9347,15 +10520,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 @@ -9374,10 +10548,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 @@ -9407,7 +10581,7 @@ polyglossia.newloader = newloader ¦----------------------------------------------¦ ¦ ¦ - ¦ THE POLYGLOSSIA PACKAGE v1.42.4 ¦ + ¦ THE POLYGLOSSIA PACKAGE v1.43 ¦ ¦ ¦ ¦ Modern multilingual typesetting ¦ ¦ with XeLaTeX and LuaLaTeX ¦ @@ -9416,7 +10590,7 @@ polyglossia.newloader = newloader This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX (with a few languages incompletely supported for the latter). This version -includes support for 76 different languages. +includes support for 77 different languages. Polyglossia makes it possible to automate the following tasks: @@ -9438,7 +10612,7 @@ Polyglossia makes it possible to automate the following tasks: LICENSE -Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2016 Arthur Reutenauer +Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2018 Arthur Reutenauer Polyglossia is placed under the terms of the LaTeX Project Public Licence (LPPL), either version 1.3, or, at your option, any later version. See @@ -9449,12 +10623,17 @@ This work has the LPPL maintenance status ‘maintained’. The current maintai BUGS -Polyglossia has no bug, of course. - -Hum, sorry, wishful thinking. Please report any bugs, problems or requests on: +Polyglossia is full of bugs. If you run into one, or suspect you do, or you +have a request or comment, please use the GitHub issue tracker: http://github.com/reutenauer/polyglossia/issues + +This is more efficient than contacting me by email as it allows me to track the +issues and follow progress. %</../README> %<*Changelog> +1.42.5 (13-04-2017) + * Many changes to the French language file, by Maïeul Rouquette + 1.42.4 (February, March 2016) * Remedial actions for the Babel changes @@ -9738,6 +10917,8 @@ http://github.com/reutenauer/polyglossia/issues \documentclass[a4paper]{article} \usepackage[no-math]{fontspec} \usepackage{xltxtra,url} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage{polyglossia} \usepackage{trace} \setdefaultlanguage{french} @@ -9889,6 +11070,8 @@ Quamquam sermone nativo fungi desinit, cumque nostris diebus perpauci Latine loq \newfontfamily\arabicfont[Script=Arabic]{Amiri}% \newfontfamily\arabicfonttt[Script=Arabic,Scale=.75]{DejaVu Sans Mono} \newfontfamily\farsifont[Script=Arabic,Scale=1.1,WordSpace=2]{IranNastaliq} +\let\XeTeX\undefined +\let\XeLaTeX\undefined \usepackage[quiet,nolocalmarks]{polyglossia} \setdefaultlanguage[calendar=gregorian,hijricorrection=1,locale=mashriq]{arabic} \setotherlanguage[variant=british]{english} 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 |