diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf')
-rw-r--r-- | Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf | 164 |
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 |