Holzschu/a-shell 项目中的 tbl 表格语言详解

Holzschu/a-shell 项目中的 tbl 表格语言详解

a-shell A terminal for iOS, with multiple windows a-shell 项目地址: https://gitcode.com/gh_mirrors/as/a-shell

概述

在 Holzschu/a-shell 项目中,tbl 是一种用于格式化表格的标记语言,主要用于手册页(mandoc)的排版。作为 mdoc(7) 和 man(7) 页面的组成部分,tbl 提供了一种结构化的方式来创建和排版表格内容。

表格基本结构

每个 tbl 表格由以下部分组成:

  1. 开始标记:使用 \&TS 宏开始一个表格
  2. 选项部分(可选):第一行可以包含表格选项
  3. 布局部分:定义表格的行列布局
  4. 数据部分:包含实际的表格内容
  5. 结束标记:使用 \&TE 宏结束表格

所有输入必须使用 7-bit ASCII 字符集。

表格选项详解

如果表格的第一行以分号结尾,则该行包含表格选项。选项不区分大小写,可以用空格、制表符或逗号分隔。

常用选项包括:

  • allbox:为每个单元格绘制单线边框
  • box/frame:为整个表格绘制单线边框
  • center/centre:表格居中对齐而非左对齐
  • decimalpoint:指定数字对齐时使用的小数点字符(GNU扩展)
  • tab:指定数据单元格之间的分隔符(默认为制表符)

布局定义

布局部分定义了表格的结构和样式。每个布局行对应数据行的一种格式。最后一个布局行以句点结束,并应用于所有剩余的数据行。

单元格布局关键字

  • c:内容居中
  • r:内容右对齐
  • l:内容左对齐
  • n:数字按小数点对齐
  • s:水平跨列(从上一个非s单元格开始)
  • a:左对齐并添加一个空格填充
  • ^:垂直跨行(从上一个非^单元格开始)
  • _/-:绘制单横线
  • =:绘制双横线

单元格修饰符

每个布局关键字后可跟修饰符:

  • b:使用粗体
  • i:使用斜体
  • f:指定字体
  • e:使列宽与其他e列匹配
  • w:指定最小列宽
  • x:分配剩余宽度给此列
  • |:右侧绘制单竖线
  • ||:右侧绘制双竖线

数字修饰符表示列间距(默认为3n),竖线绘制在间距内。

数据格式

数据部分包含实际的表格内容:

  • 数据单元格默认用制表符分隔(可通过tab选项修改)
  • 特殊数据值:
    • \^:垂直跨行
    • _=:绘制横线(跨单元格)
    • \_\=:绘制横线(不跨单元格)

文本块

对于长文本内容,可以使用文本块:

T{
这是多行
文本内容
T}

文本块以T{开始,以T}结束,可以跨越多行。

实际应用示例

基本对齐示例

\&.TS
rb c  lb
r  ci l.
r	center	l
ri	ce	le
right	c	left
\&.TE

数字对齐和边框示例

\&.TS
box tab(:);
r| l
r  n.
软件:版本
_
AFL:2.39b
Mutt:1.8.0
Ruby:1.8.7.374
TeX Live:2015
\&.TE

跨行跨列示例

\&.TS
box tab(:);
lz  s | rt
lt| cb| ^
^ | rz  s.
左:右
左:居中:
:右
\&.TE

兼容性说明

Holzschu/a-shell 中的 tbl 实现不支持在表格内使用 mdoc/man 宏或 eqn 公式。在 UTF-8 输出模式下,双线会以粗线替代,因为 Unicode 的双线框字符集不完整。

最佳实践

  1. 保持表格简单:复杂的表格可能在不同环境下显示不一致
  2. 合理使用跨行跨列:确保表格结构清晰
  3. 注意对齐方式:根据内容类型选择适当的对齐方式
  4. 谨慎使用边框:过多的边框线可能影响可读性

通过掌握这些 tbl 语言特性,您可以在 Holzschu/a-shell 环境中创建出结构清晰、排版美观的表格内容。

a-shell A terminal for iOS, with multiple windows a-shell 项目地址: https://gitcode.com/gh_mirrors/as/a-shell

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶羚耘Ruby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值