SGR 26 — 比例间距(ECMA-48 定义;常见终端均忽略)
ECMA-48 把它定义为「启用比例间距」—— 但所有常见终端都不实现。记录这一陷阱。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[26m\\033[
\033[26m\\e[
\e[26mESC [
ESC [ 26 mhex
1b 5b 32 36 6d说明
ECMA-48 §8.3.117 把 SGR 26 定义为 `PROPORTIONAL SPACING` —— 提示渲染设备对后续字符切换至比例字体而非等宽格;匹配的 `PROPORTIONAL SPACING OFF` 为 `\x1b[50m`。**该控制实际上已死**:在 1970–80 年代 ANSI X3.64 / ECMA-48 的打印流目标(打字机、菊轮打印机、可选比例固件的主机终端)上有意义,但所有现代终端模拟器硬编码等宽网格用于列计算,完全忽略 SGR 26。在此记录它,是为了让解码器与 lint 工具识别该字节序列而非错误分类 —— 同时让作者明白不能在终端会话中混用比例文本与等宽文本。若 2026 年仍需比例渲染,请改用非终端 UI(Web、原生应用)。
规范出处: ECMA-48 §8.3.117 (SGR parameter 26)
示例
printf '\033[26mproportional\033[50m back\033[0m\n' # silently ignored by xterm/kitty/iterm2/etc.import sys; sys.stdout.write('\x1b[26mproportional\x1b[50m\n')fmt.Print("\x1b[26mproportional\x1b[50m\n")process.stdout.write('\x1b[26mproportional\x1b[50m\n')printf("\x1b[26mproportional\x1b[50m\n");终端支持
- xterm
- 不支持
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 不支持
- iTerm2
- 不支持
- Windows Terminal
- 不支持
- cmd.exe / ConPTY
- 不支持
- kitty
- 不支持
- alacritty
- 不支持
- WezTerm
- 不支持
- Ghostty
- 不支持
- GNOME Terminal
- 不支持
- Konsole
- 不支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |