org mode表格中一列太宽怎么办?
缘起
通常情况下,都希望在 org 中使用更多的功能,比如一些并不是很复杂的文字表格。但是一定会需要一个问题,那就是因为 org 中的表格没有自动换行的功能,所以当如果某个单元格中的文字特别长的话,在 org 中会出现排版混乱的情况(尽管在导出后并不影响),这就大大阻碍了我在 Emacs 中使用表格的积极性,更加不利的是,如果有表格的内容,我必须引用到其它文件,来承载表格的,这样会造成文件的链接成本,增加管理文件的复杂性。
其实是有解决办法的,官方文档中就有说明。 https://orgmode.org/manual/Column-Width-and-Alignment.html
使用
如果有类似下列的表格
| 序号 | 内容 |
|------+------------------------------------------------------------------------------|
| 1 | 这是一段很长的文字,很长很很长很很长很很长很很长很很长很很长很很长很很长很长 |
| 2 | 这段文字并不长 |
这时可以给显示列宽设置一个长度 如: <20>
,并在超长的列中运行 C-c TAB
org 会将这个列显示成20个字宽,超过20个字的部分会截断,显示 ...
由于导出的html无法显示此效果,建议大家在自己的 emacs 尝试。
序号 | 内容 |
---|---|
1 | 这是一段很长的文字,很长很很长很很长很很长很很长很很长很很长很很长很很长很长 |
2 | 这段文字并不长 |
注意,如果没有达到我上面文字描述的效果,请确认已经将光标放在超长的单元格中,并运行了
C-c TAB
对应的功能是 (org-table-toggle-column-width)
。再按一次,则会切换回不截断的模式。
如果有多列设置了列宽,也可以使用 C-u C-c TAB
对应功能 (org-table-shrink)
来收缩所有列,或用 C-u C-u C-c TAB
对应功能 (org-table-expand)
来扩展所有列
配置
如果想默认情况下就收缩显示,可以在文件头上加入: #+STARTUP: shrink
或者定义 org-startup-shrink-all-tables
变量。
顺便一提,除了可以定义列宽外,还可以定义列的对齐方式,使用 <r>
, <c>
或 <l>
也或以联合使用,如 <r10>