30.4.3.3 尺寸参数

框架参数通常以字符单位指定尺寸。 在图形显示器上,实际像素尺寸由 default 面孔决定(see 文本视觉样式属性)。

width

指定框架宽度,支持以下形式:

整数

正整数以字符为单位指定框架 文本区域宽度(see 框架几何属性)。

cons 单元

如果 car 为符号 text-pixels,则 cdr 以像素为单位指定文本区域宽度。

浮点数

0.0~1.0 之间的浮点数通过 宽度比例(width ratio) 指定宽度: 即框架外宽(see 框架几何属性) 与其工作区(see 多终端) 或父框架原生宽度(see 子框架)的比例。 0.5 表示占一半宽度,1.0 表示占满。 同理, 高度比例(height ratio) 是外框高度相对于工作区/父框架高度的比例。

如果子框架的 keep-ratio (see 框架交互参数)参数非空, 父框架缩放时 Emacs 会尽量保持其宽高比例不变。

由于外框尺寸在框架显示前通常不可用, 创建带装饰框架时一般不建议使用浮点数。 浮点数更适合确保子框架始终适配父框架区域, 例如在通过 display-buffer-in-child-frame 配置 display-buffer-alist (see 为显示缓冲区选择窗口)时使用。

无论以何种方式设置,frame-parameters 等函数返回时 总会以 字符数整数 形式返回文本区域宽度, 必要时会按框架默认字符宽度取整。桌面保存机制也使用该值。

height

指定框架高度,用法与 width 完全一致,仅方向为垂直。

user-size

对尺寸参数 heightwidth 的作用, 类似于 user-position(see user-position) 对位置参数 topleft 的作用。

min-width

以字符为单位指定框架 最小原生宽度(see 框架几何属性)。 通常,设置初始宽度或水平缩放时会保证窗口、滚动条、fringe、边距等完整显示。 该参数非空时允许框架更窄,超出部分会被窗口管理器裁剪。

min-height

以字符为单位指定框架 最小原生高度(see 框架几何属性)。 通常会保证窗口、滚动条、模式行、回显区、内部菜单/工具栏等完整显示。 该参数非 nil 时允许框架更小,超出部分会被裁剪。

fullscreen

指定是否最大化框架宽度、高度或两者。 可取:fullwidthfullheightfullbothmaximized22 fullwidth:宽度拉满; fullheight:高度拉满; fullboth:宽高均拉满,通常隐藏标题栏,占据全部屏幕空间; maximized:类似 fullboth,但保留标题栏与缩放关闭按钮, 且通常不遮挡任务栏、面板。

全屏高/全屏宽框架更接近最大化框架, 但通常会显示外部边框,因此像素尺寸可能略有差异。

部分窗口管理器下需要设置 frame-resize-pixelwise(see 框架尺寸) 才能真正全屏/最大化。 某些窗口管理器在全屏状态间切换不流畅,可自定义 x-frame-normalize-before-maximize 改善。

在 macOS 上全屏会隐藏工具栏与菜单栏, 但鼠标移至屏幕顶部时会重新显示。

fullscreen-restore

指定在 fullboth 状态下执行 toggle-frame-fullscreen(see Frame Commands in The GNU Emacs Manual) 后要恢复到的全屏状态。 通常该命令切换到 fullboth 时会自动设置。 若启动时即处于 fullboth,可在初始化文件中指定,例如:

(setq default-frame-alist
    '((fullscreen . fullboth)
      (fullscreen-restore . fullheight)))

这样第一次按 F11 就会切换为全屏高。

fit-frame-to-buffer-margins

在使用 fit-frame-to-buffer(see 调整窗口大小) 将框架适配根窗口缓冲区时,覆盖全局选项 fit-frame-to-buffer-margins

fit-frame-to-buffer-sizes

在使用 fit-frame-to-buffer(see 调整窗口大小) 将框架适配根窗口缓冲区时,覆盖全局选项 fit-frame-to-buffer-sizes


Footnotes

(22)

在 PGTK 框架上,fullheightfullwidth 无效。