summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf')
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf164
1 files changed, 120 insertions, 44 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
index 08c4883f748..085f1939bc0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
@@ -1,20 +1,26 @@
-\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.0 2019-10-28]
+\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.2 2020-01-03]
\ExplSyntaxOn
\PolyglossiaSetup {latin}
{
- hyphennames = {latin},
+ bcp47 = la,
hyphenmins = {2,2},
frenchspacing = true,
fontsetup = true,
langtag = LAT
}
+% BCP-47 compliant aliases
+\setlanguagealias*{latin}{la}
+\setlanguagealias*[variant=classic]{latin}{la-x-classic}
+\setlanguagealias*[variant=ecclesiastic]{latin}{la-x-ecclesia}
+\setlanguagealias*[variant=medieval]{latin}{la-x-medieval}
+
% Babel aliases
-\setlanguagealias[variant=classic]{latin}{latinclassic}
-\setlanguagealias[variant=ecclesiastic]{latin}{latinecclesiastic}
-\setlanguagealias[variant=medieval]{latin}{latinmedieval}
+\setlanguagealias[variant=classic]{latin}{classiclatin}
+\setlanguagealias[variant=ecclesiastic]{latin}{ecclesiasticlatin}
+\setlanguagealias[variant=medieval]{latin}{medievallatin}
%%%%% Variables and commands concerning spelling
@@ -47,8 +53,7 @@
\msg_new:nnn {polyglossia} {latin / missing modern patterns}
{
- No~hyphenation~patterns~were~found~for~Latin~\msg_line_context:.~
- I~will~not~hyphenate~Latin~words.
+ The~hyphenation~patterns~for~modern~Latin~were~not~found~\msg_line_context:.
}
\msg_new:nnn {polyglossia} {latin / missing patterns}
@@ -64,11 +69,23 @@
\def \latin@language
{
\polyglossia@setup@language@patterns {latin}
+ \str_case:Vn \l_polyglossia_latin_variant_str
+ {
+ {classic} { \adddialect \l@classiclatin \l@latin }
+ {medieval} { \adddialect \l@medievallatin \l@latin }
+ {ecclesiastic} { \adddialect \l@ecclesiasticlatin \l@latin }
+ }
}
}
{
\msg_warning:nn {polyglossia} {latin / missing modern patterns}
- \adddialect \l@latin \l@nohyphenation
+ \str_case:Vn \l_polyglossia_latin_variant_str
+ {
+ {classic} { \adddialect \l@classiclatin \l@nohyphenation }
+ {medieval} { \adddialect \l@medievallatin \l@nohyphenation }
+ {modern} { \adddialect \l@latin \l@nohyphenation }
+ {ecclesiastic} { \adddialect \l@ecclesiasticlatin \l@nohyphenation }
+ }
}
}
@@ -80,19 +97,22 @@
\def \latin@language
{
\polyglossia@setup@language@patterns {#1}
+ \str_case:Vn \l_polyglossia_latin_variant_str
+ {
+ {classic} {
+ \str_if_eq:nnTF{#1}{liturgicallatin}
+ { \adddialect \l@classiclatin { \use:c {l@#1} } }
+ {}
+ }
+ {medieval} { \adddialect \l@medievallatin { \use:c {l@#1} } }
+ {modern} { \adddialect \l@latin { \use:c {l@#1} } }
+ {ecclesiastic} { \adddialect \l@ecclesiasticlatin { \use:c {l@#1} } }
+ }
}
}
{
- \xpg@ifdefined {latin}
- {
- \msg_warning:nnn {polyglossia} {latin / missing patterns} {#1}
- \adddialect \l@ #1 \l@latin
- \polyglossia_latin_use_modern_patterns:
- }
- {
- \msg_warning:nn {polyglossia} {latin / missing modern patterns}
- \adddialect \l@ #1 \l@nohyphenation
- }
+ \msg_warning:nnn {polyglossia} {latin / missing patterns} {#1}
+ \polyglossia_latin_use_modern_patterns:
}
}
@@ -106,7 +126,8 @@
\directlua { require('polyglossia-latin') }
}
{
- \newXeTeXintercharclass \g_polyglossia_latin_punctuation_class
+ \newXeTeXintercharclass \g_polyglossia_latin_question_exclamation_class
+ \newXeTeXintercharclass \g_polyglossia_latin_colon_semicolon_class
\newXeTeXintercharclass \g_polyglossia_latin_opening_guillemet_class
\newXeTeXintercharclass \g_polyglossia_latin_closing_guillemet_class
\newXeTeXintercharclass \g_polyglossia_latin_opening_bracket_class
@@ -137,14 +158,15 @@
}
{
\XeTeXinterchartokenstate = 1
- \XeTeXcharclass `\! \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\? \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\‼ \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\⁇ \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\⁈ \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\⁉ \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\; \g_polyglossia_latin_punctuation_class
- \XeTeXcharclass `\: \g_polyglossia_latin_punctuation_class
+ \XeTeXcharclass `\! \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\? \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\‼ \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\⁇ \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\⁈ \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\⁉ \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\‽ \g_polyglossia_latin_question_exclamation_class
+ \XeTeXcharclass `\; \g_polyglossia_latin_colon_semicolon_class
+ \XeTeXcharclass `\: \g_polyglossia_latin_colon_semicolon_class
\XeTeXcharclass `\« \g_polyglossia_latin_opening_guillemet_class
\XeTeXcharclass `\» \g_polyglossia_latin_closing_guillemet_class
\XeTeXcharclass `\‹ \g_polyglossia_latin_opening_guillemet_class
@@ -158,13 +180,28 @@
\XeTeXcharclass `\⟨ \g_polyglossia_latin_opening_bracket_class
\XeTeXcharclass `\⟩ \g_polyglossia_latin_closing_bracket_class
- % punctuation followed by a closing guillemet
- \XeTeXinterchartoks \g_polyglossia_latin_punctuation_class \g_polyglossia_latin_closing_guillemet_class =
+ % question or exclamation mark followed by a closing guillemet
+ \XeTeXinterchartoks \g_polyglossia_latin_question_exclamation_class \g_polyglossia_latin_closing_guillemet_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % question or exclamation mark followed by a colon or semicolon
+ \XeTeXinterchartoks \g_polyglossia_latin_question_exclamation_class \g_polyglossia_latin_colon_semicolon_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % colon or semicolon followed by a closing guillemet
+ \XeTeXinterchartoks \g_polyglossia_latin_colon_semicolon_class \g_polyglossia_latin_closing_guillemet_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % closing bracket followed by a question or exclamation mark
+ \XeTeXinterchartoks \g_polyglossia_latin_closing_bracket_class \g_polyglossia_latin_question_exclamation_class =
{
\polyglossia_latin_insert_punctuation_space:
}
- % closing bracket followed by punctuation
- \XeTeXinterchartoks \g_polyglossia_latin_closing_bracket_class \g_polyglossia_latin_punctuation_class =
+ % closing bracket followed by a colon or semicolon
+ \XeTeXinterchartoks \g_polyglossia_latin_closing_bracket_class \g_polyglossia_latin_colon_semicolon_class =
{
\polyglossia_latin_insert_punctuation_space:
}
@@ -178,18 +215,38 @@
{
\polyglossia_latin_replace_following_space:
}
+ % opening guillemet followed by an opening guillemet
+ \XeTeXinterchartoks \g_polyglossia_latin_opening_guillemet_class \g_polyglossia_latin_opening_guillemet_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
% opening guillemet followed by an ordinary character
\XeTeXinterchartoks \g_polyglossia_latin_opening_guillemet_class \z@ =
{
\polyglossia_latin_insert_punctuation_space:
}
- % closing guillemet followed by punctuation
- \XeTeXinterchartoks \g_polyglossia_latin_closing_guillemet_class \g_polyglossia_latin_punctuation_class =
+ % closing guillemet followed by a closing guillemet
+ \XeTeXinterchartoks \g_polyglossia_latin_closing_guillemet_class \g_polyglossia_latin_closing_guillemet_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % closing guillemet followed by a question or exclamation mark
+ \XeTeXinterchartoks \g_polyglossia_latin_closing_guillemet_class \g_polyglossia_latin_question_exclamation_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % closing guillemet followed by a colon or semicolon
+ \XeTeXinterchartoks \g_polyglossia_latin_closing_guillemet_class \g_polyglossia_latin_colon_semicolon_class =
{
\polyglossia_latin_insert_punctuation_space:
}
- % space followed by punctuation
- \XeTeXinterchartoks \xpg@boundaryclass \g_polyglossia_latin_punctuation_class =
+ % space followed by a question or exclamation mark
+ \XeTeXinterchartoks \xpg@boundaryclass \g_polyglossia_latin_question_exclamation_class =
+ {
+ \polyglossia_latin_replace_preceding_space:
+ }
+ % space followed by a colon or semicolon
+ \XeTeXinterchartoks \xpg@boundaryclass \g_polyglossia_latin_colon_semicolon_class =
{
\polyglossia_latin_replace_preceding_space:
}
@@ -198,8 +255,13 @@
{
\polyglossia_latin_replace_preceding_space:
}
- % ordinary character followed by punctuation
- \XeTeXinterchartoks \z@ \g_polyglossia_latin_punctuation_class =
+ % ordinary character followed by a question or exclamation mark
+ \XeTeXinterchartoks \z@ \g_polyglossia_latin_question_exclamation_class =
+ {
+ \polyglossia_latin_insert_punctuation_space:
+ }
+ % ordinary character followed by a colon or semicolon
+ \XeTeXinterchartoks \z@ \g_polyglossia_latin_colon_semicolon_class =
{
\polyglossia_latin_insert_punctuation_space:
}
@@ -224,6 +286,7 @@
\XeTeXcharclass `\⁇ \z@
\XeTeXcharclass `\⁈ \z@
\XeTeXcharclass `\⁉ \z@
+ \XeTeXcharclass `\‽ \z@
\XeTeXcharclass `\; \z@
\XeTeXcharclass `\: \z@
\XeTeXcharclass `\« \z@
@@ -279,7 +342,9 @@
}
}
{
- \msg_warning:nn {polyglossia} {latin / ineffective footnote option}
+ \iflatin@ecclesiasticfootnotes
+ \msg_warning:nn {polyglossia} {latin / ineffective footnote option}
+ \fi
}
}
@@ -301,6 +366,8 @@
%%%%% Language variants: classic, medieval, modern, and ecclesiastic
+\str_new:N \l_polyglossia_latin_variant_str
+
\msg_new:nnn {polyglossia} {latin / language variant}
{
Activating~Latin~language~variant~"#1"~\msg_line_context:.
@@ -318,7 +385,8 @@
\bool_set_false:N \l_polyglossia_latin_use_digraphs_bool
\bool_set_true:N \l_polyglossia_latin_capitalize_month_bool
\bool_set_false:N \l_polyglossia_latin_punctuation_spacing_bool
- \SetLanguageKeys {latin} { babelname = latin.classic }
+ \str_set:Nn \l_polyglossia_latin_variant_str {classic}
+ \SetLanguageKeys {latin} { babelname = classiclatin, bcp47 = la-x-classic }
\polyglossia_latin_set_patterns:n {classiclatin}
}
@@ -329,7 +397,8 @@
\bool_set_true:N \l_polyglossia_latin_use_digraphs_bool
\bool_set_true:N \l_polyglossia_latin_capitalize_month_bool
\bool_set_false:N \l_polyglossia_latin_punctuation_spacing_bool
- \SetLanguageKeys {latin} { babelname = latin.medieval }
+ \str_set:Nn \l_polyglossia_latin_variant_str {medieval}
+ \SetLanguageKeys {latin} { babelname = medievallatin, bcp47 = la-x-medieval }
\polyglossia_latin_use_modern_patterns:
}
@@ -340,7 +409,8 @@
\bool_set_false:N \l_polyglossia_latin_use_digraphs_bool
\bool_set_true:N \l_polyglossia_latin_capitalize_month_bool
\bool_set_false:N \l_polyglossia_latin_punctuation_spacing_bool
- \SetLanguageKeys {latin} { babelname = latin }
+ \str_set:Nn \l_polyglossia_latin_variant_str {modern}
+ \SetLanguageKeys {latin} { babelname = latin, bcp47 = la }
\polyglossia_latin_use_modern_patterns:
}
@@ -351,7 +421,8 @@
\bool_set_true:N \l_polyglossia_latin_use_digraphs_bool
\bool_set_false:N \l_polyglossia_latin_capitalize_month_bool
\bool_set_true:N \l_polyglossia_latin_punctuation_spacing_bool
- \SetLanguageKeys {latin} { babelname = latin.ecclesiastic }
+ \str_set:Nn \l_polyglossia_latin_variant_str {ecclesiastic}
+ \SetLanguageKeys {latin} { babelname = ecclesiasticlatin, bcp47 = la-x-ecclesia }
\polyglossia_latin_use_modern_patterns:
}
@@ -419,7 +490,7 @@
The~Latin~hyphenation~variant~"#1"~is~undefined~\msg_line_context:.
}
-\define@key{latin}{hyphenation}
+\define@key {latin} {hyphenation}
{
\str_case:nnTF {#1}
{
@@ -518,6 +589,11 @@
{
}
+% Register default options
+\xpg@initialize@gloss@options{latin}{variant=modern,hyphenation=modern,babelshorthands=false,
+ prosodicshorthands=false,ecclesiasticfootnotes=false,
+ usej=false,capitalizemonth=true}
+
\ifsystem@babelshorthands
\setkeys{latin}{babelshorthands=true}
\else
@@ -900,7 +976,7 @@
%% Copyright (C) Claudio Beccari 2013-2016
%% Copyright (C) Élie Roux 2016-2019
-%% Copyright (C) Keno Wehr 2019
+%% Copyright (C) Keno Wehr 2019-2020
%%
%% Permission is hereby granted, free of charge, to any person obtaining
%% a copy of this software and associated documentation files