diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-09 20:30:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-09 20:30:34 +0000 |
commit | 6c470d1d7d65071defe8e0b9d8e90a935720fd17 (patch) | |
tree | c41dc94d0af4d225b23b537adc7993c146570c31 /Master/texmf-dist/source/latex/polyglossia | |
parent | dc3f6c27d3ca58b293c798446665a35176d9ffc0 (diff) |
polyglossia (9apr22)
git-svn-id: svn://tug.org/texlive/trunk@62988 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/polyglossia')
-rw-r--r-- | Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx | 321 |
1 files changed, 310 insertions, 11 deletions
diff --git a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx index d3f0abc5897..d9660ad6976 100644 --- a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx +++ b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx @@ -8,7 +8,7 @@ \iffalse %</internal> %<*README> -# THE POLYGLOSSIA PACKAGE v1.54 +# THE POLYGLOSSIA PACKAGE v1.55 ## Multilingual typesetting with XeLaTeX and LuaLaTeX This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX. @@ -109,6 +109,7 @@ to track the issues and follow progress. \generate{\file{babelsh.def}{\from{polyglossia.dtx}{babelsh.def}}} \generate{\file{cal-util.def}{\from{polyglossia.dtx}{cal-util.def}}} \generate{\file{xgreek-fixes.def}{\from{polyglossia.dtx}{xgreek-fixes.def}}} +\generate{\file{gloss-latex.lde}{\from{polyglossia.dtx}{gloss-latex.lde}}} \generate{\file{gloss-acadien.ldf}{\from{polyglossia.dtx}{gloss-acadien.ldf}}} \generate{\file{gloss-aeb.ldf}{\from{polyglossia.dtx}{gloss-aeb.ldf}}} \generate{\file{gloss-af.ldf}{\from{polyglossia.dtx}{gloss-af.ldf}}} @@ -615,7 +616,7 @@ to track the issues and follow progress. % \TX{armenian} & \TX{esperanto} & japanese & occitan & \TX{syriac} \\ % asturian & estonian & kannada & \TX{persian} & tamil \\ % basque & \TX{finnish} & khmer & piedmontese & telugu \\ -% \TX{belarusian} & \TX{french} & \TX{korean} & polish & \TX{thai} \\ +% \TX{belarusian} & \TX{french} & \TX{korean} & \TX{polish} & \TX{thai} \\ % \TX{bengali} & friulian & \TX{kurdish} & \TX{portuguese} & \TX{tibetan} \\ % bosnian & \TX{gaelic} & \TX{lao} & romanian & turkish \\ % breton & galician & \TX{latin} & romansh & turkmen \\ @@ -1450,10 +1451,11 @@ to track the issues and follow progress. % \end{shorthands} % \item \xpgboolkeyfalse[1.54]{schoolhyphens} % If this is set to true, alternative (experimental) hyphenation patterns are used rather than the -% default Finnish patterns. These patterns (called `School Hyphenation') are more basic in that -% they do not contain hyphenation exceptions for compound words since these result in simple words -% not being hyphenated at points where this would be valid. The backdrop of the `School' patterns -% is that compound words might be hyphenated incorrectly. +% default Finnish patterns. These (so-called `School') patterns allow hyphenation at +% all valid points, including hyphenation points that are considered sub-optimal from an +% ortho-typographic point of view (e.\,g., hyphenation between two vowels). +% The default patterns try to prevent such hyphenation, with the drawback that simple words +% are sometimes not being hyphenated at points where this would be valid. % See \url{https://github.com/hyphenation/basic-finnish} for details. % \end{itemize} % @@ -2003,6 +2005,46 @@ to track the issues and follow progress. % \item \Cmd\aemph (see section \ref{arabic}). % \end{itemize} % +% +% \subsection{polish}\label{polish} +% +% \paragraph*{Options:} +% \begin{itemize} +% \item \xpgboolkeyfalse[1.55]{babelshorthands} +% If this is turned on, the following shorthands for Polish are activated: +% \begin{shorthands} +% \item[¦"=¦] for an explicit hyphen sign which is repeated at the beginning +% of the next line when hyphenated, as common in Polish typesetting +% (also if ¦splithyphens=false¦). Unlike plain ¦-¦, this also allows +% for hyphenation at the other points preset in the hyphenation patterns. +% \item[¦"|¦] disables a ligature at this position. +% \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for +% cases where the hyphen should stick at the following syllable. +% \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset +% in the hyphenation patterns (as opposed to \cmd\-). +% \item[¦""¦] allows for a line break at this position (without hyphenation sign). +% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash, hyphenation at the breakpoints +% preset in the hyphenation patterns is still allowed. +% \item[¦"`¦] for Polish left double quotes (looks like ,,). +% \item[¦"'¦] for Polish right double quotes (looks like ''). +% \item[¦"<¦] for French left double guillemets (looks like << -- used in Polish as second level quotes). +% \item[¦">¦] for French right double guillemets (looks like >>). +% \end{shorthands} +% \item \xpgboolkeytrue[1.55]{splithyphens} +% According to Polish typesetting conventions, if a word with a hard hyphen (such as \emph{czerwono-złote}) +% is hyphenated at this hyphen, a second hyphenation character is to be inserted at the beginning +% of the line that follows the hyphenation (\emph{czerwono-/-złote}). +% By default, this is done automatically (if you are using \LuaTeX, the \pkg{luavlna} package is +% loaded to achieve this). +% Set this option to ¦false¦ to disable the feature. +% \item \xpgboolkeytrue[1.55]{vlna} +% According to Polish typesetting conventions, single-letter words (non-syllable prepositions) +% must not occur at line ends. +% \pkg{Polyglossia} takes care of this automatically by default (if you are using \LuaTeX, the +% \pkg{luavlna} package is loaded to achieve this). +% Set this option to ¦false¦ to disable the feature. +% \end{itemize} +% % \subsection{portuguese}\label{portuguese} % \paragraph*{Options:} % \begin{itemize} @@ -2765,6 +2807,19 @@ to track the issues and follow progress. % \section{Revision history} % % \bgroup\footnotesize +% \subsection*{1.55 (09-04-2022)} +% +% \subsubsection*{New features} +% \begin{itemize} +% \item New option \xpgoption{splithyphens} and \xpgoption{vlna} for Polish (\TXI{535}). +% \item Add \xpgoption{babelshorthands} to Polish. +% \end{itemize} +% +% \subsubsection*{Bug fixes} +% \begin{itemize} +% \item Add missing \texttt{gloss-latex.lde} file to release (\TXI{537}). +% \end{itemize} +% % \subsection*{1.54 (27-03-2022)} % % \subsubsection*{New features} @@ -3631,7 +3686,7 @@ to track the issues and follow progress. % \subsection{polyglossia.sty} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{polyglossia}[2022/03/27 v1.54 +\ProvidesPackage{polyglossia}[2022/04/09 v1.55 Modern multilingual typesetting with XeLaTeX and LuaLaTeX] \RequirePackage{etoolbox} \RequirePackage{makecmds} @@ -9434,6 +9489,50 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \end{macrocode} % \iffalse %</xgreek-fixes.def> +%<*gloss-latex.lde> +% \fi +% \clearpage +% +% \subsection{gloss-latex.lde} +% \begin{macrocode} +\ProvidesLanguageDefinitionExtension{gloss-latex}{2021/07/10}{v1.53}{polyglossia: module for default language} + +\PolyglossiaSetup{latex}{ + hyphennames={english}, + hyphenmins={2,3}, + langtag=ENG, + fontsetup=true, + % ignore command + DefineCommandsCmd={use_none:n} +} + +\def\captionslatex{% + \def\prefacename{Preface}% + \def\refname{References}% + \def\abstractname{Abstract}% + \def\bibname{Bibliography}% + \def\chaptername{Chapter}% + \def\appendixname{Appendix}% + \def\contentsname{Contents}% + \def\listfigurename{List of Figures}% + \def\listtablename{List of Tables}% + \def\indexname{Index}% + \def\figurename{Figure}% + \def\tablename{Table}% + \def\partname{Part}% + \def\enclname{encl}% + \def\ccname{cc}% + \def\headtoname{To}% + \def\pagename{Page}% + \def\seename{see}% + \def\alsoname{see also}% + \def\proofname{Proof}% +} + + +% \end{macrocode} +% \iffalse +%</gloss-latex.lde> %<*gloss-acadien.ldf> % \fi % \clearpage @@ -21421,6 +21520,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{gloss-polish.ldf} % \begin{macrocode} \ProvidesFile{gloss-polish.ldf}[polyglossia: module for polish] + \PolyglossiaSetup{polish}{ bcp47=pl, hyphennames={polish}, @@ -21433,6 +21533,186 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % BCP-47 compliant aliases \setlanguagealias*{polish}{pl} +\ifluatex + \RequirePackage{luavlna} +\fi + +\define@boolkey{polish}[polish@]{babelshorthands}[true]{} + +\define@boolkey{polish}[polish@]{splithyphens}[true]{} + +\define@boolkey{polish}[polish@]{vlna}[true]{} + +% Register default options +\xpg@initialize@gloss@options{polish}{babelshorthands=false,splithyphens=true,vlna=true} + +\ifsystem@babelshorthands + \setkeys{polish}{babelshorthands=true} +\else + \setkeys{polish}{babelshorthands=false} +\fi + +\ifcsundef{initiate@active@char}{% + \input{babelsh.def}% + \initiate@active@char{"}% + \shorthandoff{"}% +}{} + +\def\polish@@splhyphen#1{% + \def\polish@sh@tmp{% + \if\polish@sh@next-#1% + \else\expandafter\polish@@@splhyphen{#1}\fi% + }% + \futurelet\polish@sh@next\polish@sh@tmp% +} + +\def\polish@@@splhyphen#1{% + \ifnum\hyphenchar \font>0% + \kern\z@\discretionary{-}{\char\hyphenchar\the\font}{#1}% + \nobreak\hskip\z@% + \else% + #1% + \fi% +} + +\def\polish@splhyphen{% + \polish@@splhyphen{-}% +} + +\def\polish@shorthands{% + \bbl@activate{"}% + \def\language@group{polish}% + \declare@shorthand{polish}{"=}{\polish@splhyphen}% + \declare@shorthand{polish}{""}{\hskip\z@skip}% + \declare@shorthand{polish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}% + \declare@shorthand{polish}{"-}{\nobreak\-\bbl@allowhyphens}% + \declare@shorthand{polish}{"|}{% + \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}% + \bbl@allowhyphens}{}% + }% + \declare@shorthand{polish}{"/}{\textormath + {\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}% + \declare@shorthand{polish}{"`}{„}% + \declare@shorthand{polish}{"'}{”}% + \declare@shorthand{polish}{"<}{«}% + \declare@shorthand{polish}{">}{»}% +} + +\def\nopolish@shorthands{% + \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% +} + +\ifxetex + % splithyphens + \newXeTeXintercharclass\polish@hyphen % - + % vlna + \newXeTeXintercharclass\polish@openpunctuation + \newXeTeXintercharclass\polish@nonsyllabicpreposition + \ifdefined\e@alloc@intercharclass@top + \chardef\polish@boundary=\e@alloc@intercharclass@top + \else + \ifdefined\XeTeXinterwordspaceshaping + \chardef\polish@boundary=4095 % + \def\newXeTeXintercharclass{% + \e@alloc\XeTeXcharclass\chardef + \xe@alloc@intercharclass\m@ne\@ucharclass@boundary}% + \else + \chardef\polish@boundary=255 + \fi + \fi +\fi + +\def\polish@hyphens{% + \ifluatex + \AfterPreamble{\enablesplithyphens{polish}}% + \else + \XeTeXinterchartokenstate=1 + \XeTeXcharclass `\- \polish@hyphen + \XeTeXinterchartoks \z@ \polish@hyphen = {\polish@@splhyphen}% "-" -> "\polish@@splhyphen-" + % necessary if used together with vlna: + \XeTeXinterchartoks \polish@nonsyllabicpreposition \polish@hyphen = {\polish@@splhyphen}% "-" -> "\polish@@splhyphen-" + \fi% +} + +\def\nopolish@hyphens{% + \ifluatex + \AfterPreamble{\disablesplithyphens{polish}}% + \else + \XeTeXcharclass `\- \z@ + \fi% +} + +% Add nonbreakable space after single-letter word to +% prevent them to land at the end of a line +% vlna code taken and adapted from xevlna.sty +\ifxetex + \def\polish@nointerchartoks{\let\polish@interchartoks\polish@PreCSpreposition}% + \def\polish@PreCSpreposition{% + \def\next{}% + \ifnum\catcode`\ =10 % nothing will be done in verbatim + \ifmmode % nothing in math + \else + \let\polish@interchartoks\polish@nointerchartoks + \let\next\polish@ExamineCSpreposition + \fi\fi + \next% + }% + \def\polish@ExamineCSpreposition #1{#1\futurelet\next\polish@ProcessCSpreposition}% + \def\polish@ProcessCSpreposition{\ifx\next\polish@XeTeXspace\nobreak\fi}% + \futurelet\polish@XeTeXspace{ }\polish@nointerchartoks +\fi + +\def\polish@vlna{% + \ifluatex + \singlechars{polish}{AaIiOoUuWwZz} + \preventsingleon + \else + % Code taken and adapted from xevlna.sty + \XeTeXinterchartokenstate=1 + \XeTeXcharclass `\( \polish@openpunctuation + \XeTeXcharclass `\[ \polish@openpunctuation + \XeTeXcharclass `\„ \polish@openpunctuation + \XeTeXcharclass `\« \polish@openpunctuation + \XeTeXcharclass `\W \polish@nonsyllabicpreposition + \XeTeXcharclass `\w \polish@nonsyllabicpreposition + \XeTeXcharclass `\Z \polish@nonsyllabicpreposition + \XeTeXcharclass `\z \polish@nonsyllabicpreposition + \XeTeXcharclass `\O \polish@nonsyllabicpreposition + \XeTeXcharclass `\o \polish@nonsyllabicpreposition + \XeTeXcharclass `\U \polish@nonsyllabicpreposition + \XeTeXcharclass `\u \polish@nonsyllabicpreposition + \XeTeXcharclass `\A \polish@nonsyllabicpreposition + \XeTeXcharclass `\a \polish@nonsyllabicpreposition + \XeTeXcharclass `\I \polish@nonsyllabicpreposition + \XeTeXcharclass `\i \polish@nonsyllabicpreposition + \XeTeXinterchartoks \polish@boundary \polish@nonsyllabicpreposition {\polish@interchartoks}% + \XeTeXinterchartoks \polish@openpunctuation \polish@nonsyllabicpreposition {\polish@interchartoks}% + \fi +} + +\def\nopolish@vlna{% + \ifluatex + \preventsingleoff + \else + \XeTeXcharclass`\(\z@ + \XeTeXcharclass`\[\z@ + \XeTeXcharclass`\„\z@ + \XeTeXcharclass`\«\z@ + \XeTeXcharclass`\W\z@ + \XeTeXcharclass`\w\z@ + \XeTeXcharclass`\Z\z@ + \XeTeXcharclass`\z\z@ + \XeTeXcharclass`\O\z@ + \XeTeXcharclass`\o\z@ + \XeTeXcharclass`\U\z@ + \XeTeXcharclass`\u\z@ + \XeTeXcharclass`\A\z@ + \XeTeXcharclass`\a\z@ + \XeTeXcharclass`\I\z@ + \XeTeXcharclass`\i\z@ + \fi +} + \def\captionspolish{% \def\prefacename{Przedmowa}% \def\refname{Literatura}% @@ -21454,8 +21734,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\seename{Zobacz}% \def\alsoname{Zobacz też}% \def\proofname{Dowód}% - \def\glossaryname{Glossary}% <-- Needs translation - } + \def\glossaryname{Słowniczek}% +} \def\datepolish{% \def\today{\number\day\space\ifcase\month\or @@ -21463,7 +21743,26 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages lipca\or sierpnia\or września\or października\or listopada\or grudnia\fi\space \number\year}% - } +} + +\def\noextras@polish{% + \ifpolish@babelshorthands\nopolish@shorthands\fi% + \nopolish@hyphens% + \nopolish@vlna% + \ifxetex\XeTeXinterchartokenstate=0\fi% +} + +\def\blockextras@polish{% + \ifpolish@babelshorthands\polish@shorthands\else\nopolish@shorthands\fi% + \ifpolish@vlna\polish@vlna\else\nopolish@vlna\fi% + \ifpolish@splithyphens\polish@hyphens\else\nopolish@hyphens\fi% +} + +\def\inlineextras@polish{% + \ifpolish@babelshorthands\polish@shorthands\else\nopolish@shorthands\fi% + \ifpolish@vlna\polish@vlna\else\nopolish@vlna\fi% + \ifpolish@splithyphens\polish@hyphens\else\nopolish@hyphens\fi% +} % \end{macrocode} % \iffalse @@ -27526,7 +27825,7 @@ This is today: \today % \typeout{* To finish the installation you have to move the following} % \typeout{* file into a directory searched by TeX:} % \typeout{*} -% \typeout{* \space\space\space all *.sty, *.lua, *.def and *.ldf files} +% \typeout{* \space\space all *.sty, *.lua, *.def, *.lde and *.ldf files} % \typeout{*} % \typeout{* You also need to compile the *.map files with teckit_compile} % \typeout{* and place the resulting *.tec files under} |