- It can now sort any sparse 2D matrix, in all `g, r, c, lr, lc` methods, including sparse booleans and in multi-level mode. It was formerly limited to sparse real or complex vectors and only to the `g` mode.
- Any hypermatrix can be sorted along a dimension > 2.
* `unique` is enabled for any 2D sparse arrays, in simple, 'c' and 'r' modes.
+* %chars constant added, to easily access to some selected sets of unicode symbols.
Help pages:
-----------
* [#7117](https://bugzilla.scilab.org/7117): `findobj()` could not search within given object.
* [#8059](https://bugzilla.scilab.org/8059): A local `.wgetrc` config file could make troubles in `atomsDownload`.
* [#8378](https://bugzilla.scilab.org/8378): Datatip `ContextMenu => Delete last datatip` was useless.
+* [#9221](https://bugzilla.scilab.org/9221): There was no way in Scilab to easily access to sets of unicode symbols like greek letters, etc.
* [#9909](https://bugzilla.scilab.org/9909): In the help browser, add a way to open the online version of the current page.
* [#10476](https://bugzilla.scilab.org/10476): From `browsevar`, displaying the content of lists, structures, cells, or other custom tlists or mlists was not possible.
* [#12418](https://bugzilla.scilab.org/12418): Using bvode() with "continuation", i.e. `ipar(9) > 1` led to an error.
end
setenv("VERSION", getversion());
+// Add %chars constant ================================================
+%chars = percentchars()
+
// ATOMS ===============================================================
if with_module("atoms") then
atomsSystemInit();
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2020 - 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 available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg" xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="percentchars">
+ <refnamediv>
+ <refname>%chars</refname>
+ <refpurpose>Selected sets of Unicode characters</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Syntax</title>
+ <synopsis>%chars</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <emphasis role="bold">%chars</emphasis> is a Scilab constant made
+ of a structure gathering various sets of Unicode characters.
+ </para>
+ <para>
+ %chars aims to easily access to greek letters, most frequent mathematical
+ symbols, arrows, etc. After displaying %chars in the console or displaying this page in
+ the help browser, copy/pasting selected characters wherever they are needed becomes
+ trivial and very handy.
+ </para>
+ <para>
+ In many simple situations -- when setting legends in graphics, writing some
+ help pages or some other documentation, etc, using ready-to-read special characters
+ instead of not-rendered raw LaTeX technical expressions is enough and helpful.
+ </para>
+ <important>
+ Character sets provided by %chars must not be considered as fixed and definitive.
+ The number of sets, their names, hierarchy, and order can vary in the future,
+ as well as the order of characters in the sets. In addition, a given character
+ may belong to several sets.
+ </important>
+ <note>
+ The full display of all %chars contents in the console may require tuning the
+ <emphasis>General:Environment/Containers display depth</emphasis> parameter
+ in the Preferences.
+ </note>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+%chars
+ ]]></programlisting>
+ <screen><![CDATA[
+--> %chars
+ %chars =
+ greek: struct with fields:
+ lower = "αβδεϵζηθικλμνξοπρστυφϕχψωάϐέήϑίϊϰόϱςύϋΰϖώ"
+ upper = "ΑΒΓΔΕΖΗΘϴΙΪΚΛΜΝΞΟΠΡΣΤΥΫΦΧΨΩ KΩ℧"
+ subsupscript = "₀₁₂₃₄₅₆₇₈₉₊₋₌₍ₐₕₖₗₘₙₒₚₛₜₓ₎ ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽ªⁱⁿº⁾"
+ maths: struct with fields:
+ frac = "½ ⅓ ¼ ⅕ ⅙ ⅛ ⅔ ⅖ ¾ ⅗ ⅜ ⅘ ⅚ ⅝ ⅞"
+ sets = "ℂⅅℍℕℙℚℝℤ∉∈∊∍∋∌∅∖⋂∩⋃∪⊂⊆⊄⊅⊇⊃⋐⋑⋒⋓"
+ operators = "−±∓∔÷×∏∐∑√∛∜⋅⋆⊕⊖⊝⊗⊘⊙⊚⊛⊜⊞⊟⊠⊡"
+ comparisons = "⋘≪≤≲≳≥≫⋙≠≃≄≅≈∽∝≍≐≔≕≝"
+ integdiff = "∂∇∆∫∬∭∮∯∰∱⨑∲"
+ geometry = "°′″∟⊾∠∡∢⊥∥∦∺∻≎⊿⋕"
+ logical = "∀∃∄∧∨⋀⋁⊼⊽⊻∁∴∵∎≍"
+ misc = "⋮⋰⋯⋱ ′ ″ ∞ ‰ ‱"
+ physics = "Å ℃ ℉ ħ"
+ arrows: struct with fields:
+ base = "←↖↑↗→↘↓↙↔↕↵↱↴☇⇐⇑⇒⇓⇔↺↻⊣⊥⊢⊤"
+ thick = "⬅⬆➞⬇➚➙➘➔➜➡➥➦➧➨➼➽"
+ symbols = "…⋈⋔⋄♢◊♤♧♡♦♠♣♥©®℗Ⓢ™℡♀♂⌘✠♻☎«»◬⨺⨹⨻¶"
+ stars = "⋆★☆✫✯✰✭✡⊛⍟✪❂✻✼✹✸✶"
+ currencies = "¤ $ ¢ € £ ¥ 円 元 ₪ ฿ ¢ ₫ ₣"
+ lang: struct with fields:
+ latin: struct with fields:
+ voydiac = "áàâãäāăåéêèëēěėíîïóòôõöőōúùûŭũūůüűýŷÿ"
+ condiac = "ćĉčçċďđǵĜ ğġĥħĵķĺļłńňņŕřŗśŝšşťţŵźžż"
+ special = "æ Æ œ Œ ℬ ъ Ъ Þ þ ⅆ ℇ ℈ ℰ ƒ ⨍ ℊ ℱ ℏ ℎ ℋ ℌ ℐ ℑ ℳ № ℘ ℛ ℜ"
+ LATIN: struct with fields:
+ voydiac = "ÁÀÂÃÄĀĂÅÉÊÈËĒĚĖÍÎÏÓÒÔÕÖŐŌÚÙÛŬŨŪŮÜŰÝŶŸ"
+ condiac = "ĆĈČĊÇĎĐ ĝĢĞĠĤĦĴĶĹĻŁŃŇŅŔŘŖŚŜŠŞŤŢŴŹŽŻ"
+ russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
+ RUSSIAN = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
+ japanese: struct with fields:
+ hiragana: struct with fields:
+ a = "あかさたなはまやらわ がざだばぱ"
+ e = "えけせてねへめ れゑ げぜでべぺ"
+ i = "いきしちにひみ りゐ ぎじぢびぴ"
+ o = "おこそとのほもよろをんごぞどぽ"
+ u = "うくすつぬふむゆる ぐずづぶぷ"
+ arabic: struct with fields:
+ alone1 = "ش س ز ر ذ د خ ح ج ث ت ب ا ء"
+ alone2 = "ي و ه ن م ل ك ق ف غ ع ظ ط ض ص"
+]]></screen>
+ </refsection>
+ <refsection role="see also">
+ <title></title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xlfont">xlfont</link>
+ </member>
+ <member>
+ <link linkend="math_rendering_features_in_graphic">LaTeX in Scilab</link>
+ </member>
+ <member>
+ <link linkend="console">console</link>
+ </member>
+ <member>
+ <link linkend="ascii">ascii</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection role="history">
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>6.1.1</revnumber>
+ <revdescription>
+ %chars introduced.
+ </revdescription>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2020 - 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 available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg" xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="percentchars">
+ <refnamediv>
+ <refname>%chars</refname>
+ <refpurpose>Избранные наборы символов Unicode</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Синтаксис</title>
+ <synopsis>%chars</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Описание</title>
+ <para>
+ <emphasis role="bold">%chars</emphasis> является константой Scilab,
+ сделанной из структуры, сбором различных наборов символов Unicode.
+ </para>
+ <para>
+ <literal>%chars</literal> предназначена для лёгкого доступа к греческим
+ буквам, наиболее часто встречающимся математическим символам, стрелкам
+ и т.д. После отображения <literal>%chars</literal> в консоли или отображая
+ эту страницу в браузере справки, копирование/вставка выбранных символов
+ становится тривиальной и очень удобной, где бы то ни было.
+ </para>
+ <para>
+ Во многих простых ситуациях - при вставке легенды в графики, написании
+ некоторых страниц справки или иной документации и т.д., довольно удобно
+ и приятно использование готовых к чтению специальных символов вместо
+ несгенерированных сырых технических LaTeX-выражений.
+ </para>
+ <important>
+ Наборы символов, предоставляемые <literal>%chars</literal> не должны
+ рассматриваться, как фиксированные и определённые. Число наборов, их
+ имена, иерархия и порядок могут изменяться со временем, так же как и
+ порядок символов в наборах. К тому же указанные символы могут принадлежать
+ к нескольким наборам.
+ </important>
+ <note>
+ Полное отображение всего содержимого <literal>%chars</literal> в командном
+ окне может потребовать изменения параметра <emphasis>Общее:глубина
+ отображения Среды/Контейнеров</emphasis> в Настройках.
+ </note>
+ </refsection>
+ <refsection>
+ <title>Примеры</title>
+ <programlisting role="example"><![CDATA[
+%chars
+ ]]></programlisting>
+ <screen><![CDATA[
+--> %chars
+ %chars =
+ greek: struct with fields:
+ lower = "αβδεϵζηθικλμνξοπρστυφϕχψωάϐέήϑίϊϰόϱςύϋΰϖώ"
+ upper = "ΑΒΓΔΕΖΗΘϴΙΪΚΛΜΝΞΟΠΡΣΤΥΫΦΧΨΩ KΩ℧"
+ subsupscript = "₀₁₂₃₄₅₆₇₈₉₊₋₌₍ₐₕₖₗₘₙₒₚₛₜₓ₎ ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽ªⁱⁿº⁾"
+ maths: struct with fields:
+ frac = "½ ⅓ ¼ ⅕ ⅙ ⅛ ⅔ ⅖ ¾ ⅗ ⅜ ⅘ ⅚ ⅝ ⅞"
+ sets = "ℂⅅℍℕℙℚℝℤ∉∈∊∍∋∌∅∖⋂∩⋃∪⊂⊆⊄⊅⊇⊃⋐⋑⋒⋓"
+ operators = "−±∓∔÷×∏∐∑√∛∜⋅⋆⊕⊖⊝⊗⊘⊙⊚⊛⊜⊞⊟⊠⊡"
+ comparisons = "⋘≪≤≲≳≥≫⋙≠≃≄≅≈∽∝≍≐≔≕≝"
+ integdiff = "∂∇∆∫∬∭∮∯∰∱⨑∲"
+ geometry = "°′″∟⊾∠∡∢⊥∥∦∺∻≎⊿⋕"
+ logical = "∀∃∄∧∨⋀⋁⊼⊽⊻∁∴∵∎≍"
+ misc = "⋮⋰⋯⋱ ′ ″ ∞ ‰ ‱"
+ physics = "Å ℃ ℉ ħ"
+ arrows: struct with fields:
+ base = "←↖↑↗→↘↓↙↔↕↵↱↴☇⇐⇑⇒⇓⇔↺↻⊣⊥⊢⊤"
+ thick = "⬅⬆➞⬇➚➙➘➔➜➡➥➦➧➨➼➽"
+ symbols = "…⋈⋔⋄♢◊♤♧♡♦♠♣♥©®℗Ⓢ™℡♀♂⌘✠♻☎«»◬⨺⨹⨻¶"
+ stars = "⋆★☆✫✯✰✭✡⊛⍟✪❂✻✼✹✸✶"
+ currencies = "¤ $ ¢ € £ ¥ 円 元 ₪ ฿ ¢ ₫ ₣"
+ lang: struct with fields:
+ latin: struct with fields:
+ voydiac = "áàâãäāăåéêèëēěėíîïóòôõöőōúùûŭũūůüűýŷÿ"
+ condiac = "ćĉčçċďđǵĜ ğġĥħĵķĺļłńňņŕřŗśŝšşťţŵźžż"
+ special = "æ Æ œ Œ ℬ ъ Ъ Þ þ ⅆ ℇ ℈ ℰ ƒ ⨍ ℊ ℱ ℏ ℎ ℋ ℌ ℐ ℑ ℳ № ℘ ℛ ℜ"
+ LATIN: struct with fields:
+ voydiac = "ÁÀÂÃÄĀĂÅÉÊÈËĒĚĖÍÎÏÓÒÔÕÖŐŌÚÙÛŬŨŪŮÜŰÝŶŸ"
+ condiac = "ĆĈČĊÇĎĐ ĝĢĞĠĤĦĴĶĹĻŁŃŇŅŔŘŖŚŜŠŞŤŢŴŹŽŻ"
+ russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
+ RUSSIAN = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
+ japanese: struct with fields:
+ hiragana: struct with fields:
+ a = "あかさたなはまやらわ がざだばぱ"
+ e = "えけせてねへめ れゑ げぜでべぺ"
+ i = "いきしちにひみ りゐ ぎじぢびぴ"
+ o = "おこそとのほもよろをんごぞどぽ"
+ u = "うくすつぬふむゆる ぐずづぶぷ"
+ arabic: struct with fields:
+ alone1 = "ش س ز ر ذ د خ ح ج ث ت ب ا ء"
+ alone2 = "ي و ه ن م ل ك ق ف غ ع ظ ط ض ص"
+]]></screen>
+ </refsection>
+ <refsection role="see also">
+ <title></title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xlfont">xlfont</link>
+ </member>
+ <member>
+ <link linkend="math_rendering_features_in_graphic">LaTeX в Scilab</link>
+ </member>
+ <member>
+ <link linkend="console">командное окно</link>
+ </member>
+ <member>
+ <link linkend="ascii">ascii-символы</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection role="history">
+ <title>История</title>
+ <revhistory>
+ <revision>
+ <revnumber>6.1.1</revnumber>
+ <revdescription>
+ Введены <literal>%chars</literal>.
+ </revdescription>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - 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 available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function %chars = percentchars()
+ // Internal function called by scilab.start
+ // http://bugzilla.scilab.org/9221
+
+ %chars.greek.lower = "αβδεϵζηθικλμνξοπρστυφϕχψωάϐέήϑίϊϰόϱςύϋΰϖώ";
+ %chars.greek.upper = "ΑΒΓΔΕΖΗΘϴΙΪΚΛΜΝΞΟΠΡΣΤΥΫΦΧΨΩ KΩ℧";
+ %chars.subsupscript = "₀₁₂₃₄₅₆₇₈₉₊₋₌₍ₐₕₖₗₘₙₒₚₛₜₓ₎ ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽ªⁱⁿº⁾";
+ %chars.maths.frac = "½ ⅓ ¼ ⅕ ⅙ ⅛ ⅔ ⅖ ¾ ⅗ ⅜ ⅘ ⅚ ⅝ ⅞";
+ %chars.maths.sets = "ℂⅅℍℕℙℚℝℤ∉∈∊∍∋∌∅∖⋂∩⋃∪⊂⊆⊄⊅⊇⊃⋐⋑⋒⋓";
+ %chars.maths.operators = "−±∓∔÷×∏∐∑√∛∜⋅⋆⊕⊖⊝⊗⊘⊙⊚⊛⊜⊞⊟⊠⊡";
+ %chars.maths.comparisons = "⋘≪≤≲≳≥≫⋙≠≃≄≅≈∽∝≍≐≔≕≝";
+ %chars.maths.integdiff = "∂∇∆∫∬∭∮∯∰∱⨑∲";
+ %chars.maths.geometry = "°′″∟⊾∠∡∢⊥∥∦∺∻≎⊿⋕";
+ %chars.maths.logical = "∀∃∄∧∨⋀⋁⊼⊽⊻∁∴∵∎≍";
+ %chars.maths.misc = "⋮⋰⋯⋱ ′ ″ ∞ ‰ ‱";
+ %chars.physics = "Å ℃ ℉ ħ";
+ %chars.arrows.base = "←↖↑↗→↘↓↙↔↕↵↱↴☇⇐⇑⇒⇓⇔↺↻⊣⊥⊢⊤";
+ %chars.arrows.thick = "⬅⬆➞⬇➚➙➘➔➜➡➥➦➧➨➼➽";
+ %chars.symbols = "…⋈⋔⋄♢◊♤♧♡♦♠♣♥©®℗Ⓢ™℡♀♂⌘✠♻☎«»◬⨺⨹⨻¶";
+ %chars.stars = "⋆★☆✫✯✰✭✡⊛⍟✪❂✻✼✹✸✶";
+ %chars.currencies = "¤ $ ¢ € £ ¥ 円 元 ₪ ฿ ¢ ₫ ₣";
+
+ %chars.lang.latin = "abcdefghijklmnopqrstuvwxyz";
+ %chars.lang.LATIN = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ %chars.lang.latin.voydiac = "áàâãäāăåéêèëēěėíîïóòôõöőōúùûŭũūůüűýŷÿ";
+ %chars.lang.LATIN.voydiac = "ÁÀÂÃÄĀĂÅÉÊÈËĒĚĖÍÎÏÓÒÔÕÖŐŌÚÙÛŬŨŪŮÜŰÝŶŸ";
+ %chars.lang.latin.condiac = "ćĉčçċďđǵĜ ğġĥħĵķĺļłńňņŕřŗśŝšşťţŵźžż";
+ %chars.lang.LATIN.condiac = "ĆĈČĊÇĎĐ ĝĢĞĠĤĦĴĶĹĻŁŃŇŅŔŘŖŚŜŠŞŤŢŴŹŽŻ";
+ %chars.lang.latin.special = "æ Æ œ Œ ℬ ъ Ъ Þ þ ⅆ ℇ ℈ ℰ ƒ ⨍ ℊ ℱ ℏ ℎ ℋ ℌ ℐ ℑ ℳ № ℘ ℛ ℜ";
+ %chars.lang.russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
+ %chars.lang.RUSSIAN = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
+ %chars.lang.japanese.hiragana.a = "あかさたなはまやらわ がざだばぱ";
+ %chars.lang.japanese.hiragana.e = "えけせてねへめ れゑ げぜでべぺ";
+ %chars.lang.japanese.hiragana.i = "いきしちにひみ りゐ ぎじぢびぴ";
+ %chars.lang.japanese.hiragana.o = "おこそとのほもよろをんごぞどぽ";
+ %chars.lang.japanese.hiragana.u = "うくすつぬふむゆる ぐずづぶぷ";
+ %chars.lang.arabic.alone1 = "ش س ز ر ذ د خ ح ج ث ت ب ا ء";
+ %chars.lang.arabic.alone2 = "ي و ه ن م ل ك ق ف غ ع ظ ط ض ص";
+endfunction
{
string arr[] =
{
- "home",
- "PWD",
- "%tk",
- "%pvm",
- "MSDOS",
+ "$",
"%F",
"%T",
- "%f",
- "%t",
+ "%_atoms_cache",
+ "%chars", // Unicode characters
"%e",
- "%pi",
- "%modalWarning",
- "%nan",
- "%inf",
- "SCI",
- "WSCI",
- "SCIHOME",
- "TMPDIR",
- "%gui",
+ "%eps",
+ "%f",
"%fftw",
+ "%gui",
"%helps",
- "%eps",
- "%io",
+ "%helps_modules",
"%i",
- "demolist",
- "%z",
+ "%inf",
+ "%io",
+ "%modalWarning",
+ "%nan",
+ "%pi",
+ "%pvm",
"%s",
- "$",
+ "%t",
+ "%tk",
"%toolboxes",
"%toolboxes_dir",
+ "%z",
+ "MSDOS",
+ "PWD",
+ "SCI",
+ "SCIHOME",
"TICTOC",
- "%helps_modules",
- "%_atoms_cache",
+ "TMPDIR",
+ "WSCI",
+ "demolist",
+ "enull", // Constant for external object
"evoid", // Constant for external object
- "jvoid", // Constant for external object Java (jims)
+ "home",
"jnull", // Constant for external object Java (jims)
- "enull" // Constant for external object
+ "jvoid" // Constant for external object Java (jims)
};
int i = 0;
-#define NBELEMENT 37
+#define NBELEMENT (sizeof(arr)/sizeof(*(arr)))
std::set<string> ScilabDefaultVariables;
for (i = 0; i < NBELEMENT; i++)