summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/polyglossia
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-09 20:30:34 +0000
committerKarl Berry <karl@freefriends.org>2022-04-09 20:30:34 +0000
commit6c470d1d7d65071defe8e0b9d8e90a935720fd17 (patch)
treec41dc94d0af4d225b23b537adc7993c146570c31 /Master/texmf-dist/source/latex/polyglossia
parentdc3f6c27d3ca58b293c798446665a35176d9ffc0 (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.dtx321
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}