summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-29 22:37:53 +0000
committerKarl Berry <karl@freefriends.org>2020-01-29 22:37:53 +0000
commit015c5f064b14e4a79f151b46a6dd46b150520c81 (patch)
treecc3434d0ae73900950b37bc952816286d4d76d5c /Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
parente9549ffe43d42fda4e5d3778e1d26fbd95e4ae9f (diff)
polyglossia (29jan20)
git-svn-id: svn://tug.org/texlive/trunk@53592 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf')
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf94
1 files changed, 66 insertions, 28 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
index 57ec25f48e5..43040b0c70b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
@@ -1,6 +1,7 @@
\ProvidesFile{gloss-french.ldf}[polyglossia: module for french]
\PolyglossiaSetup{french}{%
+ bcp47=fr-FR,
language=French,
script=Latin,
langtag=FRA,
@@ -10,46 +11,63 @@
hyphenmins={2,2},
fontsetup=true}
+% BCP-47 compliant aliases
+\setlanguagealias*{french}{fr}
+\setlanguagealias*[variant=french]{french}{fr-FR}
+\setlanguagealias*[variant=canadian]{french}{fr-CA}
+\setlanguagealias*[variant=swiss]{french}{fr-CH}
+
% Babel aliases
\setlanguagealias[variant=acadian]{french}{acadien}
\setlanguagealias[variant=canadian]{french}{canadien}
\def\french@variant{french}
-\define@choicekey*+{french}{variant}[\val\nr]{french,canadian,acadian}[french]{%
+\define@choicekey*+{french}{variant}[\val\nr]{french,canadian,acadian,swiss}[french]{%
\ifcase\nr\relax
% french:
\def\french@variant{french}%
+ \SetLanguageKeys{french}{babelname=french,bcp47=fr-FR}%
+ \french@thincolonspacefalse
\or
% canadian:
\def\french@variant{canadien}%
- \SetLanguageKeys{french}{babelname=canadien}%
+ \SetLanguageKeys{french}{babelname=canadien,bcp47=fr-CA}%
\xpg@ifdefined{canadien}{}%
{\xpg@warning{No hyphenation patterns were loaded for "French (Canada)"\MessageBreak
I will use the standard patterns for French instead}%
\adddialect\l@canadien\l@french\relax}%
+ \french@thincolonspacefalse
\or
% acadian:
\def\french@variant{acadian}%
- \SetLanguageKeys{french}{babelname=canadien}%
+ \SetLanguageKeys{french}{babelname=canadien,bcp47=fr-CA}%
\xpg@ifdefined{acadian}{}%
{\xpg@warning{No hyphenation patterns were loaded for "French (Canada)"\MessageBreak
I will use the standard patterns for French instead}%
\adddialect\l@acadian\l@french\relax}%
+ \french@thincolonspacefalse
+ \or
+ % swiss:
+ \def\french@variant{swissfrench}%
+ \SetLanguageKeys{french}{babelname=french,bcp47=fr-CH}%
+ \adddialect\l@swissfrench\l@french\relax%
+ \french@thincolonspacetrue
\fi
\xpg@info{Option: French, variant=\val}%
}{\xpg@warning{Unknown French variant `#1'}}
\def\french@language{%
- \polyglossia@setup@language@patterns{\french@variant}
+ \polyglossia@setup@language@patterns{\french@variant}%
}%
\ifluatex
\directlua{require('polyglossia-french')}%
\else
- \newXeTeXintercharclass\french@openbrackets % ( ] {
- \newXeTeXintercharclass\french@closebrackets % ( ] {
- \newXeTeXintercharclass\french@punctthin % ! ? ; et autres
+ \newXeTeXintercharclass\french@openbrackets % ( [ {
+ \newXeTeXintercharclass\french@closebrackets % ) ] }
+ \newXeTeXintercharclass\french@questionexclamation % ! ? et autres
+ \newXeTeXintercharclass\french@punctthin % ; (et :)
\newXeTeXintercharclass\french@punctthick % :
\newXeTeXintercharclass\french@punctguillstart % « ‹
\newXeTeXintercharclass\french@punctguillend % » ›
@@ -62,9 +80,9 @@
\define@boolkey{french}[french@]{frenchfootnote}[true]{%
\AfterPreamble{%
- \ifdefstring{\xpg@main@language}{french}{%
- \iffrench@frenchfootnote
- \ifx\@makefntext\undefined\else
+ \iffrench@frenchfootnote
+ \ifdefstring{\xpg@main@language}{french}{%
+ \ifx\@makefntext\undefined\else
\long\def\french@makefntext##1{%
\parindent1em \noindent\quad%
\ifx\@thefnmark\empty\else%
@@ -72,10 +90,10 @@
}
\let\@makefntext\french@makefntext
\fi
- \else
- \let\@makefntext\xpg@orig@makefntext
- \fi
- }{\xpg@warning{Option 'frenchfootnote' only supported if French is main language!}}%
+ }{\xpg@warning{Option 'frenchfootnote' only supported if French is main language!}}%
+ \else
+ \let\@makefntext\xpg@orig@makefntext
+ \fi
}%
}
@@ -147,19 +165,28 @@
\define@boolkey{french}[french@]{frenchitemlabels}[true]{%
\AfterPreamble{%
- \ifdefstring{\xpg@main@language}{french}{%
- \iffrench@frenchitemlabels
+ \iffrench@frenchitemlabels
+ \ifdefstring{\xpg@main@language}{french}{%
\renewcommand{\labelitemi}{\french@itemi}%
\renewcommand{\labelitemii}{\french@itemii}%
\renewcommand{\labelitemiii}{\french@itemiii}%
\renewcommand{\labelitemiv}{\french@itemiv}%
- \else
- \let\@makefntext\xpg@orig@makefntext
- \fi
- }{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}%
+ }{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}%
+ \else
+ \let\@makefntext\xpg@orig@makefntext
+ \fi
}%
}
+% Register default options
+\xpg@initialize@gloss@options{french}{variant=french,autospacing=true,thincolonspace=false,
+ autospaceguillemets=true,autospacetypewriter=false,
+ frenchfootnote=false,frenchitemlabels=false,
+ itemlabels=\textemdash,itemlabeli=\textemdash,itemlabelii=\textemdash,
+ itemlabeliii=\textemdash,itemlabeliv=\textemdash}
+% Register alias options
+\xpg@set@alias@values{french}{variant}{canadian}{acadian}
+
\def\french@fontsetup{%
\unless\iffrench@autospacetypewriter
@@ -192,12 +219,13 @@
\fi
\else
\XeTeXinterchartokenstate=1
- \XeTeXcharclass `\! \french@punctthin
- \XeTeXcharclass `\? \french@punctthin
- \XeTeXcharclass `\‼ \french@punctthin
- \XeTeXcharclass `\⁇ \french@punctthin
- \XeTeXcharclass `\⁈ \french@punctthin
- \XeTeXcharclass `\⁉ \french@punctthin
+ \XeTeXcharclass `\! \french@questionexclamation
+ \XeTeXcharclass `\? \french@questionexclamation
+ \XeTeXcharclass `\‼ \french@questionexclamation
+ \XeTeXcharclass `\⁇ \french@questionexclamation
+ \XeTeXcharclass `\⁈ \french@questionexclamation
+ \XeTeXcharclass `\⁉ \french@questionexclamation
+ \XeTeXcharclass `\‽ \french@questionexclamation % U+203D (interrobang)
\XeTeXcharclass `\; \french@punctthin
\iffrench@thincolonspace
\XeTeXcharclass `\: \french@punctthin
@@ -216,26 +244,35 @@
\XeTeXcharclass `\} \french@closebrackets
\XeTeXcharclass `\⟨ \french@openbrackets
\XeTeXcharclass `\⟩ \french@closebrackets
+ \XeTeXinterchartoks \z@ \french@questionexclamation = {\xpg@french@thinsp}%
\XeTeXinterchartoks \z@ \french@punctthin = {\xpg@french@thinsp}%
\XeTeXinterchartoks \z@ \french@punctthick = {\nobreakspace}%
+ \XeTeXinterchartoks \xpg@boundaryclass \french@questionexclamation = {\xpg@unskip\xpg@french@thinsp}%
\XeTeXinterchartoks \xpg@boundaryclass \french@punctthin = {\xpg@unskip\xpg@french@thinsp}%
\XeTeXinterchartoks \xpg@boundaryclass \french@punctthick = {\xpg@unskip\nobreakspace}%
\iffrench@autospaceguillemets
\let\xpg@french@guillspace\xpg@french@thinsp%
\XeTeXinterchartoks \french@punctguillstart \z@ = {\xpg@french@guillspace}% "«a" -> "«\,a"
+ \XeTeXinterchartoks \french@punctguillstart \french@punctguillstart = {\xpg@french@guillspace}% "«‹" -> "«\,‹"
% \XeTeXinterchartoks \z@ \french@punctguillstart = {\nobreakspace}% "a«" unchanged?
% \XeTeXinterchartoks \french@punctguillend \z@ = {\nobreakspace}% "»a" unchanged?
\XeTeXinterchartoks \z@ \french@punctguillend = {\xpg@french@guillspace}% "a»" -> "a\,»"
\XeTeXinterchartoks \french@punctguillstart \xpg@boundaryclass = {\xpg@french@guillspace\ignorespaces}% "« " -> "«\,"
\XeTeXinterchartoks \xpg@boundaryclass \french@punctguillend = {\xpg@unskip\xpg@french@guillspace}% " »" -> "\,»"
\XeTeXinterchartoks \french@closebrackets \french@punctguillend = {\xpg@french@guillspace}% ")»" -> ")\,»"
+ \XeTeXinterchartoks \french@questionexclamation \french@punctguillend = {\xpg@french@guillspace}% "?»" -> "?\,»"
+ \XeTeXinterchartoks \french@punctthin \french@punctguillend = {\xpg@french@guillspace}% ";»" -> ";\,»"
+ \XeTeXinterchartoks \french@punctguillend \french@punctguillend = {\xpg@french@guillspace}% "›»" -> "›\,»"
\else
\def\xpg@french@guillspace{}%
\fi
+ \XeTeXinterchartoks \french@punctguillend \french@questionexclamation = {\xpg@french@thinsp}% "»?" -> "»\,?"
\XeTeXinterchartoks \french@punctguillend \french@punctthin = {\xpg@french@thinsp}% "»;" -> "»\,;"
\XeTeXinterchartoks \french@punctguillend \french@punctthick = {\nobreakspace}% "»:" -> "» :"
- \XeTeXinterchartoks \french@punctthin \french@punctguillend = {\xpg@french@thinsp}% "?»" -> "?\,»"
- \XeTeXinterchartoks \french@openbrackets \french@punctthin = {\xpg@unskip}% "(?" -> "(?" and not "( ?"
+ \XeTeXinterchartoks \french@questionexclamation \french@punctthin = {\xpg@french@thinsp}% "?;" -> "?\,;"
+ \XeTeXinterchartoks \french@questionexclamation \french@punctthick = {\xpg@french@thinsp}% "?:" -> "?\,:"
+ \XeTeXinterchartoks \french@openbrackets \french@questionexclamation = {\xpg@unskip}% "(?" -> "(?" and not "( ?"
+ \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 = {\xpg@french@thinsp}% ")?" -> ")\,?"
\XeTeXinterchartoks \french@closebrackets \french@punctthick = {\nobreakspace}% "):" -> ") :"
@@ -253,6 +290,7 @@
\XeTeXcharclass `\⁇ \z@
\XeTeXcharclass `\⁈ \z@
\XeTeXcharclass `\⁉ \z@
+ \XeTeXcharclass `\‽ \z@
\XeTeXcharclass `\; \z@
\XeTeXcharclass `\: \z@
\XeTeXcharclass `\« \z@