GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Display.html ・ emacs-doc.conao3.com

I.12.3 MS-DOSでの表示

MS-DOS上のディスプレイでは、太字や斜体などのフォントバリエーションは使用できませんが、複数のフェイスをサポートしており、各フェイスで前景色と背景色を指定できます。したがって、適切なフェイスを定義して異なる色を使用すれば、フォントを利用するEmacsパッケージ(font-lockやEnriched Textモードなど)の全機能を活用できます。利用可能な色やフェイス、およびそれらの外観を確認するには、list-colors-displayコマンド(フェイスの色を参照)およびlist-faces-displayコマンド(テキストフェイスを参照)を使用してください。

DOSディスプレイに内蔵されている標準フォントでサポートされていないグリフや文字をEmacsがどのように表示するかについては、本章の後半にあるMS-DOSにおける国際対応を参照してください。

Emacsが起動すると、カーソルの形状が塗りつぶしのボックスに変更されます。これは、Emacsにおいてボックスカーソルがデフォルトとなっている他のシステムとの互換性を確保するためです。このデフォルトの形状は、変数 default-frame-alist で cursor-type パラメータを指定することで、バーに変更できます(フレームの作成 を参照)。MS-DOS端末は垂直バーカーソルをサポートしていないため、バーカーソルは水平になり、フレームパラメータで width パラメータが指定されている場合、実際にはその高さが決定されます。このため、MS-DOSでは bar と hbar のカーソルタイプは同じ効果になります。拡張機能として、バーカーソルの指定には、次のようにカーソルの開始スキャンラインと幅を含めることができます:

 '(cursor-type bar width . start)

さらに、width パラメータが負の場合、カーソルバーは文字セルの上部から始まります。

MS-DOSのターミナルでは、一度に1つのフレームしか表示できません。Emacsのフレーム機能は、テキストターミナルと同様にMS-DOS上でも動作します(フレームとグラフィカル表示を参照)。MS-WindowsのDOSウィンドウからEmacsを実行する場合、表示フレームをフルスクリーンよりも小さくすることはできますが、それでもEmacsが一度に表示できるフレームは1つまでです。

dos-mode4350コマンドは、ハードウェアに応じて表示を43行または50行に切り替え、dos-mode25コマンドはデフォルトの80x25画面サイズに切り替えます。

デフォルトでは、Emacsが設定可能な画面サイズは、80列 × 25、28、35、40、43、または50行のみです。ただし、ビデオアダプタにディスプレイを他のサイズに切り替える特殊なビデオモードが搭載されている場合、Emacsでそれらにも対応させることができます。Emacsにフレームをn行 × m列の寸法に切り替えるよう指示すると、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でフレームの寸法を変更すると、他のすべてのフレームも新しい寸法に変更されます。