図面を拡大コピーすると、書かれた縮尺だけが嘘になる

図面を拡大コピーすると、書かれた縮尺だけが嘘になる

設計図の隅には、縮尺が書いてあります。五十分の一、といった数字です。現場ではその数字を頼りに、図面の上の長さから実際の寸法を出します。

図面が小さくて見えないとき、拡大コピーを取ることがあります。線は太くなって読みやすくなりますが、隅の数字はそのままです。五十分の一と書かれた図面が、実際には四十分の一になっています。

そのままスケールを当てて測ると、寸法を間違えます。絵を大きくするのは簡単で、そこに書かれた前提を書き直すのは別の作業だからです。

見た目だけ変えて前提を知らせない、というのはこの形で必ず事故になります。

カーソルが三文字ずれる

ブラウザで開いている AI の画面。文字が小さくて読みにくい。Ctrl と + を押します。大きくなりました。

そのあと長いコマンドを打っていて、途中を直そうとカーソルを戻します。カーソルが、直したい場所より三文字ずれた位置にいます。Ctrl + L で画面を消しても、ゴミが残っています。

MulmoTerminal はターミナルで動く AI を何枚ものマスに並べて見張るための画面で、ブラウザで開きます。無料で、オープンソースとして公開されています。ブラウザで開くので、ブラウザの拡大が使えてしまいます。

ターミナルには桁数と行数がある

原因は、ターミナルの仕組みにあります。

ターミナルは文字の格子です。八十桁かける二十四行のような格子で、その数字を中のプログラムも知っています。コマンドを受け付けるシェルは、この数字を使って、長い行をどこで折り返すかを決め、カーソルを何文字戻すかを決め、画面を消すときに何行消すかを決めます。

桁数と行数が合っていることが前提の仕組みです。図面の隅の縮尺と同じ位置にある数字です。

ブラウザの拡大は、それを知らせない

ブラウザの拡大は、ターミナルに何も言わずにページを大きくします。文字が大きくなった分、同じ幅に入る桁数は減ります。八十桁だったところが七十桁になる。

でも中のプログラムは、八十桁のままだと思っています。

七十文字目で折り返されるのに八十文字目だと思って計算するので、カーソルを戻す量が合わず、消す行数も合いません。拡大コピーした図面をそのまま測っているのと同じことです。

だから専用の設定を使う

MulmoTerminal には、これ用の設定があります。

{ "fontSize": 16 }

そのプロジェクトのターミナルの文字の大きさをピクセルで書きます。

ブラウザの拡大と違うのは、ターミナルを測り直して、新しい桁数と行数を中のプロセスに送るところです。文字を大きくして、入る桁数を数え直して、中のプログラムに今は七十桁二十四行だと伝える。その手順を踏んでいるので、折り返しもカーソルも正しく直ります。

拡大コピーのときに、隅の縮尺を書き直しているわけです。

範囲を外れた値は、丸める

有効な範囲は 8 から 32 です。範囲外の値は近い端に丸められるので、99 は無視されず 32 になります。

数値でない値は無視されて、設定画面の値が使われます。

この使い分けには意味があります。99 は大きくしたいという意図が読めるので、できる範囲でやる。"large" は意図が読めないので何もしない。設定したのに何も変わらない、が起きにくい作りです。

プロジェクトごとに変える意味

この設定はプロジェクトごとなので、マスによって文字の大きさを変えられます。これは見栄えの話ではなく、中身の話です。

ログを眺めるプロジェクトは小さくして一画面に多く入れる。コードを読みながら指示するプロジェクトは大きくして読み間違えない。日本語が多いプロジェクトは大きくして全角が潰れないようにする。

九枚のマスが全部同じ文字サイズである必要はありません。

フォントも同じファイルで変えられる

{ "fontFamily": "'Cica', 'MS ゴシック', monospace" }

ふだんは英数字が中心だが、このプロジェクトのログだけ日本語が多い、といった場合に使います。

反映のタイミングに一つ注意

設定したのに効かない、の典型がここです。

プロジェクトごとの設定を読み直すのは、AI がファイルを書いたと報告したときです。AI に文字を大きくしてと頼んだ場合は、その場で反映されます。エディタで手で書き換えた場合は、タブを再読み込みするまで古いままです。

ファイルを見張っているわけではないので、手で書いたときは自分でタブを更新します。

覚えることは一つだけ

この記事の内容を一行にすると、ブラウザの拡大は使わない、設定の数字を変える、になります。

数字を覚える必要もありません。文字を大きくしてと AI に頼めば、書いてくれます。

使ってみる

MulmoTerminal は、次の一行で立ち上がります。ターミナル(Windows なら PowerShell、Mac ならターミナル)を開いて、そのまま貼り付けます。

npx mulmoterminal@latest

ブラウザが開いて http://localhost:34567 が表示されれば成功です。インストールという作業はなく、合わなければ閉じるだけで終わります。止めるときは、打ったターミナルで Ctrl + C を押します。

動かない場合、足りないものは次の二つのどちらかです。

確かめ方 無ければ
Node.js 22.12 以上 node -v nodejs.org/ja/download の LTS。入れたらターミナルを閉じて開き直す
Claude Code claude --version macOS は curl -fsSL https://claude.ai/install.sh | bash、Windows は irm https://claude.ai/install.ps1 | iex。そのあと claude でログイン

Claude Code は、AI をターミナルから使うためのコマンドです。使うには Claude の有料プラン(Pro / Max / Team / Enterprise)か API のアカウントが必要で、無料プランには含まれていません。MulmoTerminal 自体は無料で、AI の使用量はその契約から引かれます。

書く場所は、そのプロジェクトのフォルダの一番上に置く .mulmoterminal.json です。無ければ作ります。パソコン全体の設定である ~/.mulmoterminal/config.json ではありません。

{
  "fontSize": 16
}

AI にファイルを書かせたときは即座に効きます。エディタで手で書いたときは、タブを再読み込みします。

そのフォルダのターミナルの文字が大きくなって、長い行の折り返しが崩れていなければ成功です。同じことをブラウザの拡大でやると崩れるので、見比べると違いが分かります。

やめるときは、.mulmoterminal.json からその項目を消せば戻ります。ファイルごと消してもかまいません。

まとめ

拡大コピーした図面は、絵だけが大きくなって隅の縮尺はそのままです。それを知らずに測ると寸法を間違えます。

ブラウザで動くターミナルをブラウザの拡大で大きくすると、同じことが起きます。ターミナルは桁数と行数を前提に折り返しとカーソルを計算していて、ブラウザの拡大はその数字を知らせずに変えてしまいます。

fontSize の設定は、大きくしたあとで桁数を数え直して中のプログラムに伝えます。縮尺を書き直しているぶんだけ、こちらが正しい道具です。

この記事をシェア

関連記事

記事一覧に戻る