comment -*- mode: text; tab-width:2; indent-tabs-mode:nil -*-

mlterm で縦表示

* 縦表示の設定
  設定ファイル main に、vertical_mode = cjk とかくか、-G cjk , --vertical cjk
  オプションを指定して、mlterm を起動してください。
  または、設定画面から変更することも可能です。

  縦表示用のフォントは tfont にて設定することができます。
  ここで指定したフォントは、縦表示の場合のみ使用されます。

  縦用フォントは、

  http://www.geocities.co.jp/SiliconValley-Cupertino/6461/vertfonts.html

  から入手できます。

  vertfonts-20020201.tar.gz には、naga10 1.1 および shinonme 0.9.7(12-16 point)
  の JISX0208 フォントへのパッチが、vertfonts-half-20020209.tar.gz には、同
  ISO8859-1 フォントへのパッチが含まれています。

  mlterm-fb (framebuffer), mlterm-wl (wayland), mlterm-sdl2 (sdl2) 又は android
  版 mlterm で、freetype を有効にしてビルドした場合、TrueType フォントから自動的
  に縦書き用のグリフを生成し表示します。 (3.8.4〜)

* 半角、全角の扱いについて
  縦表示の場合、半角文字は、全角文字と同じ幅で表示されます。しかし、通常、半角文
  字用のフォントは、全角文字の半分の大きさしかないため、適当に間隔を空けながら、
  一文字ずつ描画することで、無理矢理全角幅で表示することになります。
  ただ、これでは描画速度が大変遅くなりますので、初めから全角幅をもった半角フォン
  トを用意しております(上記 vertfonts-half-20020209.tar.gz)
  このフォントを、tfont に設定しておくことで、横表示の場合とほぼ変わらない描画速
  度になるはずです。

--- tfont 設定の例
ISO8859_1 = -*-medium-*--%d-*-*-*-vc-*-iso8859-1:100;
ISO8859_1_BOLD = -*-bold-*--%d-*-*-*-vc-*-iso8859-1;
JISX0208_1983 = -*-medium-*--%d-*-vc-*-jisx0208.*;
JISX0208_1983_BOLD = -*-bold-*--%d-*-vc-*-jisx0208.*-0;
---

  ここで、ISO8859_1 の最後に、":100" とつけるのを忘れないでください(percentage
  指定については、README.ja 参照)
  縦表示の場合、通常半角として扱われるフォントは、デフォルトでは、横幅を二倍にし
  て描画するよう設定されます。
  したがって、初めから全角幅をもったフォントを扱う場合は、横幅を二倍にせず、フォ
  ントサイズが 14 の場合なら、横幅が 14 point になるよう強制しなくてはなりません。

* ウィンドウサイズの調整
  mlterm の縦表示は、半角文字を全角文字と同じ大きさのグリフとして扱います。
  そのため、全角文字が多数表示される場合には、ウィンドウの下側に空白ができてしま
  います。
  全角半角の semantics を崩すことができない以上、これを根本的に解決することはで
  きませんが、-1 , --wscr オプション、-2 , --hscr オプションをを利用することで、
  見た目をそれらしくすることができます。
  これらは、コンソールアプリケーションから見える端末サイズとは無関係に、ウィンド
  ウの幅、高さを調節するオプションです(百分率指定)

  たとえば、縦表示モードで、less などを使って青空文庫を表示する場合、ほとんどの
  文字は全角文字になりますから、ウィンドウの下半分が丸々空白になります。
  その場合は、--hscr 50 として、ウィンドウの高さを 50 パーセント(半分)にすること
  で、無駄な空白を消すことができます。
  
  このオプションは、設定画面から動的に変更することも可能です。

* おまけ(w3m-m17n で縦表示)
  w3m-m17n では、mlterm の縦表示機能を利用して、縦書きブラウザとして使うことがで
  きるようになっています。

  http://www2u.biglobe.ne.jp/~hsaka/bbs.cgi#20020208011642.09930

  縦書き w3m を使用するには、mlterm 側では、vertical_mode , tfont の設定に加えて
  、さらに、以下の二つのオプションを指定する必要があります。

  o -Z=false , --multicol=false , use_multi_column_char = false
    全角文字を、通常の コラム幅 2 ではなく、コラム幅 1 として扱う(必須)

  o -Q , --vcur , use_vertical_cursor = true
    十字カーソルを、縦表示に自然な形に割当て直す(推奨)

  特に、-Z オプションの指定を忘れないでください。
  -Z オプションは、設定画面より動的変更が可能です。

* 制限
  縦書きモードでは、領域選択及びスクロールバックに対応していません。
