Org mode 表格像素对齐

会不会是你的表格太长了? :grinning:

应该是你的表格太长了。此处安利同一个作者的另一个包 GitHub - casouri/ftable: Fill (auto-layout) tables

2 个赞

这样好算一点,如果要挤到标题里面去,证明窗口太小了,哈哈哈哈。

看我PR里面的最新补丁吧。

如果窗口足够大,我用的是 title-width, 如果窗口不够大,比如只有一半就换一个更小的值。

1 个赞

变量运算符 替换 ${varname#pattern} 如果pattern匹配varname的开头处,则删除匹配的最短部分,返回剩下的部分。 ${varname##pattern} 如果pattern匹配varname的开头处,则删除匹配的最长部分,返回剩下的部分。 ${varname%pattern} 如果pattern匹配varname的结尾处,则删除匹配的最短部分,返回剩下的部分。 ${varname%%pattern} 如果pattern匹配varname的结尾处,则删除匹配的最长部分,返回剩下的部分。 ${varname/pattern/string} 将varname中匹配pattern的最长部分替换为srting。第一种格式中,只有匹配的第一部分被替换; ${varname//pattern/string} 第二种格式中,varname中所有匹配的部分都被替换。如果模式以为#开头,则必须匹配varname的开头,如果模式%开头,则必须匹配varname的结尾。如果string为空,匹配部分被删除。如果varname为@或*,操作被依次应用于每个位置参数,并且扩展为结果列表。

上面表格cell内容太长,怎么加回车显示??

在需要换行的位置输入两个及以上的空格。

报告一个 bug,在 doom emacs 里 markdown 模式下报错:

Invalid face: markdown-table-face

似乎跟这个相关:

(defun valign--table-face ()
  "Return the table face for this buffer."
  (cond ((derived-mode-p 'org-mode)
         'org-table)
        ((derived-mode-p 'markdown-mode)
         'markdown-table-face)
        (t 'default)))

@casouri

casouri 不在论坛了,到 telegram 问吧。

上不去 telegram :sob: 我去了github 上报告下。

这个是没有用valign的 image

用了以后发现第二行比较奇怪 image

:cow: :beer: :cow: :beer: :cow: :beer:

这个是 在 org-agenda 里面按 R 就自动出来的? 还是出来后需要 valign-table 一下? 最新的版本直接 R 好像还是不对,需要手动 valign-table

windows [email protected] (spacemacs) 打开org文件时报错:

File mode specification error:(void function valign-mode)

设置如下: ( load-file “f:/git/valign/valign.el”) (add-hook 'org-mode-hook #'valign-mode)

已经解决,在windows 的spacemaces 有相应的layer,直接开启就行: (org :variables org-enable-valign t )

@casouri 楼主能支持下elgantt吗?遇到了中文不对的情况。

请教中:

不知道, 表格最长, 支持多少行了, 我有个约 160行的 表, 对不齐, 因为内容字符较杂, 行少些可以

https://manateelazycat.github.io/emacs/2020/04/02/org-font.html

但用 manateelazycat 的这个, 就可以, 就是 字体 大了, 也就是说 14 和 15 怎么配小些,

有试了 13 和 14, 12.5和 13.5, 都不行, 能调小吗, 比例怎么算,

(let ((emacs-font-size 14)
      (emacs-font-name "WenQuanYi Micro Hei Mono"))
  (set-frame-font (format "%s-%s" (eval emacs-font-name) (eval emacs-font-size)))
  (set-fontset-font (frame-parameter nil 'font) 'unicode (eval emacs-font-name)))

(with-eval-after-load 'org
  (defun org-buffer-face-mode-variable ()
    (interactive)
    (make-face 'width-font-face)
    (set-face-attribute 'width-font-face nil :font "等距更纱黑体 SC 15")
    (setq buffer-face-mode-face 'width-font-face)
    (buffer-face-mode))

  (add-hook 'org-mode-hook 'org-buffer-face-mode-variable))

为啥在 org-mode 中初始化表格,在第8行前后,表格宽度不一样…

开启了 valign-mode

用 emacs -Q 测试,就没有这个问题

Mac下,当文件非常大,很多行的时候,对齐需要重绘屏幕吧,如果保存文件就非常卡顿了。 org、markdown都有这样的问题。

不知道咋解决?

直接通过字体等高等宽就可以搞定了

给后来的人提醒一下, 目前版本需要在一个标题下才能对齐. 我对着一个没有标题的 org-table 测试半天对不齐, 被自己蠢哭了.

顺便贴一个 doom emacs 的配置:

在 ~/.doom.d/package.el 下添加如下配置:

(package! valign
  :recipe (:host github :repo "casouri/valign"))

在 ~/.doom.d/config.el 下添加如下配置:

(use-package! valign
  :hook
  (org-mode . valign-mode)
  :config
  (setq valign-fancy-bar t) 
  )