From 40bafe78ce198f1765c78f54cb071648d100c0c9 Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Mon, 5 Aug 2024 17:45:10 +0200 Subject: [PATCH] Add temporary fix for Org alignment of links to headlines When a headline ends on a closing bracket, Org adds an escape character to the link text to distinguish the end of the link from the link description. This escape character is a zero-width space, which is counted for Org table alignment as one character, but the link itself is displayed shorter, because the zero-width character is displayed as a single pixel by emacs. To work around this issue until the upstream fix is released, let's add a final non-breaking space to those link descriptions to avoid the need for the zero-width escape characters. --- init.el | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index 8b0ec09..ea68eed 100644 --- a/init.el +++ b/init.el @@ -890,7 +890,23 @@ quickly loose their meaning." (org-trim (replace-regexp-in-string "\\[[0-9]*%\\]\\|\\[[0-9]+/[0-9]+\\]\\|\\[/\\]" "" - description))))))) + description))))) + + (define-advice org-link-make-string (:around + (orig-func link &optional description) + db/org--add-final-nbsp-to-fix-table-alignment) + "Add final non-breaking space to DESCRIPTION when ending on a closing bracket. + +This is to fix the current alignment of Org tables, which counts +a zero-width character, which is used to escape the end of an Org +link, as one character but does not adjust the width of the table +accordingly." + (funcall orig-func + link + (if (and description + (string-match "\\]$" description)) + (concat description " ") + description))))) (use-package ol-bbdb :config (add-to-list 'org-bbdb-anniversary-format-alist