"複数の発熱体を有するサーマルヘッドと、温度を計測する温度センサと、前記温度センサで計測した温度に応じた前記発熱体への印加エネルギーを求めるための印加エネルギーテーブルと、前記発熱体に通電してあるドットを形成する際に当該ドットの直前数ドットの印字状態に応じて通電時間が決められる第1パルス並びに当該ドットの直後のドットを形成する場合に通電する休止パルス、調整パルスおよび予熱パルスを、当該ドットの直前数ドットおよび直後のドットの形成状態に応じて通電するか否かの通電パターンを記憶する履歴テーブルと、当該ドットの直前数ドットおよび直後のドットの形成状態に応じた通電パターンで前記印加テーブルから求めた印加エネルギーに応じた印加エネルギーにより前記発熱体に通電するヘッド制御部とを有するサーマルプリンタ。当該ドットを形成する際に直前の2ドットについて印字している場合は、前記第1パルスは前記発熱体に通電しない請求項1記載のサーマルプリンタ。当該ドットの直後のドットに印字しない場合は、前記休止パルスは当該ドットの形成においては前記発熱体に通電しない請求項1記載のサーマルプリンタ。当該ドットおよび直前の2ドットに印字せずに直後のドットを形成する場合において、1つのドットを形成するために使える印字周期よりも温度によって変わる第1パルス、休止パルス、調整パルスおよび予熱パルスの合計通電時間が長いならば、前記予熱パルスに相当する時間を当該ドットの印字周期において前記発熱体に通電する請求項1記載のサーマルプリンタ。前記温度センサで計測した温度での第1パルスの通電時間から前記予熱パルスの通電時間を引いた時間の通電パルスを新たな第1パルスとして直後のドットを形成する請求項4記載のサーマルプリンタ。当該ドットおよび直前の2ドットに印字せずに直後のドットを形成する場合において、1つのドットを形成するために使える印字周期と第1パルス、休止パルス、調整パルスおよび予熱パルスの合計通電時間との差を予熱パルスの通電時間とする請求項4記載のプリンタ前記第1パルスないし前記予熱パルスのいずれかが前記制御部が前記発熱体に通電する処理を行うための時間よりも短くなったときには、そのパルスを前記制御部が前記発熱体に通電する処理を行うための時間と同じかその時間よりも長くする請求項1記載のサーマルプリンタ。印加エネルギーは前記発熱体に通電する時間に応じて変化させる請求項1記載のサーマルプリンタ。複数のドットを一つの発熱体で連続して印字した後に印字する当該ドットに引き続きさらに直後の1ドットを印字する場合に当該ドットに通電する3ドットパルスを、次のドットを印字しない場合に通電しない休止パルスと、複数のドットを連続して形成しない状態で予熱を与えるための予熱パルスと、前記3ドットパルスの通電時間から休止パルスと予熱パルスとの合計通電時間を引いた時間の調整パルスの3つのパルスに分けて前記発熱体に与えるサーマルプリンタの印字方法。しかしながら、発熱素子の温度上昇はその環境温度によって影響を受けるため、各発熱素子への通電制御も環境温度を考慮して決める必要がある。もちろん、今までにも環境温度を考慮した制御を行ったものがあるが、温度の変化に応じた制御が各温度帯において一律であり、必ずしも温度に応じた通電制御が適正なものとなってないので、印字品質に影響が出る場合がある。そこで、この実施の形態では、複数の発熱体を有するサーマルヘッドと、温度を計測する温度センサと、前記温度センサで計測した温度に応じた前記発熱体への印加エネルギーを求めるための印加エネルギーテーブルと、前記発熱体に通電してあるドットを形成する際に当該ドットの直前数ドットの印字状態に応じて通電時間が決められる第1パルス並びに当該ドットの直後のドットを形成する場合に通電する休止パルス、調整パルスおよび予熱パルスを、当該ドットの直前数ドットおよび直後のドットの形成状態に応じて通電するか否かの通電パターンを記憶する履歴テーブルと、当該ドットの直前数ドットおよび直後のドットの形成状態に応じた通電パターンで前記印加テーブルから求めた印加エネルギーに応じた印加エネルギーにより前記発熱体に通電するヘッド制御部とからなるサーマルプリンタとした。以下、サーマルヘッドを用いたプリンタの実施の形態を、図面を参照して説明する。本実施の形態のプリンタ1は、CPU2にバスライン3を介してROM4、RAM5、通信インターフェース通信I/F6、ヘッド制御部7、モータ制御部8、温度センサ9が接続されている。ROM4には、このプリンタが実行するプログラムと後述する各種のテーブルを記憶する。なお、各種のテーブルは、たとえばフラッシュメモリなどの不揮発性メモリに記憶しておくことも可能である。RAM5には、通信I/F6に接続された外部端末10から送られてきた印字データを保存し、また、CPU2が動作する上で必要となるワークエリアを形成する。通信I/F6は、外部端末10と接続するためのものある。ヘッド制御部7にはサーマルヘッド11が接続され、サーマルヘッド11の通電を制御する。モータ制御部8にはモータ12が接続される。このモータ12は、スッテッピングモータであり、モータ制御部8によって制御されてプラテンローラを回転して用紙を搬送する。温度センサは9、プリンタ1周辺の環境温度を検出するものである。なお、この実施の形態では説明を省略するが、サーマルヘッド11でインクリボンのインクを用紙に転写して印字するサーマルプリンタ1においては、インクリボンを巻き取る制御機構などがさらに備えられている。ROM4には、印加エネルギーテーブル13と履歴設定テーブル14が記憶されている。印加エネルギーテーブル13は、主に環境温度に応じてサーマルヘッド11の発熱体20に通電するエネルギーを決定するためのものである。履歴設定テーブル14は、あるドットを形成するのに用いる発熱体20の直前に発熱した2ドットの履歴に応じて、あるドットを形成するため発熱体20に通電する印字パターンを決定するためのものである。ここで、履歴とは、印字するために印字バッファに展開したビットマップデータのうち、今から印字するドットの直前とその1つ前の過去2ドットのデータが発熱したドットを形成したデータであるか否かの情報である。次に、サーマルヘッド11とヘッド制御部7について説明する。サーマルヘッド11は、たとえば1インチ当たり305個の約12本/ミリの発熱体20が、4インチの長さ分用紙の幅方向に一列に配列されたものである。発熱体20は、通電されると発熱する抵抗からなっている。この発熱体20の一端は、所定の電圧Vccが印加されている。この発熱体20の他端は、ヘッド制御部7にあるトランジスタ21のコレクタが接続されている。トランジスタ21のエミッタは、接地されている。トランジスタ21のベースには、アンド回路22の出力が接続されている。アンド回路22の入力の一方は、ストローブ信号が接続されている。ストローブ信号は、発熱体20に通電する時間だけオンされる。アンド回路22の入力の他方は、ラッチ回路23に接続される。ラッチ回路23は、ラッチ信号が入力されるとラッチ回路23に接続されるシフトレジスタ24のデータをラッチして保持する。シフトレジスタ24は、データ信号から入力されるシリアルデータをクロック信号に同期して入力されるものである。ヘッド制御部は、トランジスタ21、アンド回路22、ラッチ回路23、シフトレジスタ24を有する。また、ラッチ回路23にデータがあれば、ストローブ信号が与えられている間に発熱体20に通電される。この実施の形態におけるサーマルヘッド11への通電に関して説明する。なお、この実施の形態では、当該発熱体20を通電するときに、その発熱体20の過去2ドットについて通電したか否かの履歴を参照して、かつ、当該発熱体で印字する次のドットについて通電するか否かを参照して、サーマルヘッドへの通電時間を決める場合で説明する。サーマルヘッドで一つのドットを形成するためにサーマルヘッド通電する電圧パルス通電パルスは、大きく分けて、第1パルスW、休止パルスX、調整パルスY、予熱パルスZの4つのパルスからなる。また、第1パルスW、休止パルスX、調整パルスY、予熱パルスZを合わせて全パルスとして、休止パルスX、調整パルスY、予熱パルスZを合わせて3ドットパルスとする。第1パルスWは、前2つのドットの2つとも、あるいはどちらか一方のドットで印字した場合に、通電されるパルスである。この第1パルスは、前2つのドットが印字されたときには、図4に示される印加エネルギーテーブルのように、環境温度に応じて決められた長さ通電時間となる。また、この実施の形態で詳細な説明を行わないが、前2つのドットのいずれかが通電される場合は、そのパターンに応じて第1パルスは適宜分割されて発熱体に通電される。3ドットパルスは、そのドットを形成して、次のドットも形成する場合には必ず通電されるものである。そして、3ドットパルスは図4に示されるように、環境温度に応じて決められた長さ通電時間となる。休止パルスXは、次のドットを印字しないときに、通電時間を短くするためのものである。たとえば文字の終端などにいわゆる尾引きという尾を引いたような現象が発生するが、通電時間を短くすることでこの尾引きの発生を防ぐ。ところで、あるドットを形成するために計算上必要なエネルギーを与えるための全パルスの通電時間、つまり図4で示す第1パルスと3ドットパルスの合計の通電時間が一つのドットを形成できる印字周期よりも長い場合には、印字周期と全パルスの通電時間が同じか、全パルスの通電時間が短くなるように第1パルスWを調整した第1補正パルスWzとして、補正後の全パルスの通電時間とする。つまり、補正前の全パルスの通電時間と印字周期の差を第1パルスWから引いた値が第1補正パルスWzとなる。また、この場合の全パルスと第1パルスWの差を予熱パルスZとする。予熱パルスは、2ドット連続して発熱体20に通電せずに次のドットに通電する場合に、外気温に応じて当該ドットに通電するものである。つまり、次に印字するドットに一つの印字周期で十分な熱エネルギーを与えられない場合には、その前のドットを形成しない印字周期を用いて発熱体20に通電を始めて、次の印字周期の通電時間と合わせて適正な熱エネルギーが加わるようにするものである。該当の発熱体20について、過去2ドットともに印字した場合の当該ドットの印字は、次のドットを印字する場合は3ドットパルスで印字し、次のドットを印字しない場合は休止パルスXを通電せずに調整パルスYと予熱パルスZで印字する。また、調整パルスは3ドットパルスから予熱パルスZと休止パルスXを引いた値である。これらを数式で表すと予熱パルスZ=全パルス-印字周期調整パルスY=3ドットパルス-休止パルスX予熱パルスZまた、全パルスが印字周期よりも長くなるときの第1補正パルスWzは、第1補正パルスWz=第1パルスW-予熱パルスZとなる。休止パルスは、3ドットパルスに対する図5で示す温度ごとの割合削減率となり、数式で表すと。休止パルスX=3ドットパルス×削減率ところで、この実施の形態では回路設計上通電に関するデータ処理に13マイクロ秒を必要とするので、第1パルスW、休止パルスX、調整パルスY、予熱パルスZのそれぞれの値が13マイクロ秒以下であれば13マイクロ秒とする。しかしながら、この値は、プリンタのデータ処理能力などに応じて適宜変わりうる値である。ここで、ストローブ信号に、これらの各パルスの通電時間として複数の発熱体20に共通に与えられる。次に、サーマルヘッドの解像度が305ドット/インチのプリンタで印字速度が12インチ/秒の場合に、環境温度雰囲気温度が10度、20度、30度のときの図6で示すドットを発熱体20で通電する具体例で説明する。ちなみに、このときにはプリンタは、1秒間に305×12=3660ドット分の印字を行うために、印字周期は273マイクロ秒となり、この273マイクロ秒が一つのドットを形成するために使える最大の時間となる。例1環境温度が10度の場合図4から、第1パルスWは210マイクロ秒、3ドットパルスは110マイクロ秒、また、図5から削減率が18であることから休止パルスXは19マイクロ秒となる。また第1パルスWと3ドットパルスの合計である全パルスは320マイクロ秒で印字周期273マイクロ秒よりも大きいため、予熱パルスXが47マイクロ秒となり、第1補正パルスWzが163マイクロ秒となる。また、調整パルスYは44マイクロ秒=110-1947となる。ところで、この例では、3ドットパルスが110マイクロ秒で削減率が18であるから、計算上は19.8マイクロ秒となるが、小数点以下を切り捨てて19マイクロ秒としている。しかし、製品の要求レベルに合わせて、小数点以下を切り上げてもよいし、四捨五入してもよい。例2環境温度が20度の場合図4から、第1パルスWは180マイクロ秒、3ドットパルスは100マイクロ秒、また、図5から削減率が25であることから休止パルスXは25マイクロ秒となる。また第1パルスWと3ドットパルスの合計となる全パルスは280マイクロ秒で印字周期273マイクロ秒なので、予熱パルスXが計算上は7マイクロ秒となるが、13マイクロ秒以下なので13マイクロ秒とする。その結果、第1補正パルスWzは167マイクロ秒となる。調整パルスYは62マイクロ秒=100-2513となる。このように、Wzが167マイクロ秒、休止パルスは25マイクロ秒、調整パルスは62マイクロ秒、予熱パルスが13マイクロ秒となり、全パルスは267マイクロ秒となる。例3環境温度が30度の場合図4から、第1パルスWは180マイクロ秒、3ドットパルスは80マイクロ秒、また、図5から削減率が35であることから休止パルスXは28マイクロ秒となる。また、印字周期と全パルスとの差である。予熱パルスXは13マイクロ秒となる。調整パルスYは39マイクロ秒=80-2813となる。全パルスは、第1パルスWと3ドットパルスの合計である260マイクロ秒となる。次に、図6のようにドットを形成するときに、d行の発熱体への通電について説明する。A列ないしD列は、それぞれの印字場パターンを示すものである。A列では、a行、b行、c行の各ドットを印字してからd行のドットを印字し、その次のe行は印字しない場合の例である。温度が10度、20度、30度のいずれの時であっても、前2ドットb行、c行を印字しているため第1パルスを通電しない。そこで、サーマルヘッドへ11に通電されるか否かは、シフトレジスタ24に入力される対応する発熱体20のデータがあるか否かによって決められる。つまり、ストローブ信号が入力されても、アンド回路22でストローブ信号とラッチ回路23のアンドを取るため、A列の通電するためのデータがあれば発熱体20に通電され、データがなければ通電しない。次に3ドットパルスについて、次のe行を印字しないため休止パルスXを通電せずに、調整パルスYと予熱パルスZに通電する。B列の印字パターンで説明する。B列では、a行、b行、c行のドットを印字してからd行のドットを印字し、その次のe行のドットも印字する場合の例である。温度が10度、20度、30度のいずれの時であっても、第1パルスについては、前2ドットb行、c行を印字しているため通電しない。次に3ドットパルスについて、次のe行を印字するため、A列とは異なり休止パルスXを通電して、かつ調整パルスYと予熱パルスZに通電する。つまり、3ドットパルス全体を通電する。C列の印字パターンで説明する。B列では、a行、b行、c行とそして、d行も印字せずに、その次のe行は印字する場合の例である。温度が30度のときには、一つの印字周期273マイクロ秒の中で十分な熱エネルギーとなる全パルス260マイクロ秒を用紙に与えることができるため、d行では通電が行われない。一方、温度が10度、20度の時には、e行の一つの印字周期内では十分な熱エネルギーが与えられないため、d行において予熱パルZを通電する必要がある。このd行の予熱パルスZによる通電とe行の全パルスの通電を合わせてe行のドット形成に適正なエネルギーとなる。このため、予熱パルスZをd行で通電するとともに、e行において、表からもともめた第1パルスの通電時間から予熱パルスZ分を引いたWzを第1パルスとして通電としている。D列の印字パターンは、a行、b行、c行と印字せずに、その次のd行、e行は印字する場合の例である。この場合は、c行では10度、20度のときに予熱が与えられているものの、d行はその前の2ドットが印字したドットでないため、第1補正パルスWxを通電する。また、次のe行も印字するため休止パルスXに通電し、調整パルスY、予熱パルスZにも通電する。30度のときには、第1パルスWを補正する必要がないため、第1パルスW、休止パルスX、調整パルスU、予熱パルスZのすべてに通電する。図7は、上記の10度、20度、30度の温度毎に、A列ないしD列についてd行の各パルスの通電時間を示す。また、予熱パルスZにΔマークをふした数値については、e行を印字する場合にd行に予熱のために通電することを示す。印字しないドットに通電しても、その用紙を発色させるまたはインクリボンのインクを転写するには十分でない温度上昇であるため、d行には印字されない。図8、図9、図10には、環境温度が10度、20度、30度のときのA列、B列、C列、D列のc行、d行、e行の通電パターンを示す。ここで、B列、C列、D列e行の休止パルスXは、さらに次の行にドットを印字する場合は通電し、次の行にドットを形成しない場合は通電しない。このため、図面ではXと括弧をつけて表した。また、同じくB列、C列、D列e行では、連続した2つ目のドットの形成を行うために、第1パルスは2ドット連続してドットを形成しない場合の最初の通電パルスWの通電時間よりも短い時間の通電パルスW’となる。なお、図9では、C列およびD列で、予熱パルスZを与えた後に僅かにこの例では6マイクロ秒通電しないで、その後に第1パルスWの通電を開始しているが、発熱体20を暖めるためであるので、予熱パルスZの通電に引き続いて第1パルスWを通電しても、必要な通電パルスの通電時間と比較して余り大きな値とならないので、印字品質に悪くするようなことはない。このサーマルプリンタ1は、外部に接続した外部端末10から印字データを受けると、その受けたデータを解析して印字バッファに印字データを展開する。また、外部端末10から印字データを受け取ったタイミングで、温度センサ9によって、環境温度プリンタ周囲の雰囲気温度を取り込む。印字品質は、サーマルヘッド11自体は温度があがりやすく冷めやすい、熱応答性の良い材質で製造することは可能であるが、印刷される媒体が紙であれば温度の変化が起こりにくく、印刷される媒体用紙の温度によって印字品質は影響を受けるためである。そして、用紙をモータ12で搬送し始めて、サーマルヘッド11の発熱体20に通電を開始する。この際に、温度センサ9で取り込んだ温度に応じて、通電するパルスの長さを設定して、抵抗体10にこの設定された長さの通電パルスを与える。このように、この実施の形態では、直前の2つのドットに印字したときであっても通電するパルスを、休止パルスX,調整パルスY,予熱パルスZに分けて、次のドットで印字しない場合には休止パルスXを通電せず、次のドットの前2ドットに通電してない場合で一つの印字周期内で十分な熱エネルギーを与えられないときには予熱パルスZで通電する。また、そのドットを印字するときの必要な通電時間を確保するために、調整パルスYを設けた。このために、環境温度に応じて適切な電気エネルギー通電時間を発熱体に与えることができ、高度な印字品質とすることが可能となる。なお、この実施の形態で示した通電時間などは、特定の条件によって決まるもので、サーマルヘッドが変わればそのサーマルヘッドに応じた条件を設定する必要があるし、用紙の種類、転写式プリンタの場合にはインクリボンの種類によっても、それぞれ適当な通電時間となる。このように、上記の実施の形態例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"