July 6,2007

Linux Scilab 中文關鍵障礙排除程序

這是開發 Linux 版之 ADE 中文 Scilab 關鍵技術,藉由網路擴散出去,希望有更多開發者不再為這些雜學所困。

ADE 中文 Scilab Linux 版預定 11, 12 月 間公佈。

Scilab 中文化之步調無法與官方版一致,這是必然的現象;中文問題只能靠使用中文的開發族群解決。因此 Linux 上之中文版決定採用 Scilab-GTK 一方面是考慮到中文開發人力不足,只能以 C/C++ 作為主要開發語言,另一方面則是準備將 Scilab 與中文桌面系統結合進行準備。

將 locale 設定為 zh_TW.UTF8 (環境參數 LANG=zh_TW.UTF8) 後,將 Scilab-GTK 下載後在 Fedora 6 上編譯後發現以下中文處理問題:
  1. Scilab 之 console 視窗上無法啟動中文輸入

    解決方案: 必須使用 GTK2 以及選用 vte 終端機視窗程式庫,請參考 中文 Scilab 所需之GKT2 軟體環境

  2. Scilab 編輯器 (SciPad) 無法輸入中文

    解決方案: TCL/TK 及 Scipad 之中文問題

  3. 中文字串螢幕輸入、輸出

    解決方案: 使用 GTK 時,沒有這個問題 (但在 Windows 環境必須修改程式)

  4. 中文字串檔案輸入、輸出

    解決方案: 使用 GTK 時,沒有這個問題 (但在 Windows 環境必須修改程式)

  5. 繪圖指令(如 plot2d ) 中無法顯現中文標示

    解決方案: GTK 繪出中文問題

  6. scicos 文字方塊中(Edit/palettes/other) 無法顯示中文

    解決方案: GTK 繪出中文問題

  7. 選單中文化

    解決方案:

    1. 主選單
      修改次目錄 routine\gtksci 中之檔案 menus.c 內容之函數 sci_window_initial_menu
    2. 圖形選單
      修改次目錄 routine\gtksci 中之檔案 menus.c 內容之函數 graphic_initial_menu

  8. Scilab 增加中文語言選項

    可能解決方案: 參考 Windows Mingw 版之 ADE 中文 Scilab之程式碼剪貼到 Linux 版

再測試 locale Big5

  1. Consol 可輸入中文, 不需更動
  2. SciPad 可輸入中文, 不需更動
  3. 繪圖指令(plot2d 等) 無法輸出中文標示, 但  Scicos 之 text   方塊 (位於 Edit\palette\other )可接受中文
    解決方案:繪出字串前先判斷是否為 utf8 碼, 否則先由 locale 轉 utf8 , 參考 GTK 繪出中文問題
  4. 中文選單正常, 不需更動

Posted by yunglee at 樂多Roodo!21:47回應(0)引用(0)中文 Scilab 開發

July 4,2007

Scilab 中之 BIG5 , UTF8 中文

中文碼在 VTE, TCL, GTK , Scilab 中流竄轉換, 似乎使用 UTF8 碼, 程式開發較容易,但 BIG5 使用者太多, 無法放棄.

目前只剩下一部分內部之 BIG5-> UTF8 未加入應該是在 pango_draw_text 中檢查字串判斷是否為 UTF8 如果不是, 則將他轉碼 (也許由 lang 環境參數決定如何轉碼) (2007/07/03)


可能參考
Character Set Conversion

gboolean is_utf8 g_get_charset (G_CONST_RETURN char **charset);
charset : return location for character set name
Returns : TRUE if the returned charset is UTF-8

if(! g_get_charset (&charset) g_locale_to_utf8(string)

http://203.64.187.41/gtk/GTK-Lesson-4.html
#define BIG5(s) g_locale_to_utf8(s, strlen(s),NULL, NULL, NULL)

以 g_utf8_validate() 檢查是否為 UTF8 有效字串 ( Text Handling in GTK+ 2.0)

...繼續閱讀

Posted by yunglee at 樂多Roodo!00:33回應(0)引用(0)中文 Scilab 開發

July 2,2007

Scicos 文字顯現問題

若使用 pango 繪, 則顏色選擇必須注意, 否則 Scicos 中之 Other 圖版 Text 無法畫出字來原因為前景 和背景顏色相同.

已解決 (參考 :http://mail.gnome.org/archives/gtk-app-devel-list/2004-February/msg00322.html)

 GdkGC *gc 需設定如下:

void pango_draw_text(BCG *ScilabXgc,GdkDrawable *drawable,int xx, int yy,char *string)
{
 PangoLayout *pl;

// PangoFontDescription *font_desc
//            = pango_font_description_from_string ("arial black 12");
//    gtk_widget_modify_font (ScilabXgc->drawing, font_desc);
 //   pango_font_description_free (font_desc);

 pl = gtk_widget_create_pango_layout(ScilabXgc->drawing,NULL);
 pango_layout_context_changed(pl);
 pango_layout_set_text(pl, string,-1);
 GdkGC *gc;
 gc = gdk_gc_new(drawable);

 gdk_draw_layout( drawable,gc,xx,yy,pl);
 g_object_unref(gc);
 g_object_unref(pl);
}
////////////


Posted by yunglee at 樂多Roodo!00:18回應(0)引用(0)GTK 相關主題

June 29,2007

在 Scicos 中 使用 文字方塊 (Other 中的 text) 時, 無法顯現

在 Scicos 中 使用 文字方塊 (Other 中的 text) 時, 無法顯現 但未修改的新下載版沒問題, 可能是 periGTK.c displaystring 修改不完全

Posted by yunglee at 樂多Roodo!21:56回應(0)引用(0)GTK 相關主題

Scilab Windows 和 GTK 版本差異

Scilab GTK 必須使用 libvte 作為終端機模擬程式 (位於 routines\gzvt2) , 以 vte.c 編譯出 zterm 使用。
但 copy 及 paste 似乎不正常。檢查後發現

copy --> 雙擊左 mouse button 或 CTL+shift+C (與 Windows 不同)
paste--> 同時按左右 mouse button CTL+shift+V(與 Windows 不同)


GTK 版上,. 沒有變換語言之選單


whatis.htm 檔案之格式
arma- Scilab arma library

要改為
arma - Scilab arma library


否則 apropos 指令失敗, (因為使用 gtkhtml, 而非 tclhelp , 會先產生指標檔 )


Posted by yunglee at 樂多Roodo!00:58回應(0)引用(0)GTK 相關主題

June 28,2007

June 27,2007

GTK 繪出中文字問題

// graphics\periGTK.c
// 使用 gdk_draw_layout 取代 gdk_draw_text
void outgtextP(BCG *ScilabXgc,int xx, int yy,char *string)
{
PangoLayout *pl;
pl = gtk_widget_create_pango_layout(ScilabXgc->drawing,NULL);
pango_layout_context_changed(pl);
pango_layout_set_text(pl, string,-1);
gdk_draw_layout( ScilabXgc->pixmap,ScilabXgc->wgc,xx,yy,pl);
g_object_unref(pl);
}
///////////////////////////

void C2F(displaystring)(char *string, integer *x, integer *y, integer *v1, integer *flag, integer *v6, integer *v7, double *angle, double *dv2, double *dv3, double *dv4)
{
gint lbearing, rbearing, iascent, idescent, iwidth;
gdk_string_extents(ScilabXgc->font,"中", &lbearing, &rbearing,
&iwidth, &iascent, &idescent);

...
if ( ScilabXgc->Cdrawable == ScilabXgc->drawing->window)
outgtextP(ScilabXgc,*x, *y- iascent-idescent, string) ;
// gdk_draw_text(ScilabXgc->pixmap,ScilabXgc->font,ScilabXgc->wgc,
// *x, *y - idescent , string, strlen(string));

Posted by yunglee at 樂多Roodo!00:01回應(0)引用(0)GTK 相關主題

June 26,2007

June 25,2007

Scilab 中文測試範例

Scilab 中文測試範例  :

   LANG=zh_TW.UTF8
       Test 1-7 成功(2007/07/03)
 
   LANG=zh_TW.BIG5
         Test2 失敗    ,其餘失敗 (2007/07/03)

//
//Test1. 註解輸入測試
//
//Test2. 繪圖中文標示
//
x=[0:0.1:2*%pi]';
plot2d(x,sin(x),leg="正弦 sin(x)")
//
//Test3. 中文  write
//
write(%io(2),'中文 write')

//
//Test4.. 中文  Print
//
a=rand(3,3);p=poly([1,2,3],'s');l=list(1,'中文 Print',[1 2 3]);
print(%io(2),a,p,l)
  
// Test 5 中文檔案輸出
b=%pi;
[fd,err]=mopen('chTestBig5.txt','w');
mfprintf(fd,'%s %f','中文檔案輸出入測試',b); mclose(fd);

//Test 6 中文檔案輸入
[fd,err]=mopen('chTestBig5.txt','r');
[n,c,d]=mfscanf(fd,'%s %f') ; mclose(fd);

// Test 7 Scicos  text block 中 輸入中文  


Posted by yunglee at 樂多Roodo!01:26回應(0)引用(0)中文 Scilab 開發

June 24,2007

待進行之工作


  1. 中文選單

  2. 編輯器 SciPad 輸入中文

  3. write , print 可輸出中文字串

  4. 繪圖可標示中文

  5. Scicos 方塊圖可加中文標示

  6. whatis.htm 檔轉格式 , (寫一 Perl 程序自動轉換)

  7. TCLHelp 自動產生 Big5 charset (參考 Windows 版修改)




----------------------------------------------------------------'


新段落



ADE 中文 Scilab
Scilab-GTK
超連結



粗體 斜體 下線 刪除



藍色
紅色
藍紫
朱黃




  1. 編號 1

  2. 編號 2




  • 條列 a

  • 條列 b




文章靠左

文章



文章置中

文章



文章靠右

文章





縮排縮排縮排縮排縮排縮排縮排縮排


排縮排縮排縮排排縮排







Posted by yunglee at 樂多Roodo!21:00回應(0)引用(0)中文 Scilab 開發

Scilab 架構(Fortran,C 函數)

Scilab 之核心為 次目錄 routines 內之 Fortran 和 C 之程式庫。這裡先將內部之次目錄依照功能先分類,日後可能選擇性的編譯其中一部分.。另外 Scilab 5 採用 Java , 與 GTK 走向不同,有必要了解那些可以繼續沿用。那些必須放棄。


Scilab 語言解譯器

system 解譯器
system2 矩陣結構
fileio 檔案系統

通用介面

console 終端通用介面
os_specific 與作業系統相關動態連結通用函數
graphics 圖形通用介面
intersci sci 和 C 之資料介面
interf 數值函數介面
tclsci TCL/TK 與 Scilab 之界面
dld 動態連結 (Unix Only)
menusX: Scilab 通用 menus 內涵
GTK , Windows , X-Windows 三個具體設計

圖形介面 :
gtksci: gtk 和 sci 之介面
gzvt2: 圖形 console

數學環境
int: 基本數學運算
arpack
lapack : 線性代數程式庫
blas
calelm 基礎數學函數,特殊函數
dcd: 累積分佈
integ: 及常微分
maxplus : 線性代數
optim: 最佳化
default: 使用者設定函數之內定函數
qsort: 重排
randlib: 亂數產生
sparse: 稀疏矩陣

control: 控制
slicos : 控制
signal: 訊號處理



不易分類 :
windools: Windows 上特定函數
gd : 圖形程式庫


不再使用的部份 :
f2c : fortran 轉 C
X11:
xsci:
wsci:
gtk1:



Posted by yunglee at 樂多Roodo!15:31回應(0)引用(0)中文 Scilab 開發

June 23,2007

中文 Scilab 網路線上編輯器

Scilab 線上文件多但凌亂,中文線上文件翻譯須要考慮:


  1. 格式


    而若要能對文件內容進行自動化處理,必須訂好能包含數學公式的簡易文件格式,才適合群組合作。 ADE Scilab 內先暫定使用過去發展的 CPOD 格式
    未來可考慮使用目前已逐漸標準化的格式如 reStructureText 相關資料如 :
    VST(Vim reStructured Text)簡介
    http://blog.seety.org/everydaywork/tags/53/
    XML 问题: reStructuredText
    http://porta2030.tossug.org/wiki/WikiFormatting



  2. 網路編輯功能,可考慮加上 Wiki 引擎, 如 :


    MediaWiki





wikipedia 原始檔
http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_(mathematics)


關鍵技術 :


  1. CPOD 格式轉換


    一旦選定格式後,必須將現有文件 CPOD 格式轉為 reStructureText 或 Wiki 所認識之格式



  2. Server 設定


    PHP, LaTex 背景工具及 Web Server 設定



  3. 與 Scilab 文件系統連結


    開發連結技術,使 Scialb 文件與 Wiki 結成一體






Posted by yunglee at 樂多Roodo!22:27回應(0)引用(0)Scilab 文件技術

June 19,2007

TCL/TK 及 Scipad 之中文問題

ADE 中文 Scilab  在 Linux 版使用 ScilabGTK 為基礎,並且使用 TCL/TK 8.5a 版但還是有中文輸入輸出問題 (與 Scilab 無關)。

 

  1. 安裝 TCL/TK 8.5a 後, 編輯器 SciPad 還是無法輸入中文 (不顯現)
    ( 位於 "tcl/scipadsources/commonbindings.tcl" 指令
          bind Text <KeyPress>  {if {{%A} != {{}}} {puttext %W %A}}
    要改為
            bind Text <KeyPress>  { puttext %W %A}
    中文才能顯示。
    已回報 Scilab 討論群 
  2. 選擇文字之後再按 <CTL+C> 會清空選擇範圍
    位於 "tcl/scipadsources/inputtext.tcl" 指令
        if {[gettaselind $w single] != ""} {
            $w delete sel.first sel.last
        }
    要刪除。

Posted by yunglee at 樂多Roodo!19:36回應(0)引用(0)中文 Scilab 開發

June 18,2007

中文 Scilab 所需之GKT2 軟體環境

在 Linux 上建立 中文 Scilab 須要的 GTK 軟體還境較嚴格,必須系統比必須已有 glib,pango, cairo,gtk+2, libgtkhtml,vte 程式庫 否則必須下載軟體自行編譯


----------------------------------------------------------------------
CPPFLAGS="-I/usr/local/include"
LDFLAGS="-L/usr/local/lib"
LD_LIBRARY_PATH="/usr/local/lib"
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
export CPPFLAGS LDFLAGS PKG_CONFIG_PATH LD_LIBRARY_PATH

cd dependencies
tar xvfz glib-2.12.12.tar.gz
cd glib-2*
./configure
make
make install
cd ..

tar xvfz pango-1.16.4.tar.gz
cd pango-1.16.4
./configure
make
make install
cd ..


tar xvfz cairo-1.2.6.tar.gz
cd cairo-1.2.6
./configure
make install
cd ..
cd ..

tar tar xvfz gtk+-2.10.13.tar.gz
cd gtk+-2*
./configure
make
make install
cd ..

tar tar xvfz libgtkhtml-2.11.0.tar.gz
cd libgtkhtml-2.11.0
./configure
make
make install
cd ..


tar tar xvfz vte-0.16.5.tar.gz
cd vte-0.16.5
./configure
make
make install
cd ..

Posted by yunglee at 樂多Roodo!17:04回應(0)引用(0)中文 Scilab 開發