Holzschu/a-shell 项目中的 tbl 表格语言详解
a-shell A terminal for iOS, with multiple windows 项目地址: https://gitcode.com/gh_mirrors/as/a-shell
概述
在 Holzschu/a-shell 项目中,tbl 是一种用于格式化表格的标记语言,主要用于手册页(mandoc)的排版。作为 mdoc(7) 和 man(7) 页面的组成部分,tbl 提供了一种结构化的方式来创建和排版表格内容。
表格基本结构
每个 tbl 表格由以下部分组成:
- 开始标记:使用
\&TS
宏开始一个表格 - 选项部分(可选):第一行可以包含表格选项
- 布局部分:定义表格的行列布局
- 数据部分:包含实际的表格内容
- 结束标记:使用
\&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 的双线框字符集不完整。
最佳实践
- 保持表格简单:复杂的表格可能在不同环境下显示不一致
- 合理使用跨行跨列:确保表格结构清晰
- 注意对齐方式:根据内容类型选择适当的对齐方式
- 谨慎使用边框:过多的边框线可能影响可读性
通过掌握这些 tbl 语言特性,您可以在 Holzschu/a-shell 环境中创建出结构清晰、排版美观的表格内容。
a-shell A terminal for iOS, with multiple windows 项目地址: https://gitcode.com/gh_mirrors/as/a-shell
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考