Textausrichtung in nummerierten Listen im Organisationsmodus?

13

F: Gibt es eine Möglichkeit, org-modenummerierten Listen Nullen voranzustellen ?

Die Textausrichtung in nummerierten Listen sieht unangenehm aus, wenn Zahlen zweistellig sind:

* A numbered list

  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6
  7. Item 7
  8. Item 8
  9. Item 9
  10. Item 10   # ah, my eyes!

Das org-modeHandbuch zu einfachen Listen besagt, dass:

Elemente, die zur gleichen Liste gehören, müssen in der ersten Zeile den gleichen Einzug haben. Insbesondere wenn eine geordnete Liste die Nummer '10. ' Erreicht, müssen die zweistelligen Nummern linksbündig mit den anderen Nummern in der Liste geschrieben werden. Ein Element endet vor der nächsten Zeile, die weniger oder gleich stark eingerückt ist als der Aufzählungspunkt / die Nummer.

Es sieht also so aus, als org-modemüssten die Ziffern linksbündig ausgerichtet werden. Daher frage ich mich, ob es möglich ist, den einstelligen Elementen Nullen voranzustellen, damit der Text gut ausgerichtet ist:

* A zero-padded numbered list

  01. Item 1
  02. Item 2
  03. Item 3
  04. Item 4
  05. Item 5
  06. Item 6
  07. Item 7
  08. Item 8
  09. Item 9
  10. Item 10   # much better!

Aus Neugier habe ich versucht, die Nullen von Hand in eine Liste einzugeben und zu schlagen C-c C-c, wodurch sie einfach wieder entfernt werden.

Also: gibt es eine Möglichkeit, org-modeNullen in nummerierten Listen voranzustellen?

(Hinweis: Frage von diesem SO-Thread inspiriert .)

Dan
quelle

Antworten:

10

Der folgende Unterschied org-list.elmacht den Trick!

diff --git a/lisp/org-list.el b/lisp/org-list.el
index b1d47c9..509e79f 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -1641,7 +1641,8 @@ as returned by `org-list-prevs-alist'."
      ;; Num bullet: increment it.
      ((string-match "[0-9]+" bullet)
       (replace-match
-       (number-to-string (1+ (string-to-number (match-string 0 bullet))))
+       (format (format "%%0%dd" (length (match-string 0 bullet)))
+          (1+ (string-to-number (match-string 0 bullet))))
        nil nil bullet))
      ;; Alpha bullet: increment it.
      ((string-match "[A-Za-z]" bullet)
@@ -1715,7 +1716,7 @@ This function modifies STRUCT."
          (replace-match "a" nil nil bullet))
         ;; First bullet is num: use "1".
         ((string-match "\\([0-9]+\\|[A-Za-z]\\)" bullet)
-         (replace-match "1" nil nil bullet))
+         (replace-match (format (format "%%0%dd" (1+ (log (length struct) 10))) 1) nil nil bullet))
         ;; Not an ordered list: keep bullet.
         (t bullet)))))))))
     (mapc fix-bul (mapcar 'car struct))))

Die ersten Chunk-Patches dienen org-list-inc-bullet-maybedazu, die für das erste Element verwendete Polsterung beizubehalten. Die zweiten Chunk-Patches dienen org-list-struct-fix-buldazu, die Auffüllung basierend auf der Anzahl der Elemente in der Liste zu berechnen.

thisirs
quelle
2
Nett! Es wäre großartig, wenn Sie dies (vorzugsweise mit der Option zum Umschalten) den Entwicklern des Organisationsmodus übermitteln könnten.
Saint Aardvark the Carpeted