* Bugs 15921 15979 16223 fixed [xcos]: EXPRESSION CLR DLR multichar exponents 80/20880/10
Samuel GOUGEON [Sat, 23 Feb 2019 23:48:14 +0000 (00:48 +0100)]
  * http://bugzilla.scilab.org/15921 : "<" in scifunc_block_m
  * http://bugzilla.scilab.org/15979 : EXPRESSION CLR DLR multichar exponents
  * http://bugzilla.scilab.org/16223 : * management in EXPRESSION CLR DLR..
    See the thread of http://mailinglists.scilab.org/Scilab-users-CLR-design-component-is-not-clear-in-scilab-6-0-2-x64-W10-tp4039907p4040012.html
  * Protection of "_" added (as in variable name "ab_c" in expressions)

  * Expected rendering: http://bugzilla.scilab.org/attachment.cgi?id=4905
  * Follow-up of https://codereview.scilab.org/19768

  Moving EXPRESSION to the Maths palette in review
    @ https://codereview.scilab.org/20867

  Test for 15921:
    - add a scifunc_block_m block
    - double-click. Answer OK to the first GUI
    - second GUI: enter y1=2*(u1<3)
    - all next GUI: answer OK
    - Finally, check that in the updated icon the formula shows y1=2(u1<3)

Change-Id: I9b06e80d8c8d91a4360dd1ecd8409cd912dd6f97

13 files changed:
scilab/CHANGES.md
scilab/modules/scicos_blocks/macros/Linear/CLR.sci
scilab/modules/scicos_blocks/macros/Linear/DLR.sci
scilab/modules/scicos_blocks/macros/Misc/EXPRESSION.sci
scilab/modules/scicos_blocks/macros/Misc/expr2LaTeX.sci [new file with mode: 0644]
scilab/modules/scicos_blocks/macros/Misc/scifunc_block_m.sci
scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.tst [new file with mode: 0644]
scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.zcos [new file with mode: 0644]
scilab/modules/xcos/help/en_US/palettes/Continuous_pal/CLR.xml
scilab/modules/xcos/help/en_US/palettes/Discrete_pal/DLR.xml
scilab/modules/xcos/help/en_US/palettes/Userdefinedfunctions_pal/EXPRESSION.xml
scilab/modules/xcos/help/fr_FR/palettes/Continuous_pal/CLR.xml
scilab/modules/xcos/help/fr_FR/palettes/Discrete_pal/DLR.xml

