diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/generic/babel-french/frenchb.pdf | bin | 247484 -> 248296 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/generic/babel-french/frenchb.dtx | 52 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel-french/frenchb.ldf | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel-french/frenchb.lua | 23 |
4 files changed, 43 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf Binary files differindex 3913f509149..9f95cce6a7d 100644 --- a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf +++ b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx index 9b640647b54..0821c0870ae 100644 --- a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx +++ b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx @@ -13,14 +13,14 @@ %<ldf>\ProvidesLanguage{frenchb} %\ProvidesFile{frenchb.dtx} %<*!lua> - [2014/09/16 v3.1b French support from the babel system] + [2014/10/25 v3.1c French support from the babel system] %</!lua> %<*internal> \iffalse %</internal> %<*lua> -- --- File `frenchb.lua' generated from frenchb.dtx [2014/09/16 v3.1b] +-- File `frenchb.lua' generated from frenchb.dtx [2014/10/25 v3.1c] -- -- Copyright (C) 2014 Daniel Flipo <daniel.flipo at free.fr> -- License LPPL: see frenchb.dtx. @@ -1388,13 +1388,18 @@ local function french_punctuation (head) end % \end{macrocode} % -% \changes{v3.0c}{2014/04/18}{Bug correction: null glues should not +% \changes{v3.0c}{2014/04/18}{frenchb.lua: null glues should not % trigger space insertion before high ponctuation. Bug pointed out % by Benoit Rivet for the `lstlisting' environment of the listings % package.} % -% If the previous item is a glue, check its natural width, -% only positive glues are to be replaced by a nobreakspace. +% \changes{v3.1c}{2014/10/25}{frenchb.lua: Previous bug fix for null +% glues (v3.0c) did not work properly. Fixed now (I hope!). +% Pointed out by Jacques André.} +% +% If the previous item is a glue, check its natural width, only +% positive glues (actually glues > 1 sp, for tabular ``l'' +% columns) are to be replaced by a nobreakspace. % \begin{macrocode} local glue = prev_id == GLUE and prev_subtype == 0 local glue_wd @@ -1402,7 +1407,7 @@ local function french_punctuation (head) glue_spec = prev.spec glue_wd = glue_spec.width end - glue = glue and glue_wd > 0 + local realglue = glue and glue_wd > 1 % \end{macrocode} % For characters for which |FB_punct_thin| or |FB_punct_thick| is % \emph{true}, the amount of spacing to be typeset before them @@ -1412,32 +1417,33 @@ local function french_punctuation (head) % \emph{glue} in the node list), we remove the \emph{glue} and add a % nobreak penalty and the required \emph{glue}. % Otherwise (|auto| option), the penalty and the required -% \emph{glue} are inserted \emph{only if} all three conditions are -% satisfied: a) attribute |\FB@addDPspace| is set, -% b) the previous character is not part of type -% |FB_punct_null| (this avoids spurious spaces in strings -% like |(!)| or |??|), -% c) the punctuation mark does not start a paragraph. -% -% \changes{v3.0c}{2014/04/18}{Missing pair of braces after `and' in the -% definition of `auto'.} +% \emph{glue} are inserted if attribute |\FB@addDPspace| is set, +% unless one of these three condition is met: +% a) the previous character is part of type |FB_punct_null| (this +% avoids spurious spaces in strings like |(!)| or |??|), +% b) a null glue (actually glues <= 1 sp for tabulars) preceeds the +% punctuation character, +% c) the punctuation character starts a paragraph. % % \begin{macrocode} - if (FB_punct_thin[char] or FB_punct_thick[char]) then + if FB_punct_thin[char] or FB_punct_thick[char] then local SBDP = has_attribute(item, addDPspace) + local auto = SBDP and SBDP > 0 + if auto then + if (prev_char and FB_punct_null[prev_char]) or + (glue and glue_wd <= 1) or + (prev_id == 0 and prev_subtype == 3) then + auto = false + end + end local fbglue if FB_punct_thick[char] then fbglue = new_glue_scaled(fid,colnwd,colnst,colnsh) else fbglue = new_glue_scaled(fid,thinwd,thinst,thinsh) end - local auto = - SBDP and SBDP > 0 and - ((prev_char and not FB_punct_null[prev_char]) or - (not prev_char and (prev_id ~= 0 or prev_subtype ~= 3)) - ) - if glue or auto then - if glue then + if realglue or auto then + if realglue then head = remove_node(head,prev,true) end insert_node_before(head, item, copy_node(nobreak)) diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf index 210fea1533b..10683a42650 100644 --- a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf +++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf @@ -33,7 +33,7 @@ %% extension .ins) which are part of the distribution. %% \ProvidesLanguage{frenchb} - [2014/09/16 v3.1b French support from the babel system] + [2014/10/25 v3.1c French support from the babel system] %% %% File `frenchb.ldf' %% Babel package for LaTeX version 2e diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua index d117f60a2a0..8fea2ed965b 100644 --- a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua +++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua @@ -1,5 +1,5 @@ -- --- File `frenchb.lua' generated from frenchb.dtx [2014/09/16 v3.1b] +-- File `frenchb.lua' generated from frenchb.dtx [2014/10/25 v3.1c] -- -- Copyright (C) 2014 Daniel Flipo <daniel.flipo at free.fr> -- License LPPL: see frenchb.dtx. @@ -99,22 +99,25 @@ local function french_punctuation (head) glue_spec = prev.spec glue_wd = glue_spec.width end - glue = glue and glue_wd > 0 - if (FB_punct_thin[char] or FB_punct_thick[char]) then + local realglue = glue and glue_wd > 1 + if FB_punct_thin[char] or FB_punct_thick[char] then local SBDP = has_attribute(item, addDPspace) + local auto = SBDP and SBDP > 0 + if auto then + if (prev_char and FB_punct_null[prev_char]) or + (glue and glue_wd <= 1) or + (prev_id == 0 and prev_subtype == 3) then + auto = false + end + end local fbglue if FB_punct_thick[char] then fbglue = new_glue_scaled(fid,colnwd,colnst,colnsh) else fbglue = new_glue_scaled(fid,thinwd,thinst,thinsh) end - local auto = - SBDP and SBDP > 0 and - ((prev_char and not FB_punct_null[prev_char]) or - (not prev_char and (prev_id ~= 0 or prev_subtype ~= 3)) - ) - if glue or auto then - if glue then + if realglue or auto then + if realglue then head = remove_node(head,prev,true) end insert_node_before(head, item, copy_node(nobreak)) |