(57)【特許請求の範囲】
【請求項１】
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする電子機器。
【請求項２】
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする請求項１記載の電子機器。
【請求項３】
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする請求項２記載の電子機器。
【請求項４】
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器及びプログラムに関する。
【背景技術】
【０００２】
従来より、入力される各種数式の演算を実行して演算結果を表示する電子機器として、関数電卓が知られている。
【０００３】
このような関数電卓では、近年、取り扱える関数の種類が多くなってきており、積分等の複雑な演算を行うことが可能となっている。但し、入力キー群を操作して積分等の数式を入力するには、上下限値や被演算関数を決められた順序でキー入力しなければならないため、入力作業に手間がかかってしまう。そこで、タッチパネルによって数式の手書き入力を行わせ、入力された数式を認識する技術が開発されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−７２７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、手書き入力時の筆跡や入力スピードはユーザの個人個人で異なっているため、数式を手書き入力させて認識する場合には、例えば、認識した文字自体は合っていても、数式内での認識位置がズレてしまうことが十分考えられる。
【０００６】
このような場合、文字の位置を修正するためには、ユーザに数式を再入力させることも考えられるが、手間がかかってしまうし、再入力時にも文字の誤認識や認識位置のズレが発生する可能性があるため、使い勝手が悪い。
そのため、近年、手書き入力された数式中での文字位置を容易に修正できる技術について、要望が強まっている。
【０００７】
本発明の課題は、手書き入力された数式中での文字位置を容易に修正できるようにすることである。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、請求項１に記載の発明は、電子機器において、
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする。
【０００９】
また、請求項２記載の発明は、請求項１記載の電子機器において、
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする。
【００１０】
また、請求項３記載の発明は、請求項２記載の電子機器において、
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする。
【００１２】
また、請求項４記載の発明は、プログラムにおいて、
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とする。
【発明の効果】
【００１４】
請求項１，４記載の発明によれば、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、表示された数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出され、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【図面の簡単な説明】
【００１６】
【図１】関数電卓の概略構成を示す平面図である。
【図２】関数電卓の機能構成を示すブロック図である。
【図３】数式表示データのデータ構造を示す図である。
【図４】数式テキストデータのデータ構造を示す図である。
【図５】数式テキストデータのデータ構造を示す図である。
【図６】手書き入力処理の流れを示すフローチャートである。
【図７】認識・表示処理の流れを示すフローチャートである。
【図８】手書き入力処理を説明するための図である。
【図９】手書き入力処理を説明するための図である。
【図１０】関数部品バッファの構造を示す図である。
【図１１】関数部品バッファの構造を示す図である。
【図１２】自動訂正処理の流れを示すフローチャートである。
【図１３】手書き入力処理を説明するための図である。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照して本発明に係る実施の形態の一例を詳細に説明する。ただし、発明の範囲は、図示例に限定されない。
【００１８】
（第１の実施形態）
先ず、図１〜図９を参照して、本発明に係る第１の実施形態を説明する。
［１．１  外観構成］
図１は、本発明に係る電子機器を適用した関数電卓１の概略構成を示す平面図である。
この図に示すように、関数電卓１は、各種キー群を有する入力キー群２と、ディスプレイ３と、を備えている。
【００１９】
入力キー群２は、ユーザから数値や演算記号等（以下、これらを包括して「文字」とも称する）の数式構成要素の入力操作を受けたり、各種処理の指示操作を受けたりするためのキー群であり、それぞれ固有の機能を割り当てられた複数のキーを備えている。本実施の形態においては、入力キー群２は、数式の演算を指示するためのＥＸＥキー２０や、数式内容の訂正を指示するための訂正キー２１などを有している。
【００２０】
ディスプレイ３は、ＬＣＤ（Liquid Crystal Display）やＥＬＤ（Electronic Luminescent Display）等により構成されており、入力キー群２などの操作に応じた文字や符号、数式、演算結果などの他、関数電卓１を使用するために必要な各種データを表示するようになっている。このディスプレイ３には、本発明における位置変更指示手段としてのタッチパネル３０（図２参照）が表示画面全面に亘って一体的に設けられている。
【００２１】
タッチパネル３０は、ディスプレイ３の表示画面に対する入力ペン（図示省略）の接触位置を検出するようになっている。具体的には、タッチパネル３０は、例えば、表示画面の全域、或いは表示画面よりも内側に設けられ、電磁誘導方式、磁気歪式、感圧式等の方式により、表示画面上における接触位置のＸＹ座標を検出する。
【００２２】
［１．２  機能構成］
続いて、関数電卓１の機能構成を説明する。
図２は、関数電卓１の概略的な機能構成を示すブロック図である。
【００２３】
この図に示すように、関数電卓１は、キー入力部１４と、本発明における表示手段としての表示部１５と、ＲＡＭ（Random Access Memory）１２と、記憶部１３と、本発明における手書き数式認識手段、候補表示制御手段、更新手段及びデータ生成手段としてのＣＰＵ（Central Processing Unit）１１と、を備えて構成されている。
【００２４】
キー入力部１４は、上述の入力キー群２を備えており、押下されたキーに対応する操作信号をＣＰＵ１１に出力するようになっている。
【００２５】
表示部１５は、上述のディスプレイ３を備えており、ＣＰＵ１１からの表示信号に従って各種情報をディスプレイ３に表示するようになっている。また、この表示部１５は、ディスプレイ３と一体的に設けられたタッチパネル３０を備えており、表示画面に対する入力ペンの接触位置情報をＣＰＵ１１に出力するようになっている。
【００２６】
ＲＡＭ１２は、情報を一時的に格納する揮発性のメモリであり、実行される各種プログラムやこれら各種プログラムに係るデータ等を格納する複数のワークエリアを有する。具体的には、本実施の形態におけるＲＡＭ１２には、表示ビットマップデータ１２０と、入力座標データ１２１と、入力イメージデータ１２２と、数式表示データ１２３と、数式テキストデータ１２４とが格納されるようになっている。
【００２７】
このうち、表示ビットマップデータ１２０は、ディスプレイ３に表示される画像のビットマップデータである。
入力座標データ１２１は、タッチパネル３０に対してペンタッチ入力（手書き入力）された座標位置（ペンタッチ入力された時点での座標位置）を示すデータである。
入力イメージデータ１２２は、タッチパネル３０に対してペンタッチ入力されたデータの座標列を示すデータである。
【００２８】
数式表示データ１２３は、認識された数式を自然表示形式でディスプレイ３に表示させるためのデータであり、表示用のデータ形式で表されている。より具体的には、図３に一例を示すように、数式表示データ１２３は、表示の位置及び大きさを示すコードＣと、コードＣによる表示対象の文字との組で構成されている。なお、図３では、後述の図８（ｃ）に図示される積分関数の数式についての数式表示データ１２３を示しており、各コードＣの内容を簡略化して図示している。この図に示すように、コードＣ１〜Ｃ７は、積分記号「∫」，積分変数の上限値「２」，下限値「１」，被積分関数の文字「ｘ」，「２」，被積分関数の終了記号「ｄ」，積分変数「ｘ」について、表示の位置及び大きさをそれぞれ示している。
【００２９】
数式テキストデータ１２４は、認識された数式を演算するためのデータであり、演算用のデータ形式で表されている。より具体的には、図４，図５に一例を示すように、数式テキストデータ１２４は、いわゆる一行表示形式で記述されている。
【００３０】
記憶部１３は、ＲＯＭ（Read  Only  Memory）等により構成される不揮発性のメモリであり、各種プログラム及び各種データを記憶している。具体的には、記憶部１３は、本発明に係るプログラムとしての手書き入力プログラム１３０を記憶している。
この手書き入力プログラム１３０は、後述の手書き入力処理（図６〜図７参照）をＣＰＵ１１に実行させるためのプログラムである。
【００３１】
ＣＰＵ１１は、関数電卓１の各部を中央制御する。具体的には、ＣＰＵ１１は、記憶部１３に記憶されているシステムプログラム及び各種アプリケーションプログラムの中から指定されたプログラムをＲＡＭ１２に展開し、ＲＡＭ１２に展開されたプログラムとの協働で、各種処理を実行する。
【００３２】
［１．３  関数電卓の動作］
続いて、関数電卓１の動作を説明する。
図６〜図７は、手書き入力処理の動作を説明するためのフローチャートである。なお、この手書き入力処理は、ユーザによりタッチパネル３０やキー入力部１４を介して手書き入力処理の実行指示が入力されると、記憶部１３から手書き入力プログラムが読み出されてＲＡＭ１２に適宜展開される結果、当該手書き入力プログラム１３０とＣＰＵ１１との協働によって実行される。なお、処理の開始時には、数式はペンタッチ入力されておらず、ディスプレイ３には何も表示されていないものとする。
【００３３】
この手書き入力処理においては、まず、図６に示すように、ＣＰＵ１１は訂正キー２１が操作されるか否かを判定し（ステップＳ１）、操作されないと判定した場合（ステップＳ１；Ｎｏ）には、タッチパネル３０に対するペンタッチ操作がされるか否かを判定する（ステップＳ２）。具体的には、ペンタッチ入力されたことを示す信号をタッチパネル３０からＣＰＵ１１が受信したか否かに基づいて、ステップＳ２の判別が行われる。
【００３４】
このステップＳ２においてペンタッチ操作がされないと判定した場合（ステップＳ２；Ｎｏ）には、ＣＰＵ１１は、上述のステップＳ１に移行し、ペンタッチ操作がされたと判定した場合（ステップＳ２；Ｙｅｓ）には、タッチパネル３０に対する数式の手書き入力を受け付け、入力された内容をディスプレイ３に表示させる（ステップＳ３）。具体的には、ペンタッチ入力された座標位置を示す入力座標データ１２１がタッチパネル３０からＣＰＵ１１に送信されると、ＣＰＵ１１は、この入力座標データ１２１をＲＡＭ１２に記憶させる。また、ＣＰＵ１１は、入力座標データ１２１に応じた入力イメージデータ１２２を生成してＲＡＭ１２に記憶させるとともに、ペンタッチの軌跡として表示部１５に表示させる。
【００３５】
次に、ＣＰＵ１１は、タッチパネル３０からペンが離れるか否かを判定し（ステップＳ４）、離れていないと判定した場合（ステップＳ４；Ｎｏ）には、上述のステップＳ３に移行する。具体的には、このステップＳ４では、ＣＰＵ１１は、ペン離れから所定の時間が経過しているか否かを判定する。つまり、複数のストロークで構成される文字の入力や、複数の文字の入力において、入力途中のペン離れにより認識処理が開始されることを防止する必要があるために、所定の時間が経過しているか否かの判別が行われる。なお、所定の時間は、予めユーザにより設定された時間であり、記憶部１３等に記憶されているものとする。
【００３６】
一方、ステップＳ４において所定の時間だけタッチパネル３０からペンが離れたと判定した場合（ステップＳ４；Ｙｅｓ）には、ＣＰＵ１１は、入力イメージデータ１２２に基づいて数式を認識できるか否かを判定する（ステップＳ５）。
【００３７】
このステップＳ５において、認識できないと判定した場合（ステップＳ５；Ｎｏ）には、ＣＰＵ１１は、後述のステップＳ７を経由してステップＳ１に戻り、次のペン入力を待機する。
【００３８】
一方、ステップＳ５において、認識できると判定した場合（ステップＳ５；Ｙｅｓ）には、ＣＰＵ１１は、認識・表示処理を行う（ステップＳ６）。
【００３９】
具体的には、図７に示すように、まずＣＰＵ１１は、入力イメージデータ１２２に基づいて入力形状を認識するとともに（ステップＴ１）、その大きさ及び位置を認識する（ステップＴ２）。
【００４０】
次に、ＣＰＵ１１は、ステップＴ１〜Ｔ２での認識結果に基づいて、手書き入力された数式を認識するとともに、数式表示データ１２３及び数式テキストデータ１２４を生成し、ＲＡＭ１２に記憶させる（ステップＴ３、Ｔ４）。
【００４１】
そして、ＣＰＵ１１は、数式表示データ１２３に基づいて、認識された数式を自然表示形式のテキストとしてディスプレイ３に表示させ（ステップＴ５）、認識・表示処理を終了する。なお、このステップＴ５においては、ＣＰＵ１１は、入力イメージデータ１２２に基づいて、手書き入力された数式のビットマップもディスプレイ３に表示させるようになっている。
【００４２】
以上の認識・表示処理が終了したら、図６に示すように、ＣＰＵ１１は、ユーザによりＥＸＥキー２０が操作されるか否かを判定し（ステップＳ７）、操作されないと判定した場合（ステップＳ７；Ｎｏ）には、上述のステップＳ１に移行する。
【００４３】
一方、ステップＳ７においてＥＸＥキー２０が操作されたと判定した場合（ステップＳ７；Ｙｅｓ）には、ＣＰＵ１１は、数式テキストデータ１２４に基づいて、認識された数式の演算を実行し、演算結果をディスプレイ３に表示させ（ステップＳ８）、手書き入力処理を終了する。
【００４４】
また、上述のステップＳ１において訂正キー２１が操作されたと判定した場合（ステップＳ１；Ｙｅｓ）には、ＣＰＵ１１は、ディスプレイ３に表示されている数式のテキスト部分がペンタッチされるか否かを判定する（ステップＳ１１）。
【００４５】
このステップＳ１１においてテキスト部分がペンタッチされないと判定した場合（ステップＳ１１；Ｎｏ）には、ＣＰＵ１１は他の処理へ移行する。
【００４６】
一方、ステップＳ１１においてテキスト部分がペンタッチされたと判定した場合（ステップＳ１１；Ｙｅｓ）には、ＣＰＵ１１は、数式表示データ１２３に基づいて、ペンタッチにより指定された文字部分（以下、指定文字部分とする）と、この指定文字部分よりも前（左側）に位置する前方文字部分とを検出し、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補を生成する（ステップＳ１２）。より詳細には、このステップＳ１２において、ＣＰＵ１１は、前方文字部分と指定文字部分とを同じ大きさでこの順に並べた変更先候補と、指定文字部分を前方文字部分の指数とした変更先候補との少なくとも２つの候補を生成するようになっている。
【００４７】
次に、ＣＰＵ１１は、生成した変換先候補をディスプレイ３に一覧表示させ（ステップＳ１３）、何れかの変換先候補がユーザに選択されるか否かを判定する（ステップＳ１４）。
【００４８】
このステップＳ１４において変換先候補が選択されないと判定した場合（ステップＳ１４；Ｎｏ）には、ＣＰＵ１１は、選択が行われるまでステップＳ１４の処理を繰り返す。
【００４９】
一方、ステップＳ１４において何れかの変換先候補が選択されたと判定した場合（ステップＳ１４；Ｙｅｓ）には、選択された変換先候補に従って前方文字部分に対する指定文字部分の位置を変更し、数式表示データ１２３及び数式テキストデータ１２４の内容と、ディスプレイ３の表示内容とを更新した後（ステップＳ１５）、上述のステップＳ７に移行する。
【００５０】
［１．４  動作例］
続いて、上記の手書き入力処理のうち、特にステップＳ１１〜Ｓ１５の処理について、具体的に説明する。
【００５１】
（動作例１）
まず、図８（ａ）の中央部に示すような数式をユーザが手書き入力すると（ステップＳ３）、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される（ステップＳ６）。なお、ここで認識された数式では、ユーザが積分変数として手書き入力した文字「ｘ」について、数式内での認識位置がズレている。
【００５２】
次に、ユーザが訂正キー２１を操作し（ステップＳ１；Ｙｅｓ）、認識位置のズレている文字「ｘ」の部分をペンタッチにより指定すると（ステップＳ１１；Ｙｅｓ）、図８（ｂ）に示すように、指定文字部分「ｘ」と、その直前の前方文字部分「ｄ」とが検出され、指定文字部分「ｘ」を前方文字部分「ｄ」の指数とした１番目の変換先候補「１：ｄx」と、前方文字部部分「ｄ」と指定文字部分「ｘ」とが同じ大きさで並べられた２番目の変換先候補「２：ｄｘ」と、指定文字部分「ｘ」を前方文字部分「ｄ」の下付き文字とした３番目の変換先候補「３：ｄx」とが表示される（ステップＳ１３）。
【００５３】
そして、ユーザが２番目の変換先候補「２：ｄｘ」を選択すると（ステップＳ１４；Ｙｅｓ）、図８（ｃ）や図４に示すように、この変換先候補に従って前方文字部分「ｄ」に対する指定文字部分「ｘ」の位置が変更され、数式表示データ１２３及び数式テキストデータ１２４の内容と、ディスプレイ３の表示内容とが更新される（ステップＳ１５）。
【００５４】
（動作例２）
まず、図９（ａ）の中央部に示すような数式をユーザが手書き入力すると（ステップＳ３）、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される（ステップＳ６）。なお、ここで認識された数式では、ユーザが「ｘ」の指数として手書き入力した文字「２」について、数式内での認識位置がズレている。
【００５５】
次に、ユーザが訂正キー２１を操作し（ステップＳ１；Ｙｅｓ）、認識位置のズレている文字「２」の部分をペンタッチにより指定すると（ステップＳ１１；Ｙｅｓ）、図９（ｂ）に示すように、指定文字部分「２」と、その直前の前方文字部分「ｘ」とが検出され、指定文字部分「２」を前方文字部分「ｘ」の指数とした１番目の変換先候補「１：ｘ2」と、前方文字部部分「ｘ」と指定文字部分「２」とが同じ大きさで並べられた２番目の変換先候補「２：ｘ２」とが表示される（ステップＳ１３）。
【００５６】
そして、ユーザが１番目の変換先候補「１：ｘ2」を選択すると（ステップＳ１４；Ｙｅｓ）、図９（ｃ）や図５に示すように、この変換先候補に従って前方文字部分「ｘ」に対する指定文字部分「２」の位置が変更され、数式表示データ１２３及び数式テキストデータ１２４の内容と、ディスプレイ３の表示内容とが更新される（ステップＳ１５）。
【００５７】
以上、本実施の形態によれば、図６のステップＳ１１〜Ｓ１５や、図８，図９等に示したように、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出された後、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【００５８】
（第２の実施形態）
続いて、本発明に係る電子機器の第２の実施形態について説明する。なお、上記第１の実施形態との間で互いに対応する部分が同様に構成されている場合には、同一の符号を付して、その説明を省略する。
【００５９】
［２．１  構成］
本実施の形態における関数電卓１Ａの記憶部１３Ａは、図２に示すように、手書き入力プログラム１３０Ａを備えている。
この手書き入力プログラム１３０Ａは、後述の手書き入力処理（図６，図１２参照）をＣＰＵ１１に実行させるためのプログラムである。
【００６０】
また、関数電卓１ＡのＲＡＭ１２Ａは、図１０，図１１に示すように、関数部品バッファ１２５を有している。なお、図２では、図示の便宜上、関数部品バッファ１２５の図示を省略している。
【００６１】
この関数部品バッファ１２５には、上述の認識・表示処理において認識される関数の種類に基づいて、当該関数の構成要素の種類ごとにバッファＢが形成され、各構成要素の内容（表示対象）が格納されるようになっている。
【００６２】
例えば、認識される関数が積分関数の場合には、図１０に示すように、関数部品バッファ１２５には、積分記号を格納するバッファＢ１と、被積分関数を格納するバッファＢ２と、積分変数の上限値，下限値を格納するバッファＢ３，Ｂ４と、被積分関数の終了記号を格納するバッファＢ５と、積分変数を格納するバッファＢ６とが形成され、各バッファＢ１〜Ｂ６には、その構成要素についての表示対象が格納される。なお、この図では、各バッファＢに格納される構成要素の種類を図中の左側欄に示し、各構成要素についての表示対象を図中の右側欄に示している。
【００６３】
また、認識される関数が微分関数の場合には、図１１の左側欄に示すように、関数部品バッファ１２５には、微分記号を格納するバッファＢ１と、微分変数を格納するバッファＢ２と、微分式を格納するバッファＢ３と、微分点を格納するバッファＢ４とが形成され、各バッファＢ１〜Ｂ４には、その構成要素についての表示対象が格納される。
【００６４】
また、認識される関数が総和関数の場合には、図１１の右側欄に示すように、関数部品バッファ１２５には、総和記号を格納するバッファＢ１と、変数を格納するバッファＢ２と、変数の始点，終点を格納するバッファＢ３，Ｂ４と、被総和関数（一般項）を格納するバッファＢ５とが形成され、各バッファＢ１〜Ｂ５には、その構成要素についての表示対象が格納される。
【００６５】
［２．２  関数電卓の動作］
続いて、関数電卓１Ａの動作について説明する。なお、本第２の実施形態における関数電卓１Ａでは、上記第１の実施形態の手書き入力処理におけるステップＳ１１〜Ｓ１５（図６参照）に代えて、以下の自動訂正処理を行うようになっている。
【００６６】
図１２は、ＣＰＵ１１が記憶部１３から手書き入力プログラム１３０Ａを読み出して実行する手書き入力処理のうち、自動訂正処理の動作を説明するためのフローチャートである。
【００６７】
この図に示すように、上記第１の実施形態における手書き入力処理のステップＳ１（図６参照）で訂正キー２１が操作されたと判定した場合（ステップＳ１；Ｙｅｓ）には、ＣＰＵ１１は、ＲＡＭ１２から数式表示データ１２３を読み取った後（ステップＵ１）、この数式表示データ１２３に基づいて、手書き入力された数式が所定の関数を有するか否かを判定する（ステップＵ２）。なお、本実施の形態においては、所定の関数として、積分関数や微分係数、総和関数などが用いられている。
【００６８】
このステップＵ２において数式が所定の関数を有しないと判定した場合（ステップＵ２；Ｎｏ）には、ＣＰＵ１１は、数式の自動訂正が不可能である旨のメッセージをディスプレイ３に表示させる（ステップＵ１０）。
【００６９】
次に、ＣＰＵ１１は、ディスプレイ３の表示内容をステップＵ１の段階まで戻して、ユーザによるマニュアル操作によって数式の訂正を行った後（ステップＵ９）、自動訂正処理を終了して、上述のステップＳ７（図６参照）に移行する。なお、マニュアル操作によって数式の訂正を行うとは、具体的には、上記第１の実施形態の手書き入力処理におけるステップＳ１１〜Ｓ１５の処理によって数式の訂正を行うことを意味する。
【００７０】
一方、上述のステップＵ２において数式が所定の関数を有すると判定した場合（ステップＵ２；Ｙｅｓ）には、ＣＰＵ１１は、当該関数の種類と数式表示データ１２３の内容（特に表示位置の情報など）とに基づいて、この関数の構成要素の種類ごとのバッファＢを関数部品バッファ１２５に形成した後、各構成要素についての表示対象を、対応するバッファＢに格納させる（ステップＵ３）。
【００７１】
次に、ＣＰＵ１１は、情報の格納されていないバッファＢが関数部品バッファ１２５にあるか否かを判定し（ステップＵ４）、ないと判定した場合（ステップＵ４；Ｎｏ）には、上述のステップＵ１０に移行する。
【００７２】
一方、ステップＵ４において情報の格納されていないバッファＢがあると判定した場合（ステップＵ４；Ｙｅｓ）、つまり関数内の何れかの構成要素について表示対象が未認識であると判定した場合には、ＣＰＵ１１は、数式表示データ１２３における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファＢに入力する（ステップＵ５）。これにより、情報の格納されていないバッファＢの内容、つまり未認識の構成要素についての表示対象が、未だ何れの構成要素の表示対象にもされていない文字とされる。
【００７３】
なお、このステップＵ５において情報の格納されていないバッファＢが複数ある場合、つまり関数内の複数の構成要素の表示対象が未認識である場合には、ＣＰＵ１１は、情報の格納されていない何れか１つのバッファＢを選択して、このバッファＢ（以下、選択バッファＢとする）に対応する構成要素の種類をディスプレイ３に表示させるとともに、数式表示データ１２３における文字のうち、未だ何れの構成要素の表示対象にもされていない文字を検出し、入力候補としてディスプレイ３に一覧表示させた後、この中からユーザに選択された文字を、選択バッファＢに入力するようになっている。そして、ＣＰＵ１１は、表示対象が未認識となっている各構成要素について、このような処理を繰り返すようになっている。但し、この処理を繰り返すことで、表示対象が未認識となっている構成要素が１つだけになった場合には、通常のステップＵ５の場合と同様に、数式表示データ１２３における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファＢに自動で入力することとしても良い。
【００７４】
次に、ＣＰＵ１１は、関数部品バッファ１２５の内容に基づいて、数式表示データ１２３及び数式テキストデータ１２４の内容と、ディスプレイ３の表示内容とを更新する（ステップＵ７）。
【００７５】
次に、ＣＰＵ１１は、更新後の数式の内容が正しいか間違っているかをユーザに選択させ（ステップＵ８）、間違っていると選択された場合（ステップＵ８；Ｎｏ）には上述のステップＵ９に移行し、正しいと選択された場合（ステップＵ８；Ｙｅｓ）には、自動訂正処理を終了して、上述のステップＳ７（図６参照）に移行する。
【００７６】
［２．３  動作例］
続いて、上記の自動訂正処理について、図１３を参照しながら具体的に説明する。なお、この図１３では、ユーザにより手書き入力された数式の図示を省略している。
【００７７】
まず、ユーザにより数式が手書き入力されて（ステップＳ３）、図１３（ａ）の左上部に示すような積分関数の数式が認識されると（ステップＴ１，Ｔ２）、この数式が自然表示形式のテキストとして表示される（ステップＳ６）。なお、ここで認識された数式では、ユーザが被積分関数として手書き入力した文字「ｘ2」と，積分変数として手書き入力した文字「ｘ」とについて、数式内での認識位置がズレている。
【００７８】
この状態から訂正キー２１が操作されると（ステップＳ１；Ｙｅｓ）、数式表示データ１２３で表される数式内に積分関数が含まれると判定され（ステップＵ２；Ｙｅｓ）、関数部品バッファ１２５には、積分記号を格納するバッファＢ１と、被積分関数を格納するバッファＢ２と、積分変数の上限値，下限値を格納するバッファＢ３，Ｂ４と、被積分関数の終了記号を格納するバッファＢ５と、積分変数を格納するバッファＢ６とが形成され、各バッファＢ１〜Ｂ６に対し、図中の右部に示すような内容が格納される（ステップＵ３）。なお、この時点では、被積分関数，積分変数を格納するバッファＢ２，Ｂ４には、情報が格納されておらず、表示対象が未認識な状態となっている。
【００７９】
次に、図１３（ｂ）に示すように、情報の格納されていない複数のバッファＢ２，Ｂ４が関数部品バッファ１２５にあると判定された後（ステップＵ４；Ｙｅｓ）、バッファＢ２に対応する構成要素の種類「被積分関数」が表示されるとともに、数式表示データ１２３における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「ｘ2」，「ｘ」がディスプレイ３に一覧表示される。そして、ユーザによって文字「ｘ2」が選択されると、当該文字「ｘ2」がバッファＢ２に入力される。
【００８０】
また、図１３（ｃ）に示すように、情報の格納されていないバッファＢ４に対応する構成要素の種類「積分変数」が表示されるとともに、数式表示データ１２３における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「ｘ」がディスプレイ３に一覧表示される。そして、ユーザによって文字「ｘ」が選択されると、当該文字「ｘ」がバッファＢ４に入力される。
【００８１】
そして、関数部品バッファ１２５の内容に基づいて、数式表示データ１２３及び数式テキストデータ１２４の内容と、ディスプレイ３の表示内容とが更新される（ステップＵ７）。
【００８２】
以上、本実施の形態によれば、図１２のステップＵ１〜Ｕ７や、図１３等に示したように、手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として表示内容が更新されるので、認識した文字自体が合っていて数式内での位置が認識されていない場合であっても、数式中での文字位置が修正されることとなる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【００８３】
なお、上記の実施の形態における関数電卓１，１Ａの各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。
【００８４】
例えば、上記では関数電卓の動作として説明しているが、タッチパネル付き表示部を有する電子機器に、上記の実施形態で説明した動作を行わせるプログラムをインストールして、当該電子機器のコンピュータにより本発明を実現させるようにしても良い。
【符号の説明】
【００８５】
１，１Ａ          関数電卓
２                入力キー群
３                ディスプレイ
１１              ＣＰＵ
１２              ＲＡＭ
１３，１３Ａ      記憶部
１４              キー入力部
１５              表示部
３０              タッチパネル
１３０，１３０Ａ  手書き入力プログラム
【図１】
0005471126.tif 000002
【図２】
0005471126.tif 000003
【図３】
0005471126.tif 000004
【図４】
0005471126.tif 000005
【図５】
0005471126.tif 000006
【図６】
0005471126.tif 000007
【図７】
0005471126.tif 000008
【図８】
0005471126.tif 000009
【図９】
0005471126.tif 000010
【図１０】
0005471126.tif 000011
【図１１】
0005471126.tif 000012
【図１２】
0005471126.tif 000013
【図１３】
0005471126.tif 000014