From 9c2d59c2078da9c770a3e1015d0c10f2bcf9a990 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 4 Sep 2019 21:47:43 +0000 Subject: e-french (4sep19) git-svn-id: svn://tug.org/texlive/trunk@52027 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/e-french/french-msg.tex | 3 + Master/texmf-dist/tex/generic/e-french/french.sty | 171 +++++++++++++++------ .../tex/generic/e-french/french_french-msg.tex | 3 + 3 files changed, 126 insertions(+), 51 deletions(-) (limited to 'Master/texmf-dist/tex/generic') diff --git a/Master/texmf-dist/tex/generic/e-french/french-msg.tex b/Master/texmf-dist/tex/generic/e-french/french-msg.tex index 7db46b54312..72b1662025b 100644 --- a/Master/texmf-dist/tex/generic/e-french/french-msg.tex +++ b/Master/texmf-dist/tex/generic/e-french/french-msg.tex @@ -196,6 +196,9 @@ \msg*{93}{You are using two French options for Babel, % \MessageBreak % please choose only one.}{} +\msg{94}{A modification of ponctuation rules (#1) \MessageBreak% + is no more allowed after having used an active punctuation\MessageBreak % + (\string! \string? \string; \string: \string<\string< or \string>\string>).}{} \msgheader{-**-\space} \msg*{**a}{\frenchpack\space serial number is *\@FrVal*.}{} \msg*{**b}{\@FrVal\space of \frenchpack.}{} diff --git a/Master/texmf-dist/tex/generic/e-french/french.sty b/Master/texmf-dist/tex/generic/e-french/french.sty index ba3fea5a627..40092707f69 100644 --- a/Master/texmf-dist/tex/generic/e-french/french.sty +++ b/Master/texmf-dist/tex/generic/e-french/french.sty @@ -10,11 +10,11 @@ \ifx\@unexpandable@protect\undefined\let\protect\empty% \else\let\protect\@unexpandable@protect% \fi% - \xdef\FSfd{31 mai 2019}% eFrench - \xdef\FSfv{V6,101}% + \xdef\FSfd{6 septembre 2019}% eFrench + \xdef\FSfv{V6,11}% \xdef\frenchstyleid{\FSfv\space-- \FSfd\space --}% }}% - \edef\FSfd{2019/05/31}% + \edef\FSfd{2019/09/06}% \NeedsTeXFormat{LaTeX2e}[1996/12/01]% % > utf8 and NoEncode specialities \newif\ifeF@NoEnc %No encoding (XeTex, LuaLaTex) @@ -29,6 +29,7 @@ \else \eF@LuaTeXtrue \eF@NoEnctrue \fi +% in order to follow by interchartoks \newif\ifeFr@Typo\eFr@Typotrue % In order having no encoding by messages declare this : \let\kbencoding\@gobble @@ -115,6 +116,37 @@ }% \fi% \fi% +% +\newif\ifeFr@DPtfine +\newif\ifeFr@Guifine +\newif\ifUSP@GuiFinSpa % for OG +\newif\ifPonctu@ctived % +\def\nbsp@ce{\penalty\@M\space} +\def\fispce@rigide{\,}% +\def\eFrFinSp@ce{\penalty\@M% + \hskip 0.5\fontdimen2\font}% +\def\MonEspaceFine#1#2#3{\def\eFrFinSp@ce{\penalty\@M% + \hskip #1\fontdimen2\font% + plus #2\fontdimen3\font% + minus #3\fontdimen4\font} +}% +\def\eFr@OGsp@cSpl{\ifeFr@Guifine\eFrFinSp@ce + \else\nbsp@ce\fi\ignorespaces} +% for the user: fine, France or Frenchpro +\def\NobrkSpacesFine{\ifPonctu@ctived + \f@issue\@fw{-94-}[NobrkSpacesFine] + \else\eFr@DPtfinetrue\eFr@Guifinetrue % espaces fines + \fi} +\def\NobrkSpacesFpro{\ifPonctu@ctived + \f@issue\@fw{-94-}[NobrkSpacesFpro] + \else\eFr@DPtfinetrue\eFr@Guifinefalse% comme Frenchpro + \fi} +\def\NobrkSpacesINFr{\ifPonctu@ctived + \f@issue\@fw{-94-}[NobrkSpacesINFr] + \else\eFr@DPtfinefalse\eFr@Guifinefalse % +% [Imprimerie Nationale de France + \fi} +%that was for adaptations high-punct and guillem \fontencoding{\encodingdefault}\selectfont% \def\@temp@{OT1}\ifx\@temp@\f@encoding% \def\@temp@{\global\ECMfalse}% @@ -1392,6 +1424,7 @@ \batchmode\@@end% \fi% \let\@Ffnt\ErrFrench\let\ErrFrench\undefined% + \NobrkSpacesFpro% \IfFileExists{\frenchname.cfg}{% \f@issue% \@fw{-48- % @@ -2328,19 +2361,20 @@ \def\@WTS{\relax\ifmmode\else\ifhmode% \ifdim\lastskip>\z@\unskip\fi% \fi\fi}% +% % > for XeLaTex ****** -% de gloss-french +% inspired from gloss-french \def\intercharpunct{% % \lccode\lccode8217=8217 \XeTeXinterchartokenstate=1 \XeTeXcharclass `\! \french@punctthin \XeTeXcharclass `\? \french@punctthin \XeTeXcharclass `\; \french@punctthin - \XeTeXcharclass `\: \french@punctthick - \XeTeXinterchartoks \z@ \french@punctthin = {\nobreak\thinspace}% - \XeTeXinterchartoks \z@ \french@punctthick = {\nobreakspace}% + \XeTeXcharclass `\: \french@semicolon + \XeTeXinterchartoks \z@ \french@punctthin = {\ifUSP\nobreak\thinspace\fi}% + \XeTeXinterchartoks \z@ \french@semicolon = {\ifUSP\ifeFr@DPtfine\nobreak\thinspace\else\nobreakspace\fi\fi}% \XeTeXinterchartoks 4095 \french@punctthin = {\efr@unskip\nobreak\thinspace}% - \XeTeXinterchartoks 4095 \french@punctthick = {\efr@unskip\nobreakspace}% + \XeTeXinterchartoks 4095 \french@semicolon = {\efr@unskip\ifeFr@DPtfine\nobreak\thinspace\else\nobreakspace\fi}% } \def\nointercharpunct{% % \lccode8217=\z@ @@ -2363,7 +2397,7 @@ \fi \ifeF@xetex@punct \newXeTeXintercharclass\french@punctthin % ! ? ; et autres - \newXeTeXintercharclass\french@punctthick % : + \newXeTeXintercharclass\french@semicolon % : % \def\efr@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi} \def\xpg@nospace#1{#1} @@ -2384,9 +2418,10 @@ \def\@tempd{\@tempa{\string;}}% \ifx;\undefined\def\@tempd{}\fi\@tempd\@tempc% \def\@PV{\relax\ifmmode\string;\else% - \ifhmode\ifUSP\unskip\space\fi% - \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi% - \fi\string;\fi}% + \Ponctu@ctivedtrue + \ifhmode\ifUSP\unskip\space\fi% + \ifdim\lastskip>\z@\unskip\eFrFinSp@ce\fi% + \fi\string;\fi}% \def\@tempc{% \def:{\ifFTY\protect\@DP% \else\ifWTS\@WTS\fi\string:\fi}% @@ -2395,10 +2430,13 @@ \ifx:\undefined\def\@tempd{}\fi\@tempd\@tempc% \@ifundefined{@beginparpenalty}{\def\@beginparpenalty=#1{\penalty#1}}{}% \def\@DP{\relax\ifmmode\string:\else% - \ifhmode\ifUSP\unskip\space\fi% - \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi% - \fi% - \string:% +\Ponctu@ctivedtrue +\ifeFr@DPtfine\let\eFresp@dpt=\eFrFinSp@ce + \else\let\eFresp@dpt=\nbsp@ce\fi + \ifhmode\ifUSP\unskip\space\fi% + \ifdim\lastskip>\z@\unskip\eFresp@dpt\fi% + \fi% + \string:% \@beginparpenalty=\@M\relax% \fi}% \def\@wu#1{\@@wu#1,\void}% @@ -2418,10 +2456,11 @@ \def\@tempd{\@tempa{\string!}}% \ifx!\undefined\def\@tempd{}\fi\@tempd\@tempc% \def\@PE{\ifmmode\string!\else% - \ifhmode\ifUSP\unskip\space\fi% - \ifdim\lastskip>\z@\unskip\penalty\@M\,\fi% - \fi% - \string!\fi}% + \Ponctu@ctivedtrue + \ifhmode\ifUSP\unskip\space\fi% + \ifdim\lastskip>\z@\unskip\eFrFinSp@ce\fi% + \fi% + \string!\fi}% \def\@tempc{% \def?{\ifFTY\protect\@PI% \else\ifWTS\@WTS\fi\string?\fi}% @@ -2429,12 +2468,12 @@ \def\@tempd{\@tempa{\string?}}% \ifx?\undefined\def\@tempd{}\fi\@tempd\@tempc% \def\@PI{\relax\ifmmode\string?\else% - \ifhmode\ifUSP\unskip\space\fi% - \ifdim\lastskip>\z@\unskip\penalty\@M% - \hskip +0.09em plus 0.07667em% - \fi% - \fi% - \string?\fi}% + \Ponctu@ctivedtrue + \ifhmode\ifUSP\unskip\space\fi% + \ifdim\lastskip>\z@\unskip\eFrFinSp@ce% + \fi% + \fi% + \string?\fi}% \ifx\@tempb\next\let\AFPdp\empty\f@issue% \@fw{-13b- % \@txt@msg{la double ponctuation est alors d\'esactiv\'ee}}\fi% @@ -2518,35 +2557,55 @@ \advance\@FrDimen by -\leftmargin\advance\@FrDimen by -\rightmargin% \advance\@FrDimen by -\listparindent\hsize=\@FrDimen}% \@qquotes\fi\fi\fi% + \sp@inogfalse% \@oguills% \ifFLA\ifEPG\bgroup\def\@currenvir{guillemets}% \let\@CGroup\egroup\fi\fi% \ifCG\ifFLA\ifEPG% \xdef\@epORI{{\the\TeXeverypar}}% \TeXeverypar={\@epORI% - \ifEPGR\else% - \@oguills% + \ifEPGR\else\@AG% -guide du typographe + \sp@inogtrue% + \@oguills% begin of paragraph \@ifundefined{@OuvOpen}{% - \,% + %\,% space in @oguil }{}% \fi}% \fi\fi% - \else\@SifDOGon\@AG% + \else\@SifDOGon\@AG% in a citation \ifFLA\ifEPG\else\def\@qqguill{\@oguills}\@staring\fi\fi\fi% \global\let\ifCG\iffalse% - \ifUSP\kern+0.13em\penalty\@M\ignorespaces% - \else\kern-0.19em\relax\penalty\@M\fi}% + \ifeFr@Guifine\USP@GuiFinSpatrue% OG full space not used + \let\eFresp@gui=\eFrFinSp@ce% OG fine unbreakable space + \else\USP@GuiFinSpafalse% OG full space possible + \let\eFresp@gui=\nbsp@ce% OG full unbreakable space + \fi% + \Ponctu@ctivedtrue + \ifUSP\USP@GuiFinSpatrue\fi% OG full space not used + \ifUSP@GuiFinSpa\eFr@OGsp@cSpl% + \else\relax\penalty\@M\fi}% +% \relax\ifeFr@Guifine\/\fi\penalty\@M}% space is following \def\@AG{\ifAG\let\@LP\@RP\let\@gotl\@gotr% \fi}% \def\f@guillemets{<<}% -\def\@oguills{% +\newif\ifsp@inog +\def\@oguills{% + \ifeFr@Guifine% + \let\eFresp@gui=\eFrFinSp@ce% + \else\let\eFresp@gui=\nbsp@ce% no space to be made unbreakable + \fi% + \Ponctu@ctivedtrue \bgroup\@ifundefined{@OuvOpen}{\def\@OuvOpen{}% \@ifundefined{ly}{\@og}% {\leavevmode\ifECM\hbox{{\ifGIAF\else\@gfnt\fi% - \ifx\@gotl\undefined\char\rq\@LP% - \else\@gotl\fi\kern+0.20em}}% - \else\hbox{{\ly\@LP\kern-0.20em\@LP\kern+0.20em}}\fi% - \nobreak}}{}\egroup}% + \ifx\@gotl\undefined\char\rq\@LP% + \else\@gotl\fi% + \ifeFr@Guifine% + \let\eFresp@gui=\eFrFinSp@ce% + \else\let\eFresp@gui=\nbsp@ce\fi% + \ifsp@inog\eFresp@gui\fi}}% V6,11 RJ + \else\hbox{{\ly\@LP\kern-0.20em\@LP\kern+0.20em}}\fi% + \nobreak}}{}\egroup}% \def\@@RFG{\ifFTY\ifmmode\protect\@RSG\else% \ifIEB\@SFC\else\@RSG\fi% \fi% @@ -2572,17 +2631,20 @@ \else\let\@grORI\grammar\def\grammar{\nofrenchguillemets\@grORI}% \fi% +\newif\ifsp@infg \def\@@FG{\ifCG\f@issue% \@fw{-14- % }\fi% - \ifUSP\unskip\kern+0.13em\else% - \ifdim\lastskip>\z@\unskip% - \penalty\@M% - \space% - \penalty\@M% - \fi% - \kern-0.19em% - \fi% + \Ponctu@ctivedtrue + \ifeFr@Guifine% + \USP@GuiFinSpatrue% + \fi% + \ifUSP\USP@GuiFinSpatrue\fi% FG full space not used + \ifUSP@GuiFinSpa\unskip\eFrFinSp@ce% + \else + \ifdim\lastskip>\z@\unskip\nbsp@ce\fi% + \fi + \sp@infgfalse \xdef\@tempd{\@currenvir}\def\@tempe{guillemets}% \ifx\@tempd\@tempe% \@CGroup\@fguills% @@ -2612,10 +2674,17 @@ \else\@staring\@stared\egroup\fi\fi% \global\let\ifCG\iftrue\let\@CGroup\relax}% \def\@fguills{\@ifundefined{ly}{\@cg}% - {\nobreak\leavevmode\ifECM\hbox{{\ifGIAF\else\@gfnt\fi\kern+0.20em% - \ifx\@gotr\undefined\char\rq\@RP% - \else\@gotr\fi}}% - \else\hbox{{\ly\kern+0.20em\@RP\kern-0.20em\@RP}}\fi}% + {\nobreak\leavevmode\ifECM\hbox{{\ifGIAF\else\@gfnt\fi% + \Ponctu@ctivedtrue + \ifsp@infg + \ifeFr@Guifine\let\eFresp@gui=\eFrFinSp@ce% + \else\let\eFresp@gui=\nbsp@ce\fi% + \ifUSP\unskip\space\fi + \ifdim\lastskip>\z@\unskip\eFresp@gui\fi + \fi + \ifx\@gotr\undefined\char\rq\@RP% + \else\@gotr\fi}}% + \else\hbox{{\ly\kern+0.20em\@RP\kern-0.20em\@RP}}\fi}% \ifGIAF\else\ifdim\fontdimen\@ne\font>\z@\/\fi\fi% }% \def\@normalrq{\relax\ifmmode^\prime\else\@frq\fi}% @@ -3142,8 +3211,8 @@ \ifFMA\@oguills% \else<<\fi}% \def\rightguillemets{\@noBDfr% - \ifFMA\@fguills% - \else>>\fi}% + \ifFMA\sp@infgtrue\@fguills% + \else>>\fi}% \def\fup{\@noBDfr\ifFTY% \expandafter\@fup\fi}\MakeRobustCommand{fup}% \def\@fup{\@ifstar{\csname\string\!\endcsname\@@fup}{\@@fup}}% diff --git a/Master/texmf-dist/tex/generic/e-french/french_french-msg.tex b/Master/texmf-dist/tex/generic/e-french/french_french-msg.tex index ea3359faabc..da26e471abe 100644 --- a/Master/texmf-dist/tex/generic/e-french/french_french-msg.tex +++ b/Master/texmf-dist/tex/generic/e-french/french_french-msg.tex @@ -203,6 +203,9 @@ \msg*{93}{Vous utilisez deux options de francisation avec Babel, % \MessageBreak % merci d'en choisir une seule.}{} +\msg{94}{Le changement de ponctuation (#1) \MessageBreak% + n'est plus permis apr\`es une utilisation de ponctuation active\MessageBreak % + (\string! \string? \string; \string: \string<\string< \string>\string>).}{} \msgheader{-**-\space} \msg*{**a}{Le num\'ero de s\'erie de \frenchpack\space est *\@FrVal*.}{} \msg*{**b}{\@FrVal\space of \frenchpack.}{} -- cgit v1.2.3