index 21bcd9a..9050b40 100644 (file)
@@ -387,6 +387,7 @@ Bug Fixes
 * [#15840](https://bugzilla.scilab.org/15840): `grand(1,"prm",m)` yielded an unsqueezed size([size(m) 1]) hypermatrix
 * [#15861](https://bugzilla.scilab.org/15861): The `overloadname` internal macro defined in CACSD was a duplicate of `typeof(,"overload")`. It is removed.
 * [#15874](https://bugzilla.scilab.org/15874): The `scatter3` function name was an unfounded naming exception. It had to be renamed `scatter3d`.
+* [#15921](https://bugzilla.scilab.org/15921): Xcos user's function `scifunc_block_m` block: any `<` in the expression was not displayed on the block's icon.
 * [#15934](https://bugzilla.scilab.org/15934): The `^ hat` page wrongly indicated that `^` applied to a rectangular matrix not being a vector is done element-wise.
 * [#15948](https://bugzilla.scilab.org/15948): `xlabel`, `ylabel`, `zlabel` and `title` needed to be upgraded.
 * [#15964](https://bugzilla.scilab.org/15954): A complex empty sparse matrix could be obtained after insertion.
@@ -396,6 +397,7 @@ Bug Fixes
 * [#15974](https://bugzilla.scilab.org/15974): `msprintf("%d", %nan)` did not return Nan
 * [#15977](https://bugzilla.scilab.org/15977): The documentation for `wavread(..,'info')` had a mistake. The `wavread` page deserved some improvements.
 * [#15978](https://bugzilla.scilab.org/15978): The `writewav` page in english said that input data are one column per channel, instead of one row per channel. In addition, in case of writing error, `savewave` kept the output file open and locked.
+* [#15979](https://bugzilla.scilab.org/15979): `EXPRESSION`, `CLR` and `DLR` Xcos blocks did not (always) correctly display multicharacter exponents in expressions displayed in their icons.
 * [#15981](https://bugzilla.scilab.org/15981): `wavread` kept the wav file open and locked when returning on errors. It weakly managed the input file name. It claimed for invalid data formats instead of unsupported ones, with poor information about the current format vs the supported ones. Several error messages refered to a wrong function.
 * [#15983](https://bugzilla.scilab.org/15983): `group` regressed in 5.5.2 due to a too intrusive fix.
 * [#15984](https://bugzilla.scilab.org/15984): display scale was wrong with Retina dispplays on OSX..
@@ -474,6 +476,7 @@ Bug Fixes
 * [#16209](https://bugzilla.scilab.org/16209): `grand` causes a freeze after several consecutive calls when using default base generator.
 * [#16210](https://bugzilla.scilab.org/16210): The uicontrol.units = "normalized" property was not described.
 * [#16215](https://bugzilla.scilab.org/16215): `mfile2sci` badly converted the colon `:` into `mtlb(:)`
+* [#16223](https://bugzilla.scilab.org/16223): `EXPRESSION`, `CLR` and `DLR` Xcos blocks sometimes displayed multiplied terms in an ambiguous way in their icons.
 * [#16227](https://bugzilla.scilab.org/16227): `WSCI` was not defined as environment variable and could not be used as `%WSCI%` in commands sent with `host` or `unix_*`.
 * [#16228](https://bugzilla.scilab.org/16228): `bode` and `nyquist` inline demos did not clear and reset the current axes where to draw, what could yield an error.
 * [#16229](https://bugzilla.scilab.org/16229): Some outdated parts of the `help scilab` page were misleading.
index 8d68661..b1b4df5 100644 (file)
@@ -1,7 +1,7 @@
 //  Scicos
 //
 // Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
-// Copyright (C) 2018 - Samuel GOUGEON
+// Copyright (C) 2018 - 2019 - Samuel GOUGEON
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -75,27 +75,16 @@ function [x,y,typ]=CLR(job,arg1,arg2)
                 x.graphics=graphics;
                 x.model=model
 
-                // Protecting ^{.} groups for LaTeX after num and den have been generated:
-                //  http://bugzilla.scilab.org/14551
-                // Groups replacement impossible with strsubst(): http://bugzilla.scilab.org/9123
+                // Protecting ^{.} groups for LaTeX after num and den
+                // have been generated: http://bugzilla.scilab.org/14551
+                // and other protections and display improvements:
                 content = exprs;
                 if content~=[]
                     for i = 1:2
-                        txt = content(i);
-                        [s,e,m] = regexp(txt, "/\^\s*\-{0,1}[0-9]+\.{0,1}[0-9]*/")
-                        m = strsubst(m," ","");
-                        if s~=[]
-                            for s = m'
-                                txt = strsubst(txt, s, "^{"+part(s,2:$)+"}");
-                            end
-                        end
-                        txt = strsubst(txt,"*","\,")
-                        txt = strsubst(txt,"+","\!+\!")
-                        txt = strsubst(txt,"-","\!-\!")
-                        txt = strsubst(txt,"%","\%")
-                        content(i) = txt;
+                        content(i) = expr2LaTeX(content(i))
                     end
                 end
+
                 lab = "CLR;displayedLabel=$\small\mathsf\frac{"+content(1)+"}{"+content(2)+"}$"
                 x.graphics.style = lab;
                 break
index 7533019..d65fe15 100644 (file)
@@ -1,7 +1,7 @@
 //  Scicos
 //
 // Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
-// Copyright (C) 2018 - Samuel GOUGEON
+// Copyright (C) 2018 - 2019 - Samuel GOUGEON
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -74,25 +74,13 @@ function [x,y,typ]=DLR(job,arg1,arg2)
                 x.graphics=graphics;
                 x.model=model
 
-                // Protecting ^{.} groups for LaTeX after num and den have been generated:
-                //  http://bugzilla.scilab.org/14551
-                // Groups replacement impossible with strsubst(): http://bugzilla.scilab.org/9123
+                // Protecting ^{.} groups for LaTeX after num and den
+                // have been generated: http://bugzilla.scilab.org/14551
+                // and other protections and display improvements:
                 content = exprs;
                 if content~=[]
                     for i = 1:2
-                        txt = content(i);
-                        [s,e,m] = regexp(txt, "/\^\s*\-{0,1}[0-9]+\.{0,1}[0-9]*/")
-                        m = strsubst(m," ","");
-                        if s~=[]
-                            for s = m'
-                                txt = strsubst(txt, s, "^{"+part(s,2:$)+"}");
-                            end
-                        end
-                        txt = strsubst(txt,"*","\,")
-                        txt = strsubst(txt,"+","\!+\!")
-                        txt = strsubst(txt,"-","\!-\!")
-                        txt = strsubst(txt,"%","\%")
-                        content(i) = txt;
+                        content(i) = expr2LaTeX(content(i))
                     end
                 end
                 lab = "DLR;displayedLabel=$\small\mathsf\frac{"+content(1)+"}{"+content(2)+"}$"
index 6024a7d..6f85459 100644 (file)
@@ -1,6 +1,7 @@
 //  Scicos
 //
-//  Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+// Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
+// Copyright (C) 2018 - 2019 - Samuel GOUGEON
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -96,13 +97,11 @@ function [x,y,typ]=EXPRESSION(job,arg1,arg2)
                                 model.nmode=0
                             end
                             graphics.exprs=exprs;
-                            // Updating the protected label: http://bugzilla.scilab.org/14680
-                            // "<" can't be replaced with "&lt;" because ";" is
-                            //  used as subfield separator in the graphics.style field...
-                            // => using a LaTeX expression instead
-                            lab = strsubst(exprs(2), "%", "\%");
-                            lab = strsubst(lab, "&", "\&");
-                            lab = strsubst(lab, "~", "{\small\sim\!}");
+
+                            // Protecting ^{.} groups for LaTeX after num and den
+                            // have been generated: http://bugzilla.scilab.org/14551
+                            // and other protections and display improvements:
+                            lab = expr2LaTeX(exprs(2));
                             tmp = [
                                 "$\mathsf\scalebox{0.8}{"
                                 "\begin{array}{c}"
diff --git a/scilab/modules/scicos_blocks/macros/Misc/expr2LaTeX.sci b/scilab/modules/scicos_blocks/macros/Misc/expr2LaTeX.sci
new file mode 100644 (file)
index 0000000..db8d8eb
--- /dev/null
@@ -0,0 +1,78 @@
+// Scilabel ( http://www.scilabel.org/ ) - This file is part of Scilabel
+// Copyright (C) 2019 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be availabelle under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function label = expr2LaTeX(exprs)
+    // Internal function called by some blocks interfaces functions
+    //  to format the expression to be displayed on the block's icon
+    // (CLR, DLR, EXPRESSION, scifunc_block_m ..)
+
+    label = exprs
+    if label~=[]
+        // Protecting "<" : http://bugzilla.scilabel.org/14680
+        // "<" can't be replaced with "&lt;" because ";" is
+        //  used as subfield separator in the graphics.style field...
+        // => using a LaTeX expression instead
+        // Protecting %, &, ~, and _ that have a special meaning in LaTeX
+        label = strsubst(label, "%", "{\footnotesize\%}");
+        label = strsubst(label, "&", "\,\&\,");
+        label = strsubst(label, "~", "{\small\sim\!}");
+        label = strsubst(label, "_", "{\scriptsize\_}")
+
+        // Protecting ^{.} groups for LaTeX:
+        // Bracing exponents (after .^ and ^): the exponent is
+        //  assumed to end with the first encountered space or EOL
+        //  http://bugzilla.scilab.org/14551
+        //  http://bugzilla.scilab.org/15979
+        // Groups replacement impossible with strsubst():
+        // http://bugzilla.scilabel.org/9123
+          regexpon = "/\^((\s*[\-+]?\s*[0-9]+\.?[0-9]*)|[^\s]+)/"
+        // label = "s^ab +s^ 10+s^-12.4-s^20"
+        //--> [b,e,m] = regexp(label, regExpon)
+        // m  =
+        //!^ab     !
+        //!^ 10    !
+        //!^-12.4  !
+        //!^20     !
+        [b,e,m] = regexp(label, regexpon)
+        if b~=[]
+            for s = m'
+                rep = strsubst(part(s,2:$),"+","\,+\,");
+                rep = strsubst(rep,"-","\,-\,");
+                label = strsubst(label, s, "^{"+rep+"}");
+            end
+        end
+        // Improving * display:
+        rep = ["/((\d|\.)\s*\*\s*\d|\*\s*\-)/", "/\s*\*\s*/", "\!\times\! "
+               "/(\)\s*\*\s*\d|[^\d\.\)]\s*\*\s*[^\(])/", "/\s*\*\s*/", "\!\cdot\! "
+               "/\s*\*\s*/", "/\s*\*\s*/", "\,"];
+        for r = rep'
+            [b,e,m] = regexp(label, r(1));
+            for i = 1:length(b)
+                label = strsubst(label, m(i), strsubst(m(i), r(2), r(3), "r"));
+            end
+        end
+        // Improving operators display
+        label = strsubst(label,"<=","\le ")
+        label = strsubst(label,">=","\ge ")
+        //label = strsubst(label,"+","\!+\!")
+        //label = strsubst(label,"-","\!-\!")
+        label = strsubst(label, "|", "\,|\,");
+        // Other improvements
+        // label = strsubst(label,"u1","u_{1}")
+        // label = strsubst(label,"u2","u_{2}")
+        // "au1" will be replaced with au_{1} and u123 with "u_{1}23".
+        // Not possible with the Scilab's strsubst() to do better:
+        // non-capturing heading parentheses nor groups replacement are supported
+        // delim = "[\s()-+*\\\/.^''~]";
+        // strsubst(label,"/(?:^|"+delim+")u1"+delim+"/","u_{2}", "r")
+    else
+        label = ""
+    end
+endfunction
index 32a4c26..393cab8 100644 (file)
@@ -99,11 +99,30 @@ function [x,y,typ]=scifunc_block_m(job,arg1,arg2)
                 x.model=model
                 exprs(2)=tt
                 graphics.exprs=exprs
+
+                // Protecting the "<" in the function expression as pointed
+                // in http://bugzilla.scilab.org/15921 can't be done with
+                // "&lt;" due to the ";" that is a separator in
+                // graphics.style => LaTeX required
+                // + other protections and style improvements with LaTeX
+                lab = expr2LaTeX(tt(1));
+                tmp = [
+                    "$\mathsf\scalebox{0.8}{"
+                    "\begin{array}{c}"
+                        "\mbox{Expression:}\\"
+                        "\scalebox{0.9}{"+lab+"}"
+                    "\end{array}"
+                    "}$"
+                    ];
+                lab = "scifunc_block_m;displayedLabel="+strcat(tmp);
+                graphics.style = lab;
+                sleep(100)
                 x.graphics=graphics
                 break
             end
         end
         needcompile=resume(needcompile)
+
     case "define" then
         in=1
         out=1
diff --git a/scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.tst b/scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.tst
new file mode 100644 (file)
index 0000000..769b585
--- /dev/null
@@ -0,0 +1,35 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- XCOS TEST -->
+// <-- INTERACTIVE TEST -->  Last check: 6.1.0-master 2019-02-24
+//
+// <-- Non-regression test for bug 15979 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15979
+//
+// <-- Short Description -->
+//  * EXPRESSION block: for multi-character powers, only the first character was displayed in
+//    exponent on the icon
+//  * CLR and DLR blocks: same issue when the power is specified through a variable whose name
+//    is more than 2-character long.
+
+// TEST:
+
+xcos("SCI/modules/scicos_blocks/tests/nonreg_tests/bug_15979.zcos");
+
+// For each block:
+//  * Double-click on the block to open its parameters interface.
+//  * Press "OK" to validate the existing inputs.
+//  * Check that the display of exponents on its icon is still correct.
+//    Reference display: http://bugzilla.scilab.org/attachment.cgi?id=4905
+//    All the multi-char exponents must be correctly displayed on the blocks icons
+//     - literal numbers: "1.5", "2.3", "+10", "10"
+//     - "ab" or "%eps" variable
+//     - "(1.5-%eps)" expression
+//  * By the way, special characters "%", "&" and "<" must be also well displayed.
diff --git a/scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.zcos b/scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.zcos
new file mode 100644 (file)
index 0000000..b832ce7
Binary files /dev/null and b/scilab/modules/scicos_blocks/tests/nonreg_tests/bug_15979.zcos differ
index d36190a..9470f69 100644 (file)
                 <para> This parameter sets the numerator of the transfer function.</para>
                 <para> This must be a polynomial in s.</para>
                 <para> Properties : Type 'pol' of size 1. </para>
+                <warning>
+                    In the provided expression, any subexpression being an exponent given either by
+                    a variable (of the context) whose name is more than 1-character long, or by an
+                    expression (not a literal integer) must end with a space to be correctly
+                    displayed on the block's icon.
+                    <para/>
+                    This constrain has no consequence on the computational validity of the expression.
+                    <para/>
+                    Examples: "s^12+1", "s^ +12+1", "s^+ 12+1" are all displayed as "s^{12}+1",
+                    while "1+s^ab+s^2" will be displayed as "1+s^{ab+s^2}"
+                    (but will be well computed as <literal>1 + s^ab + s^2</literal>).
+                    To make it well displayed, "1+s^ab +s^2" will have to be entered (for instance).
+                </warning>
             </listitem>
             <listitem>
                 <para>
                 <para> This parameter sets the denominator of the transfer function.</para>
                 <para> This must be a polynomial in s.</para>
                 <para> Properties : Type 'pol' of size 1. </para>
+                <para> Take care about multichar exponents (see <literal>Numerator</literal>).</para>
             </listitem>
         </itemizedlist>
     </refsection>
index 18919a8..3de840d 100644 (file)
                     This must be a polynomial in<emphasis role="bold">z</emphasis> .
                 </para>
                 <para> Properties : Type 'pol' of size 1. </para>
+                <warning>
+                    In the provided expression, any subexpression being an exponent given either by
+                    a variable (of the context) whose name is more than 1-character long, or by an
+                    expression (not a literal integer) must end with a space to be correctly
+                    displayed on the block's icon.
+                    <para/>
+                    This constrain has no consequence on the computational validity of the expression.
+                    <para/>
+                    Examples: "z^12+1", "z^ +12+1", "z^+ 12+1" are all displayed as "z^{12}+1",
+                    while "1+z^ab+z^2" will be displayed as "1+z^{ab+z^2}"
+                    (but will be well computed as <literal>1 + z^ab + z^2</literal>).
+                    To make it well displayed, "1+z^ab +z^2" will have to be entered (for instance).
+                    As well, "z^(ab+1) + 2" will have to be entered, instead of "z^(ab+1)+2".
+                </warning>
             </listitem>
             <listitem>
                 <para>
                     This must be a polynomial in<emphasis role="bold">z</emphasis> .
                 </para>
                 <para> Properties : Type 'pol' of size 1.</para>
+                <para> Take care about multichar exponents (see <literal>Numerator</literal>).</para>
             </listitem>
         </itemizedlist>
     </refsection>
index 924db5f..39efbcb 100644 (file)
                 </tr>
                 </table>
                 </para>
+                <warning>
+                    In the provided expression, any subexpression being an exponent more than
+                    1-character long must end with a space, to be correctly displayed on the
+                    block's icon.
+                    <para/>
+                    This constrain has no consequence on the computational validity of the expression.
+                    <para/>
+                    Examples: "u1^12-u2", "u1^ 12-u2", "u1^abc - 3", "u1^(u2-3) + 4" will be
+                    correctly displayed, while "u1^abc-3" would be displayed as "u1^{abc-3}"
+                    (but well computed as <literal>u1^abc + 3</literal>)
+                    and "u1^(u2-3)+4" as "u1^{(u2-3)+4}" instead of "u1^{(u2-3)} + 4".
+                    "u1^abc - 3" and "u1^(u2-3) + 4" will have to be entered instead.
+                </warning>
             </listitem>
             <listitem>
                 <para>
index e7be4cc..51164fd 100644 (file)
  *
  -->
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
-                 xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
-                 xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
-                 xml:id="CLR" xml:lang="fr">
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:id="CLR" xml:lang="fr">
     <refnamediv>
         <refname>CLR</refname>
         <refpurpose>Fonction de transfert continue</refpurpose>
     </refnamediv>
     <refsection>
         <title>Aperçu</title>
-               <inlinemediaobject>
-                       <imageobject>
-                               <imagedata fileref="../../../../images/palettes/CLR.png" align="center"/>
-                       </imageobject>
-               </inlinemediaobject>
+        <inlinemediaobject>
+            <imageobject>
+                <imagedata fileref="../../../../images/palettes/CLR.png" align="center"/>
+            </imageobject>
+        </inlinemediaobject>
     </refsection>
     <refsection id="Contents_CLR">
         <title>Contenu</title>
-               <itemizedlist>
-                       <listitem>
-                               <xref linkend="Description_CLR">Description</xref>
-                       </listitem>
-                       <listitem>
-                               <xref linkend="Dialogbox_CLR">Paramètres</xref>
-                       </listitem>
-                       <listitem>
-                               <xref linkend="Defaultproperties_CLR">Propriétés par défaut</xref>
-                       </listitem>
-                       <listitem>
-                               <xref linkend="Interfacingfunction_CLR">Fonction d'interfaçage</xref>
-                       </listitem>
-                       <listitem>
-                               <xref linkend="Computationalfunction_CLR">Fonction de calcul</xref>
-                       </listitem>
-               </itemizedlist>
+        <itemizedlist>
+            <listitem>
+                <xref linkend="Description_CLR">Description</xref>
+            </listitem>
+            <listitem>
+                <xref linkend="Dialogbox_CLR">Paramètres</xref>
+            </listitem>
+            <listitem>
+                <xref linkend="Defaultproperties_CLR">Propriétés par défaut</xref>
+            </listitem>
+            <listitem>
+                <xref linkend="Interfacingfunction_CLR">Fonction d'interfaçage</xref>
+            </listitem>
+            <listitem>
+                <xref linkend="Computationalfunction_CLR">Fonction de calcul</xref>
+            </listitem>
+        </itemizedlist>
     </refsection>
     <refsection id="Description_CLR">
         <title>Description</title>
         <para>
             Ce bloc réalise une système linaire représenté par sa fonction de transfert rationnelle
-                       <emphasis role="bold">Numerator/Denominator</emphasis>. La fraction rationnelle doit
-                       être propre (degré du dénominateur inférieur ou égal à degré du numérateur).
+            <emphasis role="bold">Numerator/Denominator</emphasis>. La fraction rationnelle doit
+            être propre (degré du dénominateur inférieur ou égal à degré du numérateur).
         </para>
     </refsection>
     <refsection id="Dialogbox_CLR">
         <title>Paramètres</title>
-               <inlinemediaobject>
-                       <imageobject>
-                               <imagedata fileref="../../../../images/gui/CLR_gui.gif" align="center" style="float:right"/>
-                               <!-- align => Javahelp, style => Online -->
-                       </imageobject>
-               </inlinemediaobject>
+        <inlinemediaobject>
+            <imageobject>
+                <imagedata fileref="../../../../images/gui/CLR_gui.gif" align="center" style="float:right"/>
+                <!-- align => Javahelp, style => Online -->
+            </imageobject>
+        </inlinemediaobject>
         <itemizedlist>
             <listitem>
                 <para>
                 <para> Ce paramètre initialise le numérateur de la fonction de transfert.</para>
                 <para> Ce doit un être un polynôme en s.</para>
                 <para> Propriétés Type 'pol' de taille 1. </para>
+                <warning>
+                    Dans l'expression fournie, toute sous-expression représentant un exposant
+                    libélé soit par une variable (du contexte) dont le nom fait au moins 2
+                    caractères, soit par une expression (autre qu'un entier literal), doit se
+                    terminer par un espace (utilisé comme terminateur d'exposant). Dans le cas
+                    contraire, l'expression sera incorrectement affichée sur l'icône du bloc.
+                    Cette contrainte n'a aucun effet sur la validité computationnelle de l'expression.
+                    <para/>
+                    Exemples: "s^12+1", "s^ +12+1", "s^+ 12+1" sont toutes affichées pour "s^{12}+1",
+                    alors que "1+s^ab+s^2" sera affichée comme "1+s^{ab+s^2}"
+                    (mais sera calculée comme <literal>1 + s^ab + s^2</literal>).
+                    Pour un affichage correct, "1+s^ab + s^2" devra être saisie.
+                    De même, "s^(ab+1) + 2" devra être saisie, au lieu de "s^(ab+1)+2".
+                </warning>
             </listitem>
             <listitem>
                 <para>
@@ -81,6 +95,7 @@
                 <para> Ce paramètre initialise le dénominateur de la fonction de transfert.</para>
                 <para> Ce doit un être un polynôme en s.</para>
                 <para> Propriétés Type 'pol' de taille 1. </para>
+                <para> Attention au libélé des exposants (voir <literal>Numerator</literal>).</para>
             </listitem>
         </itemizedlist>
     </refsection>
                 </para>
             </listitem>
         </itemizedlist>
-               <para/>
+        <para/>
     </refsection>
     <refsection id="Interfacingfunction_CLR">
         <title>Fonction d'interfaçage</title>
index 2563904..159c3a6 100644 (file)
                     Ce doit être un polynôme en <emphasis role="bold">z</emphasis> .
                 </para>
                 <para> Propriétés : Type 'pol' de taille 1. </para>
+                <warning>
+                    Dans l'expression fournie, toute sous-expression représentant un exposant
+                    libélé soit par une variable (du contexte) dont le nom fait au moins 2
+                    caractères, soit par une expression (autre qu'un entier literal), doit se
+                    terminer par un espace (utilisé comme terminateur d'exposant). Dans le cas
+                    contraire, l'expression sera incorrectement affichée sur l'icône du bloc.
+                    <para/>
+                    Cette contrainte n'a cependant aucun effet sur la validité computationnelle
+                    de l'expression.
+                    <para/>
+                    Exemples: "z^12+1", "z^ +12+1", "z^+ 12+1" sont toutes affichées pour "z^{12}+1",
+                    alors que "1+z^ab+z^2" sera affichée comme "1+z^{ab+z^2}"
+                    (mais sera calculée comme <literal>1 + z^ab + z^2</literal>).
+                    Pour un affichage correct, "1+z^ab + z^2" devra être saisie.
+                    De même, "z^(ab+1) + 2" devra être saisie, au lieu de "z^(ab+1)+2".
+                </warning>
             </listitem>
             <listitem>
                 <para>
                     Ce doit être un polynôme en <emphasis role="bold">z</emphasis> .
                 </para>
                 <para> Propriétés : Type 'pol' de taille 1.</para>
+                <para> Attention au libélé des exposants (voir <literal>Numerator</literal>).</para>
             </listitem>
         </itemizedlist>
     </refsection>