Next: , Previous: , Up: MS-DOS   [Contents][Index]


G.12.3 MS-DOSでの表示

MS-DOSのディスプレーでは、boldやitalicのようなフォントの変種が使用できませんが、複数のフェイスをサポートしており、それぞれのフェイスでフォアグラウンドとバックグラウンドのカラーを指定できます。したがってm異なるカラーを使用するために関連するフェイスを定義することにより、フォントを使用するEmacsパッケージ(font-lockやEnriched Textモードなそ)の完全な機能を使用することができます。利用できるカラーとフェイスと、それらの外観を確認するには、list-colors-displayコマンド (Colorsを参照してください) 、およびlist-faces-display (Facesを参照してください) を使用してください。

DOSディスプレーでネイティブにサポートされていないグリフと文字をEmacsが表示する方法については、このチャプターの後のほうの、MS-DOS and MULEを参照してください。

Emacsを開始したとき、Emacsはカーソルの形状を塗りつぶしたボックスに変更します。他のシステムではボックスカーソルがEmacsのデフォルトなので、これは互換性のためです。デフォルトのカーソル形状は、変数default-frame-alistの中のcursor-typeパラメーターでbarを指定することにより変更できます (Creating Framesを参照してください)。 MS-DOS端末は垂直バーのカーソルをサポートしないので、カーソルは水平バーになり、フレームのパラメターでwidthパラメーターが指定された場合、それは実際には水平バーの高さになります。この理由により、MS-DOSではカーソルタイプbarhbarは同じ効果を生みます。拡張として、以下のようにして、バーカーソル指定にはwidthと同様に、カーソルが行を読み取る開始位置を含めることができます:

 '(cursor-type bar width . start)

これに加えて、widthパラメーターが負の場合、カーソルバーはその文字セルの最上部から開始されます。

MS-DOS端末は1度に1つのフレームだけを表示できます。MS-DOSで動作するEmacsのフレーム機能は、Emacsがテキスト端末で動作する場合と同じように機能します (Framesを参照してください)。 MS-WindowsでDOS窓からEmacsを実行した場合、フルスクリーンより小さい可視フレームを作成できますが、それでもEmacsは1度に1つのフレームしか表示できません。

dos-mode4350コマンドはディスプレーを43行または50行に切り替え、それはハードウェアーに依存します。dos-mode25コマンドはスクリーンサイズをデフォルトの80x25に切り替えます。

デフォルトではEmacsが理解するするスクリーンサイズは、列を80列、行を25、28、35、40、43、50行にセットする方法だけです。しかしビデオアダプターが、ディスプレーを他のサイズに切り替える特別なビデオモードをもつ場合、Emacsもそれをサポートするようにできます。Emacsにフレームをnm列のサイズに切り替えるように指示した場合、Emacsはscreen-dimensions-nxmという名前があるかチェックして、もしあれば切り替えるビデオモードの値(整数でなければなりません)としてそれを使用します(EmacsはALレジスターにscreen-dimensions-nxmの値をセットして、BIOS関数のSet Video Modeを呼び出すことによりそのビデオモードに切り替えます)。たとえばビデオアダプターがビデオモードを85にしたとき、サイズ66x80に切り替わるとしましょう。その場合、以下を_emacsファイルに記述して、Emacsにそれをサポートさせることができます:

(setq screen-dimensions-66x80 85)

MS-DOSのEmacsは特定のサポートされたフレームサイズだけしかセットできないので、可能性のあるすべてのフレームのサイズ変更要求に従うことはできません。サポートされていないサイズが要求された場合、Emacsは指定されたサイズを越える、次に大きなサポートされたサイズを選択します。この場合、たとえば36x80フレームを要求して、かわりに40x80を得ることになります。

変数screen-dimensions-nxmは、指定されたサイズに正確にマッチするときだけ使用され、サポートされた次に大きなサイズを検索するときには、無視されます。上記の例ではVGAは38x80のサイズをサポートし、screen-dimensions-38x80を適切な値で定義していても、36x80フレームを要求すると40x80のスクリーンになります。この場合サイズを38x80にするには、screen-dimensions-36x80という名前の変数に、screen-dimensions-38x80と同じビデオもーどの値をセットして、これを行なうことができます。

MS-DOSでフレームサイズを変更すると、他のすべてのフレームも新しいサイズに変更されます。