(57)【特許請求の範囲】
【請求項１】
画像を表示することが可能な表示部と、
前記表示部の表示領域に、複数のキャラクタデータが示す複数のキャラクタである複数の第一キャラクタを、前記表示領域の第一方向における一端である第一端から、前記表示領域の前記第一方向における他端である第二端に向かって、前記第一方向に並べて表示させる第一表示制御手段と、
入力部に対する操作に応じてキャラクタを入力可能な位置である編集位置を示すマークを、前記表示領域に表示させる第二表示制御手段と、
前記編集位置が移動された場合に、前記第一方向において前記編集位置に隣接するキャラクタである第二キャラクタの少なくとも一部が、前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを、前記第二キャラクタの少なくとも一部の前記第一方向における幅分、前記第一方向に移動して、前記第二キャラクタ全体を前記表示領域に表示させる第三表示制御手段と、
閾値を入力する操作部と
を備え、
前記複数の第一キャラクタは、文字、数字、記号、及び外字の何れかを含み、
前記複数のキャラクタデータの夫々は、前記複数のキャラクタの夫々の、前記第一方向における幅と、前記第一方向と略直交する方向である第二方向における高さとを示し、
前記第一表示制御手段及び前記第三表示制御手段は、
前記複数の第一キャラクタの夫々の、前記幅に対する前記高さの比率が、前記操作部を用いて入力された前記閾値以上であるか否かを判断し、
前記比率が前記閾値以上であるキャラクタを、第一幅及び所定高さで、前記表示領域に表示させ、
前記比率が前記閾値未満であるキャラクタを、前記第一幅より大きい第二幅及び前記所定高さで、前記表示領域に表示させたことを特徴とする編集装置。
【請求項２】
前記第三表示制御手段は、
前記編集位置が移動された場合に、前記編集位置が前記第一端に位置すると判断した場合、前記複数の第一キャラクタを、前記第一端に対して前記第二端とは反対側にある前記第二キャラクタの前記第一方向における幅分、前記第二端側に移動して、前記第二キャラクタ全体を前記表示領域に表示させ、
前記編集位置が移動された場合に、前記編集位置が前記第二端に位置すると判断した場合、前記複数の第一キャラクタを、前記第二端に対して前記第一端とは反対側にある前記第二キャラクタの前記第一方向における幅分、前記第一端側に移動して、前記第二キャラクタ全体を前記表示領域に表示させ、
前記編集位置が移動された場合に、前記第二キャラクタが、前記表示領域の前記第一方向における前記第一端及び前記第二端の何れかに位置し、且つ、前記第二キャラクタの一部が前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを、前記第二キャラクタの前記一部の前記第一方向における幅分、前記第一端側及び前記第二端側の何れかに移動して、前記第二キャラクタ全体を前記表示領域に表示させることを特徴とする請求項１に記載の編集装置。
【請求項３】
前記第一表示制御手段は、前記表示領域に、前記複数の第一キャラクタを、前記第一方向における前記第一端から前記第一方向に並べて、且つ、前記第二方向に複数行に亘って表示させ、
前記編集位置を前記第二方向における第一側及び前記第一側とは反対側の第二側の何れかに移動する指示を受け付ける受付手段と、
前記受付手段によって前記指示が受け付けられた場合、前記編集位置の前記第二方向における前記第一側及び前記第二側の何れかに、前記複数行のうち一行があるか否かを判断する判断手段と、
前記判断手段によって、前記一行が前記編集位置の前記第二方向における前記第一側及び前記第二側の何れかにあると判断され、且つ、前記一行の前記第一方向における前記第二端側の端部が、前記第一方向において前記編集位置より前記第二端側にある場合、前記編集位置を前記第二方向における前記第一端側及び前記第二端側の何れかに移動する第一移動手段と、
前記第一移動手段によって前記編集位置が移動された場合に、前記編集位置が、前記一行におけるキャラクタと重なると判断した場合、前記編集位置を、前記第一方向において、前記一行における前記キャラクタの前記第一端側及び前記第二端側の何れかに移動する第二移動手段と
を更に備え、
前記第三表示制御手段は、前記編集位置が移動された場合に、前記第二キャラクタの少なくとも一部が前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを移動して、前記第二キャラクタ全体を前記表示領域に表示させることを特徴とする請求項１又は２に記載の編集装置。
【請求項４】
請求項１から３の何れかに記載の前記編集装置と、
前記複数の第一キャラクタを印刷媒体に印刷する印刷手段と
を備えたことを特徴とする印刷装置。
【請求項５】
画像を表示することが可能な表示部を備えた編集装置のコンピュータに、
前記表示部の表示領域に、複数のキャラクタデータが示す複数のキャラクタである複数の第一キャラクタを、前記表示領域の第一方向における一端である第一端から、前記表示領域の前記第一方向における他端である第二端に向かって、前記第一方向に並べて表示させる第一表示制御ステップと、
入力部に対する操作に応じてキャラクタを入力可能な位置である編集位置を示すマークを、前記表示領域に表示させる第二表示制御ステップと、
前記編集位置が移動された場合に、前記第一方向において前記編集位置に隣接するキャラクタである第二キャラクタの少なくとも一部が、前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを、前記第二キャラクタの少なくとも一部の前記第一方向における幅分、前記第一方向に移動して、前記第二キャラクタ全体を前記表示領域に表示させる第三表示制御ステップと
を実行させるための制御プログラムであって、
前記複数の第一キャラクタは、文字、数字、記号、及び外字の何れかを含み、
前記複数のキャラクタデータの夫々は、前記複数のキャラクタの夫々の、前記第一方向における幅と、前記第一方向と略直交する方向である第二方向における高さとを示し、
前記第一表示制御ステップ及び前記第三表示制御ステップは、
前記複数の第一キャラクタの夫々の、前記幅に対する前記高さの比率が、操作部を用いて入力された閾値以上であるか否かを判断し、
前記比率が前記閾値以上であるキャラクタを、第一幅及び所定高さで、前記表示領域に表示させ、
前記比率が前記閾値未満であるキャラクタを、前記第一幅より大きい第二幅及び前記所定高さで、前記表示領域に表示させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示部を備える編集装置及び印刷装置、並びに制御プログラムに関する。
【背景技術】
【０００２】
表示部を備える編集装置が知られている。例えば、特許文献１に開示の携帯電話装置は表示部を備える。携帯電話装置は、キー入力部を介して入力された文字を、表示部の表示画面に表示させる。表示画面において、行末に文字幅が狭い文字のみが表示可能である場合、行末にカーソルが表示される。この状態で、文字幅が広い文字が入力された場合、カーソルの位置にスペースが挿入され、文字幅が広い文字は次の行に挿入される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２７６１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
行末に文字幅が狭い文字のみが表示可能である状態でも、行末に文字幅が広い文字が表示されることが望まれる。この場合、文字幅が広い文字の一部が表示画面に収まらず、表示されない可能性がある。文字を入力可能な位置に隣接する文字の一部が表示されない場合、ユーザがその文字を把握し辛い可能性がある。
【０００５】
本発明の目的は、キャラクタを入力可能な位置に隣接するキャラクタを、ユーザが容易に把握することを可能にする編集装置、印刷装置、及び制御プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の第一態様に係る編集装置は、画像を表示することが可能な表示部と、前記表示部の表示領域に、複数のキャラクタデータが示す複数のキャラクタである複数の第一キャラクタを、前記表示領域の第一方向における一端である第一端から、前記表示領域の前記第一方向における他端である第二端に向かって、前記第一方向に並べて表示させる第一表示制御手段と、入力部に対する操作に応じてキャラクタを入力可能な位置である編集位置を示すマークを、前記表示領域に表示させる第二表示制御手段と、前記編集位置が移動された場合に、前記第一方向において前記編集位置に隣接するキャラクタである第二キャラクタの少なくとも一部が、前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを、前記第二キャラクタの少なくとも一部の前記第一方向における幅分、前記第一方向に移動して、前記第二キャラクタ全体を前記表示領域に表示させる第三表示制御手段と、閾値を入力する操作部とを備え、前記複数の第一キャラクタは、文字、数字、記号、及び外字の何れかを含み、前記複数のキャラクタデータの夫々は、前記複数のキャラクタの夫々の、前記第一方向における幅と、前記第一方向と略直交する方向である第二方向における高さとを示し、前記第一表示制御手段及び前記第三表示制御手段は、前記複数の第一キャラクタの夫々の、前記幅に対する前記高さの比率が、前記操作部を用いて入力された前記閾値以上であるか否かを判断し、前記比率が前記閾値以上であるキャラクタを、第一幅及び所定高さで、前記表示領域に表示させ、前記比率が前記閾値未満であるキャラクタを、前記第一幅より大きい第二幅及び前記所定高さで、前記表示領域に表示させたことを特徴とする。
【０００７】
第一態様によれば、編集装置では、第二キャラクタの第一方向における幅に関わらず、第二キャラクタ全体が表示領域に表示される。ユーザは、第二キャラクタ全体を見ることにより、第二キャラクタを容易に把握できる。
【０００８】
本発明の第二態様に係る印刷装置は、第一態様に係る前記編集装置と、前記複数の第一キャラクタを印刷媒体に印刷する印刷手段とを備える。印刷装置は、第一態様に係る編集装置と同様の効果を奏することができる。また、印刷装置は、入力部に対する操作に応じて入力されたキャラクタを、印刷媒体に印刷できる。
【０００９】
本発明の第三態様に係る制御プログラムは、画像を表示することが可能な表示部を備えた編集装置のコンピュータに、前記表示部の表示領域に、複数のキャラクタデータが示す複数のキャラクタである複数の第一キャラクタを、前記表示領域の第一方向における一端である第一端から、前記表示領域の前記第一方向における他端である第二端に向かって、前記第一方向に並べて表示させる第一表示制御ステップと、入力部に対する操作に応じてキャラクタを入力可能な位置である編集位置を示すマークを、前記表示領域に表示させる第二表示制御ステップと、前記編集位置が移動された場合に、前記第一方向において前記編集位置に隣接するキャラクタである第二キャラクタの少なくとも一部が、前記表示領域外に位置すると判断した場合、前記複数の第一キャラクタを、前記第二キャラクタの少なくとも一部の前記第一方向における幅分、前記第一方向に移動して、前記第二キャラクタ全体を前記表示領域に表示させる第三表示制御ステップとであって、前記複数の第一キャラクタは、文字、数字、記号、及び外字の何れかを含み、前記複数のキャラクタデータの夫々は、前記複数のキャラクタの夫々の、前記第一方向における幅と、前記第一方向と略直交する方向である第二方向における高さとを示し、前記第一表示制御手段及び前記第三表示制御ステップは、前記複数の第一キャラクタの夫々の、前記幅に対する前記高さの比率が、操作部を用いて入力された閾値以上であるか否かを判断し、前記比率が前記閾値以上であるキャラクタを、第一幅及び所定高さで、前記表示領域に表示させ、前記比率が前記閾値未満であるキャラクタを、前記第一幅より大きい第二幅及び前記所定高さで、前記表示領域に表示させることを特徴とする。第三態様によれば、第一態様と同様の効果を奏することができる。
【図面の簡単な説明】
【００１０】
【図１】カバー６が閉じられた状態にある印刷装置１の斜視図である。
【図２】カバー６が開かれた状態にある印刷装置１及びテープカセット３０の斜視図である。
【図３】印刷装置１の電気的構成を示すブロック図である。
【図４】メイン処理のフローチャートである。
【図５】スクロール処理のフローチャートである。
【図６】左側チェック処理のフローチャートである。
【図７】右側チェック処理のフローチャートである。
【図８】表示処理のフローチャートである。
【図９】カーソル移動処理のフローチャートである。
【図１０】カーソル左移動処理のフローチャートである。
【図１１】カーソル右移動処理のフローチャートである。
【図１２】カーソル上移動処理のフローチャートである。
【図１３】カーソル下移動処理のフローチャートである。
【図１４】キャラクタデータが示すキャラクタ２００と表示データが示すキャラクタ２１０との説明図である。
【図１５】キャラクタデータが示すキャラクタ３００と表示データが示すキャラクタ３１０との説明図である。
【図１６】テキスト表示領域１００に表示されるキャラクタとカーソル１０２の表示例１１１〜１１５を示す図である。
【図１７】テキスト表示領域１００に表示されるキャラクタとカーソル１０２の表示例１２１を示す図である。
【発明を実施するための形態】
【００１１】
本発明を具体化した実施の形態について、図面を参照して説明する。なお、参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものであり、記載されている装置の構成などは、それのみに限定する趣旨ではなく、単なる説明例である。
【００１２】
図１及び図２を参照して、印刷装置１の概略構成について説明する。以下の説明では、図１及び図２の右上側、左下側、右下側、左上側、上側、下側を、夫々、印刷装置１の後側、前側、右側、左側、上側、下側とする。
【００１３】
図１に示すように、印刷装置１の上面には、キーボード３が設けられている。キーボード３は、キャラクタキー、削除キー、確定キー等を含む。キャラクタキーは、キャラクタを入力するために用いられる。キャラクタは、文字コードによって表現可能な、文字、数字、記号、外字、空白等を含む。キーボード３の後側（紙面右上側）には、電源スイッチ、カーソルキー、用途キー等の機能キー群４が設けられている。カーソルキーは、左キー、右キー、上キー、下キーを含む。用途キーは、印刷キー、キャンセルキー等を含む。以下の説明では、キーボード３と機能キー群４とを総称する場合、操作部２という。機能キー群４の後側には、ディスプレイ５が設けられている。印刷装置１の上面の後部には、開閉可能なカバー６が設けられている。印刷装置１の左後角には、後述するカット機構（図示略）によって切断された印刷済の印刷媒体を受けるトレイ７が設けられている。
【００１４】
図２に示すように、ディスプレイ５の後側には、テープカセット３０が着脱されるカセット装着部８が形成されている。本実施形態のテープカセット３０は、略直方体状（箱型）の筐体であるカセットケースを備える。カセットケースの内部には、テープ状の印刷媒体や、印刷に使用されるインクリボンなどが収容されている。テープカセット３０の種類は、例えば、ラミネートタイプ、レセプタタイプ、チューブタイプ等である。印刷装置１では、カセット装着部８に装着されたテープカセット３０を用いて、印刷媒体に印刷が行われる。
【００１５】
カセット装着部８には、駆動軸１１、巻取軸９、サーマルヘッド１０（図３参照）などが設けられている。駆動軸１１は、印刷媒体を搬送するために用いられる。巻取軸９は、使用済みのインクリボンを巻き取るために用いられる。サーマルヘッド１０は、印刷媒体に印刷を行う。本実施形態では、サーマルヘッド１０が、搬送される印刷媒体に未使用のインクリボンを用いて印刷を行う。印刷媒体の搬送方向におけるサーマルヘッド１０の下流側には、カット機構（図示略）が設けられている。カット機構は、印刷済みの印刷媒体を切断する。
【００１６】
図３を参照して、印刷装置１の電気的構成について説明する。図３に示すように、印刷装置１は、制御基板上に形成される制御回路部４００を備える。制御回路部４００は、ＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０４、フラッシュメモリ４１０、入出力インターフェース４１１などを備え、これらがデータバスを介して接続されている。
【００１７】
ＲＯＭ４０２には、ＣＰＵ４０１が印刷装置１を制御するために実行する各種プログラムが記憶されている。ＲＡＭ４０４は、一時的なデータを記憶する。ＲＡＭ４０４には、テキストバッファ、表示バッファ、印刷バッファ等、複数の記憶領域が設けられている。テキストバッファには、テキストデータが記憶される。テキストデータは、キャラクタキーを介して入力された少なくとも一つのキャラクタを含むテキストを示す。テキストデータはキャラクタデータを含む。キャラクタデータはキャラクタを示す。表示バッファには、ディスプレイ５にキャラクタを表示するための表示データが記憶される。なお、空白がある位置には、空白を示すマークが表示される。空白を示すマークは、表示されなくてもよい。印刷バッファには、印刷対象の印刷データが記憶される。他の記憶領域には、各種演算データ等が記憶される。
【００１８】
フラッシュメモリ４１０には、各々のキャラクタのキャラクタデータ、各種設定値等が記憶されている。キャラクタデータは、キャラクタ幅及びキャラクタ高さも示す。キャラクタ幅は、キャラクタの第一方向における幅を示す。キャラクタ高さは、キャラクタの第二方向における高さを示す。第二方向は、第一方向に略直交する方向である。第一方向は、複数のキャラクタがキャラクタキーを介して入力された場合に、入力されたキャラクタが並ぶ方向である。また、第一方向は、ディスプレイ５に表示された編集画面のテキスト表示領域１００（図１６参照）において、複数のキャラクタが並ぶ方向である。複数行のキャラクタが入力された場合、複数行は第二方向に並ぶ。
【００１９】
入出力インターフェース４１１には、操作部２、液晶駆動回路（ＬＣＤＣ）４０５、駆動回路４０６、４０７、４０８などが接続されている。ＬＣＤＣ４０５は、ディスプレイ５に表示データを出力するためのビデオＲＡＭ（図示略）を有する。駆動回路４０６は、サーマルヘッド１０を駆動するための電子回路である。駆動回路４０７は、巻取軸９及び駆動軸１１を回転させるテープ送りモータ２４を駆動するための電子回路である。駆動回路４０８は、カット機構（図示略）を動作させるカッターモータ２５を駆動するための電子回路である。
【００２０】
図４〜図１６を参照して、本実施形態に係るメイン処理を説明する。図１４の右側、左側、上側、下側を、夫々、キャラクタ２００及び２１０の右側、左側、上側、下側とする。図１５の右側、左側、上側、下側を、夫々、キャラクタ３００及び３１０の右側、左側、上側、下側とする。図１６の右側、左側、上側、下側を、夫々、テキスト表示領域１００及びテキスト１０１の右側、左側、上側、下側とする。本実施形態では、テキスト表示領域１００における第一方向は、左右方向である。本実施形態では、テキスト表示領域１００における第二方向は、上下方向である。
【００２１】
印刷装置１の電源がオンされると、ＣＰＵ４０１は、ＲＯＭ４０２に記憶されたプログラムを実行することで、図４に示すメイン処理を開始する。図４に示すように、メイン処理が開始されると、ＣＰＵ４０１は初期化処理を行う（Ｓ１１）。Ｓ１１では、ＣＰＵ４０１はＲＡＭ４０４をクリアする。その後、ＣＰＵ４０１は、ディスプレイ５に編集画面を表示させる。ＣＰＵ４０１は、編集画面のテキスト表示領域１００の左端に、カーソルを表示する。カーソルは、キャラクタを入力可能な位置であるカーソル位置を示すマークである。本実施形態では、図１６に例示するカーソル１０２のように、カーソルは第二方向に延びる棒状である。
【００２２】
Ｓ１１を実行後、ＣＰＵ４０１は、キー入力が行われたか否かを判断する（Ｓ１３）。ＣＰＵ４０１は、操作部２の操作を検出した場合、キー入力が行われたと判断する。キー入力が行われていない場合（Ｓ１３：ＮＯ）、ＣＰＵ４０１はＳ１３を繰り返す。キー入力が行われた場合（Ｓ１３：ＹＥＳ）、ＣＰＵ４０１は、操作されたキーがキャラクタキー又は削除キーであるか否かを判断する（Ｓ１５）。
【００２３】
操作されたキーがキャラクタキー又は削除キーである場合（Ｓ１５：ＹＥＳ）、ＣＰＵ４０１は、操作されたキーに応じて、テキストの作成又は編集を行う（Ｓ１７）。以下、テキストの作成又は編集を、単に「テキストの編集」という。キャラクタキーが操作された場合、ＣＰＵ４０１は、操作されたキャラクタキーに応じて、キャラクタの入力を受け付ける。削除キーが操作された場合、ＣＰＵ４０１は、カーソル位置に隣接するキャラクタの削除を受け付ける。本実施形態では、ＣＰＵ４０１は、カーソル位置の左にあるキャラクタの削除を受け付ける。ＣＰＵ４０１は、カーソル位置の右にあるキャラクタの削除を受け付けてもよい。ＣＰＵ４０１は、編集されたテキストを示すテキストデータを、ＲＡＭ４０４のテキストバッファに記憶する。Ｓ１７を実行後、ＣＰＵ４０１はスクロール処理を実行する（Ｓ１８）。
【００２４】
図５を参照して、スクロール処理を説明する。まず、ＣＰＵ４０１は、Ｓ１７におけるテキストの編集において、キャラクタが入力されたか否かを判断する（Ｓ３１）。Ｓ１３で操作が検出されたキーが削除キーである場合、ＣＰＵ４０１は、キャラクタは入力されておらず、キャラクタが削除されたと判断する（Ｓ３１：ＮＯ）。この場合、カーソル位置は、削除されたキャラクタの右側から左側に移動している。ＣＰＵ４０１は、左側チェック処理（図６参照）を実行する（Ｓ３３）。Ｓ１３で操作が検出されたキーがキャラクタキーである場合、ＣＰＵ４０１は、キャラクタが入力されたと判断する（Ｓ３１：ＹＥＳ）。この場合、カーソル位置は、入力されたキャラクタの右側に移動している。ＣＰＵ４０１は、右側チェック処理（図７参照）を実行する（Ｓ３５）。
【００２５】
図６を参照して、左側チェック処理を説明する。まず、ＣＰＵ４０１は、移動されたカーソル位置が、テキスト表示領域１００の左端に位置するか否かを判断する（Ｓ８１）。移動されたカーソル位置が、テキスト表示領域１００の左端に位置する場合（Ｓ８１：ＹＥＳ）、ＣＰＵ４０１は、テキストデータを参照して、テキストにおいてカーソル位置の左にキャラクタがあるか否かを判断する（Ｓ８３）。カーソル位置の左にキャラクタがない場合（Ｓ８３：ＮＯ）、ＣＰＵ４０１は左側チェック処理を終了する。カーソル位置の左にキャラクタがある場合（Ｓ８３：ＹＥＳ）、ＣＰＵ４０１は、そのキャラクタが全角表示されるキャラクタであるか否かを判断する（Ｓ８５）。
【００２６】
キャラクタが半角表示される場合、キャラクタは第一幅及び所定高さで表示される。第一幅は、表示されるキャラクタの、第一方向における所定の幅である。所定高さは、表示されるキャラクタの、第二方向における所定の高さである。キャラクタが全角表示される場合、キャラクタは第二幅及び所定高さで表示される。第二幅は、表示されるキャラクタの、第一方向における所定の幅である。第二幅は第一幅より大きい。例えば、所定高さは第一幅の２倍であり、第二幅と等しい。この場合、第二幅も第一幅の２倍である。
【００２７】
キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値未満である場合、ＣＰＵ４０１は、キャラクタは全角表示されるキャラクタであると判断する（Ｓ８５：ＹＥＳ）。この場合、ＣＰＵ４０１は、表示範囲に対して相対的に、第二幅分右にテキストを移動する（Ｓ８７）。表示範囲は、テキスト表示領域１００に表示可能な範囲を示す。キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値以上である場合、ＣＰＵ４０１は、キャラクタは半角表示されるキャラクタであると判断する（Ｓ８５：ＮＯ）。この場合、ＣＰＵ４０１は、表示範囲に対して相対的に、第一幅分右にテキストを移動する（Ｓ８９）。
【００２８】
Ｓ８１において、移動されたカーソル位置が、テキスト表示領域１００の左端に位置しない場合（Ｓ８１：ＮＯ）、ＣＰＵ４０１は、カーソル位置の左にあるキャラクタの一部がテキスト表示領域１００外に位置するか否かを判断する（Ｓ９１）。カーソル位置の左にあるキャラクタの一部がテキスト表示領域１００外に位置する場合（Ｓ９１：ＹＥＳ）、ＣＰＵ４０１は、表示範囲に対して相対的に、第一幅分右にテキストを移動する（Ｓ９３）。カーソル位置の左にあるキャラクタの全体がテキスト表示領域１００内に位置する場合（Ｓ９１：ＮＯ）、ＣＰＵ４０１は左側チェック処理を終了する。また、Ｓ８７、Ｓ８９、又はＳ９３を実行後、ＣＰＵ４０１は左側チェック処理を終了する。
【００２９】
次に、図７を参照して、右側チェック処理を説明する。まず、ＣＰＵ４０１は、移動されたカーソル位置が、テキスト表示領域１００の右端に位置するか否かを判断する（Ｓ１１１）。移動されたカーソル位置が、テキスト表示領域１００の右端に位置する場合（Ｓ１１１：ＹＥＳ）、ＣＰＵ４０１は、テキストデータを参照して、テキストにおいてカーソル位置の右にキャラクタがあるか否かを判断する（Ｓ１１３）。カーソル位置の右にキャラクタがない場合（Ｓ１１３：ＮＯ）、ＣＰＵ４０１は右側チェック処理を終了する。カーソル位置の右にキャラクタがある場合（Ｓ１１３：ＹＥＳ）、ＣＰＵ４０１は、そのキャラクタが全角表示されるキャラクタであるか否かを判断する（Ｓ１１５）。
【００３０】
キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値未満である場合、ＣＰＵ４０１は、キャラクタは全角表示されるキャラクタであると判断する（Ｓ１１５：ＹＥＳ）。この場合、ＣＰＵ４０１は、表示範囲に対して相対的に、第二幅分左にテキストを移動する（Ｓ１１７）。キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値以上である場合、ＣＰＵ４０１は、キャラクタは半角表示されるキャラクタであると判断する（Ｓ１１５：ＮＯ）。この場合、ＣＰＵ４０１は、表示範囲に対して相対的に、第一幅分左にテキストを移動する（Ｓ１１９）。
【００３１】
Ｓ１１１において、移動されたカーソル位置が、テキスト表示領域１００の右端に位置しない場合（Ｓ１１１：ＮＯ）、ＣＰＵ４０１は、カーソル位置の右にあるキャラクタの一部がテキスト表示領域１００外に位置するか否かを判断する（Ｓ１２１）。カーソル位置の右にあるキャラクタの一部がテキスト表示領域１００外に位置する場合（Ｓ１２１：ＹＥＳ）、表示範囲に対して相対的に、第一幅分左にテキストを移動する（Ｓ１２３）。カーソル位置の右にあるキャラクタの全体がテキスト表示領域１００内に位置する場合（Ｓ１２１：ＮＯ）、ＣＰＵ４０１は右側チェック処理を終了する。また、Ｓ１１７、Ｓ１１９、又はＳ１２３を実行後、ＣＰＵ４０１は右側チェック処理を終了する。
【００３２】
左チェック処理（Ｓ３３）又は右側チェック処理（Ｓ３５）を実行後、ＣＰＵ４０１はスクロール処理を終了し、メイン処理（図４参照）に戻る。ＣＰＵ４０１は、メイン処理に戻ると、表示処理を実行する（Ｓ１９）。
【００３３】
図８を参照して、表示処理を説明する。表示処理では、編集されたテキストの少なくとも一部のキャラクタが、テキスト表示領域１００に表示される。テキスト表示領域１００には、少なくとも１行のキャラクタを表示可能である。複数のキャラクタは、テキスト表示領域１００の左端から右端に向かって、第一方向（左右方向）に並べて表示される。本実施形態では、テキスト表示領域１００には、複数行のキャラクタを表示可能である。
【００３４】
まず、ＣＰＵ４０１は初期化処理を行う（Ｓ４１）。Ｓ４１において、ＣＰＵ４０１はＲＡＭ４０４の表示バッファをクリアする。次に、ＣＰＵ４０１は、テキスト表示領域１００における全ての行において、キャラクタが表示されたか否かを判断する（Ｓ４３）。テキスト表示領域１００において、キャラクタが表示されていない行がある場合（Ｓ４３：ＮＯ）、ＣＰＵ４０１は、表示バッファを参照して、テキスト表示領域１００における現在表示対象の行に、キャラクタを表示可能なスペースがあるか否かを判断する（Ｓ４５）。以下、現在表示対象の行を、「表示対象行」という。
【００３５】
表示処理では、テキストバッファに記憶されているテキストデータから、表示範囲におけるキャラクタのキャラクタデータが、１キャラクタずつ取得される。取得されたキャラクタデータに基づき、表示バッファに表示データが記憶される。表示処理の１巡目では、表示バッファには表示データは記憶されていない。従って、テキスト表示領域１００にはキャラクタは表示されていない（Ｓ４３：ＮＯ）。また、テキスト表示領域１００における表示対象行（１行目）に、キャラクタを表示可能なスペースがある（Ｓ４５：ＹＥＳ）。
【００３６】
表示対象行にキャラクタを表示可能なスペースがある場合（Ｓ４５：ＹＥＳ）、ＣＰＵ４０１は、テキストデータが示すテキストのうち、現在処理対象の行における全てのキャラクタが、表示対象行に表示されているか否かを判断する（Ｓ４７）。表示処理の１巡目では、現在処理対象の行は、表示範囲におけるキャラクタの１行目である。表示処理の１巡目では、現在処理対象の行におけるキャラクタの何れも、表示対象行に表示されていない（Ｓ４７：ＮＯ）。
【００３７】
現在処理対象の行における全てのキャラクタが表示されていない場合（Ｓ４７：ＮＯ）、ＣＰＵ４０１は、次に表示するキャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値以上であるか否かを判断する（Ｓ４９）。以下、次に表示するキャラクタを、「表示対象キャラクタ」という。Ｓ４９において、ＣＰＵ４０１は、テキストデータから、表示対象キャラクタのキャラクタデータを取得する。ＣＰＵ４０１は、取得したキャラクタデータを参照し、表示対象キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値以上であるか否かを判断する。ユーザは、操作部２を用いて閾値を入力することにより、予め閾値を設定できる。設定された閾値は、フラッシュメモリ４１０に記憶される。フラッシュメモリ４１０に、閾値のデフォルト値が記憶されていてもよい。閾値は、例えば２である。
【００３８】
比率が閾値以上である場合（Ｓ４９：ＹＥＳ）、ＣＰＵ４０１は、表示対象キャラクタを半角で（第一幅及び所定高さで）、テキスト表示領域１００に表示すると判断する（Ｓ５１）。ＣＰＵ４０１は、表示対象キャラクタに第一幅及び所定高さを設定した表示データを生成し、表示バッファに記憶する。比率が閾値未満である場合（Ｓ４９：ＮＯ）、ＣＰＵ４０１は、表示対象キャラクタを全角で（第二幅及び所定高さで）、テキスト表示領域１００に表示すると判断する（Ｓ５３）。ＣＰＵ４０１は、表示対象キャラクタに第二幅及び所定高さを設定した表示データを生成し、表示バッファに記憶する。
【００３９】
Ｓ５１又はＳ５３を実行後、ＣＰＵ４０１は、表示バッファに記憶された表示データに基づき、表示対象キャラクタをテキスト表示領域１００に表示する（Ｓ５５）。Ｓ５１を実行後、ＣＰＵ４０１は、表示対象キャラクタを半角で（第一幅及び所定高さで）表示する。Ｓ５３を実行後、ＣＰＵ４０１は、表示対象キャラクタを全角で（第二幅及び所定高さで）表示する。表示対象キャタクタにカーソル位置が隣接する場合、ＣＰＵ４０１は、テキスト表示領域１００におけるカーソル位置にカーソルを表示する。例えば、カーソル位置が表示対象キャラクタの右側にある場合、ＣＰＵ４０１は、表示対象キャラクタの右側にカーソルを表示する。
【００４０】
図１４を参照して、Ｓ４９、Ｓ５１、Ｓ５５が実行された場合に表示されるキャラクタの例を説明する。図１４に例示するように、記号のキャラクタ２００のキャラクタデータは、キャラクタ幅Ｗ１１とキャラクタ高さＨ１１とを示す。キャラクタ幅Ｗ１１に対するキャラクタ高さＨ１１の比率は閾値（例えば、２）以上である（Ｓ４９：ＹＥＳ）。この場合、ＣＰＵ４０１は、第一幅Ｗ２１及び所定高さＨ２１を設定したキャラクタ２１０の表示データを生成する（Ｓ５１）。ＣＰＵ４０１は、キャラクタ２１０を第一幅Ｗ２１及び所定高さＨ２１で、テキスト表示領域１００に表示する（Ｓ５５）。
【００４１】
なお、Ｓ５１において、ＣＰＵ４０１は、キャラクタ２１０の表示データを生成する場合、キャラクタ２００のキャラクタ幅Ｗ１１に対するキャラクタ高さＨ１１の比率を変更しない。従って、図１４に例示するように、キャラクタ２１０の左右に余白が設けられることがある。
【００４２】
図１５を参照して、Ｓ４９、Ｓ５３、Ｓ５５が実行された場合に表示されるキャラクタの例を説明する。図１５に例示するように、外字のキャラクタ３００のキャラクタデータは、キャラクタ幅Ｗ１２とキャラクタ高さＨ１２とを示す。キャラクタ幅Ｗ１２に対するキャラクタ高さＨ１２の比率は閾値（例えば、２）未満である（Ｓ４９：ＮＯ）。この場合、ＣＰＵ４０１は、第二幅Ｗ２２及び所定高さＨ２１を設定したキャラクタ３１０の表示データを生成する（Ｓ５３）。ＣＰＵ４０１は、キャラクタ３１０を第二幅Ｗ２２及び所定高さＨ２１で、テキスト表示領域１００に表示する（Ｓ５５）。
【００４３】
なお、Ｓ５３において、ＣＰＵ４０１は、キャラクタ３１０の表示データを生成する場合、キャラクタ３００のキャラクタ幅Ｗ１２に対するキャラクタ高さＨ１２の比率を変更しない。従って、図１５に例示するように、キャラクタ３１０の上下に余白が設けられることがある。
【００４４】
Ｓ５５を実行後、ＣＰＵ４０１は、テキスト表示領域１００において次の表示対象キャラクタの位置を、現在の表示対象キャラクタの幅分右に移動する（Ｓ５７）。Ｓ５５において、現在の表示対象キャラクタが半角で（第一幅及び所定高さで）表示された場合、Ｓ５７において、ＣＰＵ４０１は、次の表示対象キャラクタの位置を第一幅分移動する。Ｓ５５において、現在の表示対象キャラクタが全角で（第二幅及び所定高さで）表示された場合、Ｓ５７において、ＣＰＵ４０１は、次の表示対象キャラクタの位置を第二幅分移動する。
【００４５】
Ｓ５７を実行後、ＣＰＵ４０１は処理をＳ４５に戻す。表示対象行にキャラクタを表示可能なスペースがない場合（Ｓ４５：ＮＯ）、ＣＰＵ４０１は、表示対象行を次の行に設定する（Ｓ５９）。また、テキストデータが示すテキストのうち、現在処理対象の行における全てのキャラクタが表示されている場合（Ｓ４７：ＹＥＳ）、ＣＰＵ４０１は、表示対象行を次の行に設定する（Ｓ５９）。Ｓ５９を実行後、ＣＰＵ４０１は処理をＳ４３に戻す。
【００４６】
Ｓ４３において、テキスト表示領域１００における全ての行において、キャラクタが表示された場合（Ｓ４３：ＹＥＳ）、ＣＰＵ４０１は、表示処理を終了し、メイン処理（図４参照）に戻る。Ｓ５９において設定された表示対象行が、テキスト表示領域１００に表示可能でない場合、ＣＰＵ４０１は、テキスト表示領域１００における全ての行において、キャラクタが表示されたと判断する。例えば、テキスト表示領域１００に２行のテキストを表示可能であり、Ｓ５９において設定された表示対象行が３行目である場合、表示対象行（３行目）はテキスト表示領域１００に表示可能でない。この場合、ＣＰＵ４０１は、テキスト表示領域１００における全ての行（２行）において、キャラクタが表示されたと判断する。
【００４７】
ＣＰＵ４０１は、メイン処理に戻ると、キー入力が行われたか否かを判断する（Ｓ１３）。キー入力が行われ、操作されたキーがキャラクタキー及び削除キーの何れでもない場合（Ｓ１３：ＹＥＳ、Ｓ１５：ＮＯ）、ＣＰＵ４０１は、操作されたキーがカーソルキーか否かを判断する（Ｓ２１）。操作されたキーがカーソルキーである場合（Ｓ２１：ＹＥＳ）、ＣＰＵ４０１はカーソル移動処理を実行する（Ｓ２３）。
【００４８】
図９を参照して、カーソル移動処理を説明する。まず、ＣＰＵ４０１は、操作されたカーソルキーが左キーか否かを判断する。左キーは、カーソル位置の左への移動を指示するために用いられる。操作されたカーソルキーが左キーである場合（Ｓ６１：ＹＥＳ）、ＣＰＵ４０１はカーソル左移動処理を実行する（Ｓ６２）。
【００４９】
図１０を参照して、カーソル左移動処理を説明する。まず、ＣＰＵ４０１は、テキスト表示領域１００において、カーソル位置の左にキャラクタがあるか否かを判断する（Ｓ７１）。カーソル位置の左にキャラクタがある場合（Ｓ７１：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置の左にあるキャラクタの幅分、カーソル位置を左に移動する（Ｓ７３）。ＣＰＵ４０１は左側チェック処理（図６参照）を実行する（Ｓ７５）。カーソル位置の左にキャラクタがない場合（Ｓ７１：ＮＯ）、又は、左側チェック処理を実行後（Ｓ７５）、ＣＰＵ４０１はカーソル左移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００５０】
Ｓ６１において、操作されたカーソルキーが左キーでない場合（Ｓ６１：ＮＯ）、ＣＰＵ４０１は、操作されたカーソルキーが右キーか否かを判断する（Ｓ６３）。右キーは、カーソル位置の右への移動を指示するために用いられる。操作されたカーソルキーが右キーである場合（Ｓ６３：ＹＥＳ）、ＣＰＵ４０１はカーソル右移動処理を実行する（Ｓ６４）。
【００５１】
図１１を参照して、カーソル右移動処理を説明する。まず、ＣＰＵ４０１は、テキスト表示領域１００において、カーソル位置の右にキャラクタがあるか否かを判断する（Ｓ１０１）。カーソル位置の右にキャラクタがある場合（Ｓ１０１：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置の右にあるキャラクタの幅分、カーソル位置を右に移動する（Ｓ１０３）。ＣＰＵ４０１は、右側チェック処理（図７参照）を実行する（Ｓ１０５）。カーソル位置の右にキャラクタがない場合（Ｓ１０１：ＮＯ）、又は、右側チェック処理を実行後（Ｓ１０５）、ＣＰＵ４０１はカーソル右移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００５２】
Ｓ６３において、操作されたカーソルキーが右キーでない場合（Ｓ６３：ＮＯ）、ＣＰＵ４０１は、操作されたカーソルキーが上キーか否かを判断する（Ｓ６５）。上キーは、カーソル位置の上への移動を指示するために用いられる。操作されたカーソルキーが上キーである場合（Ｓ６５：ＹＥＳ）、ＣＰＵ４０１はカーソル上移動処理を実行する（Ｓ６６）。
【００５３】
図１２を参照して、カーソル上移動処理を説明する。まず、ＣＰＵ４０１は、テキストデータを参照して、テキストにおいてカーソル位置の上側に、キャラクタの行があるか否かを判断する（Ｓ１３１）。カーソル位置の上側に、キャラクタの行がある場合（Ｓ１３１：ＹＥＳ）、ＣＰＵ４０１は、上側の行の右側の端部が、カーソル位置より右側にあるか否かを判断する（Ｓ１３３）。カーソル位置の上側に、キャラクタの行がない場合（Ｓ１３１：ＮＯ）、又は、上側の行の右側の端部が、カーソル位置より右側にない場合（Ｓ１３３：ＮＯ）、ＣＰＵ４０１はカーソル上移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００５４】
上側の行の右側の端部が、カーソル位置より右側にある場合（Ｓ１３３：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置を上に移動した場合に、カーソル位置がキャラクタと重なるか否かを判断する（Ｓ１３５）。例えば、カーソル位置の真上に、全角表示されるキャラクタの左右方向における中心が位置する場合、ＣＰＵ４０１は、カーソル位置がキャラクタと重なると判断する。
【００５５】
カーソル位置を上に移動した場合に、カーソル位置がキャラクタと重ならない場合（Ｓ１３５：ＮＯ）、ＣＰＵ４０１は、カーソル位置を１行上に移動する（Ｓ１４１）。カーソル位置を上に移動した場合に、カーソル位置がキャラクタと重なる場合（Ｓ１３５：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置を１行上に移動する（Ｓ１３７）。その後、ＣＰＵ４０１は、カーソル位置を、カーソル位置と重なるキャラクタの左側に移動する（Ｓ１３９）。例えば、カーソル位置が、全角表示されるキャラクタの左右方向における中心に位置する場合、ＣＰＵ４０１は、半角表示されるキャラクタの幅分、カーソル位置を左に移動する。
【００５６】
Ｓ１３９又はＳ１４１を実行後、ＣＰＵ４０１は左側チェック処理（図６参照）を実行する（Ｓ１４３）。その後、ＣＰＵ４０１は右側チェック処理（図７参照）を実行する（Ｓ１４５）。その後、ＣＰＵ４０１はカーソル上移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００５７】
Ｓ６５において、操作されたカーソルキーが上キーでない場合（Ｓ６５：ＮＯ）、操作されたカーソルキーは下キーである。この場合、ＣＰＵ４０１はカーソル下移動処理を実行する（Ｓ６７）。
【００５８】
図１３を参照して、カーソル下移動処理を説明する。まず、ＣＰＵ４０１は、テキストデータを参照して、テキストにおいてカーソル位置の下側に、キャラクタの行があるか否かを判断する（Ｓ１５１）。カーソル位置の下側に、キャラクタの行がある場合（Ｓ１５１：ＹＥＳ）、ＣＰＵ４０１は、下側の行の右側の端部が、カーソル位置より右側にあるか否かを判断する（Ｓ１５３）。カーソル位置の下側に、キャラクタの行がない場合（Ｓ１５１：ＮＯ）、又は、下側の行の右側の端部が、カーソル位置より右側にない場合（Ｓ１５３：ＮＯ）、ＣＰＵ４０１はカーソル下移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００５９】
下側の行の右側の端部が、カーソル位置より右側にある場合（Ｓ１５３：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置を下に移動した場合に、カーソル位置がキャラクタと重なるか否かを判断する（Ｓ１５５）。カーソル位置を下に移動した場合に、カーソル位置がキャラクタと重ならない場合（Ｓ１５５：ＮＯ）、ＣＰＵ４０１は、カーソル位置を１行下に移動する（Ｓ１６１）。カーソル位置を下に移動した場合に、カーソル位置がキャラクタと重なる場合（Ｓ１５５：ＹＥＳ）、ＣＰＵ４０１は、カーソル位置を１行下に移動する（Ｓ１５７）。その後、ＣＰＵ４０１は、カーソル位置を、カーソル位置と重なるキャラクタの左側に移動する（Ｓ１５９）。
【００６０】
Ｓ１５９又はＳ１６１を実行後、ＣＰＵ４０１は左側チェック処理（図６参照）を実行する（Ｓ１６３）。その後、ＣＰＵ４０１は右側チェック処理（図７参照）を実行する（Ｓ１６５）。その後、ＣＰＵ４０１はカーソル上移動処理を終了し、カーソル移動処理（図９参照）に戻る。
【００６１】
カーソル左移動処理（Ｓ６２）、カーソル右移動処理（Ｓ６４）、カーソル上移動処理（Ｓ６６）、又はカーソル下移動処理（Ｓ６７）を実行後、ＣＰＵ４０１は、カーソル移動処理を終了し、メイン処理（図４参照）に戻る。
【００６２】
ＣＰＵ４０１は、メイン処理に戻ると、表示処理（図８参照）を実行する（Ｓ１９）。ＣＰＵ４０１は、表示処理を実行後、処理をＳ１３に戻す。キー入力が行われ、操作されたキーがキャラクタキー及び削除キーの何れでもない場合（Ｓ１３：ＹＥＳ、Ｓ１５：ＮＯ）、ＣＰＵ４０１は、操作されたキーがカーソルキーか否かを判断する（Ｓ２１）。操作されたキーがカーソルキーでもない場合（Ｓ２１：ＮＯ）、ＣＰＵ４０１は、操作されたキーが印刷キーか否かを判断する（Ｓ２５）。
【００６３】
操作されたキーが印刷キーである場合（Ｓ２５：ＹＥＳ）、ＣＰＵ４０１は印刷処理を実行する（Ｓ２７）。詳細には、ＣＰＵ４０１は、テキストデータに基づき印刷データを生成して、印刷バッファに記憶する。ＣＰＵ４０１は、印刷データに基づき、駆動回路４０６及び４０７を制御する。これにより、駆動軸１１及び巻取軸９が回転される。また、サーマルヘッド１０の発熱素子が選択的且つ間欠的に通電される。これにより、印刷媒体及びインクリボンが搬送され、印刷媒体にテキストが印刷される。Ｓ２７を実行後、ＣＰＵ４０１は処理をＳ１３に戻す。
【００６４】
Ｓ２５において、操作されたキーが印刷キーでない場合（Ｓ２５：ＮＯ）、操作されたキーは、操作部２のキーのうち、キャラクタキー、削除キー、カーソルキー、及び印刷キー以外のキーである。この場合、ＣＰＵ４０１は、操作されたキーに応じた処理を実行する（Ｓ２９）。Ｓ２９を実行後、ＣＰＵ４０１は処理をＳ１３に戻す。ＣＰＵ４０１は、印刷装置１の電源がオフされると、メイン処理を終了する。
【００６５】
図１６を参照して、メイン処理（図４参照）が実行された場合に表示される表示例１１１〜１１５を説明する。表示例１１１〜１１５において、テキスト１０１は、キャラクタキーを介してキャラクタが入力されて作成されたテキストである。テキスト１０１は、１行目にキャラクタ「1Ａ2345Ｂ678」を、２行目にキャラクタ「Ｃ9012ＤＥＦ」を含む。テキスト１０１に含まれる数字は、半角で（第一幅Ｗ２１及び所定高さＨ２１で）表示される。テキスト１０１に含まれるアルファベットは、全角で（第二幅Ｗ２２及び所定高さＨ２１で）表示される。なお、夫々のキャラクタを囲む破線は、夫々のキャラクタのサイズを示すために図示したものであり、ディスプレイ５には表示されない。
【００６６】
表示例１１１において、カーソル１０２は、２行目のキャラクタ「9」と「0」の間に表示されている。この状態で、左キーが押されたとする（図４のＳ１３、Ｓ１５：ＮＯ、Ｓ２１：ＹＥＳ、図９のＳ６１：ＹＥＳ）。この場合、表示例１１２に示すように、カーソル１０２はキャラクタ「9」の左に移動される（図１０のＳ７１：ＹＥＳ、Ｓ７３、図４のＳ１９）。また、表示範囲に対して相対的に、全角のキャラクタの幅分右にテキスト１０１が移動されることで、移動後のカーソル１０２の左にあるキャラクタ「Ｃ」がテキスト表示領域１００に表示される（図６のＳ８１：ＹＥＳ、Ｓ８３：ＹＥＳ、Ｓ８５：ＹＥＳ、Ｓ８７、図４のＳ１９）。
【００６７】
表示例１１２に示す状態で、上キーが押されたとする（図４のＳ１３、Ｓ１５：ＮＯ、Ｓ２１：ＹＥＳ、図９のＳ６１：ＮＯ、Ｓ６３：ＮＯ、Ｓ６５：ＹＥＳ）。この場合、表示例１１３に示すように、カーソル１０２は、１行上に移動され、且つ、キャラクタ「Ａ」の左に移動される。（図１２のＳ１３１：ＹＥＳ、Ｓ１３３：ＹＥＳ、Ｓ１３５：ＹＥＳ、Ｓ１３７、Ｓ１３９、Ｓ１４３、Ｓ１４５、図４のＳ１９）。
【００６８】
表示例１１３に示す状態で、右キーが５回押されたとする（図４のＳ１３、Ｓ１５：ＮＯ、Ｓ２１：ＹＥＳ、図９のＳ６１：ＮＯ、Ｓ６３：ＹＥＳ）。この場合、表示例１１４に示すように、カーソル１０２は、キャラクタ５個分右に移動され、キャラクタ「5」と「Ｂ」の間に位置する（図１１のＳ１０１：ＹＥＳ、Ｓ１０３、図４のＳ１９）。また、表示範囲に対して相対的に、半角のキャラクタの幅分左にテキスト１０１が移動されることで、移動後のカーソル１０２の右にあるキャラクタ「Ｂ」の全体がテキスト表示領域１００に表示される（図７のＳ１１１：ＮＯ、Ｓ１２１：ＹＥＳ、Ｓ１２３、図４のＳ１９）。
【００６９】
表示例１１４に示す状態で、下キーが押されたとする（図４のＳ１３、Ｓ１５：ＮＯ、Ｓ２１：ＹＥＳ、図９のＳ６１：ＮＯ、Ｓ６３：ＮＯ、Ｓ６５：ＮＯ）。この場合、表示例１１５に示すように、カーソル１０２は、１行下に移動され、且つ、キャラクタ「Ｄ」の左側に移動される（図１３のＳ１５１：ＹＥＳ、Ｓ１５３：ＹＥＳ、Ｓ１５５：ＹＥＳ、Ｓ１５７、Ｓ１５９、Ｓ１６３、Ｓ１６５、図４のＳ１９）。
【００７０】
以上説明したように、本実施形態によれば、ディスプレイ５の編集画面のテキスト表示領域１００には、複数のキャラクタが、テキスト表示領域１００の左端から右端に向かって、左右方向に並べて表示される（図４のＳ１９）。カーソル位置を示すカーソルも、テキスト表示領域１００に表示される（Ｓ１１、Ｓ１９）。カーソル位置が移動された場合には、左右方向においてカーソル位置に隣接するキャラクタの少なくとも一部がテキスト表示領域１００外に位置すると判断された場合、表示範囲に対して相対的に、キャラクタの幅（第一幅又は第二幅）分左右方向に、テキスト１０１が移動される（Ｓ１８、Ｓ２３）。これにより、カーソル位置に隣接するキャラクタの全体が、キャラクタの左右方向における幅に関わらず、テキスト表示領域１００に表示される（Ｓ１９）。ユーザは、カーソル位置に隣接するキャラクタの全体を見ることにより、そのキャラクタを容易に把握できる。
【００７１】
左側チェック処理（図６参照）では、カーソル位置が移動された場合に、カーソル位置がテキスト表示領域１００の左端に位置するか否かが判断される（Ｓ８１）。移動後のカーソル位置がテキスト表示領域１００の左端に位置すると判断された場合（Ｓ８１：ＹＥＳ）、カーソル位置の左にキャラクタがあるか否かが判断される（Ｓ８３）。カーソル位置の左にキャラクタがある場合（Ｓ８３：ＹＥＳ）、表示範囲に対して相対的に、キャラクタの幅（第一幅又は第二幅）分右にテキストが移動される（Ｓ８７、Ｓ８９）。これにより、カーソル位置の左にあるキャラクタの全体が、テキスト表示領域１００に表示される（Ｓ１９）。
【００７２】
移動後のカーソル位置がテキスト表示領域１００の左端に位置しない場合（Ｓ８１：ＮＯ）、カーソル位置の左にあるキャラクタの一部がテキスト表示領域１００外に位置するか否かが判断される（Ｓ９１）。キャラクタの一部がテキスト表示領域１００外に位置すると判断された場合（Ｓ９１：ＹＥＳ）、表示範囲に対して相対的に、第一幅分右にテキストが移動される（Ｓ９３）。これにより、カーソル位置の左にあるキャラクタの全体が、テキスト表示領域１００に表示される（Ｓ１９）。
【００７３】
右側チェック処理（図７参照）では、カーソル位置が移動された場合に、カーソル位置がテキスト表示領域１００の右端に位置するか否かが判断される（Ｓ１１１）。移動後のカーソル位置がテキスト表示領域１００の右端に位置すると判断された場合（Ｓ１１１：ＹＥＳ）、カーソル位置の右にキャラクタがあるか否かが判断される（Ｓ１１３）。カーソル位置の右にキャラクタがある場合（Ｓ１１３：ＹＥＳ）、表示範囲に対して相対的に、キャラクタの幅（第一幅又は第二幅）分左にテキストが移動される（Ｓ１１７、Ｓ１１９）。これにより、カーソル位置の右にあるキャラクタの全体が、テキスト表示領域１００に表示される（Ｓ１９）。
【００７４】
移動後のカーソル位置がテキスト表示領域１００の右端に位置しない場合（Ｓ１１１：ＮＯ）、カーソル位置の右にあるキャラクタの一部がテキスト表示領域１００外に位置するか否かが判断される（Ｓ１２１）。キャラクタの一部がテキスト表示領域１００外に位置すると判断された場合（Ｓ１２１：ＹＥＳ）、表示範囲に対して相対的に、第一幅分左にテキストが移動される（Ｓ１２３）。これにより、カーソル位置の右にあるキャラクタの全体が、テキスト表示領域１００に表示される（Ｓ１９）。
【００７５】
このように、カーソル位置が移動された場合の、カーソル位置又はカーソル位置に隣接するキャラクタの位置についての判断に応じて、表示範囲に対して相対的にテキストが移動される。これにより、カーソル位置に隣接するキャラクタの全体を、テキスト表示領域１００に表示できる。ユーザは、カーソル位置に隣接するキャラクタの全体を見ることにより、そのキャラクタを容易に把握できる。
【００７６】
テキスト表示領域１００には、複数行のキャラクタを表示可能である。上キーが操作された場合（図９のＳ６５：ＹＥＳ）、カーソル上移動処理（図１２参照）が実行される（Ｓ６６）。下キーが操作された場合（図９のＳ６５：ＮＯ）、カーソル下移動処理（図１３参照）が実行される（Ｓ６７）。
【００７７】
カーソル上移動処理では、カーソル位置の上側に、キャラクタの行があるか否かが判断される（Ｓ１３１）。カーソル位置の上側に、キャラクタの行がある場合（Ｓ１３１：ＹＥＳ）、上側の行の右側の端部が、カーソル位置より右側にあるか否かが判断される（Ｓ１３３）。上側の行の右側の端部が、カーソル位置より右側にある場合（Ｓ１３３：ＹＥＳ）、カーソル位置が１行上に移動される（Ｓ１３７、Ｓ１４１）。カーソル位置が１行上に移動された場合に、カーソル位置がキャラクタと重なると判断された場合（Ｓ１３５）、カーソル位置は、キャラクタの左側に移動される（Ｓ１３９）。その後、左側チェック処理（Ｓ１４３）及び右側チェック処理（Ｓ１４５）が実行され、カーソル位置に隣接するキャラクタの全体が、テキスト表示領域１００に表示される（図４のＳ１９）。
【００７８】
カーソル下移動処理では、カーソル位置の下側に、キャラクタの行があるか否かが判断される（Ｓ１５１）。カーソル位置の下側に、キャラクタの行がある場合（Ｓ１５１：ＹＥＳ）、下側の行の右側の端部が、カーソル位置より右側にあるか否かが判断される（Ｓ１５３）。下側の行の右側の端部が、カーソル位置より右側にある場合（Ｓ１５３：ＹＥＳ）、カーソル位置が１行下に移動される（Ｓ１５７、Ｓ１６１）。カーソル位置が１行下に移動された場合に、カーソル位置がキャラクタと重なると判断された場合（Ｓ１５５）、カーソル位置は、キャラクタの左側に移動される（Ｓ１５９）。その後、左側チェック処理（Ｓ１６３）及び右側チェック処理（Ｓ１６５）が実行され、カーソル位置に隣接するキャラクタの全体が、テキスト表示領域１００に表示される（図４のＳ１９）。
【００７９】
このように、カーソル位置を上又は下に移動する指示が受け付けられた場合でも、カーソル位置に隣接するキャラクタの左右方向における幅に関わらず、キャラクタ全体が表示領域に表示される。ユーザは、カーソル位置に隣接するキャラクタの全体を見ることにより、そのキャラクタを容易に把握できる。
【００８０】
テキストは、文字、数字、記号、外字等のキャラクタを含む。キャラクタデータは、キャラクタ幅とキャラクタ高さとを示す。表示処理（図８参照）では、表示対象キャラクタのキャラクタ幅に対するキャラクタ高さの比率が閾値以上であるか否かが判断される（Ｓ４９）。比率が閾値以上であるキャラクタは、第一幅及び所定高さで、テキスト表示領域１００に表示される（Ｓ４９：ＹＥＳ、Ｓ５１、Ｓ５５）。比率が閾値未満であるキャラクタは、第一幅より大きい第二幅及び所定高さで、テキスト表示領域１００に表示される（Ｓ４９：ＮＯ、Ｓ５３、Ｓ５５）。ＣＰＵ４０１は、キャラクタ幅に対するキャラクタ高さの比率に応じて、表示されるキャラクタの幅を、第一幅及び第二幅の何れかに決定できる。表示されるキャラクタの幅が一律に決定される場合に比べ、ユーザは、キャラクタを視認し易い。
【００８１】
ユーザは、印刷装置１が備えるディスプレイ５を見ることにより、表示されたキャラクタを確認できる。印刷装置１は、キャラクタキーを介してキャラクタが入力されることで作成されたテキストを、印刷媒体に印刷できる。
【００８２】
本発明は上記実施形態に限定されるものではなく、種々の変更が可能である。上記実施形態におけるメイン処理は、印刷装置１のＣＰＵ４０１によって実行される場合に限定されない。例えば、メイン処理のプログラムは、テキストを編集可能で、且つ、表示部を備える編集装置によって実行されてもよい。この場合、編集装置はテキストを印刷可能でなくてもよい。メイン処理におけるＳ２５及びＳ２７は実行されなくてもよい。メイン処理におけるＳ２９は実行されなくてもよい。編集装置は、編集されたテキストのテキストデータを生成してもよい。印刷装置１は、編集装置からテキストデータを取得して、テキストデータに基づき印刷処理を行ってもよい。
【００８３】
キャラクタデータは、キャラクタが半角及び全角の何れであるかを示す情報を含んでいてもよい。この場合、表示処理（図８参照）におけるＳ４９、Ｓ５１、Ｓ５３は実行されなくてもよい。Ｓ５５において、キャラクタが半角及び全角の何れであるかに応じて、表示データが生成され、キャラクタがテキスト表示領域１００に表示されればよい。
【００８４】
テキスト表示領域１００には、１行のキャラクタを表示可能であってもよい。この場合、カーソル移動処理（図９参照）におけるＳ６５、Ｓ６６（カーソル上移動処理）、及びＳ６７（カーソル下移動処理）は実行されなくてもよい。
【００８５】
カーソル上移動処理（図１２参照）において、左側チェック処理（Ｓ１４３）は、右側チェック処理（Ｓ１４５）の後に実行されてもよい。カーソル下移動処理（図１３参照）において、左側チェック処理（Ｓ１６３）は、右側チェック処理（Ｓ１６５）の後に実行されてもよい。
【００８６】
カーソル上移動処理のＳ１３９において、ＣＰＵ４０１は、カーソル位置を、カーソル位置と重なるキャラクタの右側に移動してもよい。カーソル下移動処理のＳ１５９において、ＣＰＵ４０１は、カーソル位置を、カーソル位置と重なるキャラクタの右側に移動してもよい。
【００８７】
キャラクタは、文字コードによって表現可能でなくてもよい。例えば、キャラクタは画像データ（ラスタデータ）であってもよい。キャラクタの画像データが、キャラクタの第一方向における幅と第二方向における高さとを示す情報を含んでいればよい。
【００８８】
表示処理（図８参照）のＳ５１において、ＣＰＵ４０１は、表示対象キャラクタに第一幅及び所定高さを設定した表示データを生成する場合、キャラクタ幅に対するキャラクタ高さの比率を変更してもよい。例えば、キャラクタ幅が第一幅に一致し、キャラクタ高さが所定高さに一致するように、キャラクタが拡大・縮小されてもよい。Ｓ５３において、ＣＰＵ４０１は、表示対象キャラクタに第二幅及び所定高さを設定した表示データを生成する場合、キャラクタ幅に対するキャラクタ高さの比率を変更してもよい。例えば、キャラクタ幅が第二幅に一致し、キャラクタ高さが所定高さに一致するように、キャラクタが拡大・縮小されてもよい。
【００８９】
上記実施形態では、カーソル位置に隣接するキャラクタの全体が、テキスト表示領域１００に表示される。カーソル位置がない行においては、キャラクタの一部がテキスト表示領域１００外に位置する場合がある。しかしながら、カーソル位置がない行においても、テキスト表示領域１００の左右方向において、カーソル位置が位置する側の端に位置するキャラクタの全体が、テキスト表示領域１００に表示されてもよい。
【００９０】
詳細には、カーソル位置が、テキスト表示領域１００の左端又は右端に位置すると判断された場合、必要に応じてテキスト１０１が左右方向に移動されることで、カーソル位置がない行においても、テキスト表示領域１００の左端又は右端に位置するキャラクタの全体が、テキスト表示領域１００に表示されてもよい。また、カーソル位置とテキスト表示領域１００の左端又は右端との間に、キャラクタが１つあると判断された場合、必要に応じてテキスト１０１が左右方向に移動されることで、カーソル位置がない行においても、テキスト表示領域１００の左端又は右端に位置するキャラクタの全体が、テキスト表示領域１００に表示されてもよい。例えば、ＣＰＵ４０１は、次のように処理を実行すればよい。
【００９１】
図５に示すスクロール処理において、ＣＰＵ４０１は、左側チェック処理（Ｓ３３）を実行後、カーソル位置がない行について、テキスト表示領域１００の左端に位置するキャラクタの一部が、テキスト表示領域１００外に位置するか否かを判断すればよい。そして、キャラクタの一部がテキスト表示領域１００外に位置する場合、ＣＰＵ４０１は、図６に示す左側チェック処理のＳ９３と同様に、表示範囲に対して相対的に、第一幅分右にテキストを移動すればよい。テキスト表示領域１００の左端に位置するキャラクタの全体がテキスト表示領域１００内に位置する場合、ＣＰＵ４０１はスクロール処理を終了すればよい。
【００９２】
スクロール処理において、ＣＰＵ４０１は、右側チェック処理（Ｓ３５）を実行後、カーソル位置がない行について、テキスト表示領域１００の右端に位置するキャラクタの一部が、テキスト表示領域１００外に位置するか否かを判断すればよい。そして、キャラクタの一部がテキスト表示領域１００外に位置する場合、ＣＰＵ４０１は、図７に示す右側チェック処理のＳ１２３と同様に、表示範囲に対して相対的に、第一幅分左にテキストを移動すればよい。テキスト表示領域１００の右端に位置するキャラクタの全体がテキスト表示領域１００内に位置する場合、ＣＰＵ４０１はスクロール処理を終了すればよい。
【００９３】
図１０に示すカーソル左移動処理において、ＣＰＵ４０１は、左側チェック処理（Ｓ７５）を実行後、カーソル位置がない行について、テキスト表示領域１００の左端に位置するキャラクタの一部が、テキスト表示領域１００外に位置するか否かを判断すればよい。そして、キャラクタの一部がテキスト表示領域１００外に位置する場合、ＣＰＵ４０１は、Ｓ９３と同様に、表示範囲に対して相対的に、第一幅分右にテキストを移動すればよい。テキスト表示領域１００の左端に位置するキャラクタの全体がテキスト表示領域１００内に位置する場合、ＣＰＵ４０１はカーソル左移動処理を終了すればよい。
【００９４】
図１１に示すカーソル右移動処理において、ＣＰＵ４０１は、右側チェック処理（Ｓ１０５）を実行後、カーソル位置がない行について、テキスト表示領域１００の右端に位置するキャラクタの一部が、テキスト表示領域１００外に位置するか否かを判断すればよい。そして、キャラクタの一部がテキスト表示領域１００外に位置する場合、ＣＰＵ４０１は、Ｓ１２３と同様に、表示範囲に対して相対的に、第一幅分左にテキストを移動すればよい。テキスト表示領域１００の右端に位置するキャラクタの全体がテキスト表示領域１００内に位置する場合、ＣＰＵ４０１はカーソル右移動処理を終了すればよい。
【００９５】
図１２に示すカーソル上移動処理において、Ｓ１４３で左側チェック処理が実行された結果、移動されたカーソル位置が、テキスト表示領域１００の左端に位置する場合がある。また、移動されたカーソル位置とテキスト表示領域１００の左端との間に、キャラクタが１つある場合がある。この場合、ＣＰＵ４０１は、カーソル位置がない行について、カーソル左移動処理において左側チェック処理（Ｓ７５）を実行した後と同様の処理を実行すればよい。
【００９６】
カーソル上移動処理において、Ｓ１４５で右側チェック処理が実行された結果、移動されたカーソル位置が、テキスト表示領域１００の右端に位置する場合がある。また、移動されたカーソル位置とテキスト表示領域１００の右端との間に、キャラクタが１つある場合がある。この場合、ＣＰＵ４０１は、カーソル位置がない行について、カーソル右移動処理において右側チェック処理（Ｓ１０５）を実行した後と同様の処理を実行すればよい。
【００９７】
図１３に示すカーソル下移動処理において、Ｓ１６３で左側チェック処理が実行された結果、移動されたカーソル位置が、テキスト表示領域１００の左端に位置する場合がある。また、移動されたカーソル位置とテキスト表示領域１００の左端との間に、キャラクタが１つある場合がある。この場合、ＣＰＵ４０１は、カーソル位置がない行について、カーソル左移動処理において左側チェック処理（Ｓ７５）を実行した後と同様の処理を実行すればよい。
【００９８】
カーソル下移動処理において、Ｓ１６５で右側チェック処理が実行された結果、移動されたカーソル位置が、テキスト表示領域１００の右端に位置する場合がある。また、移動されたカーソル位置とテキスト表示領域１００の右端との間に、キャラクタが１つある場合がある。この場合、ＣＰＵ４０１は、カーソル位置がない行について、カーソル右移動処理において右側チェック処理（Ｓ１０５）を実行した後と同様の処理を実行すればよい。
【００９９】
このように処理が実行された場合に表示される表示例を説明する。例えば、図１６に示すように、上記実施形態における表示例１１４において、カーソル１０２の右側のキャラクタ「Ｂ」の全体が、テキスト表示領域１００に表示されている。カーソル１０２のない行においてテキスト表示領域１００の左端に位置するキャラクタ「Ｅ」の一部は、テキスト表示領域１００外に位置している。しかしながら、このような場合、表示範囲に対して相対的に、第一幅分左にテキスト１０１が移動されればよい。そして、図１７の表示例１２１に示すように、キャラクタ「Ｅ」の全体が、テキスト表示領域１００に表示されればよい。
【０１００】
上記実施形態において、ディスプレイ５が、本発明の「表示部」に相当する。テキスト表示領域１００が、本発明の「表示領域」に相当する。テキスト表示領域１００の左端が、本発明の「第一端」に相当する。テキスト表示領域１００の右端が、本発明の「第二端」に相当する。操作部２が、本発明の「入力部」に相当する。カーソル位置が、本発明の「編集位置」に相当する。カーソル１０２が、本発明の「マーク」に相当する。テキスト１０１における上側が、本発明の「第一側」に相当する。テキスト１０１における下側が、本発明の「第二側」に相当する。
【０１０１】
図８に示す表示処理において、テキスト表示領域１００にキャラクタを表示するＣＰＵ４０１が、本発明の「第一表示制御手段」に相当する。図４に示すメイン処理のＳ１１及びＳ１９（表示処理）において、テキスト表示領域１００にカーソルを表示するＣＰＵ４０１が、本発明の「第二表示制御手段」に相当する。スクロール処理（Ｓ１８）を実行後、表示処理（Ｓ１９）を実行するＣＰＵ４０１、及びカーソル移動処理（Ｓ２３）を実行後、表示処理（Ｓ１９）を実行するＣＰＵ４０１が、本発明の「第三表示制御手段」に相当する。
【０１０２】
図９に示すカーソル移動処理のＳ６５を実行するＣＰＵ４０１が、本発明の「受付手段」に相当する。図１２に示すカーソル上移動処理のＳ１３１及び図１３に示すカーソル下移動処理のＳ１５１を実行するＣＰＵ４０１が、本発明の「判断手段」に相当する。図１２に示すカーソル上移動処理のＳ１３７、Ｓ１４１及び図１３に示すカーソル下移動処理のＳ１５７、Ｓ１６１を実行するＣＰＵ４０１が、本発明の「第一移動手段」に相当する。図１２に示すカーソル上移動処理のＳ１３９及び図１３に示すカーソル下移動処理のＳ１５９を実行するＣＰＵ４０１が、本発明の「第二移動手段」に相当する。サーマルヘッド１０、駆動回路４０６、及びメイン処理のＳ２７を実行するＣＰＵ４０１が、本発明の「印刷手段」に相当する。
【０１０３】
図８に示す表示処理において、テキスト表示領域１００にキャラクタを表示する処理が、本発明の「第一表示ステップ」に相当する。メイン処理のＳ１１及びＳ１９（表示処理）において、テキスト表示領域１００にカーソルを表示する処理が、本発明の「第二表示制御ステップ」に相当する。スクロール処理（Ｓ１８）を実行後、表示処理（Ｓ１９）を実行する処理、及び、カーソル移動処理（Ｓ２３）を実行後、表示処理（Ｓ１９）を実行する処理が、本発明の「第三表示制御ステップ」に相当する。
【符号の説明】
【０１０４】
１    印刷装置
２    操作部
５    ディスプレイ
１０    サーマルヘッド
１００    テキスト表示領域
１０１    テキスト
１０２    カーソル
２００    キャラクタ
２１０    キャラクタ
３００    キャラクタ
３１０    キャラクタ
４０１    ＣＰＵ
４０６    駆動回路
Ｈ１１    キャラクタ高さ
Ｈ１２    キャラクタ高さ
Ｈ２１    所定高さ
Ｗ１１    キャラクタ幅
Ｗ１２    キャラクタ幅
Ｗ２１    第一幅
Ｗ２２    第二幅
【図１】
0006528632.tif 000002
【図２】
0006528632.tif 000003
【図３】
0006528632.tif 000004
【図４】
0006528632.tif 000005
【図５】
0006528632.tif 000006
【図６】
0006528632.tif 000007
【図７】
0006528632.tif 000008
【図８】
0006528632.tif 000009
【図９】
0006528632.tif 000010
【図１０】
0006528632.tif 000011
【図１１】
0006528632.tif 000012
【図１２】
0006528632.tif 000013
【図１３】
0006528632.tif 000014
【図１４】
0006528632.tif 000015
【図１５】
0006528632.tif 000016
【図１６】
0006528632.tif 000017
【図１７】
0006528632.tif 000018