ほとんどのFortran77コンパイラーは、2つの方法で継続行を記述します。ある行の最初の非スペース文字が列5の場合、その行は前の行の継続行です。これを固定形式(fixed
form)と呼びます。(GNU
Emacsでは常に列は0から数えますが、Fortran標準では列1から数えることに注意。列をFortran様式で表示するよう、変数column-number-indicator-zero-based
をカスタマイズできる。
モードラインのオプションを参照されたい)
変数fortran-continuation-string
は、列5に配す文字を指定します。タブ文字で開始され、その後‘0’以外の任意の数字後に続くTAB文字も継続行です。この継続スタイルをタブ形式(tab
format)と呼びます(Fortran 90では、自由形式(free form)という継続行スタイルが導入された)。
Fortranモードは、どちらの継続行スタイルも使用できます。Fortranモードに入ったとき、バッファー内容から、自動的に適切な継続行スタイルを推論しようと試みます。これはバッファーの開始から、fortran-analyze-depth
行(デフォルトは100)をスキャンすることにより行われます。最初の行の開始がタブ文字か、6個のスペースかで選択が決定されます。スキャンが失敗した場合(たとえば、新しいバッファーで中身が空の場合)、fortran-tab-mode-default
の値(nil
の場合は固定形式で、非nil
の場合はタブ形式)が使用されます。モードラインに‘/t’
(fortran-tab-mode-string
)が表示されている場合、タブ形式が選択されていることを示します。それに応じてFortranモードはindent-tabs-mode
の値をセットします。
行のテキストがFortranの継続マーカー‘$’で始まるか、列5の非空白文字で始まる場合、Fortranモードはそれを継続行として扱います。継続行をTABでインデントした場合、その行をカレントの継続スタイルに変換します。Fortran命令文をC-M-jで分割した場合、継続スタイルに応じた継続マーカーがある新しい行が作成されます。
継続スタイルのセッティングは、Fortranモードでの編集の他の側面に影響します。固定形式の場合、命令文の最小列は6になります。Fortranブロック内でそれより大きい列にインデントされる行には、空白文字としてスペース文字だけを使用しなければなりません。タブ形式では、命令文の最小列は8で、列8より前の空白文字は1つのタブ文字でなければなりません。