跳到主要内容
ansicode

SGR 26 — 比例间距(ECMA-48 定义;常见终端均忽略)

ECMA-48 把它定义为「启用比例间距」—— 但所有常见终端都不实现。记录这一陷阱。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[26m
\\033[\033[26m
\\e[\e[26m
ESC [ESC [ 26 m
hex1b 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)

示例

bash
printf '\033[26mproportional\033[50m back\033[0m\n'   # silently ignored by xterm/kitty/iterm2/etc.
python
import sys; sys.stdout.write('\x1b[26mproportional\x1b[50m\n')
go
fmt.Print("\x1b[26mproportional\x1b[50m\n")
javascript
process.stdout.write('\x1b[26mproportional\x1b[50m\n')
c
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
不支持

相关序列