(57)【特許請求の範囲】
【請求項１】
数式出力コンピュータであって、
メモリと、前記メモリに格納されるプログラムに従って動作するプロセッサとを備え、
前記プロセッサは、ユーザからの命令の入力を受け付ける入力受付部として機能し、
前記メモリは、線形文字列形式での入力対象となる文字または文字列と、数式を構成する演算子との対応関係を示す第１の情報を記憶するように構成されており、
前記プロセッサは、前記記憶される前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に含まれる演算子を入力演算子として特定する演算子特定部として機能し、
前記メモリは、数式が２次元形式で表される場合の演算子である表示演算子および当該表示演算子に対応する１以上のオペランドの関係と、線形文字列形式で文字列が入力される場合に前記表示演算子に相当する文字または文字列と前記１以上の各オペランドに相当する文字または文字列との並び順と、を対応付けた第２の情報を記憶するように構成されており、
前記プロセッサは、前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子に対応づけるオペランドとする文字列の範囲を、前記ユーザから受け付ける命令の入力に応じて決定する範囲決定部と、
前記範囲決定部により前記入力演算子に対応づけるオペランドとする文字列の範囲が決定される都度、決定された前記オペランドの範囲と、前記入力演算子として特定される文字または文字列と、前記第２の情報とに基づいて、前記入力演算子に対応する表示演算子を含む前記２次元形式の数式をディスプレイに出力する数式出力部として機能する、数式出力コンピュータ。
【請求項２】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子が対応づけられたものを含み、
前記プロセッサの前記数式出力部は、前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、当該複数の入力演算子の候補それぞれに対応する前記表示演算子をそれぞれ前記ディスプレイに出力し、前記ユーザから受け付ける命令の入力に応じて、複数の前記入力演算子の候補に対応する前記表示演算子のいずれかを選択する操作を受け付けており、ユーザが選択した前記表示演算子を含む前記２次元形式の数式を前記ディスプレイに出力する、請求項１に記載の数式出力コンピュータ。
【請求項３】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子と、前記複数の前記演算子それぞれの優先順位とを対応付けたものを含み、
前記プロセッサの前記数式出力部は、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、前記演算子それぞれの前記優先順位に従って、前記入力演算子の候補に対応する前記表示演算子を前記ディスプレイに出力し、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記ユーザが選択を確定させた演算子の優先順位を上位とするよう前記第１の情報を更新する、請求項２に記載の数式出力コンピュータ。
【請求項４】
前記メモリは、さらに、前記ユーザによって入力された文字または文字列と、前記表示演算子を含む前記２次元形式の数式とを対応付けた第３の情報を記憶するよう構成されており、
前記プロセッサの数式出力部は、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記確定させた前記入力演算子に対応する前記表示演算子を含む前記２次元形式の数式と、前記ユーザによって入力された文字または文字列とを対応付けて前記第３の情報として前記メモリに記憶させる、請求項３に記載の数式出力コンピュータ。
【請求項５】
前記プロセッサの前記演算子特定部は、
前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に対し、文字数の大きい文字列に対応する前記演算子を優先して前記入力演算子として特定する、請求項１から４のいずれか１項に記載の数式出力コンピュータ。
【請求項６】
前記プロセッサは、ハードウェアキーボードまたはソフトウェアキーボードの少なくともいずれかの各キーへの入力操作を検出することにより前記ユーザからの命令の入力を受け付ける、請求項１から５のいずれか１項に記載の数式出力コンピュータ。
【請求項７】
メモリと、前記メモリに格納されるプログラムに従って動作するプロセッサとを備えるコンピュータにおける数式出力方法であって、
前記プロセッサが、ユーザからの命令の入力を受け付けるステップを含み、
前記メモリは、線形文字列形式での入力対象となる文字または文字列と、数式を構成する演算子との対応関係を示す第１の情報を記憶するように構成されており、
前記数式出力方法は、さらに、
前記プロセッサが、前記記憶される前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に含まれる演算子を入力演算子として特定するステップを含み、
前記メモリは、数式が２次元形式で表される場合の演算子である表示演算子および当該表示演算子に対応する１以上のオペランドの関係と、線形文字列形式で文字列が入力される場合に前記表示演算子に相当する文字または文字列と前記１以上の各オペランドに相当する文字または文字列との並び順と、を対応付けた第２の情報を記憶するように構成されており、
前記数式出力方法は、さらに、
前記プロセッサが、前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子に対応づけるオペランドとする文字列の範囲を、前記ユーザから受け付ける命令の入力に応じて決定するステップと、
前記決定するステップにより前記入力演算子に対応づけるオペランドとする文字列の範囲が決定される都度、決定された前記オペランドの範囲と、前記入力演算子として特定される文字または文字列と、前記第２の情報とに基づいて、前記入力演算子に対応する表示演算子を含む前記２次元形式の数式をディスプレイに出力するステップとを含む、数式出力方法。
【請求項８】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子が対応づけられたものを含み、
前記数式出力方法は、
前記２次元の数式を前記ディスプレイに出力するステップにおいて、前記プロセッサが、前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、当該複数の入力演算子の候補それぞれに対応する前記表示演算子をそれぞれ前記ディスプレイに出力し、前記ユーザから受け付ける命令の入力に応じて、複数の前記入力演算子の候補に対応する前記表示演算子のいずれかを選択する操作を受け付けており、ユーザが選択した前記表示演算子を含む前記２次元形式の数式を前記ディスプレイに出力する、請求項７に記載の数式出力方法。
【請求項９】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子と、前記複数の前記演算子それぞれの優先順位とを対応付けたものを含み、
前記数式出力方法は、
前記２次元の数式を前記ディスプレイに出力するステップにおいて、前記プロセッサが、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、前記演算子それぞれの前記優先順位に従って、前記入力演算子の候補に対応する前記表示演算子を前記ディスプレイに出力し、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記ユーザが選択を確定させた演算子の優先順位を上位とするよう前記第１の情報を更新する、請求項８に記載の数式出力方法。
【請求項１０】
前記メモリは、さらに、前記ユーザによって入力された文字または文字列と、前記表示演算子を含む前記２次元形式の数式とを対応付けた第３の情報を記憶するよう構成されており、
前記数式出力方法は、
前記２次元の数式を前記ディスプレイに出力するステップにおいて、前記プロセッサが、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記確定させた前記入力演算子に対応する前記表示演算子を含む前記２次元形式の数式と、前記ユーザによって入力された文字または文字列とを対応付けて前記第３の情報として前記メモリに記憶させる、請求項９に記載の数式出力方法。
【請求項１１】
前記数式出力方法は、
前記プロセッサが、前記記憶される前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に含まれる演算子を入力演算子として特定するステップにおいて、前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に対し、文字数の大きい文字列に対応する前記演算子を優先して前記入力演算子として特定する、請求項７から１０のいずれか１項に記載の数式出力方法。
【請求項１２】
前記数式出力方法は、前記プロセッサが、ハードウェアキーボードまたはソフトウェアキーボードの少なくともいずれかの各キーへの入力操作を検出することにより前記ユーザからの命令の入力を受け付ける、請求項７から１１のいずれか１項に記載の数式出力方法。
【請求項１３】
数式出力コンピュータの動作を制御するための数式出力プログラムであって、前記数式出力コンピュータは、前記数式出力コンピュータの動作を制御するプロセッサと、メモリとを備え、
前記メモリは、線形文字列形式での入力対象となる文字または文字列と、数式を構成する演算子との対応関係を示す第１の情報、および、数式が２次元形式で表される場合の演算子である表示演算子および当該表示演算子に対応する１以上のオペランドの関係と、線形文字列形式で文字列が入力される場合に前記表示演算子に相当する文字または文字列と前記１以上の各オペランドに相当する文字または文字列との並び順と、を対応付けた第２の情報を記憶するように構成されており、
前記数式出力プログラムは、前記プロセッサに、
ユーザからの命令の入力を受け付けるステップと、
前記メモリに記憶される前記第１の情報に基づいて、前記ユーザから入力を受け付けた文字または文字列に含まれる演算子を入力演算子として特定するステップと、
前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子に対応づけるオペランドとする文字列の範囲を、前記ユーザから受け付ける命令の入力に応じて決定するステップと、
前記決定するステップにより前記入力演算子に対応づけるオペランドとする文字列の範囲が決定される都度、決定された前記オペランドの範囲と、前記入力演算子として特定される文字または文字列と、前記第２の情報とに基づいて、前記入力演算子に対応する表示演算子を含む前記２次元形式の数式をディスプレイに出力するステップとを実行させる、数式出力プログラム。
【請求項１４】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子が対応づけられたものを含み、
前記数式出力プログラムは、前記プロセッサに、
前記２次元の数式を前記ディスプレイに出力するステップにおいて、前記入力を受け付けた文字または文字列のうち、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、当該複数の入力演算子の候補それぞれに対応する前記表示演算子をそれぞれ前記ディスプレイに出力し、前記ユーザから受け付ける命令の入力に応じて、複数の前記入力演算子の候補に対応する前記表示演算子のいずれかを選択する操作を受け付けており、ユーザが選択した前記表示演算子を含む前記２次元形式の数式を前記ディスプレイに出力させる、請求項１３に記載の数式出力プログラム。
【請求項１５】
前記メモリが記憶する前記第１の情報は、前記入力対象となる文字または文字列に対し、複数の前記演算子と、前記複数の前記演算子それぞれの優先順位とを対応付けたものを含み、
前記数式出力プログラムは、前記プロセッサに、
前記２次元の数式を前記ディスプレイに出力させるステップにおいて、前記第１の情報に基づいて特定される前記入力演算子の候補が複数ある場合に、前記演算子それぞれの前記優先順位に従って、前記入力演算子の候補に対応する前記表示演算子を前記ディスプレイに出力させ、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記ユーザが選択を確定させた演算子の優先順位を上位とするよう前記第１の情報を更新させる、請求項１４に記載の数式出力プログラム。
【請求項１６】
前記メモリは、さらに、前記ユーザによって入力された文字または文字列と、前記表示演算子を含む前記２次元形式の数式とを対応付けた第３の情報を記憶するよう構成されており、
前記数式出力プログラムは、前記プロセッサに、
前記２次元の数式を前記ディスプレイに出力させるステップにおいて、複数の前記入力演算子の候補のいずれかをユーザが確定させる操作を受け付けることにより、前記確定させた前記入力演算子に対応する前記表示演算子を含む前記２次元形式の数式と、前記ユーザによって入力された文字または文字列とを対応付けて前記第３の情報として前記メモリに記憶させる、請求項１５に記載の数式出力プログラム。
【請求項１７】
前記数式出力プログラムは、前記プロセッサに、
前記記憶される前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に含まれる演算子を入力演算子として特定させるステップにおいて、前記第１の情報に基づいて、前記入力を受け付けた文字または文字列に対し、文字数の大きい文字列に対応する前記演算子を優先して前記入力演算子として特定させる、請求項１３から１６のいずれか１項に記載の数式出力プログラム。
【請求項１８】
前記数式出力プログラムは、前記プロセッサに、
ハードウェアキーボードまたはソフトウェアキーボードの少なくともいずれかの各キーへの入力操作を検出することにより前記ユーザからの命令の入力を受け付けさせる、請求項１３から１７のいずれか１項に記載の数式出力プログラム。
【請求項１９】
請求項１３から１８のいずれかに記載の数式出力プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイを介して数式を出力するためのコンピュータ、数式出力方法、数式出力プログラム、および数式出力プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
より多くの技術情報が文書処理およびウェブページ形式で配信されるようになるのに従って、文書処理アプリケーションおよびhtmlエディタに数式を効率的に入力できる機能がますます重要になりつつある。TeXおよびLaTeXなどのプログラムにより、ユーザは、様々な計算機環境に渡って移植可能な形式で数式を活字に組み、印刷することができるようになった。
【０００３】
しかし、このようなプログラムは複雑であるため、ユーザは、式を入力し、活字に組み、印刷することができるようになる前に、プログラムがどのように作用するかに関して、特別な知識をもつことが必要となる。特に、ユーザは、２次元の数式を表示・印刷したい場合であっても、当該数式を２次元の数学的表記とは乖離した文法に従った線形文字列形式で入力しなければならない。そのため、ユーザによる作業負担が大きい。
【０００４】
ワードプロセッサプログラムは、通常、ユーザが文書処理環境において数式を作成し編集することを可能にするエディタと一括販売される。このようなエディタの一例が、ワシントン州レドモンドのマイクロソフトコーポレーションによって販売されているMicrosoft（登録商標） Equation Editor 3.0である。こうしたタイプの数式エディタは、一般に、ユーザが、２次元の式を作るために様々な数式パターンのツールバーアイコンの中から選択を行うことを要求するWYSIWYGエディタである。しかし、ツールバーアイコンを利用した選択操作であっても、複雑で長い式を頻繁に記入するユーザにとってわずらわしい場合がある。
【０００５】
このような不具合を改善するために、「数式の構築を自動化するためのシステム」がワシントン州レドモンドのマイクロソフトコーポレーションによって提案されている。たとえば、特開２００６−８５６７３号公報（特許文献１）には、数式の構築を自動化するためのシステムおよび方法が開示されている。特開２００６−８５６７３号公報（特許文献１）によると、システムは、線形文字列形式での数式の入力を受諾する入力モジュールと、入力を解釈し、構築点に到達したときを自動的に判定する解釈モジュールとを含み得る。システムは、構築点に達すると、式の少なくとも一部分を２次元形式に自動的にフォーマットするフォーマット化モジュールもさらに含み得る。表示モジュールは、式の部分を２次元形式で表示することができる。修正モジュールは、式が編集されることを可能にする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−８５６７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のシステムでは、依然としてTeXおよびLaTeXなどと同様の線形文字列形式の文法を採用しているため、ユーザに負担がかかる。すなわち、ユーザが、数式の入力のために、多量の線形文字列形式の文法や入力方法などを覚えたり、調べたりする必要がある。
【０００８】
本発明は、かかる問題を解決するためになされたものであり、その目的は、ユーザによる数式の入力に関する操作性をより向上させることである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従うと、線形形式の入力演算子と２次元形式の表示演算子との対応関係を記憶するメモリと、プロセッサとを備える数式出力コンピュータが提供される。プロセッサは、線形形式の文字列の入力を受け付け、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する表示演算子を特定し、入力演算子を特定された表示演算子に入れ替えた２次元形式の数式をディスプレイに表示させる。
【００１０】
好ましくは、対応関係は、複数の線形形式の入力演算子毎に少なくとも１つの２次元形式の表示演算子を対応付ける。プロセッサは、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する少なくとも１つの表示演算子を特定し、特定された少なくとも１つの表示演算子から１つの表示演算子を選択可能に、２次元形式の数式をディスプレイに表示させる。
【００１１】
好ましくは、プロセッサは、選択対象の表示演算子を他の文字列と異なる表示態様にてディスプレイに表示させる。
【００１２】
好ましくは、メモリは、入力演算子毎に、少なくとも１つの表示演算子の優先順位を記録する。プロセッサは、少なくとも１つの表示演算子の選択結果に基づいて、少なくとも１つの表示演算子の優先順位を更新する。
【００１３】
好ましくは、対応関係は、表示演算子毎に、表示演算子と少なくとも１つのオペランドとの位置関係を含む。プロセッサは、位置関係を参照することによって、選択対象の表示演算子に対応する少なくとも１つのオペランドの候補を他の文字列と異なる表示態様にてディスプレイに表示させる。
【００１４】
好ましくは、プロセッサは、少なくとも１つのオペランドの候補の範囲を変更する命令を受け付ける。
【００１５】
この発明の別の局面に従うと、線形形式の入力演算子と２次元形式の表示演算子との対応関係を記憶するメモリとプロセッサとを備えるコンピュータにおける数式出力方法が提供される。数式出力方法は、プロセッサが、線形形式の文字列の入力を受け付けるステップと、プロセッサが、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する表示演算子を特定するステップと、プロセッサが、入力演算子を特定された表示演算子に入れ替えた２次元形式の数式をディスプレイに表示させるステップとを備える。
【００１６】
好ましくは、対応関係は、複数の線形形式の入力演算子毎に少なくとも１つの２次元形式の表示演算子を対応付ける。特定するステップは、プロセッサが、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する少なくとも１つの表示演算子を特定するステップを含む。表示させるステップは、プロセッサが、特定された少なくとも１つの表示演算子から１つの表示演算子を選択可能に、２次元形式の数式をディスプレイに表示させるステップを含む。
【００１７】
好ましくは、表示させるステップは、プロセッサが、選択対象の表示演算子を他の文字列と異なる表示態様にてディスプレイに表示させるステップを含む。
【００１８】
好ましくは、メモリは、入力演算子毎に、少なくとも１つの表示演算子の優先順位を記録する。数式出力方法は、プロセッサが、少なくとも１つの表示演算子の選択結果に基づいて、少なくとも１つの表示演算子の優先順位を更新するステップをさらに備える。
【００１９】
好ましくは、対応関係は、表示演算子毎に、表示演算子と少なくとも１つのオペランドとの位置関係を含む。表示させるステップは、プロセッサが、位置関係を参照することによって、選択対象の表示演算子に対応する少なくとも１つのオペランドの候補を他の文字列と異なる表示態様にてディスプレイに表示させるステップを含む。
【００２０】
好ましくは、数式出力方法は、プロセッサが、少なくとも１つのオペランドの候補の範囲を変更する命令を受け付けるステップを備える。
【００２１】
この発明の別の局面に従うと、線形形式の入力演算子と２次元形式の表示演算子との対応関係を記憶するメモリとプロセッサとを備えるコンピュータのための数式出力プログラムが提供される。数式出力プログラムは、線形形式の文字列の入力を受け付けるステップと、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する表示演算子を特定するステップと、入力演算子を特定された表示演算子に入れ替えた２次元形式の数式をディスプレイに表示させるステップとをプロセッサに実行させる。
【００２２】
好ましくは、対応関係は、複数の線形形式の入力演算子毎に少なくとも１つの２次元形式の表示演算子を対応付ける。特定するステップは、プロセッサが、対応関係を参照することによって、入力された線形形式の文字列に含まれる入力演算子に対応する少なくとも１つの表示演算子を特定するステップを含む。表示させるステップは、プロセッサが、特定された少なくとも１つの表示演算子から１つの表示演算子を選択可能に、２次元形式の数式をディスプレイに表示させるステップを含む。
【００２３】
好ましくは、表示させるステップは、プロセッサが、選択対象の表示演算子を他の文字列と異なる表示態様にてディスプレイに表示させるステップを含む。
【００２４】
好ましくは、メモリは、入力演算子毎に、少なくとも１つの表示演算子の優先順位を記録する。数式出力プログラムは、少なくとも１つの表示演算子の選択結果に基づいて、少なくとも１つの表示演算子の優先順位を更新するステップをプロセッサに実行させる。
【００２５】
好ましくは、対応関係は、表示演算子毎に、表示演算子と少なくとも１つのオペランドとの位置関係を含む。表示させるステップは、プロセッサが、位置関係を参照することによって、選択対象の表示演算子に対応する少なくとも１つのオペランドの候補を他の文字列と異なる表示態様にてディスプレイに表示させるステップを含む。
【００２６】
好ましくは、数式出力プログラムは、少なくとも１つのオペランドの候補の範囲を変更する命令を受け付けるステップをプロセッサに実行させる。
【００２７】
この発明の別の局面に従うと、数式出力プログラムを記録したコンピュータ読取可能な記録媒体が提供される。
【発明の効果】
【００２８】
以上のように、この発明によれば、ユーザによる数式の入力に関する操作性がより向上する。
【図面の簡単な説明】
【００２９】
【図１】本実施の形態に係る数式要素とキー文字またはキー文字列との対応関係を示した図である。
【図２】本実施の形態に係る数式の構造を決定している演算子タイプと演算子構造に対応する本表記法のキーの入力順序との対応関係（演算子タイプと表示演算子と少なくとも１つのオペランドとの位置関係との対応関係）を示した図である。
【図３】本実施の形態に係るキー辞書データのデータ構造を示す図である。
【図４】本実施の形態に係るコンピュータ１００のハードウェア構成を表わすブロック図である。
【図５】本実施の形態に係る数式構築処理を示すフローチャートである。
【図６】本実施の形態に係るコンピュータ１００の第１の動作例を示すイメージ図である。
【図７】本実施の形態に係るコンピュータ１００の第２の動作例を示すイメージ図である。
【図８】本実施の形態に係るコンピュータ１００の第３の動作例を示すイメージ図である。
【図９】本実施の形態に係るコンピュータ１００の第４の動作例を示すイメージ図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３１】
なお、本実施の形態に係るコンピュータは、入力装置、演算装置、ディスプレイ、およびメモリを有する。コンピュータは、たとえば、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、および様々な代替えコンピュータシステムによって実現される。
【００３２】
また、本実施の形態に係る処理は、上記のコンピュータにおける論理演算として実現され得る。本実施の形態に係る論理演算は、動作、ステップ、またはモジュールとも呼ばれる。こうした動作、ステップ、およびモジュールは、ソフトウェア、ファームウェア、特殊目的デジタル論理、およびこれらの組み合わせとしても実現され得る。こうしたソフトウェア、ファームウェア、特殊目的デジタル論理、およびこれらの組み合わせは、エンコードされてコンピュータ可読記録媒体に格納されることができ、コンピューティングデバイスの間での伝送のために搬送波信号にエンコードされることもできる。
【００３３】
＜用語＞
本実施の形態で使用する、「線形文字列形式(linear string format)」という言葉は、例えばTeX やLaTeXなど、線形表記法を用いた数式の線形テキストに基づく表現を指す。LaTeX による線形文字列形式は、たとえば、数式（１）のように表される。
【００３４】
【数１】
0005761687.tif 000002
【００３５】
「２次元形式」という言葉は、数式が、例えば、ポーランド式プレフィックス形式など、非線形表記法を用いて表される形式を指す。ポーランド式プレフィックス形式は、関数開始文字を含む形式であり、関数開始文字の後に、例えば、分子、分離文字、分母、および関数終了区切り文字が続く。２次元形式は、たとえば、数式（２）のように表わされる。
【００３６】
【数２】
0005761687.tif 000003
【００３７】
この２次元形式で表された数式は「数式最小単位記号」自身であるか、演算子およびその演算子が作用している１個または複数のオペランド（引数）によって構成されている。オペランドもまた１つの数式である。
【００３８】
「数式最小単位記号」と言う言葉は、数、変数、文字などを指す。演算子と言う言葉は、本実施の形態では、関数、二項演算子、積分演算子、縮約演算子、括弧、冪乗、添え字などを指し、演算子記号および／またはオペランド表記との相対的配置および大きさによって２次元形式の構造が決まる。本実施の形態では、２次元形式で表された数式を構成している数式最小単位記号または演算子を「数式要素」と呼ぶ。
【００３９】
＜線形文字列形式＞
本発明で使用する線形文字列形式表記法を、以下の（１）、（２）で定める。
（１）所望する数式を構成している各数式要素を所定のキー文字または文字列で表す。図１は、本実施の形態に係る数式要素とキー文字またはキー文字列との対応関係を示した図である。
（２）所望する数式の構造を決定している演算子に応じた所定の順番に、区切りなく線形に並べる。図２は、本実施の形態に係る数式の構造を決定している演算子タイプと演算子構造に対応する本表記法のキーの入力順序との対応関係（演算子タイプと表示演算子と少なくとも１つのオペランドとの位置関係との対応関係）を示した図である。
【００４０】
なお、数式要素とキー文字または文字列との対応関係は、図１のものに限定されない。また、数式の構造を決定している代表的演算子タイプおよびその演算子構造に対応する本表記法のためのキーを並べる順番も、図２のものに限定されない。
【００４１】
例えば、積分記号はキー"i@"または"int"などで表す。しかしながら、図２に示すように、積分記号は、３種類の構造に対応し得る。ここで、□は一つのオペランドを表す。図２に示すように、所望する数式を構成している数式要素のキーを線形に並べる順番として、ユーザの負担を少なくするために、人がその数式を読み書きする自然な順番を採用してもよい。例えば、所望する数式に対応する線形文字列は、以下の数式（３）、数式（４）、数式（５）、数式（６）のように表わされる。
【００４２】
【数３】
0005761687.tif 000004
【００４３】
【数４】
0005761687.tif 000005
【００４４】
【数５】
0005761687.tif 000006
【００４５】
【数６】
0005761687.tif 000007
【００４６】
特に、他の表記法と大きく異なる点は、暗黙積や冪乗演算子のように表記されない記号は、線形文字列に含めないところである。例えば、数式（２）に含まれるａの二乗は、数式（５）のように"a2"と表記する。このように、本実施の形態に係る線形文字列形式表記法は、単純・簡潔になっている。その代わり、所望する数式を構成している数式記号のスタイルや要素間の区切りや各演算子に対するオペランドの範囲などが省略されており、入力された線形文字列形式の情報だけでは２次元形式が一意的に定まらず、完全にフォーマットすることはできない。そのため、本システムは線形文字列形式を解釈して構成要素を代表するキーの列に分解し、２次元形式の候補を算出するために、キー辞書データを保持しており、各キーに関連付けられたさまざまな数式要素が登録された候補領域（対応する要素の集合）からデータの優先順位に基づいて候補を算出できるようになっている。
【００４７】
図３は、本実施の形態に係るキー辞書データのデータ構造を示す図である。図３を参照して、本実施の形態に係るコンピュータは、キー辞書データを用いて、数式構成要素ごとに不足情報を補った候補を提示することによって、ユーザに候補を選択するための簡単な指示を要求する。ユーザは数式構成要素ごとに判断すればよいので、複雑な式であっても迷うことはない。すべての構成要素が確定すれば２次元形式の構築が完了する。
【００４８】
＜コンピュータ１００のハードウェア構成＞
次に、コンピュータ１００の具体的構成の一態様について説明する。図４は、本実施の形態に係るコンピュータ１００のハードウェア構成を表わすブロック図である。
【００４９】
図４を参照して、コンピュータ１００は、主たる構成要素として、ＣＰＵ１１０と、ディスプレイ１２０と、メモリ１３０と、メモリインターフェイス１４０と、通信インターフェイス１５０と、キーボード１６０とを含む。
【００５０】
ディスプレイ１２０は、ＣＰＵ１１０からの命令（信号）に基づいて、文字や画像を表示する。ディスプレイ１２０は、タッチパネルであってもよい。ＣＰＵ１１０は、プログラムに基づいて、タッチパネルに文字や画像やソフトウェアボタンなどを表示させる。
【００５１】
なお、コンピュータ１００は、ディスプレイ１２０を有していなくてもよい。たとえば、コンピュータ１００は、ディスプレイ１２０の代わりにディスプレイまたはプロジェクタ用のインターフェイスを有してもよい。この場合、ＣＰＵ１１０は、当該インターフェイスを介して、外部のディスプレイやプロジェクタに文字や画像を表示させる。
【００５２】
メモリ１３０は、各種のＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read-Only  Memory）や、ハードディスクなどによって実現される。メモリ１３０は、ＣＰＵ１１０によって実行されるプログラム、数式要素とキー文字またはキー文字列との対応関係データ１３１、演算子タイプと演算子構造（表示演算子）と本表記法のキーの入力順序との対応関係データ１３２、数式要素キーと表示演算子の候補と当該候補の優先順位との対応関係を示すキー辞書データ１３３、過去に入力された線形文字列形式と確定済みの２次元形式の数式との対応関係を示す履歴データ１３４などを記憶する。
【００５３】
メモリインターフェイス１４０は、外部の記録媒体１４１からデータを読み出す。換言すれば、ＣＰＵ１１０は、メモリインターフェイス１４０を介して外部の記録媒体１４１に格納されているデータを読み出して、当該データをメモリ１３０に格納する。逆に、ＣＰＵ１１０は、メモリ１３０からデータを読み出して、メモリインターフェイス１４０を介して当該データを外部の（読み書き可能な）記録媒体１４１に格納する。
【００５４】
なお、記録媒体１４１としては、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。
【００５５】
通信インターフェイス１５０は、アンテナやコネクタによって実現される。通信インターフェイス１５０は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。換言すれば、ＣＰＵ１１０は、通信インターフェイス１５０を介して、他の装置からプログラムや画像データやテキストデータなどを受信したり、他の装置に２次元形式の数式データや他の画像データや他のテキストデータを送信したりする。
【００５６】
キーボード１６０は、文字キー、テンキー、十字キー、「Enter」キー、「Space」キーなどの複数のボタンを含む。キーボード１６０は、ユーザからの命令を受け付ける。キーボード１６０は、ユーザからの命令をＣＰＵ１１０に入力する。たとえば、ユーザは、十字キーを利用することによって、コンピュータ１００に、対象となっている構成要素を切り替えるための命令や構成要素の範囲を変更するための命令を入力する。
【００５７】
なお、コンピュータ１００は、その本体にキーボード１６０を有していなくてもよい。たとえば、ＣＰＵ１１０は、インターフェイスを介して、本体外部のキーボードから命令を受け付けてもよい。あるいは、ディスプレイ１２０がタッチパネルの場合には、ＣＰＵ１１０は、タッチパネルにソフトウェアボタンを表示することによって、タッチパネルを介して命令を受け付けてもよい。
【００５８】
ＣＰＵ１１０は、メモリ１３０あるいは記録媒体１４１に記憶されているプログラムを実行することによって、コンピュータ１００の各部を制御する。すなわち、ＣＰＵ１１０は、メモリ１３０あるいは記録媒体１４１に記憶されているプログラムを実行することによって図５〜９に記載の処理を実行する。
【００５９】
以下では、ＣＰＵ１１０が、プログラムに基づいて、線形文字列形式の文字列からいかにして２次元形式の数式を構築し得るかについて説明する。
【００６０】
２次元形式の数式は、数式最小単位記号自身でなければ、１個の演算子とその演算子が作用する１個または複数のオペランドによって構成される。すなわち、一般の２次元形式の数式は数式最小単位記号自身であるか、演算子を上位としてそのオペランドを下位にもつような階層構造をもち、各オペランドもまた同様の階層構造をもった数式となっている。
【００６１】
このことから、階層構造をもつ場合の線形文字列形式は、その最上位にあたる１個の演算子を代表するキーとオペランドに相当する線形文字列の部分が対応関係データ１３２に応じた順番で並んでいると解釈できる。本実施の形態に係るＣＰＵ１１０は、キー辞書データ１３３を参照することによって入力文字列から線形の入力演算子を特定する。ＣＰＵ１１０は、対応関係データ１３２を参照することによって、数式の階層構造を把握し、２次元形式を構築する。なお、本実施の形態においては、線形文字列形式に対する上記の解釈を「構造解釈」と呼ぶ。
【００６２】
また、オペランドに相当する線形文字列の部分もまた独立した線形文字列形式を成しているので、ＣＰＵ１１０は、線形文字列の全体と同様に、オペランドに相当する線形文字列も構造解釈する。
【００６３】
より詳細には、式（５）は、分数演算子キー"/"に対して、２個の線形文字列"1"および"a2+1"がオペランドであると解釈できる。ただし、線形文字列の数式（５）だけでは、キー"/"が最上位の演算子であるかどうかは判断できない。したがって、一般に、線形文字列形式を、ユーザが所望する２次元形式へと変換するためには、次のような情報が不足している。
不足情報１）各構成要素キーの分離点はどこか？
不足情報２）各構成要素キーの所望する構成要素は候補領域のどの要素か？
不足情報３）もし確定した要素が演算子の場合、そのオペランドは線形文字列のどの部分に相当するか？ 
上記の不足情報は、自動的に決定することはできないため、本システムは、与えられた線形文字列に含まれる各キー文字または文字列に対して、ユーザにその不足情報を要求し、その指示を受諾することによって確定する。
【００６４】
例えば、不足情報２）の場合、ＣＰＵ１１０は、キー辞書データ１３３における対象キーの候補領域の中からユーザに所望する要素を選択させる。具体的には、ＣＰＵ１１０は、所定の優先順位に基づいて要素候補を１つずつ切り替えて提示することによって、ユーザに所望する要素を採択させる処理と、候補領域のすべての要素を同時に提示し、ポインティングデバイスなどを用いて選択させる処理、のいずれかまたはその両方を実行する。
【００６５】
また、不足情報３）のオペランドに相当する線形文字列の部分（オペランド範囲）を確定するために、ＣＰＵ１１０は、次に示すオペランド範囲の終点候補の入力をユーザに促す。ある演算子に対するオペランド範囲の開始点となるキーは、与えられた線形文字列形式の内、必ず（ａ）先端キー、(ｂ)演算子直後のキー、(ｃ)直前オペランドの終点直後のキーのいずれかとして自動的に決定することができる。一方、オペランド範囲の終点となり得るキーは、一意的には決まらず、開始点以降の（ｄ）区切りポイント直前のキー、（ｅ）演算子直前のキー、（ｆ）終端キーのいずれかである。
【００６６】
ＣＰＵ１１０は、対応関係データ１３２のようなオペランドの個数と演算子およびオペランドが並ぶ順番の情報を用いて、確定した演算子タイプに基づいて線形文字列形式を構造解釈することによって、終点候補となるキー（ｄ）〜（ｆ）を算出する。終点候補（ｄ）〜（ｆ）は線形に並んでいるため、ユーザが選択させることは容易であろう。例えば、線形文字列の数式（５） の演算子キー"/"が分数の場合に、分母にあたるオペランド範囲の終点は"a"、"2"、"b"の３通り存在する。終点"a"、"2"、"b"は、それぞれ、終点候補（ｄ）、（ｅ）、（ｆ）に該当する。以上のようにして、ＣＰＵ１１０は、すべての構成要素キーが確定したときに、数式の構築を完了する。
【００６７】
ＣＰＵ１１０は、メモリ１３０または記録媒体１４１のプログラムを実行することによって、指示制御モジュールとして動作する。より詳細には、ＣＰＵ１１０は、指示制御モジュールとして、キーボード１６０などの入力デバイスを絶えず監視することによって、線形文字列形式から構成要素を解釈して２次元形式を構築するための（未確定情報に関する）ユーザからの指示を、当該構成要素ごとに受諾する。そして、ＣＰＵ１１０は、構築処理の制御を繰り返す。
【００６８】
ＣＰＵ１１０は、ユーザからの構築開始指示（例えば「Enter」キー）を受諾すると、指示制御モジュールとして、構築モジュールに、既に受諾している線形文字列形式を構造解釈して２次元形式の最優先候補を構築させる。ＣＰＵ１１０は、ディスプレイ１２０に、当該最優先候補を表示させる。
【００６９】
ＣＰＵ１１０は、指示制御モジュールとして、ユーザからの次候補要求指示（例えば「Space」キー）を受諾すると、構築モジュールに、現在の選択対象要素を次候補に置き換えることによって２次元形式の数式候補を再構築させる。ＣＰＵ１１０は、ディスプレイ１２０に当該数式候補を再表示させる。
【００７０】
例えば、線形文字列形式の数式（６）において、ＣＰＵ１１０は、"int"を１個のキーとして解釈しているが、ユーザが所望する式は"int"が３個のキー"i"、"n"、"t"である可能性がある。ＣＰＵ１１０は、ユーザからの再解釈指示を受諾すると、指示制御モジュールとして、構築モジュールに、現在の選択対象要素を次のキー解釈に変更させることによって、数式候補を再構築させる。ＣＰＵ１１０は、ディスプレイ１２０に当該候補を再表示させることができる。
【００７１】
ＣＰＵ１１０は、キーボード１６０の右矢印キーまたは左矢印キーを介して、ユーザからのオペランド範囲変更指示（範囲縮小または拡大）を受諾すると、指示制御モジュールとして、構築モジュールに、構築された２次元形式の現在の範囲変更対象オペランドの範囲を変更させて数式候補を再構築させる。ＣＰＵ１１０は、ディスプレイ１２０に当該数式候補を再表示させる。
【００７２】
ＣＰＵ１１０は、キーボード１６０の上矢印キーまたは下矢印キーを介して、ユーザからのオペランド範囲変更対象移動指示（次または前オペランドへ移動）を受諾すると、指示制御モジュールとして、構築モジュールに、構築された２次元形式の現在の選択対象要素のオペランドの現在の範囲変更対象を移動させて数式を再構築させる。ＣＰＵ１１０は、ディスプレイ１２０に当該数式候補を再表示させる。
【００７３】
ＣＰＵ１１０は、ユーザからの対象要素採択指示（「Enter」キー）を受諾すると、指示制御モジュールとして、構築された２次元形式の現在の選択対象要素を確定済にする。このとき、未確定の構成要素が残っていれば、ＣＰＵ１１０は、選択対象を次の構成要素キーに移す。ＣＰＵ１１０は、２次元形式を再構築してディスプレイ１２０に当該候補を再表示させる。未確定の構成要素が残っていなければ、すなわち、すべての数式要素が確定していれば、ＣＰＵ１１０は、構築が完了した２次元形式をディスプレイ１２０に表示させる。ＣＰＵ１１０は、構築処理を終了する。
【００７４】
ＣＰＵ１１０は、メモリ１３０または記録媒体１４１のプログラムを実行することによって、データ管理モジュールとして動作する。たとえば、ＣＰＵ１１０は、キー辞書データ１３３をユーザの利用頻度に応じて更新する。
【００７５】
前述したように、メモリ１３０は、ユーザが入力した線形文字列形式から数式構成要素を解釈して２次元形式の数式を構築するための数式要素キー辞書データ１３３を、コンピュータ読取可能な記録データとして、記憶する。なお、本実施の形態に係るキー辞書データ１３３は、文字キーなどの固定キーと、表示演算子とオペランドとの位置関係と、利用頻度の高い表示演算子を優先的に候補とするための優先順位情報とを含み得る。
【００７６】
ＣＰＵ１１０は、データ管理モジュールとして、数式の入力処理が開始される前に、キー辞書データ１３３をそのコンピュータ読取可能な記録データが保存されている記録媒体１４１からメモリ１３０に読み出す。
【００７７】
ＣＰＵ１１０は、データ管理モジュールとして、指示制御モジュールから対象要素採択指示を受諾すると、構築された２次元形式の現在の選択対象要素の（候補を算出するための）優先順位を上位になるようにキー辞書データ１３３を更新する。例えば、数式「a=2」の入力が完了すると、ＣＰＵ１１０は、キー"a"に対する記号の優先順位を上位に更新する。
【００７８】
本実施の形態においては、キー"a"に対して、記号が候補として上位に挙がるため、同じ記号を使用した式を繰り返し構築する場合に、従来よりも作業効率が向上する。
【００７９】
ＣＰＵ１１０は、データ管理モジュールとして、構築が完了した２次元形式の数式に含まれる、有効と判断された数式およびその部分とそのそれぞれのキー文字列を全て算出すする。ＣＰＵ１１０は、それらが現在の履歴データ１３４に含まれる場合は、それらの優先順位を更新する。ＣＰＵ１１０は、それらが現在の履歴データ１３４に含まれない場合は、新たにそのキーレコードを追加する。
【００８０】
ＣＰＵ１１０は、データ管理モジュールとして、履歴データ１３４のキーレコード数の上限値を用途に合わせて決定する。ＣＰＵ１１０は、追加レコードが上限値を超過した場合は、優先順位の最も低いレコードから破棄する。ＣＰＵ１１０は、データ管理モジュールとして、更新された履歴データ１３４のうち、長期記憶が必要と判断されたレコードを、（次回の数式構築処理に反映されるように、）コンピュータ読取可能な記録データとして記録媒体１４１に記録する。
【００８１】
ＣＰＵ１１０は、メモリ１３０または記録媒体１４１のプログラムを実行することによって、修正モジュールとして動作する。ＣＰＵ１１０は、入力された線形文字列形式による数式あるいは構築された２次元形式の数式の少なくとも一部分を編集する。これにより、ユーザは誤入力した数式を修正することが容易になり、さらに数式入力の作業効率が向上する。
【００８２】
＜数式構築処理＞
以下では、ＣＰＵ１１０によって実行される数式構築処理について説明する。図５は、本実施の形態に係る数式構築処理を示すフローチャートである。
【００８３】
図５を参照して、ＣＰＵ１１０は、キーボード１６０を介して、ユーザから線形文字列形式の入力を受け付ける（ステップＳ１０２）。ＣＰＵ１１０は、ユーザから構築開始指示を受け付けると、構築モジュールとして、キー辞書データ１３３を参照することによって線形文字列形式に含まれる入力演算子を特定する。ＣＰＵ１１０は、対応関係データ１３２に基づいて、入力演算子を表示演算子に変換することによって２次元形式の数式候補を構築する（ステップＳ１０４）。
【００８４】
ＣＰＵ１１０は、次の未確定構成要素ならびにその要素が演算子の場合は、さらにそのオペランド範囲を、指示対象要素として抽出し、メモリ１３０に記録する（ステップＳ１０６）。ＣＰＵ１１０は、構築された２次元形式の数式候補を、ディスプレイ１２０に表示させる（ステップＳ１０８）。本実施の形態においては、ＣＰＵ１１０は、ディスプレイ１２０に抽出された指示対象要素を強調表示させる。
【００８５】
ＣＰＵ１１０は、ユーザから、要求された指示対象要素の未確定情報に関する指示を受け付ける（ステップＳ１１０）。ＣＰＵ１１０は、ユーザからの指示を受け付けると、当該指示が、指示対象要素に対するキー再解釈指示であるか、オペランド範囲変更指示であるか、次候補要求指示であるか、または対象要素採択指示であるかを判定する（ステップＳ１１２）。
【００８６】
ＣＰＵ１１０は、受け付けた指示が候補採択指示でない場合には、ステップＳ１０４からの処理を繰り返す。ＣＰＵ１１０は、候補採択指示を受け付けた場合には、指示に応じて数式候補を再構築および再表示する。すなわち、ＣＰＵ１１０は、繰り返し、ユーザ指示を受け付ける。
【００８７】
ＣＰＵ１１０は、数式候補の指示対象要素を確定済みにし、キー辞書データ１３３の確定要素に対応する優先順位を更新する（ステップＳ１１４）。ＣＰＵ１１０は、数式候補の全ての構成要素が確定済みであるか否かを判断する（ステップＳ１１６）。ＣＰＵ１１０は、数式候補の全ての構成要素が確定済みでない場合（ステップＳ１１６においてＮＯである場合）、ステップＳ１０６からの処理を繰り返す。すなわち、ＣＰＵ１１０は、指示対象を次の未確定要素へと移し、当該未確定要素に関して、繰り返し、ユーザ指示を受け付ける。
【００８８】
ＣＰＵ１１０は、数式候補の全ての構成要素が確定済みである場合（ステップＳ１１６においてＹＥＳである場合）、構築された数式を第１の確定済み数式要素として記録する。さらに、ＣＰＵ１１０は、データ管理モジュールとして、履歴データ１３４を更新する。
【００８９】
本実施の形態に係るコンピュータ１００は、第１の数式を構築した後で、ユーザが第１の数式に第２の線形文字列形式による数式部分を追加入力することができる。すなわち、本実施の形態に係るコンピュータ１００は、ユーザとの相互作用によって、２次元形式の第２の数式を追加することができる。
【００９０】
すなわち、既に、第１の数式が確定済要素として記録された後（ステップＳ１１８）、ＣＰＵ１１０は、キーボード１６０を介して、ユーザから更なる線形文字列形式の入力を受け付ける（ステップＳ１２０）。換言すれば、第１の確定済の数式要素がメモリ１３０に記録されている状態で、ＣＰＵ１１０は、第２の数式（追加文字列）の入力を許可する。
【００９１】
ＣＰＵ１１０は、ユーザによる更なる線形文字列形式の入力が開始されると（ステップＳ１２０においてＹＥＳである場合）、第２の数式に関して、ステップＳ１０２からの処理を繰り返す。なお、ＣＰＵ１１０は、新たに構築された数式を第１の確定済数式要素として記録する。
【００９２】
ＣＰＵ１１０は、キーボード１６０を介して、ユーザから更なる線形文字列形式の入力を受け付けなかった場合（ステップＳ１２０においてＮＯである場合）、数式構築処理を終了する。
【００９３】
＜コンピュータ１００の第１の動作例＞
まず、本実施の形態に係るコンピュータ１００の第１の動作例について説明する。図６は、本実施の形態に係るコンピュータ１００の第１の動作例を示すイメージ図である。
【００９４】
図６（Ａ）を参照して、ユーザは、キーボードを用いて線形文字列形式を入力する。ユーザは、文字列の入力が完了すると、数式構築処理の開始指示として例えば「Enter」キーを押下する。ＣＰＵ１１０は、入力された線形文字列形式を解釈して２次元形式の数式候補を算出する。
【００９５】
図６（Ｂ）を参照して、ＣＰＵ１１０は、ディスプレイ１２０に２次元形式の数式候補を表示させる。ボックスで強調された部分は、選択対象の構成要素を表している。
【００９６】
図６（Ｃ）および図６（Ｄ）を参照して、選択対象の構成要素がユーザの所望する記号でないため、ユーザは、所望の記号が表示されるまで、次候補要求指示として「Space」キーを繰り返し押下する。本実施の形態のキー辞書データ１３３には、キー"a"に関連する候補として４個の表記コード（ローマン体、ボールド体、イタリック体、ギリシャ文字）が登録されている。ＣＰＵ１１０は、キー辞書データ１３３を参照して、優先順位に基づいて現在の候補要素のみを提示する。
【００９７】
図６（Ｅ）を参照して、ユーザが所望する表記コードが表示されたので、ユーザは、対象要素採択指示として「Enter」キーを押下する。ＣＰＵ１１０は、次の構成要素に対象を移す。選択対象が演算子"="であるため、ＣＰＵ１１０は、ディスプレイ１２０に、２個のオペランドの候補の範囲をあらわす下線を表示させる。なお、ＣＰＵ１１０は、現在の範囲変更対象をユーザに示すために、表示されている２つのオペランドのうちの第２のオペランドの範囲に二重線を付す。
【００９８】
なお、本実施の形態に係るキー辞書データ１３３には、入力演算子"="に関連して５個の表示演算子が登録されている。対応関係データ１３２は、演算子毎に、その演算子記号表記コードと、演算子の作用構造を区別するためのいずれかに対応した演算子タイプを示す情報を保持している。
【００９９】
図６（Ｆ）を参照して、ユーザが、対象要素採択指示として「Enter」キーを押下すると、すなわち最後の構成要素が確定すると、ＣＰＵ１１０は、数式の構築処理を完了する。
【０１００】
なお、本線形文字列形式表記法では、キー"a"の代わりに"alpha"のような冗長な表現を許し得る。例えば、図６（Ａ）において、ユーザが線形文字列"alpha ＝ 2"を入力してから構築処理を開始すると、ＣＰＵ１１０はいきなり図６（Ｄ）のステップへと進む。このように、冗長な表現は候補を絞ることができるため、数式を構築し易くなる。
【０１０１】
＜コンピュータ１００の第２の動作例＞
まず、本実施の形態に係るコンピュータ１００の第２の動作例について説明する。図７は、本実施の形態に係るコンピュータ１００の第２の動作例を示すイメージ図である。
【０１０２】
図７（Ａ）を参照して、ユーザは、キーボードを用いて線形文字列形式を入力する。ユーザは、文字列の入力が完了すると、数式構築処理の開始指示として「Enter」キーを押下する。ＣＰＵ１１０は、入力された線形文字列形式を解釈して２次元形式の数式候補を算出する。
【０１０３】
図７（Ｂ）を参照して、ＣＰＵ１１０は、ディスプレイ１２０に２次元形式の数式候補を表示させる。ボックスで強調された部分は、選択対象の構成要素を表している。選択対象が演算子"/"であるため、ＣＰＵ１１０は、ディスプレイ１２０に２個のオペランドの候補に範囲をあらわす下線を表示させる。
【０１０４】
図７（Ｃ）を参照して、選択対象の構成要素がユーザの所望する記号でないため、ユーザは、所望の記号が表示されるまで、次候補要求指示として「Space」キーを繰り返し押下する。
【０１０５】
図７（Ｄ）を参照して、ユーザが所望する表記コードが表示されたので、ユーザは、対象要素採択指示として「Enter」キーを押下する。ＣＰＵ１１０は、次の構成要素に対象を移す。ボックスで強調された部分は、選択対象の構成要素を表している。ユーザは、対象要素採択指示として「Enter」キーを押下する。ＣＰＵ１１０は、次の構成要素に対象を移す。このとき、ＣＰＵ１１０は、数式最小単位記号が並ぶ"a"と"2"の間に、省略演算子があると解釈する。
【０１０６】
図７（Ｅ）を参照して、ＣＰＵ１１０は、省略演算子の第１候補（キー辞書データ１３３の空キーを参照。）である暗黙積演算子を選択対象とする。選択対象が暗黙演算子であるため、ＣＰＵ１１０は、ディスプレイ１２０に暗黙演算子の後のオペランドの範囲に二重線を表示させる。
【０１０７】
なお、本実施の形態に係るＣＰＵ１１０は、数式最小単位記号が並ぶ間（「区切りポイント」という。）に関して特別な処理を実行する。暗黙演算子は表示されないため、対象要素を強調するためのボックスは見えない。ＣＰＵ１１０は、ディスプレイ１２０にオペランド範囲をマークさせる。このとき範囲変更対象オペランドは"2+1"となっている。
【０１０８】
図７（Ｆ）を参照して、ユーザが、対象の暗黙演算子に関して、次候補要求指示としての「Space」キーを押下すると、ＣＰＵ１１０は、暗黙演算子を冪乗演算子に切り替える。
【０１０９】
図７（Ｇ）を参照して、指数部のオペランド範囲がユーザの所望する範囲と異なるので、ユーザは、範囲縮小指示として左矢印キー（拡大する場合は右矢印キー）を押下する。ＣＰＵ１１０は、オペランド範囲を変更する。
【０１１０】
図７（Ｈ）を参照して、ユーザは、冪乗演算子に関して、対象要素採択指示として「Enter」キーを押下する。
【０１１１】
図７（Ｉ）を参照して、ユーザは、次の演算子"+"に関して、対象要素採択指示として「Enter」キーを押下する。ＣＰＵ１１０は、数式の構築を終了する。
【０１１２】
図７（Ｊ）を参照して、本実施の形態においては、ＣＰＵ１１０は、確定した第１の数１個の確定済数式要素と見なし、それに続く線形文字列形式の追加を受け付ける。ユーザは、線形文字列形式による追加部分"=2"を入力し、第２の構築処理の開始指示として「Enter」を押下する。
【０１１３】
図７（Ｋ）を参照して、ＣＰＵ１１０は、演算子キー"="に対する候補とオペランド範囲を示す下線とをディスプレイ１２０に表示する。
【０１１４】
図７（Ｌ）を参照して、ユーザは、次候補要求指示として「Space」キーを押下する。ＣＰＵ１１０は、次候補要求指示に応じて、表示する演算子を切り替える。ＣＰＵ１１０は、ディスプレイ１２０に所望する記号を表示させる。
【０１１５】
図７（Ｍ）を参照して、ＣＰＵ１１０は、対象要素採択指示として、「Enter」キーを押下する。ＣＰＵ１１０は、第２の数式の構築処理を終了する。
【０１１６】
なお、本実施の形態に係るコンピュータ１００に関しては、図７（Ａ）において、ユーザが線形文字列"1/a2+1=2"をまとめて入力しても同じ結果を得ることができる。本実施の形態に係るコンピュータ１００は、線形文字列形式を第１の数式と第２の数式とに分けて構築できるため、操作ミスを軽減できる効果が期待される。
【０１１７】
また、本実施の形態に係るコンピュータ１００に関しては、ＣＰＵ１１０は、履歴キー文字列"1/a2+1"と、その部分文字列"a2+1"に対する複数の２次元形式がメモリ１３０の履歴データ１３４に記録／更新される。
【０１１８】
＜コンピュータ１００の第３の動作例＞
まず、本実施の形態に係るコンピュータ１００の第３の動作例について説明する。図８は、本実施の形態に係るコンピュータ１００の第３の動作例を示すイメージ図である。
【０１１９】
図８（Ａ）を参照して、ユーザは、キーボードを用いて線形文字列形式を入力する。ユーザは、文字列の入力が完了すると、数式構築処理の開始指示として「Enter」キーを押下する。ＣＰＵ１１０は、入力された線形文字列形式を解釈して２次元形式の数式候補を算出する。
【０１２０】
本実施の形態においては、キー辞書データ１３３は、与えられた線形文字列をキーの列に分解する際に、文字数の大きいキー文字列が優先的に検索されるような、検索優先順位の情報を含む。たとえば、ＣＰＵ１１０は、キー辞書データ１３３を参照して、数式（６）の文字列"int"を積分演算子キーと解釈する。また、ＣＰＵ１１０は、文字列"abc"の部分は３個の数式最小単位記号が並んでいると解釈し、文字列"abc"が２箇所の区切りポイントを含んでいると解釈する。
【０１２１】
図８（Ｂ）を参照して、ＣＰＵ１１０は、初め、選択対象の積分演算子を、単項演算子と解釈する。ＣＰＵ１１０は、ディスプレイ１２０に２次元形式の数式候補を表示させる。ボックスで強調された部分は、選択対象の構成要素を表している。ＣＰＵ１１０は、ディスプレイ１２０に、演算子の後のオペランドの範囲に二重線を表示させる。
【０１２２】
図８（Ｃ）を参照して、ユーザが、次候補要求指示として「Space」キーを押下すると、ＣＰＵ１１０は、積分単項演算子を積分二項演算子に変更する。ＣＰＵ１１０は、最初の区切りポイントで２個のオペランドへと分離する。
【０１２３】
図８（Ｄ）を参照して、ユーザが、さらに次候補要求指示として「Space」キーを押下すると、積分二項演算子を積分三項演算子に変更する。このとき、範囲変更対象は、第１のオペランドのままである。
【０１２４】
図８（Ｅ）および図８（Ｆ）を参照して、第３のオペランドの範囲を変更すべき場合、ユーザは、範囲変更対象次移動指示を入力する。図８（Ｅ）を参照して、ＣＰＵ１１０は、上矢印キーに応じて変更対象を第２のオペランドに変更する。図８（Ｆ）を参照して、ＣＰＵ１１０は、上矢印キーに応じて変更対象を第３のオペランドに変更する。ただし、ＣＰＵ１１０は、上矢印キーに応じて変更対象を前方に変更し、下矢印キーに応じて変更対象を後方に変更してもよい。
【０１２５】
図８（Ｇ）を参照して、同様に、ＣＰＵ１１０は、範囲縮小指示としての左矢印キーに応じて、第３のオペランドの範囲を変更する。
【０１２６】
図８（Ｈ）を参照して、ユーザが、積分演算子に関する対象要素採択指示として「Enter」キーを入力する。ＣＰＵ１１０は、積分演算子を確定する。積分演算子が確定されると、ＣＰＵ１１０は、第１のオペランドを選択対象にする。
【０１２７】
図８（Ｉ）および図８（Ｊ）を参照して、ＣＰＵ１１０は、対象要素採択指示としての「Enter」キーの入力毎に、各オペランドの要素を確定していく。
【０１２８】
図８（Ｋ）および図８（Ｌ）を参照して、最後の演算子に関して、ユーザが対象要素採択指示として「Enter」キーを押下すれば、ＣＰＵ１１０は、数式の構築処理を終了する。
【０１２９】
＜コンピュータ１００の第４の動作例＞
まず、本実施の形態に係るコンピュータ１００の第４の動作例について説明する。図９は、本実施の形態に係るコンピュータ１００の第４の動作例を示すイメージ図である。
【０１３０】
なお、図７に示した数式構築処理が終了した後に、以下の処理が実行される場合について説明する。
【０１３１】
図９（Ａ）を参照して、ユーザは、キーボードを用いて線形文字列形式を入力する。ユーザは、文字の入力が完了すると、数式構築処理の開始指示として「Enter」キーを押下する。ＣＰＵ１１０は、入力された線形文字列形式を解釈して２次元形式の数式候補を算出する。
【０１３２】
図９（Ｂ）を参照して、ＣＰＵ１１０は、４個のキーとして解釈されていた部分文字列"a2+1"を、履歴データ１３４で検索する。すなわち、本実施の形態においては、履歴データ１３４でヒットした数式の２次元形式の表示が優先されるため、ＣＰＵ１１０は、１ステップで"a2+1"の２次元形式を１個の数式要素として候補に挙げる。ユーザが、表示された数式候補を採用したくないない場合は、上述の指示制御モジュールに対してキー再解釈指示を出すことができる。
【０１３３】
図９（Ｃ）を参照して、ＣＰＵ１１０は、対象要素採択指示として「Enter」キーの押下を受け付け、次の構成要素"/"に対象を移す。ボックスで強調された部分は、選択対象の構成要素を表している。選択対象が演算子"/"であるため、ＣＰＵ１１０は、ディスプレイ１２０に２個のオペランドの候補の範囲をあらわす下線を表示させる。
【０１３４】
図９（Ｄ）を参照して、選択対象の構成要素がユーザの所望する記号でないため、ユーザは、所望の記号が表示されるまで、次候補要求指示として「Space」キーを繰り返し押下する。
【０１３５】
図９（Ｅ）を参照して、ユーザが所望する表記コードが表示されたので、ユーザは、対象要素採択指示として「Enter」キーを押下する。ＣＰＵ１１０は、数式構築処理を終了する。
【０１３６】
このように、本実施の形態においては、データ管理モジュールとして動作するＣＰＵ１１０が、ユーザの利用頻度の高い候補を優先的に算出するため、ユーザが線形文字列形式から２次元形式の数式を少ないステップで構築することができ、数式入力の作業効率がさらに向上する。
【０１３７】
＜その他の応用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した外部の記録媒体１４１（メモリ１３０）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が外部の記録媒体１４１（メモリ１３０）に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１３８】
この場合、外部の記録媒体１４１（メモリ１３０）から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した外部の記録媒体１４１（メモリ１３０）は本発明を構成することになる。
【０１３９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１４０】
さらに、外部の記録媒体１４１（メモリ１３０）から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記録媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１４１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４２】
１００  コンピュータ、１１０  ＣＰＵ、１２０  ディスプレイ、１３０  メモリ、１３１，１３２  対応関係データ、１３３  キー辞書データ、１３４  履歴データ、１４０  メモリインターフェイス、１４１  記録媒体、１５０  通信インターフェイス、１６０  キーボード。
【図１】
0005761687.tif 000008
【図２】
0005761687.tif 000009
【図３】
0005761687.tif 000010
【図４】
0005761687.tif 000011
【図５】
0005761687.tif 000012
【図６】
0005761687.tif 000013
【図７】
0005761687.tif 000014
【図８】
0005761687.tif 000015
【図９】
0005761687.tif 000016