Bonjour, Après de nombreux atermoiements, j'ai fini par essayer de coder une solution pour les incompatibilités de guilemets en français.
La solution retenue est la suivante :
- il n'y a plus qu'un langage pour le français, qui utilise l'option
french de babel
- les guillemets utilisent les commandes \og et \fg
- une « version de secours » de \og et \fg est fournie :
\addto{extrasfrench}{
\providecommand{\og}{\leavevmode\flqq~}
\providecommand{\fg}{\ifdim\lastskip>[EMAIL PROTECTED]
}
Normalement :
- avec teTeX 3.0, on utilise frenchb et ca marche
- avec teTeX 2.0, on utilise frenchle.sty avec les guillemets de
secours (dons un espacement pas parfait et un problème en OT1, mais
de toute façon OT1 ce n'est pas terrible en français pour les
césures). L'utilisateur peut toujours installer localement une
version récente de frenchle qui fournit \og et \fg.
Je joins à ce message un fichier typique produit par ce patch ainsi
que le patch (pour 1.4.0cvs) lui-même (il nécessite encore une
modification a lyx2lyx pour mettre a jour le langage des fichiers).
J'apprécierais que vous testiez le fichier guillemets.tex sur votre
installation TeX pour voir si le résultat est satisfaisant.
JMarc
guillemets.tex
Description: TeX document
Index: lib/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/ChangeLog,v
retrieving revision 1.709
diff -u -p -r1.709 ChangeLog
--- lib/ChangeLog 14 Jun 2005 10:29:46 -0000 1.709
+++ lib/ChangeLog 16 Jun 2005 14:43:08 -0000
@@ -1,3 +1,9 @@
+2005-06-16 Jean-Marc Lasgouttes <[EMAIL PROTECTED]>
+
+ * languages: remove language "frenchb"; with language "french"
+ provide default values for \og and \fg if needed; use babel option
+ "canadien" for French Canadian
+
2005-06-14 Jean-Marc Lasgouttes <[EMAIL PROTECTED]>
* configure.m4: remove texput.log after testing for spaces.
Index: lib/languages
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/languages,v
retrieving revision 1.21
diff -u -p -r1.21 languages
--- lib/languages 13 Sep 2004 14:27:19 -0000 1.21
+++ lib/languages 16 Jun 2005 14:43:08 -0000
@@ -11,7 +11,7 @@ breton breton "Breton" false iso88
british british "British" false iso8859-1 en_GB ""
bulgarian bulgarian "Bulgarian" false cp1251 bg_BG ""
canadian canadian "Canadian" false iso8859-1 en_CA ""
-canadien frenchb "French Canadian" false iso8859-1 fr_CA ""
+canadien canadien "French Canadian" false iso8859-1 fr_CA ""
catalan catalan "Catalan" false iso8859-1 ca_ES ""
croatian croatian "Croatian" false iso8859-2 hr_HR ""
czech czech "Czech" false iso8859-2 cs_CZ ""
@@ -22,8 +22,7 @@ esperanto esperanto "Esperanto" false
#and what country code should esperanto have?? (Garst)
estonian estonian "Estonian" false iso8859-1 et_EE ""
finnish finnish "Finnish" false iso8859-1 fi_FI ""
-frenchb frenchb "French" false iso8859-1 fr_FR ""
-french french "French (GUTenberg)" false iso8859-1 fr_FR ""
+french french "French" false iso8859-1 fr_FR
"\providecommand{\og}{\leavevmode\flqq~}\providecommand{\fg}{\ifdim\lastskip>[EMAIL
PROTECTED]"
galician galician "Galician" false iso8859-1 gl_ES ""
# There are two Galicia's one in Spain one in E.Europe. Because of
# the font encoding I am assuming this is the one in Spain. (Garst)
Index: src/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/ChangeLog,v
retrieving revision 1.2202
diff -u -p -r1.2202 ChangeLog
--- src/ChangeLog 14 Jun 2005 17:01:05 -0000 1.2202
+++ src/ChangeLog 16 Jun 2005 14:43:09 -0000
@@ -1,3 +1,8 @@
+2005-06-16 Jean-Marc Lasgouttes <[EMAIL PROTECTED]>
+
+ * LaTeXFeatures.C (getBabelOptions): put the babel options in the
+ \extra<lang> macro, so that they affect only one language.
+
2005-06-14 Angus Leeming <[EMAIL PROTECTED]>
* lyx_main.C (init): ensure that the LyX binary dir is the first
Index: src/LaTeXFeatures.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/LaTeXFeatures.C,v
retrieving revision 1.119
diff -u -p -r1.119 LaTeXFeatures.C
--- src/LaTeXFeatures.C 11 Jun 2005 11:02:22 -0000 1.119
+++ src/LaTeXFeatures.C 16 Jun 2005 14:43:09 -0000
@@ -453,9 +453,11 @@ string const LaTeXFeatures::getBabelOpti
LanguageList::const_iterator end = UsedLanguages_.end();
for (; it != end; ++it)
if (!(*it)->latex_options().empty())
- tmp << (*it)->latex_options() << '\n';
+ tmp << "\\addto{\\extras" << (*it)->babel() << "}{"
+ << (*it)->latex_options() << "}\n";
if (!params_.language->latex_options().empty())
- tmp << params_.language->latex_options() << '\n';
+ tmp << "\\addto{\\extras" << params_.language->babel() << "}{"
+ << params_.language->latex_options() << "}\n";
return tmp.str();
}
Index: src/insets/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/ChangeLog,v
retrieving revision 1.1151
diff -u -p -r1.1151 ChangeLog
--- src/insets/ChangeLog 2 Jun 2005 15:01:16 -0000 1.1151
+++ src/insets/ChangeLog 16 Jun 2005 14:43:09 -0000
@@ -1,3 +1,8 @@
+2005-06-16 Jean-Marc Lasgouttes <[EMAIL PROTECTED]>
+
+ * insetquotes.C (latex): always use \og/\fg for the french
+ language.
+
2005-05-31 Jean-Marc Lasgouttes <[EMAIL PROTECTED]>
* insetoptarg.C (InsetOptArg): make the inset open by default
Index: src/insets/insetquotes.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insetquotes.C,v
retrieving revision 1.120
diff -u -p -r1.120 insetquotes.C
--- src/insets/insetquotes.C 25 Nov 2004 19:13:05 -0000 1.120
+++ src/insets/insetquotes.C 16 Jun 2005 14:43:09 -0000
@@ -270,17 +270,11 @@ int InsetQuotes::latex(Buffer const &, o
string qstr;
if (language_ == FrenchQ && times_ == DoubleQ
- && runparams.local_language == "frenchb") {
+ && runparams.local_language == "french") {
if (side_ == LeftQ)
qstr = "\\og "; //the spaces are important here
else
qstr = " \\fg{}"; //and here
- } else if (language_ == FrenchQ && times_ == DoubleQ
- && runparams.local_language == "french") {
- if (side_ == LeftQ)
- qstr = "<< "; //the spaces are important here
- else
- qstr = " >>"; //and here
} else if (lyxrc.fontenc == "T1") {
qstr = latex_quote_t1[times_][quoteind];
#ifdef DO_USE_DEFAULT_LANGUAGE
